OSDN Git Service

* gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Do not make
[pf3gnuchains/gcc-fork.git] / gcc / ada / ChangeLog
1 2009-04-21  Eric Botcazou  <ebotcazou@adacore.com>
2
3         * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Do not make
4         constant objects covered by 13.3(19) volatile.
5
6 2009-04-21  Eric Botcazou  <ebotcazou@adacore.com>
7
8         * gcc-interface/utils.c (create_type_decl): Do not pass declarations
9         of dummy fat pointer types to the debug back-end.
10
11 2009-04-20  Eric Botcazou  <ebotcazou@adacore.com>
12
13         * gcc-interface/decl.c (gnat_to_gnu_entity): Rewrite Esize calculation.
14         <E_Signed_Integer_Subtype>: Set the RM size on the integer type
15         before wrapping it up in the record type.  Do not overwrite the
16         Ada size of the record type with the Esize.
17
18 2009-04-20  Eric Botcazou  <ebotcazou@adacore.com>
19
20         * gcc-interface/trans.c (unchecked_conversion_lhs_nop): New predicate.
21         (gnat_to_gnu) <N_Unchecked_Type_Conversion>: Return the expression
22         if the conversion is on the LHS of an assignment and a no-op.
23         <all> Do not convert the result to the result type if the Parent
24         node is such a conversion.
25
26 2009-04-20  Eric Botcazou  <ebotcazou@adacore.com>
27
28         * gcc-interface/ada-tree.h (DECL_HAS_REP_P): Delete.
29         * gcc-interface/decl.c (gnat_to_gnu_entity): Add support for extension
30         of types with unknown discriminants.
31         (substitute_in_type): Rewrite and restrict to formal substitutions.
32         * gcc-interface/utils.c (create_field_decl): Do not set DECL_HAS_REP_P.
33         (update_pointer_to): Update comment.
34
35 2009-04-20  Ed Schonberg  <schonberg@adacore.com>
36
37         * sem_ch8.adb (Use_One_Package): In an instance, if two
38         potentially_use_visible and non-overloadable homonyms are available
39         from  the actuals of distinct formal packages, retain the current one,
40         which was visible in the generic, to prevent spurious visibility
41         errors.
42         (End_Use_Package): Restore use_visibility when needed.
43
44 2009-04-20  Sergey Rybin  <rybin@adacore.com>
45
46         * gnat_ugn.texi, vms_data.ads: Update doc.
47
48 2009-04-20  Arnaud Charlet  <charlet@adacore.com>
49
50         * gcc-interface/Make-lang.in: Update dependencies
51
52         * gcc-interface/Makefile.in: Link run-time against winsock2 lib under
53         Windows.
54
55 2009-04-20  Robert Dewar  <dewar@adacore.com>
56
57         * checks.ads: Fix documentation of range check handling
58
59 2009-04-20  Ed Schonberg  <schonberg@adacore.com>
60
61         * sem_ch8.adb (Use_One_Type): Use proper entity on warning message for
62         a redundant use_type clause.
63
64 2009-04-20  Robert Dewar  <dewar@adacore.com>
65
66         * sem_attr.adb (Eval_Attribute, case Length): Catch more cases where
67         this attribute can be evaluated at compile time.
68         (Eval_Attribute, case Range_Length): Same improvement
69
70         * sem_eval.ads, sem_eval.adb (Compile_Time_Compare): New procedure
71
72 2009-04-20  Ed Schonberg  <schonberg@adacore.com>
73
74         * sem_ch6.adb (Analye_Subprogram_Declaration): Code reorganization,
75         for better handling of null procedures.
76         (Check_Overriding_Indicator): Do not emit a warning on a missing
77         overriding indicator on an operator when the type of which the operator
78         is a primitive is private.
79
80 2009-04-20  Bob Duff  <duff@adacore.com>
81
82         * sem.adb, gnat1drv.adb, debug.adb: Use the -gnatd.W switch to control
83         debugging output.
84
85 2009-04-20  Robert Dewar  <dewar@adacore.com>
86
87         * sem_attr.adb: Minor reformatting
88
89         * gnatcmd.adb: Minor reformatting
90
91 2009-04-20  Ed Schonberg  <schonberg@adacore.com>
92
93         * sem_ch4.adb (Analyze_User_Defined_Binary_Op): If left operand is
94         overloaded and one interpretation matches the context, label the
95         operand with the type of first formal.
96
97 2009-04-20  Bob Duff  <duff@adacore.com>
98
99         * debug.ads: Minor comment fix.
100
101         * debug.adb: Minor comment fixes.
102
103 2009-04-20  Javier Miranda  <miranda@adacore.com>
104
105         * rtsfind.ads (RE_Null_Id): New entity of package Ada.Exceptions
106
107         * exp_ch6.adb (Expand_Inlined_Call): Undo previous patch.
108
109         * exp_ch11.adb (Expand_N_Raise_Statement): When the raise stmt
110         is expanded into a call to Raise_Exception, avoid passing the
111         exception-name'identity in runtimes in which this argument
112         is not used.
113
114 2009-04-20  Jerome Lambourg  <lambourg@adacore.com>
115
116         * impunit.adb: Add i-cil and i-cilobj packages, now needed by the
117         generated bindings for cil.
118
119 2009-04-20  Ed Schonberg  <schonberg@adacore.com>
120
121         * sem_aggr.adb (Resolve_Record_Aggregate): If the type has unknown
122         discriminants, collect components from the Underlying_Record_View,
123         which will be used in the expansion of the aggregate into assignments.
124
125         * sem_ch3.adb: Do not label derived type with unknown discriminants as
126         having a private declaration.
127
128 2009-04-20  Ed Schonberg  <schonberg@adacore.com>
129
130         * exp_util.adb (Expand_Subtype_From_Expr): use the
131         underlying_record_view when available, to create the proper constrained
132         subtype for an object of a derived type with unknown discriminants.
133
134 2009-04-20  Javier Miranda  <miranda@adacore.com>
135
136         * exp_ch6.adb (Expand_Inlined_Call): Avoid generation of temporaries for
137         formals that have pragma unreferenced.
138
139 2009-04-20  Pascal Obry  <obry@adacore.com>
140
141         * a-direct.adb (To_Lower_If_Case_Insensitive): Removed.
142         Remove all calls to To_Lower_If_Case_Insensitive to preserve
143         the pathname original casing.
144
145 2009-04-20  Robert Dewar  <dewar@adacore.com>
146
147         * g-trasym.adb: Minor reformatting
148
149         * s-os_lib.adb: Minor reformatting
150
151         * sem.adb: Minor reformatting
152         Minor code reorganization
153
154         * sem_ch3.adb: Minor reformatting
155
156         * sem_ch4.adb: Minor reformatting
157
158         * sem_ch8.adb: Minor reformatting
159
160         * sem_type.adb: Minor reformatting
161
162 2009-04-20  Javier Miranda  <miranda@adacore.com>
163
164         * sem_disp.adb (Find_Dispatching_Type): For subprograms internally
165         generated by derivations of tagged types use the aliased subprogram a
166         reference to locate their controlling type.
167
168 2009-04-20  Tristan Gingold  <gingold@adacore.com>
169
170         * g-trasym.adb: Set size of result buffer before calling
171         convert_address.
172
173 2009-04-20  Ed Schonberg  <schonberg@adacore.com>
174
175         * sem_ch4.adb (Valid_Candidate): When checking whether a prefixed call
176         to a function returning an array can be interpreted as a call with
177         defaulted parameters whose result is indexed, take into account the
178         types of all the indices of the array result type.
179
180 2009-04-20  Pascal Obry  <obry@adacore.com>
181
182         * a-direct.adb, s-os_lib.adb: Minor reformatting.
183
184 2009-04-20  Ed Schonberg  <schonberg@adacore.com>
185
186         * sem_ch8.adb (Analyze_Object_Renaming): Proper checks on incorrect
187         null exclusion qualifiers for object renaming declarations.
188
189 2009-04-20  Nicolas Roche  <roche@adacore.com>
190
191         * sysdep.c (__gnat_localtime_tzoff): on Windows, manipulated times are
192         unsigned long long. So compare local_time and utc_time before computing
193         the difference.
194
195 2009-04-20  Eric Botcazou  <ebotcazou@adacore.com>
196
197         * sem_ch3.adb (Build_Derived_Private_Type): Insert the declaration
198         of the Underlying_Record_View before that of the derived type.
199
200         * exp_ch3.adb (Expand_Record_Extension): Do not special-case types
201         with unknown discriminants with regard to the parent subtype.
202
203 2009-04-20  Bob Duff  <duff@adacore.com>
204
205         * sem.adb (Semantics, Walk_Library_Items): Include dependents of bodies
206         that are not included. This is necessary if the main unit is a generic
207         instantiation.
208
209         * gnat1drv.adb (Gnat1drv): Comment out the call to Check_Library_Items,
210         because it doesn't work if -gnatn is used.
211
212 2009-04-20  Ed Schonberg  <schonberg@adacore.com>
213
214         * rtsfind.adb (RTE, RTE_Record_Component): In
215         Configurable_Run_Time_Mode, do not enable front-end inlining.
216
217 2009-04-20  Thomas Quinot  <quinot@adacore.com>
218
219         * g-socthi-vms.adb: Remove now unnecessary WITH clause on
220         System.Address_To_Access_Conversions.
221
222 2009-04-20  Ed Schonberg  <schonberg@adacore.com>
223
224         * sem.adb: Guard against ill-formed subunits.
225
226 2009-04-20  Bob Duff  <duff@adacore.com>
227
228         * output.adb (Flush_Buffer): Do not indent blank lines.
229         (Ignore_Output): New procedure for output suppression.
230
231 2009-04-20  Hristian Kirtchev  <kirtchev@adacore.com>
232
233         * a-calfor.adb (Image): Subtract 0.5 from the sub second component only
234         when it is positive.  This avoids a potential constraint error raised
235         by the conversion to Natural.
236
237 2009-04-20  Gary Dismukes  <dismukes@adacore.com>
238
239         * exp_ch5.adb (Expand_Assign_Array): For the case where the assignment
240         involves a target that has a specified address, don't set Forward_OK
241         and Backward_OK to False if the rhs is an aggregate, since overlap
242         can't occur.
243
244 2009-04-20  Ed Schonberg  <schonberg@adacore.com>
245
246         * sem_ch8.adb (Analyze_Object_Renaming): Reject ambiguous expressions
247         in an object renaming declaration when the expected type is an
248         anonymous access type.
249
250         * sem_type.adb (Disambiguate): Use anonymousness to resolve a potential
251         ambiguity when one interpretation is an anonymous access type and the
252         other is a named access type, and the context itself is anonymous
253
254 2009-04-20  Thomas Quinot  <quinot@adacore.com>
255
256         * einfo.ads: Minor comment rewording
257
258         * sem_aggr.adb: Minor comment rewording
259
260         * sem_ch3.adb, sem_ch6.adb: Minor reformatting
261
262 2009-04-20  Pascal Obry  <obry@adacore.com>
263
264         * adaint.c (__gnat_is_readable_file): Check for file existence
265         when not using ACL (always the case on remote drives).
266
267 2009-04-20  Robert Dewar  <dewar@adacore.com>
268
269         * sinfo.ads: Minor comment fixes
270
271         * exp_disp.adb: Minor reformatting
272
273         * gnat1drv.adb: Minor reformatting
274
275         * output.adb: Minor reformatting
276
277         * s-vxwext-kernel.ads: Minor reformatting
278
279         * sem.ads: Minor reformatting
280
281         * sem.adb: Minor reformatting
282
283         * sem_elim.adb: Minor reformatting
284
285         * uname.ads: Minor reformatting
286
287 2009-04-20  Eric Botcazou  <ebotcazou@adacore.com>
288
289         * init.c (__gnat_adjust_context_for_raise): On x86{-64}/Linux, add
290         a small dope of 4 words to the adjustment to the stack pointer.
291
292 2009-04-20  Thomas Quinot  <quinot@adacore.com>
293
294         * xoscons.adb: generate C header s-oscons.h in
295         addition to s-oscons.ads.
296
297         * socket.c: On VMS, use s-oscons.h.
298
299         * sem_ch3.adb: Minor reformatting
300
301         * exp_ch9.adb: Minor reformatting
302
303 2009-04-20  Eric Botcazou  <ebotcazou@adacore.com>
304
305         * gcc-interface/trans.c (check_for_eliminated_entity): Remove.
306         (Attribute_to_gnu): Do not call check_for_eliminated_entity.
307         (call_to_gnu): Likewise.
308
309 2009-04-20  Eric Botcazou  <ebotcazou@adacore.com>
310
311         * gcc-interface/trans.c (gigi): Declare the name of the compilation
312         unit as the first global name at the very beginning.
313
314 2009-04-20  Thomas Quinot  <quinot@adacore.com>
315
316         * socket.c, g-socthi-vms.adb, g-socthi-vms.ads, g-socthi-vxworks.ads,
317         s-oscons-tmplt.c, gsocket.h, g-socthi-mingw.ads, g-socthi.ads,
318         g-sothco.ads (__gnat_inet_pton): Needs to be enabled for HP-UX as well,
319         since HP-UX supports neither inet_aton nor inet_pton (altough the
320         latter is part of the Single UNIX Specification!).
321         So reorganize code, and share C implementation based on inet_addr(3)
322         with VMS (instead of having a VMS specific Ada implementation in
323         g-socthi-vms.adb).
324
325 2009-04-20  Gary Dismukes  <dismukes@adacore.com>
326
327         * osint-c.ads, osint-c.adb (Get_Object_Output_File_Name): New function
328         to return the object file name saved by Set_Object_Output_File_Name.
329
330 2009-04-20  Emmanuel Briot  <briot@adacore.com>
331
332         * g-comlin.adb (Initialize_Option_Scan): Fix initialization of parsers
333         for the standard command line, when argc has been modified since the
334         start of the application.
335
336 2009-04-20  Thomas Quinot  <quinot@adacore.com>
337
338         * socket.c (__gnat_inet_pton, Windows case): Adjust return value.
339         WSAStringToAddress returns 0 for success and SOCKET_ERROR for failure.
340
341 2009-04-20  Bob Duff  <duff@adacore.com>
342
343         * gnat1drv.adb (Gnat1drv): Put call to Check_Library_Items inside
344         pragma Debug.
345
346 2009-04-20  Ed Schonberg  <schonberg@adacore.com>
347
348         * exp_ch9.adb (Build_Protected_Sub_Specification): Mark generated
349         subprogram as Eliminated when source operation is.
350         (Expand_N_Protected_Type_Declaration): Generate protected and
351         unprotected specs for the internal operations, even if the source
352         operation is eliminated.
353
354 2009-04-20  Hristian Kirtchev  <kirtchev@adacore.com>
355
356         * exp_ch3.adb (Make_Predefined_Primitive_Specs,
357         Predefined_Primitive_Bodies): Do not create the declarations and bodies
358         of the primitive subprograms associated with dispatching select
359         statements when the runtime is in configurable mode.
360
361 2009-04-20  Ed Falis  <falis@adacore.com>
362
363         * s-vxwext-kernel.ads (tickGet): Use tick64Get.
364
365 2009-04-20  Thomas Quinot  <quinot@adacore.com>
366
367         * s-oscons-tmplt.c: Add support for generating a dummy version of
368         s-oscons.ads providing all possible constants.
369
370         * g-socthi-mingw.ads: Fix calling convention for __gnat_inet_pton.
371
372         * socket.c (__gnat_inet_pton): On Windows make sure we always use the
373         ANSI version (not the UNICODE version) of WSAStringToAddress.
374
375 2009-04-20  Pascal Obry  <obry@adacore.com>
376
377         * adaint.c (__gnat_set_OWNER_ACL): properly free memory
378         allocated for the security descriptor and make sure all
379         handles are closed before leaving this procedure.
380
381 2009-04-20  Javier Miranda  <miranda@adacore.com>
382
383         * einfo.ads, einfo.adb (Is_Underlying_Record_View): New subprogram
384         (Set_Is_Underlying_Record_View): New subprogram
385
386         * sem_aggr.adb (Discr_Present, Resolve_Record_Aggregate): In case of
387         private types with unknown discriminants use the underlying record view
388         if available.
389
390         * sem_ch3.adb (Build_Derived_Private_Type): Enable construction of the
391         underlying record view in the full view of private types whose parent
392         has unknown discriminants.
393         (Build_Derived_Record_Type): Avoid generating the class-wide entity
394         associated with an underlying record view.
395         (Derived_Type_Declaration): Avoid deriving parent primitives in
396         underlying record views.
397
398         * sem_ch6.adb (Check_Return_Subtype_Indication): Add support for
399         records with unknown discriminants.
400
401         * sem_type.adb (Covers): Handle underlying record views.
402         (Is_Ancestor): Add support for underlying record views.
403
404         * exp_attr.adb (Expand_Attribute): Expand attribute 'size into a
405         dispatching call if the type of the target object is tagged and has
406         unknown discriminants.
407
408         * exp_aggr.adb (Resolve_Record_Aggregate): Add support for records with
409         unknown discriminants.
410
411         * exp_disp.adb (Build_Dispatch_Tables): Avoid generating dispatch
412         tables for internally built underlying record views.
413
414         * sprint.adb (sprint_node_actual): Improve output of aggregates with an
415         empty list of component associations.
416
417 2009-04-20  Thomas Quinot  <quinot@adacore.com>
418
419         * sem_ch10.adb: Minor reformatting
420
421         * socket.c, g-socthi-vms.adb, g-socthi-vms.ads, g-socthi-vxworks.ads,
422         g-socthi-mingw.ads, g-socthi.ads, g-socket.adb
423         (GNAT.Sockets.Inet_Addr): Do not use non-portable inet_aton, instead use
424         standard inet_pton API (and emulate it on platforms that do not
425         support it).
426         (GNAT.Sockets.Thin.Inet_Pton, VMS case): Implement in terms of
427         DECC$INET_ADDR, imported in Ada.
428         (GNAT.Sockets.Thin.Inet_Pton, VxWorks and Windows cases): Use C
429         implementation provided by GNAT runtime.
430         (__gnat_inet_pton): C implementation of inet_pton(3) for VxWorks and
431         Windows.
432
433 2009-04-20  Eric Botcazou  <ebotcazou@adacore.com>
434
435         * gnat_ugn.texi: Add documentation for -fno-ivopts.
436
437 2009-04-20  Ed Schonberg  <schonberg@adacore.com>
438
439         * sem_ch10.adb (Analyze_Context): Do not analyze a unit in a
440         with_clause if it is the main unit.
441
442 2009-04-20  Thomas Quinot  <quinot@adacore.com>
443
444         * sem_type.adb, ali.adb, erroutc.adb: Minor code reorganization
445         (no behaviour change): Use Append instead of Increment_Last followed
446         by assignment.
447
448 2009-04-20  Hristian Kirtchev  <kirtchev@adacore.com>
449
450         * exp_ch3.adb (Make_Predefined_Primitive_Specs): Do not generate the
451         declarations of all primitives associated with dispatching asynchronous,
452         conditional and timed selects when dispaching calls are forbidden and
453         select statements are not allowed (such as in Ravenscar).
454         (Predefined_Primitive_Bodies): Ditto for bodies.
455
456         * exp_disp.ad (Make_DT): Do not create and populate the
457         Select_Specific_Data of the dispatch table when dispatching calls are
458         forbidden and select statements are not allowed (such as in Ravenscar).
459
460 2009-04-20  Robert Dewar  <dewar@adacore.com>
461
462         * a-tifiio.adb: Minor reformatting
463
464 2009-04-20  Thomas Quinot  <quinot@adacore.com>
465
466         * g-socthi-vms.adb, g-socket.adb, g-socket.ads: inet_aton(3), unlike
467         other C library functions, report *failure* with a zero status, and
468         success with a non-zero status.
469
470 2009-04-20  Bob Duff  <duff@adacore.com>
471
472         * sem.ads, sem.adb (Walk_Library_Items): New generic procedure.
473         (Semantics): After analyzing each unit, Append it to the
474         Comp_Unit_List, if appropriate.
475
476         * gnat1drv.adb (Check_Library_Items): New procedure for debugging
477         purposes.
478         (Gnat1drv): Correct comment regarding Back_End_Mode.
479
480 2009-04-20  Eric Botcazou  <ebotcazou@adacore.com>
481
482         * gnat_ugn.texi: Add documentation for -fno-inline-small-functions.
483
484 2009-04-20  Thomas Quinot  <quinot@adacore.com>
485
486         * s-taprop-irix.adb, s-taprop-tru64.adb, s-taprop-vms.adb,
487         output.adb, output.ads, s-taprop-hpux-dce.adb,
488         s-taprop-linux.adb, s-taprop-solaris.adb, s-taprop-posix.adb: Minor
489         reformatting.
490
491 2009-04-20  Thomas Quinot  <quinot@adacore.com>
492
493         * g-socket.adb, g-socket.ads, g-socthi-mingw.ads, g-socthi-vms.adb,
494         g-socthi-vms.ads, g-socthi-vxworks.ads, g-socthi.ads
495         (GNAT.Sockets.Thin.C_Inet_Addr): Remove.
496         (GNAT.Sockets.Thin.Inet_Aton): New function, imported from C library
497         except for VMS where it is reimplemented in Ada using DECC$INET_ADDR.
498         (GNAT.Sockets.Inet_Addr): Use inet_aton(3) instead of inet_addr(3).
499
500         * debug.adb: Fix typo
501
502         * gnat_rm.texi: Minor doc fix.
503
504         * sem_ch7.adb, freeze.adb: Minor reformatting
505
506 2009-04-20  Thomas Quinot  <quinot@adacore.com>
507
508         * g-socket.ads: Add new constants:
509           Loopback_Inet_Addr
510           Unspecified_Group_Inet_Addr
511           All_Hosts_Group_Inet_Addr
512           All_Routers_Group_Inet_Addr
513
514         * s-oscons-tmplt.c, g-sttsne-vxworks.adb (System.OS_Constants): Add
515         ERANGE (Result too large).
516         (GNAT.Sockets.Thin.Task_Safe_NetDB, VxWorks version): Add missing
517         propagation of errno to caller.
518
519 2009-04-20  Hristian Kirtchev  <kirtchev@adacore.com>
520
521         * a-calend.adb, a-calend-vms.adb: Increase the number of leap seconds
522         to 24. Increment Leap_Seconds_Count and add an entry to aggregate
523         Leap_Second_Times.
524
525 2009-04-20  Gary Dismukes  <dismukes@adacore.com>
526
527         * sem_elim.ads (Check_For_Eliminated_Subprogram): New procedure for
528         checking for references to eliminated subprograms that should be
529         flagged.
530         (Eliminate_Error_Message): Update comment to say "references" rather
531         than "calls" (since attribute cases are handled here as well).
532
533         * sem_elim.adb (Check_For_Eliminated_Subprogram): New procedure for
534         checking for references to eliminated subprograms that should be
535         flagged.  Add with and use of Sem and Sem_Util.
536
537         * sem_res.adb (Resolve_Call): Reject calls to eliminated subprograms.
538         Add with and use of Sem_Elim.
539
540         * sem_attr.adb (Analyze_Access_Attribute): Reject access attributes
541         applied to eliminated subprograms.
542         (Analyze_Attribute): Reject 'Address and 'Code_Address applied to
543         eliminated subprograms.
544         Add with and use of Sem_Elim.
545
546         * sem_disp.adb (Check_Dispatching_Call): Remove error check for calls
547         to eliminated subprograms, now handled during Resolve_Call.
548         Remove with and use of Sem_Elim.
549
550         * exp_disp.adb (Make_DT): Get Ultimate_Alias of primitive before
551         testing Is_Eliminated, for proper handling of primitive derived from
552         eliminated subprograms.
553
554 2009-04-20  Vincent Celier  <celier@adacore.com>
555
556         * mlib-prj.adb (Build_Library): Use the shared library linker, if one
557         has been declared (Library_GCC or Linker'Driver), for the driver name.
558
559         * prj-nmsc.adb (Process_Linker): If Library_GCC is not declared and
560         Linker'Driver is, use Linker'Driver as the shared library linker.
561         (Process_Project_Level_Simple_Attributes): Issue a warning if attribute
562         Library_GCC is declared.
563         (Check_Library_Attributes): Set up the shared linker driver: either
564         Library_GCC or Linker'Driver. Issue a warning if Library_GCC is
565         declared.
566
567 2009-04-20  Thomas Quinot  <quinot@adacore.com>
568
569         * g-socket.ads (Send_Socket): Fix misleading comment.
570
571 2009-04-20  Arnaud Charlet  <charlet@adacore.com>
572
573         * switch-c.adb (Scan_Front_End_Switches): Disable inspector mode in
574         ASIS mode.
575
576 2009-04-20  Geert Bosch  <bosch@adacore.com>
577
578         * a-tifiio.adb (Put): Avoid generating too many digits for certain
579         fixed types with smalls that are neither integer or the reciprocal
580         of an integer.
581
582 2009-04-20  Bob Duff  <duff@adacore.com>
583
584         * uname.ads: Minor comment fix.
585
586         * types.ads: Minor comment fix.
587
588 2009-04-20  Pascal Obry  <obry@adacore.com>
589
590         * adaint.c (__gnat_get_libraries_from_registry): Fix code to
591         avoid warning. At the same time fix a memory leak.
592
593         * osint.adb (Get_Libraries_From_Registry): Properly free memory
594         returned by the above routine.
595
596 2009-04-20  Robert Dewar  <dewar@adacore.com>
597
598         * s-conca5.adb, s-conca5.ads, s-conca7.adb, s-conca7.ads, s-conca9.adb,
599         s-conca9.ads, rtsfind.ads, s-conca2.adb, s-conca2.ads, s-conca4.adb,
600         s-conca4.ads, s-conca6.adb, s-conca6.ads, s-conca8.adb, s-conca8.ads,
601         s-conca3.adb, s-conca3.ads (Str_Concat_Bounds_x): New functions.
602
603         * exp_ch4.adb (Expand_Concatenate): Minor code reorganization
604
605 2009-04-20  Pascal Obry  <obry@adacore.com>
606
607         * initialize.c (__gnat_initialize): Add braces to kill warning.
608
609         * adaint.c: Minor reformatting, remove trailing spaces.
610
611 2009-04-17  Arnaud Charlet  <charlet@adacore.com>
612
613         * gcc-interface/Make-lang.in: Update dependencies.
614
615 2009-04-20  Eric Botcazou  <ebotcazou@adacore.com>
616
617         * adaint.h (__gnat_lwp_self): Declare on Linux.
618
619         * adaint.c (__gnat_os_filename): Add ATTRIBUTE_UNUSED on 'filename'.
620
621 2009-04-20  Robert Dewar  <dewar@adacore.com>
622
623         * exp_ch5.adb, usage.adb, back_end.adb, opt.ads: Implement
624         front-end part of -fpreserve-control-flow switch.
625
626 2009-04-20  Bob Duff  <duff@adacore.com>
627
628         * rtsfind.adb: Minor comment fix
629
630 2009-04-20  Robert Dewar  <dewar@adacore.com>
631
632         * exp_aggr.adb: Minor reformatting
633         Minor code reorganization (use Nkind_In)
634
635         * g-socket.adb: Minor reformatting
636
637         * g-socket.ads: Minor comment fix
638
639         * s-auxdec.ads: Minor comment and organization update.
640
641         * s-auxdec-vms_64.ads: Minor comment and organization update.
642
643         * sem_ch10.adb: Minor addition of ??? comment
644
645         * sem_disp.adb: Minor reformatting
646
647 2009-04-20  Ed Schonberg  <schonberg@adacore.com>
648
649         * inline.adb (Add_Inlined_Subprogram): Do not place on the back-end
650         list a caller of an inlined subprogram, if the caller itself is not
651         called.
652
653 2009-04-20  Pascal Obry  <obry@adacore.com>
654
655         * adaint.c: Disable use of ACL on network drives.
656
657 2009-04-20  Arnaud Charlet  <charlet@adacore.com>
658
659         * gnat_ugn.texi: Add examples.
660
661 2009-04-20  Thomas Quinot  <quinot@adacore.com>
662
663         * g-socket.ads (Abort_Selector): Clarify documentation.
664
665 2009-04-20  Arnaud Charlet  <charlet@adacore.com>
666
667         * opt.ads (Inspector_Mode): Update documentation of this flag.
668
669 2009-04-20  Thomas Quinot  <quinot@adacore.com>
670
671         * g-socket.ads: Minor reformatting
672
673         * socket.c, gsocket.h (__gnat_get_h_errno, VxWorks case): No need to
674         consider S_resolvLib error codes since we only use the hostLib wrappers.
675
676 2009-04-20  Eric Botcazou  <ebotcazou@adacore.com>
677
678         * sem_ch3.adb (Build_Derived_Private_Type): Insert the declaration
679         of the Underlying_Record_View after that of the derived type.
680
681 2009-04-20  Arnaud Charlet  <charlet@adacore.com>
682
683         * switch-c.adb (Scan_Front_End_Switches): Disable front-end inlining
684         in inspector mode.
685
686 2009-04-20  Javier Miranda  <miranda@adacore.com>
687
688         * sem_ch6.adb (New_Overloaded_Entity): Minor reformating.
689
690         * sem_ch6.ads (Subtype_Conformant, Type_Conformant): Add missing
691         documentation.
692
693         * exp_aggr.adb (Build_Record_Aggr_Code): Code cleanup.
694
695         * sem_disp.adb
696         (Check_Dispatching_Operation): Set attribute Is_Dispatching_Operation
697         in internally built overriding subprograms.
698
699 2009-04-20  Doug Rupp  <rupp@adacore.com>
700
701         * s-auxdec-vms_64.ads (Integer_{8,16,32,64}_Array): New array types.
702
703         * s-auxdec.ads: Likewise
704
705 2009-04-20  Ed Schonberg  <schonberg@adacore.com>
706
707         * sem_ch3.adb (Find_Type_Name): Reject the completion of a private
708         type by an interface.
709
710         * exp_ch6.adb (Expand_Call): Inline To_Address unconditionally, to
711         minimze difference in expanded tree when compiled as spec of the main
712         unit, or as a spec in the context of another unit.
713
714 2009-04-20  Hristian Kirtchev  <kirtchev@adacore.com>
715
716         * a-calend.adb: Remove types char_Pointer, int, tm and tm_Pointer.
717         (localtime_tzoff): This routine no longer accepts an actual of type
718         tm_Pointer.
719         (UTC_Time_Offset): Remove local variable Secs_TM.
720
721         * sysdep.c (__gnat_localtime_tzoff): This routine no longer accepts an
722         actual of type struct tm*. Add local variable of type struct tm for all
723         targets that provide localtime_r and need to invoke it.
724
725 2009-04-20  Thomas Quinot  <quinot@adacore.com>
726
727         * s-oscons-tmplt.c, g-socket.adb, g-socket.ads
728         (GNAT.Sockets.Resolve_Error): Add case of EPIPE
729         Add case of EAGAIN for platforms where it is not equal to EWOULDBLOCK
730
731 2009-04-20  Robert Dewar  <dewar@adacore.com>
732
733         * sem_ch3.adb: Minor reformatting
734
735         * lib-load.adb: Minor reformatting
736
737         * sem_ch4.adb: Minor reformatting
738
739 2009-04-20  Robert Dewar  <dewar@adacore.com>
740
741         * namet-sp.ads, namet-sp.adb (Is_Bad_Spelling_Of): Implement new spec
742         (equal values => False).
743
744 2009-04-20  Ed Schonberg  <schonberg@adacore.com>
745
746         * exp_ch6.adb (Is_Null_Procedure): predicate is global, so that calls
747         to null procedures can be inlined unconditionally.
748
749 2009-04-20  Eric Botcazou  <ebotcazou@adacore.com>
750
751         * gcc-interface/trans.c (call_to_gnu): When creating the copy for a
752         non-addressable parameter passed by reference, do not convert the
753         actual if its type is already the nominal type, unless it is of
754         self-referential size.
755
756 2009-04-20  Arnaud Charlet  <charlet@adacore.com>
757
758         * gnat_ugn.texi: Fix typos.
759
760 2009-04-20  Robert Dewar  <dewar@adacore.com>
761
762         * debug.adb, gnat1drv.adb, sem_ch13.adb: Add circuitry to
763         Validate_Unchecked_Warnings to suppress warnings about size or
764         alignment or extra bits if either type involved has pragma Warnings
765         (Off) set for the type entity.
766
767 2009-04-19  Eric Botcazou  <ebotcazou@adacore.com>
768
769         * gcc-interface/trans.c (gigi): Make the special IA-64 descriptor type
770         a builtin type and give it a name.
771
772 2009-04-17  Diego Novillo  <dnovillo@google.com>
773
774         * gcc-interface/misc.c (gnat_expand_expr): Remove.
775         (LANG_HOOKS_EXPAND_EXPR): Remove.
776
777 2009-04-17  Robert Dewar  <dewar@adacore.com>
778
779         * sem_ch3.adb: Minor reformatting
780
781 2009-04-17  Pascal Obry  <obry@adacore.com>
782
783         * adaint.c: Add __gnat_use_acl global variable to control use of ACL.
784
785 2009-04-17  Ed Schonberg  <schonberg@adacore.com>
786
787         * sem_ch3.adb (Build_Derived_Enumeration_Type): Diagnose properly
788         illegal constraints on type derived from formal discrete types.
789
790 2009-04-17  Thomas Quinot  <quinot@adacore.com>
791
792         PR ada/35953
793
794         * g-socthi-vms.adb, g-socthi-vms.ads, g-socthi-vxworks.adb,
795         g-socthi-vxworks.ads, g-socthi-mingw.adb, g-socthi-mingw.ads,
796         g-socthi.adb, g-stsifd-sockets.adb, g-socthi.ads, g-socket.adb,
797         g-socket.ads (GNAT.Sockets.Thin.C_Send,
798         GNAT.Sockets.Thin.Syscall_Send): Remove unused subprograms.
799         Replace calls to send(2) with equivalent sendto(2) calls.
800         (GNAT.Sockets.Send_Socket): Factor common code in inlined subprogram.
801         (GNAT.Sockets.Write): Account for the case of hyper-empty arrays, do not
802         report an error in that case. Factor code common to the two versions
803         (datagram and stream) in common routine Stream_Write.
804
805 2009-04-17  Robert Dewar  <dewar@adacore.com>
806
807         * exp_disp.adb: Minor reformatting
808         Minor code reorganization (use Nkind_In)
809
810         * prepcomp.adb: Minor reformatting
811
812         * sem_ch3.adb: Minor reformatting
813
814         * sem_res.adb: Minor comment addition
815
816         * exp_ch5.adb (Expand_Assign_Array): Use Has_Address_Clause to test
817         for address clause
818
819         * lib-xref.adb (Generate_Reference): Exclude recursive calls from
820         setting Is_Referenced
821
822         * types.ads: Minor reformatting
823
824 2009-04-17  Arnaud Charlet  <charlet@adacore.com>
825
826         * gnat_ugn.texi: Initial documentation on binding generator.
827
828 2009-04-17  Ed Schonberg  <schonberg@adacore.com>
829
830         * einfo.ads, einfo.adb: New attribute Underlying_Record_View, to handle
831         type extensions whose parent is a type with unknown discriminants.
832
833         * exp_aggr.adb (Expand_Record_Aggregate): If the type of an extension
834         aggregate has unknown discriminants, use the Underlying_Record_View to
835         obtain the discriminants of the ancestor part.
836
837         * exp_disp.adb (Build_Dispatch_Tables): Types that are
838         Underlying_Record_Views share the dispatching information of the
839         original record extension.
840
841         * exp_ch3.adb (Expand_Record_Extension): If the type inherits unknown
842         discriminants, propagate dispach table information to the
843         Underlying_Record_View.
844
845         * sem_ch3.adb (Build_Derived_Private_Type): If parent type has unknown
846         discriminants and declaration is not a completion, generate
847         Underlying_Record_View to provide proper discriminant information to
848         the front-end and to gigi.
849
850 2009-04-17  Robert Dewar  <dewar@adacore.com>
851
852         * s-conca5.adb, g-sercom.adb, s-conca5.ads, s-conca7.adb, exp_imgv.adb,
853         s-conca7.ads, s-crc32.adb, s-crc32.ads, s-conca9.adb, s-conca9.ads,
854         s-addope.adb, i-cstrin.ads, s-addope.ads, s-carun8.adb, s-carun8.ads,
855         g-htable.ads, g-hesora.adb, g-hesora.ads, s-htable.adb, s-htable.ads,
856         s-conca2.adb, s-conca2.ads, a-except.adb, s-conca4.adb, a-except.ads,
857         s-conca4.ads, s-except.adb, s-except.ads, s-conca6.adb, s-conca6.ads,
858         g-spchge.adb, g-spchge.ads, g-u3spch.adb, g-u3spch.ads, s-conca8.adb,
859         s-conca8.ads, g-byorma.adb, g-byorma.ads, s-memory.adb, s-memory.ads,
860         g-speche.adb, g-speche.ads, g-stsifd-sockets.adb, exp_dist.adb,
861         s-imgenu.adb, s-imgenu.ads, s-mastop.adb, s-mastop.ads, s-exctab.adb,
862         s-exctab.ads, s-imenne.adb, s-imenne.ads, s-casuti.adb, osint.adb,
863         s-assert.adb, s-casuti.ads, s-assert.ads, s-os_lib.adb, s-conca3.adb,
864         s-conca3.ads: Remove unneeded pragma Warnings
865
866 2009-04-17  Robert Dewar  <dewar@adacore.com>
867
868         * g-moreex.adb: Add comments.
869
870         * s-auxdec.ads: Add ??? comment for uncommented pragma Warnings (Off)
871
872         * s-auxdec-vms_64.ads: Add ??? comment for uncommented pragma
873         Warnings (Off)
874
875         * prepcomp.adb: Add ??? comment
876
877         * a-tasatt.adb: Minor reformatting
878
879         * g-trasym-vms-alpha.adb: Add ??? comment
880
881         * g-trasym-vms-ia64.adb: Add ??? comment
882
883         * xoscons.adb: Minor reformatting
884
885         * s-tassta.adb: Minor reformatting
886
887         * s-scaval.adb: Add ??? comment
888
889         * stand.ads: Minor code clean up (remove junk with of Namet)
890
891         * s-strcom.adb, s-strcom.ads, s-string.adb, s-string.ads, s-sopco3.adb,
892         s-sopco3.ads, s-strops.adb, s-strops.ads, s-sopco5.adb, s-sopco5.ads,
893         s-wchcnv.adb, s-wchcnv.ads, s-ststop.adb, s-ststop.ads, s-soflin.adb,
894         s-soflin.ads, s-traceb.adb, s-traceb.ads, s-traent.adb, s-traent.ads,
895         s-secsta.adb, s-secsta.ads, s-utf_32.adb, s-utf_32.ads, s-wchcon.adb,
896         s-wchjis.adb, s-wchcon.ads, s-wchjis.ads, s-sopco4.adb, s-sopco4.ads,
897         s-stache.adb, s-stache.ads, s-stoele.adb, s-stoele.ads, s-stalib.adb,
898         s-stalib.ads, s-os_lib.ads, s-purexc.ads: Remove no longer needed
899         Warnings off pragmas.
900
901 2009-04-17  Pascal Obry  <obry@adacore.com>
902
903         * initialize.c: Fix test for reallocating the arguments array.
904
905 2009-04-17  Geert Bosch  <bosch@adacore.com>
906
907         * exp_fixd.adb (Expand_Convert_Float_To_Fixed): Have float to fixed
908         conversion truncate only for decimal fixed point types.
909
910 2009-04-17  Jerome Lambourg  <lambourg@adacore.com>
911
912         * g-comlin.adb (Initialize_Scan_Option): Make sure the sections are
913         reinitialized.
914
915 2009-04-17  Robert Dewar  <dewar@adacore.com>
916
917         * exp_ch5.adb (Expand_Assign_Array): Do not set Forwards_OK and
918         Backwards_OK if either operand has an address clause.
919
920 2009-04-17  Pascal Obry  <obry@adacore.com>
921
922         * initialize.c: Code clean up, use realloc.
923
924 2009-04-17  Pascal Obry  <obry@adacore.com>
925
926         * initialize.c: Do not get Unicode command line if Unicode support not
927         activated.
928         Add support for wildcard expansion for Unicode parameters on Win32.
929
930         * mingw32.h: Add missing macros when Unicode support not activated.
931
932 2009-04-17  Javier Miranda  <miranda@adacore.com>
933
934         * sem_ch6.adb (Check_Anonymous_Return): Add missing checks to
935         avoid generating code that references the Current_Master
936         when compiling without tasks.
937
938 2009-04-17  Vincent Celier  <celier@adacore.com>
939
940         * prj-attr.adb: New project level attribute Target
941         
942         * prj-nmsc.adb (Process_Project_Level_Simple_Attributes): Process
943         attribute Target
944         
945         * prj.ads (Project_Configuration): New component Target
946
947 2009-04-17  Thomas Quinot  <quinot@adacore.com>
948
949         * exp_ch7.adb (Expand_Ctrl_Function_Call): Remove incorrect special
950         case for the case of an aggregate component, the attach call for the
951         result is actually needed.
952
953         * exp_aggr.adb (Backend_Processing_Possible): Backend processing for
954         an array aggregate must be disabled if the component type requires
955         controlled actions.
956
957         * exp_ch3.adb: Minor reformatting
958
959 2009-04-17  Bob Duff  <duff@adacore.com>
960
961         * output.ads (Indent,Outdent): New procedures for indenting the output.
962         (Write_Char): Correct comment -- LF _is_ allowed.
963
964         * output.adb (Indent,Outdent): New procedures for indenting the output.
965         Keep track of the indentation level, and make sure it doesn't get too
966         high.
967         (Flush_Buffer): Insert spaces at the beginning of each line, if
968         indentation level is nonzero.
969         (Save_Output_Buffer,Restore_Output_Buffer): Save and restore the current
970         indentation level.
971         (Set_Standard_Error,Set_Standard_Output): Remove superfluous
972         "Next_Col := 1;".  Flush_Buffer does that.
973
974         * sem_ch6.adb, sem_ch7.adb (Debug_Flag_C): Reorganize the output
975         controlled by the -gnatdc switch. It now occurs on entry/exit to the
976         relevant analysis routines, and calls Indent/Outdent to make the
977         indentation reflect the nesting level.  Add "helper" routines, since
978         otherwise lots of "return;" statements would skip the debugging output.
979
980 2009-04-17  Arnaud Charlet  <charlet@adacore.com>
981
982         * s-taprop-tru64.adb, s-taprop-vms.adb, s-taprop-linux.adb,
983         s-taprop-solaris.adb, s-taprop-irix.adb, s-taprop-hpux-dce.adb,
984         s-taprop-posix.adb (Suspend_Until_True): Protect against early wakeup.
985
986 2009-04-17  Thomas Quinot  <quinot@adacore.com>
987
988         * exp_aggr.adb: Minor code reorganization, no behaviour change.
989
990 2009-04-17  Ed Schonberg  <schonberg@adacore.com>
991
992         * sem_ch8.adb (Use_One_Type): Handle properly a redundant use type
993         clause in a unit that is a package body or a subunit, when the previous
994         clause appears in a spec or a parent.
995
996 2009-04-17  Thomas Quinot  <quinot@adacore.com>
997
998         * sinfo.ads, exp_aggr.adb, exp_aggr.ads: Minor reformatting
999
1000         * exp_ch7.adb: Minor reformatting
1001
1002 2009-04-17  Bob Duff  <duff@adacore.com>
1003
1004         * exp_ch4.adb (Expand_Allocator_Expression): In an initialized
1005         allocator, check that the expression of the qualified expression obeys
1006         the constraints of the subtype of the qualified expression.
1007
1008 2009-04-17  Thomas Quinot  <quinot@adacore.com>
1009
1010         * sprint.adb (Write_Itype): Add handling of enumeration subtypes.
1011
1012 2009-04-17  Ed Schonberg  <schonberg@adacore.com>
1013
1014         * exp_ch4.adb (Expand_Allocator_Expression): Apply constraint check to
1015         aggregate, using context imposed by subtype mark in allocator.
1016
1017 2009-04-17  Pascal Obry  <obry@adacore.com>
1018
1019         * gnat_rm.texi: Document GNAT_CODE_PAGE environment variable
1020
1021 2009-04-17  Nicolas Roche  <roche@adacore.com>
1022
1023         * initialize.c (__gnat_initialize): remove MAX_PATH limitation on each
1024         argument length.
1025
1026 2009-04-17  Gary Dismukes  <dismukes@adacore.com>
1027
1028         * sem_elim.adb (Eliminate_Error_Msg): Minor change to error message to
1029         cover both calls and attribute references ("call" => "reference").
1030
1031 2009-04-17  Ed Schonberg  <schonberg@adacore.com>
1032
1033         * sem_ch3.adb (Analyze_Subtype_Declaration): A subtype of an access
1034         type for which Storage_Size is set to 0 is legal in a pure unit.
1035
1036 2009-04-17  Thomas Quinot  <quinot@adacore.com>
1037
1038         * exp_ch7.adb: Minor reformatting
1039
1040 2009-04-17  Robert Dewar  <dewar@adacore.com>
1041
1042         * restrict.adb (Check_Restriction_No_Dependence): Don't check
1043         restriction if outside main extended source unit.
1044
1045         * sem_ch10.adb (Analyze_With_Clause): Check No_Dependence restriction
1046         for parents of child units as well as the child unit itself.
1047
1048 2009-04-17  Bob Duff  <duff@adacore.com>
1049
1050         * checks.ads: Minor comment fix
1051
1052         * exp_aggr.ads: Minor comment fix
1053
1054 2009-04-17  Nicolas Roche  <roche@adacore.com>
1055
1056         * adaint.c: Improve cross compiler detection and handling.
1057
1058 2009-04-17  Eric Botcazou  <ebotcazou@adacore.com>
1059
1060         * exp_ch4.adb (Expand_Concatenation): Do not use calls at -Os.
1061
1062 2009-04-17  Pascal Obry  <obry@adacore.com>
1063
1064         * mingw32.h: Add S2WSC and WS2SC macros to convert to/from
1065         CurrentCodePage.
1066
1067         * adaint.h: Encoding_Unspecified is now defined. Corresponds to the
1068         value when no encoding form paramter is set on Text_IO services.
1069
1070         * adaint.c: CurrentCodePage new variable on Windows.
1071         Use new macros S2WSC and WS2SC instead of the UTF-8 oriented
1072         ones.
1073
1074         * mkdir.c: Use new macros S2WSC and WS2SC instead of the UTF-8 oriented
1075         ones.
1076
1077         * initialize.c: Initialize CurrentCodePage depending on GNAT_CODE_PAGE
1078         environment variable value. Default is UTF-8.
1079
1080         * s-crtl.ads: Filename_Encoding add Unspecified in the enumeration type.
1081         fopen and freopen encoding parameter is now set to Unspecified.
1082         The default value is in this case UTF-8 (as it was before) but
1083         use the new macros that convert to/from the code page set
1084         at runtime (CurrentCodePage).
1085
1086         * s-fileio.adb: When no encoding specified use Unspecified value.
1087
1088 2009-04-17  Ed Schonberg  <schonberg@adacore.com>
1089
1090         * atree.adb, atree.ads: Remove dead code.
1091
1092 2009-04-17  Arnaud Charlet  <charlet@adacore.com>
1093
1094         * gcc-interface/Make-lang.in: Update dependencies.
1095
1096 2009-04-17  Ed Schonberg  <schonberg@adacore.com>
1097
1098         * sem_ch3.adb (Access_Subprogram_Definition): Additional checks on
1099         illegal uses of incomplete types in formal parts and return types.
1100
1101         * sem_ch6.adb (Process_Formals): Taft-amendment types are legal in
1102         access to subprograms.
1103
1104         * sem_ch7.adb (Uninstall_Declarations): diagnose attempts to use
1105         Taft-amendment types as the return type of an access_to_function type.
1106
1107         * freeze.adb (Freeze_Entity): Remove tests on formals of an incomplete
1108         type for access_to_subprograms. The check is performed on package exit.
1109
1110 2009-04-17  Ed Schonberg  <schonberg@adacore.com>
1111
1112         * atree.ads, atree.adb: Move New_Copy_Tree.to sem_util.
1113
1114         * nlists.ads, nlists.adb: Move New_Copy_List to sem_util.
1115         
1116         * lib-load.adb: Use Copy_Separate_Tree rather than New_Copy_Tree
1117
1118         * sem_util.ads, sem_util.adb: New_Copy_Tree and New_Copy_List belong in
1119         semantic units, because the handling of itypes in the copied tree
1120         requires semantic information that does not belong in atree.
1121
1122 2009-04-17  Robert Dewar  <dewar@adacore.com>
1123
1124         * par-ch6.adb: Minor reformatting
1125
1126         * prj.adb: Minor reformatting
1127
1128 2009-04-17  Gary Dismukes  <dismukes@adacore.com>
1129
1130         * par-ch6.adb (P_Subprogram): Overriding indicators should be allowed
1131         on protected subprogram bodies, so exclude the case where Pf_Flags is
1132         Pf_Decl_Pbod from the error check.
1133
1134         * par-ch9.adb (P_Protected_Operation_Items): Permit overriding
1135         indicators on subprograms in protected bodies, and proceed with parsing
1136         the subprogram.
1137
1138         * sem_ch6.adb (Verify_Overriding_Indicator): Exclude protected
1139         subprograms from the check for primitiveness on subprograms with
1140         overriding indicators.
1141         (Check_Overriding_Indicator): Include protected subprograms in the
1142         style check for missing overriding indicators.
1143
1144 2009-04-17  Tristan Gingold  <gingold@adacore.com>
1145
1146         * init.c: Fix stack checking for x86 Darwin.
1147
1148 2009-04-17  Vincent Celier  <celier@adacore.com>
1149
1150         * prj-attr.adb: New project level attribute Object_File_Suffix
1151         (<language>).
1152         
1153         * prj-nmsc.adb (Add_Source): Use the object file suffix to get the
1154         object file name
1155         (Process_Compiler): Process attribute Object_File_Suffix
1156
1157         * prj.adb (Object_Name): Use suffix Object_File_Suffix instead of
1158         platform suffix, when specified.
1159
1160         * prj.ads (Language_Config): New component Object_File_Suffix,
1161         defaulted to No_Name.
1162         (Object_Name): New parameter Object_File_Suffix, defaulted to No_Name
1163
1164         * snames.ads-tmpl: New standard name Object_File_Suffix
1165
1166 2009-04-17  Robert Dewar  <dewar@adacore.com>
1167
1168         * gnat_rm.texi: Add documentation about No_Streams restriction
1169
1170         * sem_attr.adb (Check_Stream_Attribute): Exclude implicit stream
1171         attributes when checking No_Streams restriction.
1172
1173 2009-04-17  Thomas Quinot  <quinot@adacore.com>
1174
1175         * rtsfind.ads (RE_Request_Destroy): New PolyORB s-parint entity.
1176
1177         * exp_dist.adb (PolyORB_Support.Build_General_Calling_Stubs): Add
1178         missing calls to RE_Request_Destroy to deallocate request objects after
1179         use.
1180
1181 2009-04-17  Nicolas Setton  <setton@adacore.com>
1182
1183         * link.c: Fix support for passing a response file under Darwin.
1184
1185 2009-04-17  Emmanuel Briot  <briot@adacore.com>
1186
1187         * prj.adb (Free): new subprogram.
1188
1189 2009-04-17  Ed Schonberg  <schonberg@adacore.com>
1190
1191         * sem_ch3.adb: additional initialization on incomplete subtypes.
1192         
1193         * sem_ch6.adb (Process_Formals): if the subprogram is in the private
1194         part and one of the formals is an incomplete tagged type, attach to
1195         list of private dependends of the type for later validation.
1196
1197         * sem_ch7.adb (Uninstall_Declarations): diagnose attempts to declare
1198         primitive operations of a Taft-amendmment type.
1199
1200         * freeze.adb (Freeze_Entity): Remove tests on formals of an incomplete
1201         type. The check is performed on package exit, possibly after the
1202         subprogram is frozen.
1203
1204 2009-04-17  Vincent Celier  <celier@adacore.com>
1205
1206         * prj-nmsc.adb (Get_Directories): Get the object and exec directory
1207         before looking for source directories, but make sure that there are nil
1208         if they are not explicitely declared and there is explicitely no
1209         sources in the project.
1210
1211 2009-04-17  Pascal Obry  <obry@adacore.com>
1212
1213         * initialize.c: Set gnat_argv with UTF-8 encoded strings on Windows.
1214
1215         * init.c: Fix minor typo and style fix.
1216
1217 2009-04-17  Robert Dewar  <dewar@adacore.com>
1218
1219         * a-except.adb, a-except-2005.adb: Add PE_Address_Of_Intrinsic
1220
1221         * sem_attr.adb (Analyze_Attribute, case Address): Use
1222         PE_Address_Of_Intrinsic.
1223
1224         * types.ads: Add PE_Address_Of_Intrinsic
1225
1226         * types.h: Add PE_Address_Of_Intrinsic
1227
1228 2009-04-17  Nicolas Setton  <setton@adacore.com>
1229
1230         * gcc-interface/Makefile.in: Under darwin, build shared libraries
1231         with install_name starting with "@rpath/".
1232
1233 2009-04-17  Nicolas Setton  <setton@adacore.com>
1234
1235         * link.c: Add darwin section
1236
1237 2009-04-16  Robert Dewar  <dewar@adacore.com>
1238
1239         * g-pehage.adb: Minor reformatting
1240
1241         * sem_ch12.adb: Minor reformatting
1242
1243         * exp_dist.adb: Minor reformatting
1244
1245         * bindgen.adb: Minor style fixes.
1246
1247 2009-04-16  Ed Schonberg  <schonberg@adacore.com>
1248
1249         * sem_eval.adb (Eval_Indexed_Component): Extend constant-folding of
1250         indexed components to the case where the prefix is a static string
1251         literal.
1252
1253 2009-04-16  Javier Miranda  <miranda@adacore.com>
1254
1255         * exp_ch3.adb (Expand_N_Object_Declaration): In case of build-in-place
1256         objects avoid any further expansion of the expression initializing the
1257         object.
1258
1259 2009-04-16  Ed Schonberg  <schonberg@adacore.com>
1260
1261         * sem_ch12.adb (Preanalyze_Actuals): If the instance is a child unit
1262         that hides an outer homograph, make that homograph invisible when
1263         analyzing the actuals, to to prevent illegal direct visibility on it.
1264
1265 2009-04-16  Eric Botcazou  <ebotcazou@adacore.com>
1266
1267         * g-pehage.adb (Initialize): Fix off-by-one error.
1268
1269 2009-04-16  Tristan Gingold  <gingold@adacore.com>
1270
1271         * init.c: Detect real stack overflow on Darwin.
1272
1273         * system-darwin-x86.ads: Use stack probing on darwin x86.
1274
1275 2009-04-16  Ed Schonberg  <schonberg@adacore.com>
1276
1277         * sem_attr.adb (Analyze_Attribute, case 'Address): It is illegal to
1278         take the address of an intrinsic subprogram.
1279
1280 2009-04-16  Arnaud Charlet  <charlet@adacore.com>
1281
1282         * gcc-interface/Makefile.in: Change g-trasym to g-trasym-unimplemented
1283         for the targets where GNAT.Traceback.Symbolic is not supported.
1284
1285 2009-04-16  Vincent Celier  <celier@adacore.com>
1286
1287         * g-trasym-unimplemented.ads, g-trasym-unimplemented.adb: New file.
1288
1289         * g-trasym.ads: Update comments.
1290
1291 2009-04-16  Vasiliy Fofanov  <fofanov@adacore.com>
1292
1293         * tracebak.c (STOP_FRAME): Verify validity of the current address
1294         before dereferencing.
1295
1296 2009-04-16  Ed Schonberg  <schonberg@adacore.com>
1297
1298         * sprint.adb (Write_Itype): If the itype is an array subtype, preserve
1299         the original location of the index expressions and the index subtypes,
1300         to prevent spurious out-of-scope references in gigi.
1301
1302 2009-04-16  Tristan Gingold  <gingold@adacore.com>
1303
1304         * init.c, s-osinte-darwin.ads, system-darwin-x86_64.ads:
1305         Add support for stack checking on darwin.
1306
1307 2009-04-16  Vincent Celier  <celier@adacore.com>
1308
1309         * prj-attr.adb: New attribute Runtime_Source_Dir
1310
1311         * prj-nmsc.adb (Process_Project_Level_Array_Attributes): Process
1312         attribute Runtime_Source_Dir.
1313         (Check_Naming_Schemes): Give default values to out parameters to avoid
1314         invalid data.
1315
1316         * prj.ads (Language_Config): New component Runtime_Source_Dir
1317
1318         * snames.ads-tmpl: New standard name Runtime_Source_Dir
1319
1320 2009-04-16  Pascal Obry  <obry@adacore.com>
1321
1322         * adaint.h, adaint.c (__gnat_rmdir): New routine.
1323         Simple wrapper routines used to convert to proper encoding on
1324         Windows.
1325
1326         * s-crtl.ads: Use __gnat_rmdir instead of direct call to the C library.
1327
1328         * g-dirope.adb (Remove_Dir): Fix a bug, the root directory was removed
1329         twice.
1330
1331 2009-04-16  Pascal Obry  <obry@adacore.com>
1332
1333         * s-crtl.ads, s-os_lib.adb: Minor code clean-up.
1334
1335 2009-04-16  Thomas Quinot  <quinot@adacore.com>
1336
1337         * snames.ads-tmpl (Name_Defined): New predefined name for use by the
1338         integrated preprocessor.
1339
1340         * prep.ads, prep.adb (Setup_Hooks): New subprogram.
1341         (Initialize): Split into two subprograms, Initialize (to be called
1342         prior to compiler command line processing) and Setup_Hooks (to be called
1343         later on when the first source file is loaded).
1344
1345         * gprep.adb: Change call to Prep.Initialize to call to Prep.Setup_Hooks.
1346         Add call to Prep.Initialize.
1347
1348         * sinput-l.adb, prepcomp.adb: Change call to Prep.Initialize to call
1349         to Prep.Setup_Hooks.
1350
1351 2009-04-16  Pascal Obry  <obry@adacore.com>
1352
1353         * adaint.h, adaint.c (__gnat_chdir): New routine.
1354         Simple wrapper routines used to convert to proper encoding on
1355         Windows.
1356
1357         * s-crtl.ads: Use __gnat_chdir instead of direct call to the C library.
1358
1359         * a-direct.adb, g-dirope.adb: Use chdir from System.CRTL.
1360
1361 2009-04-16  Quentin Ochem  <ochem@adacore.com>
1362
1363         * sinput-p.adb (Clear_Source_File_Table): Use Sinput.Initialize instead
1364         of Source.Init.
1365
1366 2009-04-16  Eric Botcazou  <ebotcazou@adacore.com>
1367
1368         * a-convec.ads (Is_Empty): Mark inline.
1369
1370 2009-04-16  Nicolas Roche  <roche@adacore.com>
1371
1372         * init.c (__gnat_init_float): Initialize FPU on x86_64 windows
1373
1374 2009-04-16  Thomas Quinot  <quinot@adacore.com>
1375
1376         * prepcomp.adb: Minor reformatting
1377
1378 2009-04-16  Jerome Lambourg  <lambourg@adacore.com>
1379
1380         * sem_prag.adb (Process_Import_Or_Interface): With .NET,
1381         Access_Subprogram types can also be imported.
1382         (Check_Form_Of_Interface_Name): Accept '/' character in entity CIL
1383         names.
1384
1385 2009-04-16  Ed Schonberg  <schonberg@adacore.com>
1386
1387         * exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration):
1388         preserve homonym chain when the declaration is rewritten into a
1389         renaming declaration, in order to preserve visibility structure.
1390
1391 2009-04-16  Jerome Lambourg  <lambourg@adacore.com>
1392
1393         * sem_prag.adb (Analyze_Pragma): Make sure that pragma pack is not
1394         taken into account for VM targets.
1395
1396 2009-04-16  Hristian Kirtchev  <kirtchev@adacore.com>
1397
1398         * g-calend.ads, g-calend.adb (Week_In_Year): Now calls
1399         Year_Week_In_Year.
1400         (Year_Week_In_Year): New routine which contains the original code from
1401         Week_In_Year. Add the missing special case for January 1st falling on
1402         a Monday.
1403
1404 2009-04-16  Thomas Quinot  <quinot@adacore.com>
1405
1406         * exp_dist.adb (Build_From_Any_Call): For a subtype that is a generic
1407         actual type, use the base type to build the To_Any function.
1408         (Build_From_Any_Function): Remove junk, useless subtype conversion.
1409
1410 2009-04-16  Thomas Quinot  <quinot@adacore.com>
1411
1412         * exp_ch9.adb, exp_code.adb, tbuild.adb, sem_case.adb,
1413         restrict.adb: Minor code reorganization (use
1414         Add_{Char,Str}_To_Name_Buffer instead of inlining it by hand).
1415
1416 2009-04-16  Bob Duff  <duff@adacore.com>
1417
1418         * exp_ch6.ads, exp_ch6.adb (Is_Build_In_Place_Function_Return): Remove,
1419         unused.
1420
1421 2009-04-16  Thomas Quinot  <quinot@adacore.com>
1422
1423         * sem_ch4.adb: Minor reformatting
1424
1425         * adaint.c: Remove junk duplicated code.
1426
1427         * sem_ch3.adb: Minor reformatting
1428
1429         * exp_dist.adb: Minor comment rewording
1430
1431 2009-04-16  Robert Dewar  <dewar@adacore.com>
1432
1433         * gnat_rm.texi: Document effect of Assume_No_Invalid_Values and -gnatVa
1434         used together.
1435
1436 2009-04-16  Ed Schonberg  <schonberg@adacore.com>
1437
1438         * sem_ch4.adb (Find_Equality_Types): Filter out types that are not
1439         usable before calling Add_One_Interp, to resolve spurious ambiguities.
1440
1441 2009-04-16  Robert Dewar  <dewar@adacore.com>
1442
1443         * Make-lang.in: Add entries for s-conca?.o
1444
1445         * Makefile.rtl: Add entries for s-conca?
1446
1447         * debug.adb: Add debug flags -gnatd.c and -gnatd.C to control behavior
1448         of concatenation expansion
1449
1450         * exp_ch4.adb (Expand_Concatenation): Generate calls for certain
1451         string cases instead of expanding assignments inline.
1452
1453         * opt.ads (Optimize_Size): New flag
1454
1455         * s-conca2.ads, s-conca2.adb, s-conca3.adb, s-conca3.ads,
1456         s-conca4.adb, s-conca4.ads, s-conca5.adb, s-conca5.ads, s-conca6.adb,
1457         s-conca6.ads, s-conca7.ads, s-conca7.adb, s-conca8.adb, s-conca8.ads,
1458         s-conca9.adb, s-conca9.ads: New file.
1459
1460 2009-04-16  Robert Dewar  <dewar@adacore.com>
1461
1462         * exp_ch6.adb: Add comments
1463
1464         * rtsfind.ads: Add entries for s-conca? routines
1465
1466 2009-04-16  Arnaud Charlet  <charlet@adacore.com>
1467
1468         * gcc-interface/Make-lang.in: Update dependencies.
1469
1470         * gcc-interface/Makefile.in: Update translation for vms.
1471
1472 2009-04-16  Ed Schonberg  <schonberg@adacore.com>
1473
1474         * sem_ch12.adb (Map_Formal_Package_Entities): renamed from Map_Entities
1475         and made global, to be used when installing parents of a child
1476         instance, to provide mappings for entities declared in formal packages
1477         of ancestor units. Now called from Install_Formal_Packages.
1478
1479 2009-04-16  Doug Rupp  <rupp@adacore.com>
1480
1481         * s-taskin.adb (Initialize_ATCB): Initialize Debug_Events with others
1482         notation for clarity.
1483
1484         * s-taprop-vxworks.adb, s-taprop-tru64.adb, s-taprop-vms.adb,
1485         s-taprop-mingw.adb, s-taprop-linux.adb, s-taprop-solaris.adb,
1486         s-taprop-irix.adb, s-taprop-hpux-dce.adb, s-taprop-posix.adb
1487         (Initialize): Initialize Known_Tasks with Environment task.
1488
1489         * s-taskin.ads (Task_States): Move new states to end for the sake of
1490         GDB compatibility.
1491
1492         * s-tassta.adb (Task_Wrapper): Fix comment about Enter_Task.
1493
1494 2009-04-16  Ed Schonberg  <schonberg@adacore.com>
1495
1496         * exp_ch9.adb (Expand_N_Protected_Type_Declaration): If a protected
1497         operation has an inline pragma, propagate the flag to the internal
1498         unprotected subprogram.
1499
1500 2009-04-16  Doug Rupp  <rupp@adacore.com>
1501
1502         * s-taprop-vxworks.adb, s-taprop-tru64.adb, s-taprop-mingw.adb,
1503         s-taprop-linux.adb, s-taprop-solaris.adb, s-taprop-irix.adb, 
1504         s-taprop-hpux-dce.adb, s-taprop-posix.adb
1505         (Enter_Task): Move Known_Tasks initialization to s-tassta.adb
1506
1507         * s-taprop-vms.adb (Enter_Task): Likewise.
1508         (Initialize): Import DBEXT, Debug_Register. Register DBGEXT callback.
1509
1510         * s-tassta.adb (Activate_Tasks): After task creation set state to
1511         Activating, vice Runnable. Initialize Known_Tasks, moved here from
1512         s-taprop.adb (Enter_Task). Set Debug_Event_Activating for debugger.
1513         Set state to Runnable after above.
1514         (Task_Wrapper): Set Debug_Event_Run. In exception block set
1515         Debug_Event_Terminated.
1516
1517         * s-taskin.ads (Task_States): Add new states Activiting and
1518         Activator_Delay_Sleep.
1519         (Bit_Array, Debug_Event_Array): New types.
1520         (Global_Task_Debug_Event_Set: New flag.
1521         (Common_ATCB): New field Debug_Events.
1522
1523         * s-taskin.adb (Initialize_ATCB): Initialize Debug_Events.
1524
1525         * s-tasren.adb (Timed_Selective_Wait): Set Activator_Delay_Sleep vice
1526         Activator_Sleep.
1527
1528         * s-tasini.adb (Locked_Abort_To_Level): Add case alternatives for when
1529         Activating and when Acceptor_Delay_Sleep.
1530
1531         * s-tasdeb.ads: Add constants for Debug_Events.
1532         (Debug_Event_Kind_Type): New subtype.
1533         (Signal_Debug_Event): New subprogram.
1534
1535         * s-tasdeb.adb (Signal_Debug_Event): New null subprogram.
1536
1537 2009-04-16  Thomas Quinot  <quinot@adacore.com>
1538
1539         * sem_elim.adb: Minor reformatting
1540
1541         * freeze.adb: Minor reformatting
1542
1543         * exp_ch4.adb: Minor reformatting
1544
1545 2009-04-16  Emmanuel Briot  <briot@adacore.com>
1546
1547         * prj-nmsc.adb (Path_Name_Of): fix memory leak
1548
1549 2009-04-16  Robert Dewar  <dewar@adacore.com>
1550
1551         * sinfo.ads (Backwards_OK, Forwards_OK): Clarify documentation
1552
1553 2009-04-16  Vincent Celier  <celier@adacore.com>
1554
1555         * fmap.adb (Initialize): Show the current line when the mapping file
1556         is detected as "incorrectly formatted".
1557
1558 2009-04-16  Robert Dewar  <dewar@adacore.com>
1559
1560         * sem_ch12.adb: Minor reformatting
1561
1562         * sem_ch5.adb: Minor comment addition
1563
1564         * sem_util.adb: Minor reformatting
1565
1566         * sinput-p.adb: Minor reformatting
1567         Add missing pragma Warnings (On)
1568
1569 2009-04-16  Ed Falis  <falis@adacore.com>
1570
1571         * s-vxwext-kernel.adb: (ERROR): deleted unused constant
1572
1573 2009-04-16  Vincent Celier  <celier@adacore.com>
1574
1575         * ali-util.adb: Minor comment spelling error fix
1576
1577 2009-04-16  Eric Botcazou  <ebotcazou@adacore.com>
1578
1579         * exp_ch5.adb (Expand_Assign_Array): For the GCC back-end, do not
1580         generate an assignment loop in case of overlap.
1581
1582 2009-04-16  Olivier Hainque  <hainque@adacore.com>
1583
1584         * gnat_ugn.texi (gnatmem description): Make it explicit that
1585         gnatmem is designed to work in association with static runtime
1586         library only.
1587
1588 2009-04-16  Thomas Quinot  <quinot@adacore.com>
1589
1590         * sem_type.adb: Minor reformatting
1591
1592 2009-04-16  Hristian Kirtchev  <kirtchev@adacore.com>
1593
1594         * s-osprim-darwin.adb, s-osprim-posix.adb (Clock): Add comment
1595         concerning return codes of gettimeofday and return value check.
1596
1597 2009-04-16  Ed Falis  <falis@adacore.com>
1598
1599         * s-vxwext-kernel.ads (Int_Lock, Int_Unlock): set to convention C so
1600         body can be renaming of imported routines.
1601
1602 2009-04-16  Vasiliy Fofanov  <fofanov@adacore.com>
1603
1604         * s-asthan-vms-alpha.adb: Disable warnings on alignment in a more
1605         targeted fashion.
1606
1607 2009-04-15  Hristian Kirtchev  <kirtchev@adacore.com>
1608
1609         * exp_ch9.adb: Comment improvements.
1610         (Build_Entry_Family_Name): Add parentheses around the index of a entry
1611         family member.
1612
1613 2009-04-15  Bob Duff  <duff@adacore.com>
1614
1615         * sem_warn.adb (Check_Infinite_Loop_Warning): Catch cases like
1616         "while X /= null loop" where X is unchanged inside the loop. We were
1617         not warning in this case, because of the pointers -- we feared that the
1618         loop variable could be updated via a pointer, if there are any pointers
1619         around the place. But that is impossible in this case.
1620
1621         * sem_util.adb (May_Be_Lvalue): This routine was overly pessimistic in
1622         the case of dereferences. In X.all, X cannot be an l-value. We now
1623         catch that case (and implicit dereferences, too).
1624
1625 2009-04-15  Vincent Celier  <celier@adacore.com>
1626
1627         * sinput-p.ads, sinput-p.adb (Clear_Source_File_Table): New procedure
1628
1629 2009-04-15  Ed Schonberg  <schonberg@adacore.com>
1630
1631         * sem_ch12.adb (Is_Actual_Of_Previous_Formal): Make fully recursive.
1632         From code reading.
1633         (Analyze_Package_Instantiation): If generic unit in child instance is
1634         the same as generic unit in parent instance, look for an outer homonym
1635         to locate the desired generic.
1636
1637 2009-04-15  Bob Duff  <duff@adacore.com>
1638
1639         * sem_ch5.adb (Analyze_Loop_Statement): Don't check for infinite loop
1640         warnings unless the loop comes from source, because checking generated
1641         loops is a waste of time, and makes it harder to debug
1642         Check_Infinite_Loop_Warning.
1643
1644         * sem_warn.adb (Check_Infinite_Loop_Warning): If the local variable
1645         tested in the while loop is a renaming, do not warn. Otherwise, we get
1646         false alarms, because it's usually renaming something that we can't
1647         deal with (an indexed component, a global variable, ...).
1648
1649         * gnat_rm.texi: Fix typo
1650
1651 2009-04-15  Thomas Quinot  <quinot@adacore.com>
1652
1653         * sem_ch6.adb: Minor reformatting
1654
1655 2009-04-15  Hristian Kirtchev  <kirtchev@adacore.com>
1656
1657         * exp_ch7.adb (Expand_Ctrl_Function_Call): Check for the case where the
1658         immediate parent of the controlled function call is a component
1659         association.
1660
1661 2009-04-15  Ed Schonberg  <schonberg@adacore.com>
1662
1663         * sem_ch8.adb (Use_One_Type): If the type is tagged, indicate that the
1664         corresponding class-wide type is also in use.
1665
1666 2009-04-15  Thomas Quinot  <quinot@adacore.com>
1667
1668         * frontend.adb: Minor comment fix
1669
1670 2009-04-15  Robert Dewar  <dewar@adacore.com>
1671
1672         * gnatchop.adb (BOM_Length): New global variable
1673         (Write_Unit): Add new parameter Write_BOM
1674         (Write_Chopped_Files): Check for BOM and set Write_BOM for call
1675         to Write_Unit
1676
1677         * gnat_ugn.texi: Add note on propagation of BOM by gnatchop
1678
1679 2009-04-15  Geert Bosch  <bosch@adacore.com>
1680
1681         * system-mingw-x86_64.ads, system-darwin-x86_64.ads
1682         (Backend_Overflow_Checks): Set to True.
1683
1684 2009-04-15  Gary Dismukes  <dismukes@adacore.com>
1685
1686         * par-ch3.adb (P_Type_Declaration): Issue an error if the synchronized
1687         keyword is given in a record extension.
1688
1689 2009-04-15  Hristian Kirtchev  <kirtchev@adacore.com>
1690
1691         * exp_ch7.adb (Expand_Ctrl_Function_Call): Procede with the expansion
1692         of a controlled function call in the context of a record aggregate.
1693         This does not apply to array aggregates since the call will be expanded
1694         into assignments.
1695
1696 2009-04-15  Ed Falis  <falis@adacore.com>
1697
1698         * s-osinte-vxworks-kernel.adb, s-osinte-vxworks.adb,
1699         s-osinte-vxworks.ads s-vxwext.ads, s-vxwext-kernel.adb,
1700         s-vxwext-kernel.ads, s-vxwext-rtp.ads, s-vxwext-rtp.adb: Reorganize
1701         s-osinte-vxworks* and s-vxwext*.
1702
1703 2009-04-15  Arnaud Charlet  <charlet@adacore.com>
1704
1705         * gcc-interface/Make-lang.in: Update dependencies.
1706
1707         * gcc-interface/Makefile.in: Reorganization of s-osinte-vxworks*
1708         and s-vxwext*.
1709
1710 2009-04-15  Robert Dewar  <dewar@adacore.com>
1711
1712         * sem_ch13.adb (Unchecked_Conversions): Store source location instead
1713         of node for location for warning messages.
1714
1715         * gnatchop.adb: Minor reformatting
1716
1717 2009-04-15  Ed Schonberg  <schonberg@adacore.com>
1718
1719         * exp_ch6.adb: additional guard for renaming declarations for in
1720         parameters of an array type.
1721
1722 2009-04-15  Robert Dewar  <dewar@adacore.com>
1723
1724         * sem_eval.adb (Get_Static_Length): Go to origin node for array bounds
1725         in case they were rewritten by expander (Force_Evaluation).
1726
1727         * targparm.adb (Get_Target_Parameters): Correct check for
1728         Suppress_Exception_Locations.
1729
1730 2009-04-15  Ed Schonberg  <schonberg@adacore.com>
1731
1732         * exp_ch6.adb (Expand_Inlined_Call): If an in-parameter in a call to be
1733         inlined  is of an array type that is not bit-packed, use a renaming
1734         declaration to capture its value, rather than a constant declaration.
1735
1736 2009-04-15  Robert Dewar  <dewar@adacore.com>
1737
1738         * rtsfind.adb: Minor reformatting.
1739
1740 2009-04-15  Emmanuel Briot  <briot@adacore.com>
1741
1742         * prj-part.adb, prj-tree.adb, prj-tree.ads (Restore_And_Free): renames
1743         Restore, and free the saved context.
1744
1745 2009-04-15  Gary Dismukes  <dismukes@adacore.com>
1746
1747         * sem_ch3.adb (Analyze_Private_Extension_Declaration): Move error check
1748         for illegal private extension from a synchronized interface parent in
1749         front of check for illegal limited extension so that limited extension
1750         from a synchronized interface will be rejected.
1751         (Check_Ifaces): Check that a private extension that has a synchronized
1752         interface as a progenitor must be explicitly declared synchronized.
1753         Also check that a record extension cannot derive from a synchronized
1754         interface.
1755
1756 2009-04-15  Pascal Obry  <obry@adacore.com>
1757
1758         * adaint.h (__gnat_unlink): Add spec.
1759         (__gnat_rename): Likewise.
1760
1761 2009-04-15  Vincent Celier  <celier@adacore.com>
1762
1763         * prj-nmsc.adb: Minor spelling error corrections in error messages
1764
1765 2009-04-15  Robert Dewar  <dewar@adacore.com>
1766
1767         * sinfo.ads: Minor comment update
1768
1769         * opt.ads: Minor comment updates
1770
1771         * checks.adb (Enable_Overflow_Check): Do not set Do_Overflow_Check for
1772         modular type.
1773
1774 2009-04-15  Ed Schonberg  <schonberg@adacore.com>
1775
1776         * exp_disp.ads, exp_disp.adb (Register_Primitive): Is now a function
1777         that generates the code needed to update a dispatch table when a
1778         primitive operation is declared with a subprogram body without previous
1779         spec. Insertion of the generated code is responsibility of the caller.
1780         (Make_DT): When building static tables, append the code created by
1781         Register_Primitive to update a secondary table after it has been
1782         constructed.
1783
1784         * exp_ch3.adb, exp_ch6.adb: use new version of Register_Primitive.
1785
1786         * sem_disp.adb (Check_Dispatching_Operation): Call Register_Primitive
1787         on an overriding operation that implements an interface operation only
1788         if not building static dispatch tables.
1789
1790 2009-04-15  Hristian Kirtchev  <kirtchev@adacore.com>
1791
1792         * a-caldel-vms.adb (To_Duration): Declare a "safe" end of time which
1793         does not cause overflow when converted to Duration. Use the safe value
1794         as the maximum allowable time delay..
1795
1796 2009-04-15  Jerome Lambourg  <lambourg@adacore.com>
1797
1798         * g-comlin.adb (Set_Command_Line): When adding a switch with attached
1799         parameter, specify that the delimiter is NUL, otherwise "-j2" will be
1800         translated to "-j 2".
1801
1802 2009-04-15  Bob Duff  <duff@adacore.com>
1803
1804         * rtsfind.adb (Maybe_Add_With): Split out procedure to add implicit
1805         with_clauses, to avoid code duplication. Change this processing so we
1806         always add a with_clause on the main unit if needed.
1807
1808 2009-04-15  Pascal Obry  <obry@adacore.com>
1809
1810         Add support for Win32 native encoding for delete/rename routines.
1811         
1812         * adaint.c (__gnat_unlink): New routine.
1813         (__gnat_rename): New routine.
1814         Simple wrapper routines used to convert to proper encoding on
1815         Windows.
1816
1817         * s-os_lib.adb: Use __gnat_unlink and __gnat_rename instead of direct
1818         call to the C library.
1819
1820         * g-sercom-mingw.adb, s-win32.ads: Update Win32 binding.
1821
1822 2009-04-15  Robert Dewar  <dewar@adacore.com>
1823
1824         * s-tassta.adb: Minor reformatting
1825
1826 2009-04-15  Robert Dewar  <dewar@adacore.com>
1827
1828         * frontend.adb (Frontend): Set proper default for
1829         Warn_On_Non_Local_Exception.
1830
1831         * opt.ads (Exception_Handler_Encountered): New flag
1832         (No_Warn_On_Non_Local_Exception): New flag
1833
1834         * par-ch11.adb (P_Exception_Handler): Set Exception_Handler_Encountered
1835
1836         * sem_warn.adb (Set_Warning_Switch): Set No_Warn_On_Non_Local_Exception
1837         (Set_Dot_Warning_Switch): Set No_Warn_On_Non_Local_Exception
1838
1839 2009-04-15  Cyrille Comar  <comar@adacore.com>
1840
1841         * s-tassta.adb, a-exextr.adb, a-elchha.adb
1842         (Ada.Exception.Last_Chance_Handler): Do not print unhandled exception
1843         message when exception traces are active since it would generate
1844         redundant information.
1845         (Exception_Traces.Notify_Exception): put message output by a critical
1846         section to avoid unsynchronized output.
1847         (Trace_Unhandled_Exception_In_Task): put message output by a critical
1848         section to avoid unsynchronized output.
1849
1850 2009-04-15  Emmanuel Briot  <briot@adacore.com>
1851
1852         * g-comlin.adb, prj-tree.adb, prj-tree.ads, prj.adb, prj.ads
1853         (Free): New subprogram.
1854
1855 2009-04-15  Hristian Kirtchev  <kirtchev@adacore.com>
1856
1857         * a-calend.adb: Add new constant Nanos_In_Four_Years.
1858         (Formatting_Operations.Time_Of): Change the way four year chunks of
1859         nanoseconds are added to the intermediate result.
1860
1861 2009-04-15  Nicolas Setton  <setton@adacore.com>
1862
1863         * sysdep.c: Add __APPLE__ in the list of systems where get_immediate
1864         does not need to wait for a carriage return.
1865
1866 2009-04-15  Tristan Gingold  <gingold@adacore.com>
1867
1868         * bindgen.adb: Do not generate adafinal if No_Finalization restriction
1869         is set.
1870
1871 2009-04-15  Ed Schonberg  <schonberg@adacore.com>
1872
1873         * freeze.adb (Freeze_Entity): improve error message for improper use of
1874         incomplete types.
1875         Diagnose additional illegal uses of incomplete types in formal parts.
1876         appearing in formal parts.
1877
1878         * sem_ch6.adb (Process_Formals, Analyze_Return_Type): ditto.
1879
1880 2009-04-15  Robert Dewar  <dewar@adacore.com>
1881
1882         * exp_ch4.adb (Expand_N_Allocator): Install test for object too large.
1883
1884 2009-04-15  Nicolas Roche  <roche@adacore.com>
1885
1886         * adaint.c: Add function __gnat_lwp_self that retrieves the LWP of the
1887         current thread.
1888
1889         * s-osinte-linux.ads: Import the __gnat_lwp_self function as lwp_self
1890
1891         * s-taprop-linux.adb (Enter_Task): Store the LWP in the TCB
1892
1893 2009-04-15  Ed Schonberg  <schonberg@adacore.com>
1894
1895         * sem_ch4.adb: improve error message on exponentiation.
1896
1897 2009-04-15  Hristian Kirtchev  <kirtchev@adacore.com>
1898
1899         * a-calend.adb: Move constant Epoch_Offset from package
1900         Conversion_Operations to top level.
1901         (Delay_Operations.To_Duration): Define a constant which represents
1902         "end of time" and use it as a guard against very distant delay dates.
1903         Protect the code against overflow when performing the origin shift to
1904         Unix time.
1905
1906 2009-04-15  Robert Dewar  <dewar@adacore.com>
1907
1908         * sem_prag.adb: Minor reformatting.
1909
1910         * sem_type.adb: Minor reformatting
1911
1912 2009-04-15  Javier Miranda  <miranda@adacore.com>
1913
1914         * sem_ch6.adb (Analyze_Abstract_Subprogram_Declaration): Add missing
1915         support to check eliminated subprograms.
1916
1917         * sem_elim.ads (Eliminate_Error_Msg): Update documentation.
1918
1919         * sem_elim.adb (Set_Eliminated): Add support for elimination of
1920         dispatching subprograms.
1921
1922         * exp_disp.adb (Make_DT): Minor code cleanup when freezing primitive
1923         operations. Initialize with "null" the slots of eliminated dispaching
1924         primitives.
1925         (Write_DT): Add output for eliminated primitives.
1926
1927         * sem_disp.adb (Check_Dispatching_Call): Check eliminated primitives.
1928
1929 2009-04-15  Ed Schonberg  <schonberg@adacore.com>
1930
1931         * sem_ch8.adb (Use_One_Type): If both clauses appear on the same unit,
1932         the second is redundant, regardless of scopes.
1933
1934 2009-04-15  Vincent Celier  <celier@adacore.com>
1935
1936         * prj-nmsc.adb (Get_Directories): Check for sources before checking
1937         the object directory as when there are no sources, they may not be any
1938         object directory.
1939
1940         * make.adb (Gnatmake): Do not attempt to get the path name of the exec
1941         directory, when there are no exec directory.
1942
1943 2009-04-15  Ed Schonberg  <schonberg@adacore.com>
1944
1945         * sem_type.adb (Remove_Conversions): In order to resolve spurious
1946         ambiguities, refine removal of universal interpretations from complex
1947         expressions with literal arguments, when some numeric operators have
1948         been declared abstract.
1949
1950 2009-04-15  Ed Falis  <falis@adacore.com>
1951
1952         * init.c: Map SIGSEGV to Storage_Error for all targets for uniformity
1953         and backward compatibility for targets using probing for stack overflow
1954
1955 2009-04-15  Ed Schonberg  <schonberg@adacore.com>
1956
1957         * sem_prag.adb (Analyze_Pragma, case 'Obsolescent): Pragma is legal
1958         after any declaration, including renaming declarations.
1959
1960 2009-04-15  Arnaud Charlet  <charlet@adacore.com>
1961
1962         * gcc-interface/Make-lang.in: Update dependencies.
1963
1964         * gcc-interface/Makefile.in: Fix VxWorks target pairs.
1965         Update xenomai target pairs.
1966
1967 2009-04-15  Javier Miranda  <miranda@adacore.com>
1968
1969         * exp_ch4.adb (Expand_N_Allocator): Code cleanup.
1970
1971         * sem_ch6.adb (Check_Anonymous_Return): Add missing support for
1972         functions returning anonymous access to class-wide limited types. Mark
1973         also the containing scope as a task master.
1974
1975         * sem_ch8.adb (Restore_Scope_Stack): Add missing management for
1976         limited-withed packages. Required to restore their visibility after
1977         processing packages associated with implicit with-clauses.
1978
1979         * exp_ch3.adb (Build_Class_Wide_Master): Avoid marking masters
1980         associated with return statements because this work is now done by
1981         Check_Anonymous_Return.
1982         (Build_Master): Code cleanup.
1983
1984 2009-04-15  Thomas Quinot  <quinot@adacore.com>
1985
1986         * sem_warn.ads: Minor reformatting
1987
1988 2009-04-15  Ed Schonberg  <schonberg@adacore.com>
1989
1990         * sem_ch3.adb: better error message for illegal interfaces
1991
1992         * sem_ch6.adb (Possible_Freeze): Delay freezing a subprogram if a
1993         formal is an incomplete type from a limited_with clause.
1994
1995 2009-04-15  Vincent Celier  <celier@adacore.com>
1996
1997         * prj-nmsc.adb (Locate_Directory): New Boolean parameter
1998         Externally_Built indicating if the project is externally built. If it
1999         is, and --subdirs is specified, but the subdir does not exist, look
2000         for the specified directory, without the subdir.
2001
2002 2009-04-15  Gary Dismukes  <dismukes@adacore.com>
2003
2004         * a-tasatt.adb: Fix typo, plus minor reformatting
2005
2006         * sem_ch3.ads: Add missing hyphen ("class wide" => "class-wide").
2007
2008         * sem_ch10.adb: Add missing hyphen ("use visible" => "use-visible").
2009
2010 2009-04-15  Ed Schonberg  <schonberg@adacore.com>
2011
2012         * sem_ch3.adb (Analyze_Private_Extension_Declaration): Verify that a
2013         private extension whose parent is a synchronized interface carries an
2014         explicit synchronized keyword.
2015
2016 2009-04-15  Thomas Quinot  <quinot@adacore.com>
2017
2018         * exp_smem.adb (Make_Shared_Var_Procs): For a protected type,
2019         instantiate generic shared object package with the corresponding
2020         record type.
2021
2022 2009-04-15  Arnaud Charlet  <charlet@adacore.com>
2023
2024         * system-linux-sparc.ads: Remove obsolete entries.
2025
2026 2009-04-15  Thomas Quinot  <quinot@adacore.com>
2027
2028         * s-tasuti.ads: Add ??? comment
2029
2030 2009-04-15  Ed Schonberg  <schonberg@adacore.com>
2031
2032         * sem_ch3.adb (Analyze_Type_Declaration): Create freeze node for access
2033         type even if the designated type comes from a limited_with clause, to
2034         ensure that the symbol for the finalization list of the access type is
2035         created.
2036
2037 2009-04-10  Robert Dewar  <dewar@adacore.com>
2038
2039         * sem_warn.ads, sem_warn.adb (Check_Low_Bound_Tested): Catch more cases
2040         for warning suppression.
2041
2042 2009-04-10  Ed Schonberg  <schonberg@adacore.com>
2043
2044         * sem_ch8.adb (Use_One_Type): If the two use_type clauses are
2045         identical, there is no redudancy to check.
2046
2047 2009-04-10  Gary Dismukes  <dismukes@adacore.com>
2048
2049         * exp_ch5.adb (Expand_N_Extended_Return_Statement): Delete redundant
2050         calls initializing SS_Allocator (which is initialized in following
2051         code).
2052         (Expand_Simple_Function_Return): Add comment about False value for
2053         Comes_From_Source on secondary-stack allocator.
2054
2055         * exp_ch9.adb (Build_Entry_Family_Name): Add comment.
2056         (Build_Entry_Name): Add comment.
2057
2058 2009-04-10  Robert Dewar  <dewar@adacore.com>
2059
2060         * einfo.ads, einfo.adb (Low_Bound_Tested): New name for Low_Bound_Known
2061
2062         * sem_prag.adb (Analyze_Pragma, case Check): Remove check for lower
2063         bound tested, since this is now done more generally in Sem_Res.
2064
2065         * sem_res.adb (Resolve_Comparison_Op): Add call to
2066         Check_Lower_Bound_Tested.
2067         (Resolve_Equality_Op): Add call to Check_Lower_Bound_Tested
2068
2069         * sem_warn.ads, sem_warn.adb (Check_Low_Bound_Tested): New procedure
2070         (Low_Bound_Tested): New name for Low_Bound_Known flag
2071
2072         * exp_ch5.adb: Minor reformatting
2073
2074         * exp_ch4.adb:
2075         Add comments on copying the Comes_From_Source flag for allocators
2076
2077         * sinfo.ads:
2078         Add comments on copying the Comes_From_Source flag for allocators
2079
2080         * exp_ch6.adb (Make_Build_In_Place_Call_In_Allocator): Copy
2081         Comes_From_Source flag from old allocator to new one.
2082
2083 2009-04-10  Ed Schonberg  <schonberg@adacore.com>
2084
2085         * sem_ch6.ads: Address missing documentation query
2086
2087 2009-04-10  Vincent Celier  <celier@adacore.com>
2088
2089         * prj-attr.adb:
2090         Add new Linker attributes Max_Command_Line_Length, Response_File_Format
2091         and Response_File_Switches.
2092
2093         * prj-nmsc.adb (Process_Linker): Process new attributes
2094         Max_Command_Line_Length, Response_File_Format and
2095         Response_File_Switches.
2096
2097         * prj.ads (Response_File_Format): New enumeration type
2098         (Project_Configuration): New componants Max_Command_Line_Length,
2099         Resp_File_Format and Resp_File_Options.
2100
2101         * snames.ads-tmpl: Add new standard names for linking response files
2102         for gprbuild: GNU, None, Object_List, Option_List,
2103         Max_Command_Line_Length, Response_File_Format and
2104         Response_File_Switches.
2105
2106 2009-04-10  Geert Bosch  <bosch@adacore.com>
2107
2108         * system-aix.ads, system-darwin-ppc.ads, system-darwin-x86.ads,
2109         system-freebsd-x86.ads, system-hpux.ads, system-hpux-ia64.ads,
2110         system-irix-n32.ads, system-irix-o32.ads, system-linux-alpha.ads,
2111         system-linux-hppa.ads, system-linux-ia64.ads, system-linux-ppc.ads,
2112         system-linux-s390.ads, system-linux-s390x.ads, system-linux-sh4.ads,
2113         system-linux-sparc.ads, system-linux-x86_64.ads, system-linux-x86.ads,
2114         system-mingw.ads, system-solaris-sparc.ads, system-solaris-sparcv9.ads,
2115         system-solaris-x86.ads, system-tru64.ads, system-vms_64.ads,
2116         system-vms.ads, system-vms-ia64.ads, system-vms-zcx.ads,
2117         system-vxworks-arm.ads, system-vxworks-m68k.ads,
2118         system-vxworks-mips.ads, system-vxworks-ppc.ads,
2119         system-vxworks-sparcv9.ads, system-vxworks-x86.ads
2120         (Backend_Overflow_Checks): Set to True.
2121
2122 2009-04-10  Thomas Quinot  <quinot@adacore.com>
2123
2124         * exp_attr.adb: Minor reformatting
2125
2126 2009-04-10  Ed Schonberg  <schonberg@adacore.com>
2127
2128         * sem_prag.adb (Check_Precondition_Postcondition): Within a generic,
2129         analyze the expression for a postcondition, even if the compiler mode
2130         is Generate_Code.
2131
2132 2009-04-10  Robert Dewar  <dewar@adacore.com>
2133
2134         * sem_aux.adb: Minor reformatting
2135
2136 2009-04-10  Ed Falis  <falis@adacore.com>
2137
2138         * init.c: Change VxWorks 6 stack overflow checking for kernel apps.
2139
2140         * system-vxworks-ppc.ads, system-vxworks-x86.ads: Update header.
2141
2142 2009-04-10  Thomas Quinot  <quinot@adacore.com>
2143
2144         * sem_ch6.ads (Check_Subtype_Conformant): Add ??? comment for
2145         undocumented formal.
2146         Minor reformatting
2147
2148         * a-direio.ads: Fix typo in comment
2149
2150         * sem_ch3.adb, g-dirope.adb, sem_type.adb, sem_ch12.adb, sem_case.adb,
2151         errout.adb, sem_ch4.adb, sem_ch11.adb, exp_dist.adb, sem_ch13.adb:
2152         Use uniform phrasing for comment at start of subprogram body.
2153
2154         * xsnamest.adb: Add note to explain why we use specific names for the
2155         newly generated files instead of generating snames.{ads,adb,h} directly
2156
2157 2009-04-10  Sergey Rybin  <rybin@adacore.com>
2158
2159         * vms_data.ads:
2160         Add qualifier for new gnatstub option '--no-exception'
2161
2162         * gnat_ugn.texi:
2163         Add the description of the new gnatstub option '--no-exception'
2164
2165 2009-04-10  Robert Dewar  <dewar@adacore.com>
2166
2167         * rtsfind.adb: Minor reformatting
2168
2169 2009-04-10  Thomas Quinot  <quinot@adacore.com>
2170
2171         * sem_disp.adb: Minor reformatting.
2172         Add comment pointing to RM clause for the case of warning against a
2173         (failed) attempt at declaring a primitive operation elsewhere than in a
2174         package spec.
2175
2176 2009-04-10  Ed Schonberg  <schonberg@adacore.com>
2177
2178         * sem_ch12.adb (Denotes_Formal_Package): Check whether the package is
2179         an actual for a previous formal package of the current instance.
2180
2181 2009-04-10  Bob Duff  <duff@adacore.com>
2182
2183         * rtsfind.adb (RTE): Put implicit with_clauses on whatever unit needs
2184         them first, rather than on the extended main unit.
2185
2186 2009-04-10  Ed Schonberg  <schonberg@adacore.com>
2187
2188         * sem_ch6.adb (Check_Discriminant_Conformance): If discriminant
2189         specification of full view carries a null exclusion indicator, create
2190         an itype for it, to check for conformance with partial view.
2191
2192 2009-04-10  Bob Duff  <duff@adacore.com>
2193
2194         * rtsfind.ads: Minor code change: make RE_Unit_Table constant.
2195
2196         * rtsfind.adb: Minor comment changes, and remove useless code.
2197
2198         * sinfo.ads: Add ??? comment.
2199
2200 2009-04-10  Vincent Celier  <celier@adacore.com>
2201
2202         * vms_data.ads: Add missing GNAT SYNC VMS qualifiers -main= and -U
2203
2204 2009-04-10  Ed Schonberg  <schonberg@adacore.com>
2205
2206         * exp_attr.adb (Expand_N_Attribute_Reference, case 'Tag): If the tagged
2207         type is a synchronized type, retrieve tag information from the
2208         corresponding record, which has the dispatch table link.
2209
2210 2009-04-10  Jerome Lambourg  <lambourg@adacore.com>
2211
2212         * g-comlin.adb (Group_Analysis): Take care of switches that might be
2213         decomposed afterwards, but are present as-is in the command line
2214         configuration, and thus should be kept as-is.
2215
2216 2009-04-10  Robert Dewar  <dewar@adacore.com>
2217
2218         * gnat_rm.texi: Document that postconditions are tested on implicit
2219         returns.
2220
2221         * sem_aux.adb: Minor reformatting
2222
2223 2009-04-10  Gary Dismukes  <dismukes@adacore.com>
2224
2225         * itypes.adb (Create_Null_Excluding_Itype): Apply Base_Type when
2226         setting Etype.
2227         
2228         * par-ch3.adb (P_Access_Type_Definition): Set new attribute
2229         Null_Exclusion_In_Return_Present when an access-to-function type has a
2230         result type with an explicit not null.
2231
2232         * sem_ch3.adb (Access_Subprogram_Definition): If a null exclusion is
2233         given on the result type, then create a null-excluding itype for the
2234         function.
2235
2236         * sem_ch6.adb (Analyze_Return_Type): Create a null-excluding itype in
2237         the case where a null exclusion is imposed on a named access type.
2238         (Analyze_Subprogram_Specification): Push and pop the scope of the
2239         function around the call to Analyze_Return_Type in the case of no
2240         formals, for consistency with handling when formals are present
2241         (Process_Formals does this). Ensures that any itype created for the
2242         return type will be associated with the proper scope.
2243
2244         * sem_ch12.adb (Analyze_Generic_Subprogram_Declaration): If a null
2245         exclusion is given on a generic function's result type, then create a
2246         null-excluding itype for the generic function.
2247         (Instantiate_Object): Set Null_Exclusion_Present of a constant created
2248         for an actual for a formal in object according to the setting on the
2249         formal. Ensures null exclusion checks are done when the association is
2250         elaborated.
2251
2252         * sinfo.ads: Add new flag Null_Exclusion_In_Return_Present on
2253         N_Access_Function_Definition.
2254
2255         * sinfo.adb: Add Get_ and Set_ operations for
2256         Null_Exclusion_In_Return_Present.
2257
2258 2009-04-10  Bob Duff  <duff@adacore.com>
2259
2260         * exp_ch5.adb, exp_ch6.adb, sem_ch6.adb: Move the code that creates a
2261         call to the _Postconditions procedure in the case of implicit returns
2262         from analysis to expansion. This eliminates some duplicated code. Use
2263         the Postcondition_Proc to find the identity of this procedure during
2264         expansion.
2265
2266 2009-04-10  Robert Dewar  <dewar@adacore.com>
2267
2268         * sem_ch6.adb: Minor code clean up.
2269
2270         * einfo.ads, sem_attr.adb: Minor comment fixes.
2271
2272 2009-04-10  Robert Dewar  <dewar@adacore.com>
2273
2274         * sem_ch8.adb: Minor reformatting
2275
2276 2009-04-10  Robert Dewar  <dewar@adacore.com>
2277
2278         * einfo.ads, einfo.adb (Postcondition_Proc): New attribute for
2279         procedures.
2280
2281         * sem_ch6.adb: Minor code clean up.
2282
2283 2009-04-10  Robert Dewar  <dewar@adacore.com>
2284
2285         * mlib-tgt-specific-xi.adb: Minor reformatting
2286
2287 2009-04-10  Bob Duff  <duff@adacore.com>
2288
2289         * einfo.ads: Minor comment fixes
2290
2291 2009-04-10  Vincent Celier  <celier@adacore.com>
2292
2293         * snames.ads-tmpl: Remove names that are no longer used in the
2294         Project Manager.
2295         Mark specifically those that are used only in gprbuild
2296
2297 2009-04-10  Eric Botcazou  <ebotcazou@adacore.com>
2298
2299         * init.c: Adjust EH support code on Alpha/Tru64.
2300
2301 2009-04-10  Bob Duff  <duff@adacore.com>
2302
2303         * sem_ch6.adb (Process_PPCs): Add a call to the _Postconditions
2304         procedure on every path that could return implicitly (not via a return
2305         statement) from a procedure.
2306
2307 2009-04-10  Ed Schonberg  <schonberg@adacore.com>
2308
2309         * exp_ch9.adb (Build_Master_Entity): An extended return statement is a
2310         valid scope for a task declarations and therefore for a master id.
2311
2312 2009-04-10  Robert Dewar  <dewar@adacore.com>
2313
2314         * sem_aux.adb: Minor reformatting
2315
2316 2009-04-10  Vincent Celier  <celier@adacore.com>
2317
2318         * scn.adb (Obsolescent_Check_Flag): New Boolean flag, initialized to
2319         True.
2320         (Obsolescent_Check): Do nothing if Obsolescent_Check_Flag is False
2321         (Set_Obsolescent_Check): New procedure to change the value of
2322         Obsolescent_Check_Flag.
2323
2324         * scn.ads (Set_Obsolescent_Check): New procedure to control
2325         Obsolescent_Check.
2326
2327         * sinput-l.adb (Load_File): Do not check for pragma Restrictions on
2328         obsolescent features while preprocessing.
2329
2330 2009-04-10  Thomas Quinot  <quinot@adacore.com>
2331
2332         * xsnamest.adb: Use XUtil to have uniform line endings (UNIX style) in
2333         generated files on all platforms.
2334
2335 2009-04-10  Robert Dewar  <dewar@adacore.com>
2336
2337         * sem_aux.adb: Minor reformatting
2338
2339 2009-04-10  Ed Schonberg  <schonberg@adacore.com>
2340
2341         * sem_ch3.adb (Access_Definition): Handle properly the case of a
2342         protected function with formals that returns an anonymous access type.
2343
2344 2009-04-10  Thomas Quinot  <quinot@adacore.com>
2345
2346         * sem_disp.adb: Minor reformatting
2347
2348 2009-04-10  Vasiliy Fofanov  <fofanov@adacore.com>
2349
2350         * seh_init.c: Do not use the 32-bit specific implementation of
2351         __gnat_install_SEH_handler on 64-bit Windows target (64-bit specific
2352         version TBD).
2353
2354 2009-04-10  Jose Ruiz  <ruiz@adacore.com>
2355
2356         * mlib-tgt-specific-xi.adb (Get_Target_Prefix): Target_Name may contain
2357         a '/' at the end so we better use the complete target name to determine
2358         whether it is a PowerPC 55xx target.
2359
2360 2009-04-10  Thomas Quinot  <quinot@adacore.com>
2361
2362         * sem_eval.adb: Minor reformatting
2363
2364 2009-04-10  Thomas Quinot  <quinot@adacore.com>
2365
2366         * snames.h, snames.ads, snames.adb: Remove files, now generated from
2367         templates.
2368
2369         * snames.h-tmpl, snames.ads-tmpl, snames.adb-tmpl: Templates for the
2370         above.
2371
2372         * xsnamest.adb: New file.
2373
2374         * gcc-interface/Make-lang.in: New target for automated generation of
2375         snames.ads, snames.adb and snames.h
2376
2377 2009-04-10  Tristan Gingold  <gingold@adacore.com>
2378
2379         * gcc-interface/Makefile.in, gcc-interface/utils.c: Include "rtl.h" to
2380         avoid compile time warnings.
2381         Do not add gcc/config in include search list while compiling the RTS.
2382         Pragma Thread_Local_Storage is available on any target.
2383
2384 2009-04-10  Bob Duff  <duff@adacore.com>
2385
2386         * sem.ads, par.adb, sem_ch6.adb, sem_ch8.adb: Minor comment fixes.
2387
2388 2009-04-10  Tristan Gingold  <gingold@adacore.com>
2389
2390         * init.c: Install signal handler on Darwin.
2391
2392 2009-04-10  Robert Dewar  <dewar@adacore.com>
2393
2394         * sem_prag.adb: Minor reformatting
2395
2396         * exp_util.adb (Make_Non_Empty_Check): New function
2397         (Silly_Boolean_Array_Not_Test): Add call to Make_Non_Empty_Check
2398         (Silly_Boolean_Array_Xor_Test): Use Make_Non_Empty_Check
2399
2400 2009-04-10  Arnaud Charlet  <charlet@adacore.com>
2401
2402         * make.adb, gnatlink.adb: Rename JGNAT toolchain.
2403
2404 2009-04-10  Jose Ruiz  <ruiz@adacore.com>
2405
2406         * mlib-tgt-specific-xi.adb (Get_Target_Prefix): Insert the appropriate
2407         tool prefix for AVR and PowerPC 55xx targets.
2408
2409 2009-04-10  Robert Dewar  <dewar@adacore.com>
2410
2411         * sem_warn.adb (Within_Postcondition): New function
2412         (Check_Unset_Reference): Use Within_Postcondition to stop bad warning
2413
2414 2009-04-10  Robert Dewar  <dewar@adacore.com>
2415
2416         * sem_warn.adb: Minor reformatting
2417
2418         * make.adb: Minor reformatting.
2419
2420 2009-04-10  Gary Dismukes  <dismukes@adacore.com>
2421
2422         * exp_ch7.adb (Find_Final_List): When creating a finalization-chain
2423         entity and the scope is a subprogram, retrieve the Sloc of the
2424         subprogram's body rather than using the sloc of the spec, for better
2425         line-stepping behavior in gdb.
2426         (Wrap_Transient_Declaration): For the Sloc of nodes created with a list
2427         controller, use the Sloc of the first declaration of the containing list
2428         rather than that of the node that triggered creation of the list
2429         controller.
2430
2431 2009-04-10  Vincent Celier  <celier@adacore.com>
2432
2433         * prj-nmsc.adb (Check_Naming_Schemes): Initialize local variable Casing
2434         to avoid gcc warning.
2435
2436 2009-04-10  Robert Dewar  <dewar@adacore.com>
2437
2438         * g-comlin.adb: Add ??? comment
2439
2440 2009-04-10  Ed Schonberg  <schonberg@adacore.com>
2441
2442         * sem_warn.adb (Check_Unused_Withs): Do not emit message about
2443         unreferenced entities for a package with no visible declarations.
2444
2445 2009-04-10  Robert Dewar  <dewar@adacore.com>
2446
2447         * exp_ch9.adb: Minor reformatting
2448
2449 2009-04-10  Thomas Quinot  <quinot@adacore.com>
2450
2451         * sem_prag.adb: Minor reformatting
2452
2453 2009-04-10  Vincent Celier  <celier@adacore.com>
2454
2455         * prj-nmsc.adb:
2456         (Check_Library_Attributes): For a project qualified as a library project
2457         that is not a library project, indicate in the error message which
2458         attributes are missing (Library_Dir and/or Library_Name).
2459
2460 2009-04-10  Bob Duff  <duff@adacore.com>
2461
2462         * exp_ch5.adb, exp_ch9.adb: Avoid use of No_Position in Sloc of
2463         generated nodes, because it might confuse various circuits in the FE.
2464
2465 2009-04-10  Ed Schonberg  <schonberg@adacore.com>
2466
2467         * sem_prag.adb (Analyze_Pragma, case Task_Name): Do not expand argument
2468         of pragma. It will be recopied and analyzed when used in call to
2469         Create_Task.
2470
2471         * sem_res.adb (Resolve_Call): Clarify use of secondary stack within
2472         initialization operations and recognize use of it in procedure calls
2473         within init_procs.
2474
2475         * exp_ch9.adb (Make_Task_Create_Call): Copy full tree of Task_Name
2476         argument, because it may have side-effects.
2477
2478         * exp_ch2.adb: Remove obsolete comments on default functions
2479
2480 2009-04-10  Jose Ruiz  <ruiz@adacore.com>
2481
2482         * adaint.c (RTX section): Do for RTX the same thing as we do for
2483         Windows (include ctype.h and define a fallback ISALPHA if IN_RTS).
2484
2485 2009-04-10  Robert Dewar  <dewar@adacore.com>
2486
2487         * sem_aux.ads, sem_aux.adb (Nearest_Current_Scope): New function.
2488
2489         * sem_res.adb (Resolve_Call): Fix test for
2490         Suppress_Value_Tracking_On_Call (was wrong for the case of a call from
2491         a non-dynamic scope).
2492
2493 2009-04-10  Robert Dewar  <dewar@adacore.com>
2494
2495         * make.adb: Add comment.
2496         Minor reformatting
2497
2498 2009-04-10  Nicolas Setton  <setton@adacore.com>
2499
2500         * s-osprim-darwin.adb: New file.
2501
2502         * s-osinte-darwin.adb, s-osinte-darwin.ads: Fix binding to timespec.
2503
2504 2009-04-10  Thomas Quinot  <quinot@adacore.com>
2505
2506         * g-socket.ads: Add comment clarifying alignment requirement for Fd_Set
2507
2508 2009-04-09  Nick Clifton  <nickc@redhat.com>
2509
2510         * adadecode.h: Change copyright header to refer to version
2511         3 of the GNU General Public License with version 3.1 of the
2512         GCC Runtime Library Exception and to point readers at the
2513         COPYING3 and COPYING3.RUNTIME files and the FSF's license web
2514         page.
2515         * 9drpc.adb: Likewise.
2516         * a-assert.adb: Likewise.
2517         * a-astaco.adb: Likewise.
2518         * a-calari.adb: Likewise.
2519         * a-calcon.adb: Likewise.
2520         * a-calcon.ads: Likewise.
2521         * a-caldel.ads: Likewise.
2522         * a-calend-vms.adb: Likewise.
2523         * a-calend-vms.ads: Likewise.
2524         * a-calend.adb: Likewise.
2525         * a-calend.ads: Likewise.
2526         * a-calfor.adb: Likewise.
2527         * a-catizo.adb: Likewise.
2528         * a-cdlili.adb: Likewise.
2529         * a-cdlili.ads: Likewise.
2530         * a-cgaaso.adb: Likewise.
2531         * a-cgaaso.ads: Likewise.
2532         * a-cgarso.adb: Likewise.
2533         * a-cgcaso.adb: Likewise.
2534         * a-chacon.adb: Likewise.
2535         * a-chacon.ads: Likewise.
2536         * a-chahan.adb: Likewise.
2537         * a-chahan.ads: Likewise.
2538         * a-chlat9.ads: Likewise.
2539         * a-chtgke.adb: Likewise.
2540         * a-chtgke.ads: Likewise.
2541         * a-chtgop.adb: Likewise.
2542         * a-chtgop.ads: Likewise.
2543         * a-chzla1.ads: Likewise.
2544         * a-chzla9.ads: Likewise.
2545         * a-cidlli.adb: Likewise.
2546         * a-cidlli.ads: Likewise.
2547         * a-cihama.adb: Likewise.
2548         * a-cihama.ads: Likewise.
2549         * a-cihase.adb: Likewise.
2550         * a-cihase.ads: Likewise.
2551         * a-ciorma.adb: Likewise.
2552         * a-ciorma.ads: Likewise.
2553         * a-ciormu.adb: Likewise.
2554         * a-ciormu.ads: Likewise.
2555         * a-ciorse.adb: Likewise.
2556         * a-ciorse.ads: Likewise.
2557         * a-clrefi.adb: Likewise.
2558         * a-clrefi.ads: Likewise.
2559         * a-cohama.adb: Likewise.
2560         * a-cohama.ads: Likewise.
2561         * a-cohase.adb: Likewise.
2562         * a-cohase.ads: Likewise.
2563         * a-cohata.ads: Likewise.
2564         * a-coinve.adb: Likewise.
2565         * a-coinve.ads: Likewise.
2566         * a-colien.adb: Likewise.
2567         * a-colien.ads: Likewise.
2568         * a-colire.adb: Likewise.
2569         * a-colire.ads: Likewise.
2570         * a-comlin.adb: Likewise.
2571         * a-comlin.ads: Likewise.
2572         * a-convec.adb: Likewise.
2573         * a-convec.ads: Likewise.
2574         * a-coorma.adb: Likewise.
2575         * a-coorma.ads: Likewise.
2576         * a-coormu.adb: Likewise.
2577         * a-coormu.ads: Likewise.
2578         * a-coorse.adb: Likewise.
2579         * a-coorse.ads: Likewise.
2580         * a-coprnu.adb: Likewise.
2581         * a-coprnu.ads: Likewise.
2582         * a-crbltr.ads: Likewise.
2583         * a-crbtgk.adb: Likewise.
2584         * a-crbtgk.ads: Likewise.
2585         * a-crbtgo.adb: Likewise.
2586         * a-crbtgo.ads: Likewise.
2587         * a-crdlli.adb: Likewise.
2588         * a-crdlli.ads: Likewise.
2589         * a-cwila1.ads: Likewise.
2590         * a-cwila9.ads: Likewise.
2591         * a-decima.adb: Likewise.
2592         * a-decima.ads: Likewise.
2593         * a-diocst.adb: Likewise.
2594         * a-diocst.ads: Likewise.
2595         * a-direct.adb: Likewise.
2596         * a-direct.ads: Likewise.
2597         * a-direio.adb: Likewise.
2598         * a-direio.ads: Likewise.
2599         * a-dirval-mingw.adb: Likewise.
2600         * a-dirval-vms.adb: Likewise.
2601         * a-dirval.adb: Likewise.
2602         * a-dirval.ads: Likewise.
2603         * a-dynpri.adb: Likewise.
2604         * a-einuoc.adb: Likewise.
2605         * a-einuoc.ads: Likewise.
2606         * a-elchha.adb: Likewise.
2607         * a-elchha.ads: Likewise.
2608         * a-envvar.adb: Likewise.
2609         * a-excach.adb: Likewise.
2610         * a-except-2005.adb: Likewise.
2611         * a-except-2005.ads: Likewise.
2612         * a-except.adb: Likewise.
2613         * a-except.ads: Likewise.
2614         * a-excpol-abort.adb: Likewise.
2615         * a-excpol.adb: Likewise.
2616         * a-exctra.adb: Likewise.
2617         * a-exctra.ads: Likewise.
2618         * a-exetim-mingw.adb: Likewise.
2619         * a-exetim-mingw.ads: Likewise.
2620         * a-exexda.adb: Likewise.
2621         * a-exexpr-gcc.adb: Likewise.
2622         * a-exexpr.adb: Likewise.
2623         * a-exextr.adb: Likewise.
2624         * a-exstat.adb: Likewise.
2625         * a-filico.adb: Likewise.
2626         * a-filico.ads: Likewise.
2627         * a-finali.adb: Likewise.
2628         * a-finali.ads: Likewise.
2629         * a-interr.ads: Likewise.
2630         * a-intnam-aix.ads: Likewise.
2631         * a-intnam-darwin.ads: Likewise.
2632         * a-intnam-dummy.ads: Likewise.
2633         * a-intnam-freebsd.ads: Likewise.
2634         * a-intnam-hpux.ads: Likewise.
2635         * a-intnam-irix.ads: Likewise.
2636         * a-intnam-linux.ads: Likewise.
2637         * a-intnam-lynxos.ads: Likewise.
2638         * a-intnam-mingw.ads: Likewise.
2639         * a-intnam-rtems.ads: Likewise.
2640         * a-intnam-solaris.ads: Likewise.
2641         * a-intnam-tru64.ads: Likewise.
2642         * a-intnam-vms.ads: Likewise.
2643         * a-intnam-vxworks.ads: Likewise.
2644         * a-intsig.adb: Likewise.
2645         * a-intsig.ads: Likewise.
2646         * a-ngcefu.adb: Likewise.
2647         * a-ngcoar.adb: Likewise.
2648         * a-ngcoty.adb: Likewise.
2649         * a-ngcoty.ads: Likewise.
2650         * a-ngelfu.adb: Likewise.
2651         * a-ngrear.adb: Likewise.
2652         * a-ngrear.ads: Likewise.
2653         * a-nudira.adb: Likewise.
2654         * a-nudira.ads: Likewise.
2655         * a-nuflra.adb: Likewise.
2656         * a-nuflra.ads: Likewise.
2657         * a-numaux-darwin.adb: Likewise.
2658         * a-numaux-darwin.ads: Likewise.
2659         * a-numaux-libc-x86.ads: Likewise.
2660         * a-numaux-vxworks.ads: Likewise.
2661         * a-numaux-x86.adb: Likewise.
2662         * a-numaux-x86.ads: Likewise.
2663         * a-numaux.ads: Likewise.
2664         * a-rbtgso.adb: Likewise.
2665         * a-rbtgso.ads: Likewise.
2666         * a-reatim.ads: Likewise.
2667         * a-retide.adb: Likewise.
2668         * a-retide.ads: Likewise.
2669         * a-rttiev.adb: Likewise.
2670         * a-rttiev.ads: Likewise.
2671         * a-secain.adb: Likewise.
2672         * a-secain.ads: Likewise.
2673         * a-sequio.adb: Likewise.
2674         * a-sequio.ads: Likewise.
2675         * a-shcain.adb: Likewise.
2676         * a-shcain.ads: Likewise.
2677         * a-siocst.adb: Likewise.
2678         * a-siocst.ads: Likewise.
2679         * a-slcain.adb: Likewise.
2680         * a-slcain.ads: Likewise.
2681         * a-ssicst.adb: Likewise.
2682         * a-ssicst.ads: Likewise.
2683         * a-stboha.adb: Likewise.
2684         * a-stmaco.ads: Likewise.
2685         * a-storio.adb: Likewise.
2686         * a-strbou.adb: Likewise.
2687         * a-strbou.ads: Likewise.
2688         * a-stream.ads: Likewise.
2689         * a-strfix.adb: Likewise.
2690         * a-strhas.adb: Likewise.
2691         * a-strmap.adb: Likewise.
2692         * a-strmap.ads: Likewise.
2693         * a-strsea.adb: Likewise.
2694         * a-strsea.ads: Likewise.
2695         * a-strsup.adb: Likewise.
2696         * a-strsup.ads: Likewise.
2697         * a-strunb.adb: Likewise.
2698         * a-strunb.ads: Likewise.
2699         * a-ststio.adb: Likewise.
2700         * a-ststio.ads: Likewise.
2701         * a-stunau.adb: Likewise.
2702         * a-stunau.ads: Likewise.
2703         * a-stunha.adb: Likewise.
2704         * a-stwibo.adb: Likewise.
2705         * a-stwibo.ads: Likewise.
2706         * a-stwifi.adb: Likewise.
2707         * a-stwiha.adb: Likewise.
2708         * a-stwima.adb: Likewise.
2709         * a-stwima.ads: Likewise.
2710         * a-stwise.adb: Likewise.
2711         * a-stwise.ads: Likewise.
2712         * a-stwisu.adb: Likewise.
2713         * a-stwisu.ads: Likewise.
2714         * a-stwiun.adb: Likewise.
2715         * a-stwiun.ads: Likewise.
2716         * a-stzbou.adb: Likewise.
2717         * a-stzbou.ads: Likewise.
2718         * a-stzfix.adb: Likewise.
2719         * a-stzhas.adb: Likewise.
2720         * a-stzmap.adb: Likewise.
2721         * a-stzmap.ads: Likewise.
2722         * a-stzsea.adb: Likewise.
2723         * a-stzsea.ads: Likewise.
2724         * a-stzsup.adb: Likewise.
2725         * a-stzsup.ads: Likewise.
2726         * a-stzunb.adb: Likewise.
2727         * a-stzunb.ads: Likewise.
2728         * a-suteio.adb: Likewise.
2729         * a-suteio.ads: Likewise.
2730         * a-swbwha.adb: Likewise.
2731         * a-swmwco.ads: Likewise.
2732         * a-swunau.adb: Likewise.
2733         * a-swunau.ads: Likewise.
2734         * a-swuwha.adb: Likewise.
2735         * a-swuwti.adb: Likewise.
2736         * a-swuwti.ads: Likewise.
2737         * a-sytaco.adb: Likewise.
2738         * a-sytaco.ads: Likewise.
2739         * a-szbzha.adb: Likewise.
2740         * a-szmzco.ads: Likewise.
2741         * a-szunau.adb: Likewise.
2742         * a-szunau.ads: Likewise.
2743         * a-szuzha.adb: Likewise.
2744         * a-szuzti.adb: Likewise.
2745         * a-szuzti.ads: Likewise.
2746         * a-tags.adb: Likewise.
2747         * a-tags.ads: Likewise.
2748         * a-tasatt.ads: Likewise.
2749         * a-taside.adb: Likewise.
2750         * a-taside.ads: Likewise.
2751         * a-taster.adb: Likewise.
2752         * a-teioed.adb: Likewise.
2753         * a-teioed.ads: Likewise.
2754         * a-textio.adb: Likewise.
2755         * a-textio.ads: Likewise.
2756         * a-tiboio.adb: Likewise.
2757         * a-ticoau.adb: Likewise.
2758         * a-ticoau.ads: Likewise.
2759         * a-ticoio.adb: Likewise.
2760         * a-ticoio.ads: Likewise.
2761         * a-tideau.adb: Likewise.
2762         * a-tideau.ads: Likewise.
2763         * a-tideio.adb: Likewise.
2764         * a-tideio.ads: Likewise.
2765         * a-tienau.adb: Likewise.
2766         * a-tienau.ads: Likewise.
2767         * a-tienio.adb: Likewise.
2768         * a-tienio.ads: Likewise.
2769         * a-tifiio.adb: Likewise.
2770         * a-tifiio.ads: Likewise.
2771         * a-tiflau.adb: Likewise.
2772         * a-tiflau.ads: Likewise.
2773         * a-tiflio.adb: Likewise.
2774         * a-tiflio.ads: Likewise.
2775         * a-tigeau.adb: Likewise.
2776         * a-tigeau.ads: Likewise.
2777         * a-tiinau.adb: Likewise.
2778         * a-tiinau.ads: Likewise.
2779         * a-tiinio.adb: Likewise.
2780         * a-tiinio.ads: Likewise.
2781         * a-timoau.adb: Likewise.
2782         * a-timoau.ads: Likewise.
2783         * a-timoio.adb: Likewise.
2784         * a-timoio.ads: Likewise.
2785         * a-tiocst.adb: Likewise.
2786         * a-tiocst.ads: Likewise.
2787         * a-titest.adb: Likewise.
2788         * a-wichun.adb: Likewise.
2789         * a-wichun.ads: Likewise.
2790         * a-witeio.adb: Likewise.
2791         * a-witeio.ads: Likewise.
2792         * a-wtcoau.adb: Likewise.
2793         * a-wtcoau.ads: Likewise.
2794         * a-wtcoio.adb: Likewise.
2795         * a-wtcstr.adb: Likewise.
2796         * a-wtcstr.ads: Likewise.
2797         * a-wtdeau.adb: Likewise.
2798         * a-wtdeau.ads: Likewise.
2799         * a-wtdeio.adb: Likewise.
2800         * a-wtdeio.ads: Likewise.
2801         * a-wtedit.adb: Likewise.
2802         * a-wtedit.ads: Likewise.
2803         * a-wtenau.adb: Likewise.
2804         * a-wtenau.ads: Likewise.
2805         * a-wtenio.adb: Likewise.
2806         * a-wtenio.ads: Likewise.
2807         * a-wtfiio.adb: Likewise.
2808         * a-wtfiio.ads: Likewise.
2809         * a-wtflau.adb: Likewise.
2810         * a-wtflau.ads: Likewise.
2811         * a-wtflio.adb: Likewise.
2812         * a-wtflio.ads: Likewise.
2813         * a-wtgeau.adb: Likewise.
2814         * a-wtgeau.ads: Likewise.
2815         * a-wtinau.adb: Likewise.
2816         * a-wtinau.ads: Likewise.
2817         * a-wtinio.adb: Likewise.
2818         * a-wtmoau.adb: Likewise.
2819         * a-wtmoau.ads: Likewise.
2820         * a-wtmoio.adb: Likewise.
2821         * a-wtmoio.ads: Likewise.
2822         * a-wttest.adb: Likewise.
2823         * a-wwboio.adb: Likewise.
2824         * a-zchuni.adb: Likewise.
2825         * a-zchuni.ads: Likewise.
2826         * a-ztcoau.adb: Likewise.
2827         * a-ztcoau.ads: Likewise.
2828         * a-ztcoio.adb: Likewise.
2829         * a-ztcstr.adb: Likewise.
2830         * a-ztcstr.ads: Likewise.
2831         * a-ztdeau.adb: Likewise.
2832         * a-ztdeau.ads: Likewise.
2833         * a-ztdeio.adb: Likewise.
2834         * a-ztdeio.ads: Likewise.
2835         * a-ztedit.adb: Likewise.
2836         * a-ztedit.ads: Likewise.
2837         * a-ztenau.adb: Likewise.
2838         * a-ztenau.ads: Likewise.
2839         * a-ztenio.adb: Likewise.
2840         * a-ztenio.ads: Likewise.
2841         * a-ztexio.adb: Likewise.
2842         * a-ztexio.ads: Likewise.
2843         * a-ztfiio.adb: Likewise.
2844         * a-ztfiio.ads: Likewise.
2845         * a-ztflau.adb: Likewise.
2846         * a-ztflau.ads: Likewise.
2847         * a-ztflio.adb: Likewise.
2848         * a-ztflio.ads: Likewise.
2849         * a-ztgeau.adb: Likewise.
2850         * a-ztgeau.ads: Likewise.
2851         * a-ztinau.adb: Likewise.
2852         * a-ztinau.ads: Likewise.
2853         * a-ztinio.adb: Likewise.
2854         * a-ztmoau.adb: Likewise.
2855         * a-ztmoau.ads: Likewise.
2856         * a-ztmoio.adb: Likewise.
2857         * a-ztmoio.ads: Likewise.
2858         * a-zttest.adb: Likewise.
2859         * a-zzboio.adb: Likewise.
2860         * adadecode.c: Likewise.
2861         * adaint.c: Likewise.
2862         * adaint.h: Likewise.
2863         * alloc.ads: Likewise.
2864         * argv.c: Likewise.
2865         * arit64.c: Likewise.
2866         * atree.adb: Likewise.
2867         * atree.ads: Likewise.
2868         * aux-io.c: Likewise.
2869         * cal.c: Likewise.
2870         * casing.adb: Likewise.
2871         * casing.ads: Likewise.
2872         * cio.c: Likewise.
2873         * csets.adb: Likewise.
2874         * csets.ads: Likewise.
2875         * cstreams.c: Likewise.
2876         * ctrl_c.c: Likewise.
2877         * debug.adb: Likewise.
2878         * debug.ads: Likewise.
2879         * dec.ads: Likewise.
2880         * einfo.adb: Likewise.
2881         * einfo.ads: Likewise.
2882         * elists.adb: Likewise.
2883         * elists.ads: Likewise.
2884         * env.c: Likewise.
2885         * env.h: Likewise.
2886         * errno.c: Likewise.
2887         * exit.c: Likewise.
2888         * fe.h: Likewise.
2889         * final.c: Likewise.
2890         * fname.adb: Likewise.
2891         * fname.ads: Likewise.
2892         * g-allein.ads: Likewise.
2893         * g-alleve.adb: Likewise.
2894         * g-alleve.ads: Likewise.
2895         * g-altcon.adb: Likewise.
2896         * g-altcon.ads: Likewise.
2897         * g-altive.ads: Likewise.
2898         * g-alveop.adb: Likewise.
2899         * g-alveop.ads: Likewise.
2900         * g-alvety.ads: Likewise.
2901         * g-alvevi.ads: Likewise.
2902         * g-arrspl.adb: Likewise.
2903         * g-arrspl.ads: Likewise.
2904         * g-calend.ads: Likewise.
2905         * g-comlin.adb: Likewise.
2906         * g-debpoo.adb: Likewise.
2907         * g-debpoo.ads: Likewise.
2908         * g-eacodu-vms.adb: Likewise.
2909         * g-eacodu.adb: Likewise.
2910         * g-excact.adb: Likewise.
2911         * g-excact.ads: Likewise.
2912         * g-locfil.adb: Likewise.
2913         * g-os_lib.ads: Likewise.
2914         * g-rannum.adb: Likewise.
2915         * g-rannum.ads: Likewise.
2916         * g-regist.adb: Likewise.
2917         * g-regist.ads: Likewise.
2918         * g-signal.adb: Likewise.
2919         * g-signal.ads: Likewise.
2920         * g-soccon.ads: Likewise.
2921         * g-string.adb: Likewise.
2922         * g-string.ads: Likewise.
2923         * g-strspl.ads: Likewise.
2924         * g-timsta.adb: Likewise.
2925         * g-timsta.ads: Likewise.
2926         * g-trasym-vms-alpha.adb: Likewise.
2927         * g-trasym-vms-ia64.adb: Likewise.
2928         * g-utf_32.adb: Likewise.
2929         * g-utf_32.ads: Likewise.
2930         * g-wistsp.ads: Likewise.
2931         * g-zstspl.ads: Likewise.
2932         * gmem.c: Likewise.
2933         * gnatvsn.adb: Likewise.
2934         * gnatvsn.ads: Likewise.
2935         * gsocket.h: Likewise.
2936         * hostparm.ads: Likewise.
2937         * i-c.adb: Likewise.
2938         * i-cexten.ads: Likewise.
2939         * i-cobol.adb: Likewise.
2940         * i-cobol.ads: Likewise.
2941         * i-cpoint.adb: Likewise.
2942         * i-cpoint.ads: Likewise.
2943         * i-cpp.adb: Likewise.
2944         * i-cpp.ads: Likewise.
2945         * i-cstrea-vms.adb: Likewise.
2946         * i-cstrea.adb: Likewise.
2947         * i-cstrea.ads: Likewise.
2948         * i-cstrin.adb: Likewise.
2949         * i-cstrin.ads: Likewise.
2950         * i-forbla-darwin.adb: Likewise.
2951         * i-forbla-unimplemented.ads: Likewise.
2952         * i-forbla.adb: Likewise.
2953         * i-forbla.ads: Likewise.
2954         * i-forlap.ads: Likewise.
2955         * i-fortra.adb: Likewise.
2956         * i-pacdec.adb: Likewise.
2957         * i-pacdec.ads: Likewise.
2958         * i-vxwoio.adb: Likewise.
2959         * i-vxwoio.ads: Likewise.
2960         * indepsw-aix.adb: Likewise.
2961         * indepsw-gnu.adb: Likewise.
2962         * indepsw-mingw.adb: Likewise.
2963         * indepsw.adb: Likewise.
2964         * indepsw.ads: Likewise.
2965         * init.c: Likewise.
2966         * initialize.c: Likewise.
2967         * interfac.ads: Likewise.
2968         * krunch.adb: Likewise.
2969         * krunch.ads: Likewise.
2970         * lib-list.adb: Likewise.
2971         * lib-sort.adb: Likewise.
2972         * lib.adb: Likewise.
2973         * lib.ads: Likewise.
2974         * link.c: Likewise.
2975         * math_lib.adb: Likewise.
2976         * memtrack.adb: Likewise.
2977         * mingw32.h: Likewise.
2978         * mkdir.c: Likewise.
2979         * namet-sp.adb: Likewise.
2980         * namet-sp.ads: Likewise.
2981         * namet.adb: Likewise.
2982         * namet.ads: Likewise.
2983         * nlists.adb: Likewise.
2984         * nlists.ads: Likewise.
2985         * opt.adb: Likewise.
2986         * opt.ads: Likewise.
2987         * output.adb: Likewise.
2988         * output.ads: Likewise.
2989         * raise-gcc.c: Likewise.
2990         * raise.c: Likewise.
2991         * raise.h: Likewise.
2992         * repinfo.adb: Likewise.
2993         * repinfo.ads: Likewise.
2994         * repinfo.h: Likewise.
2995         * rident.ads: Likewise.
2996         * s-addima.adb: Likewise.
2997         * s-addima.ads: Likewise.
2998         * s-addope.adb: Likewise.
2999         * s-addope.ads: Likewise.
3000         * s-arit64.adb: Likewise.
3001         * s-arit64.ads: Likewise.
3002         * s-assert.adb: Likewise.
3003         * s-assert.ads: Likewise.
3004         * s-asthan-vms-alpha.adb: Likewise.
3005         * s-asthan.adb: Likewise.
3006         * s-asthan.ads: Likewise.
3007         * s-atacco.adb: Likewise.
3008         * s-atacco.ads: Likewise.
3009         * s-auxdec-empty.adb: Likewise.
3010         * s-auxdec-empty.ads: Likewise.
3011         * s-auxdec-vms_64.ads: Likewise.
3012         * s-auxdec.adb: Likewise.
3013         * s-auxdec.ads: Likewise.
3014         * s-bitops.adb: Likewise.
3015         * s-bitops.ads: Likewise.
3016         * s-boarop.ads: Likewise.
3017         * s-carsi8.adb: Likewise.
3018         * s-carsi8.ads: Likewise.
3019         * s-carun8.adb: Likewise.
3020         * s-carun8.ads: Likewise.
3021         * s-casi16.adb: Likewise.
3022         * s-casi16.ads: Likewise.
3023         * s-casi32.adb: Likewise.
3024         * s-casi32.ads: Likewise.
3025         * s-casi64.adb: Likewise.
3026         * s-casi64.ads: Likewise.
3027         * s-casuti.ads: Likewise.
3028         * s-caun16.adb: Likewise.
3029         * s-caun16.ads: Likewise.
3030         * s-caun32.adb: Likewise.
3031         * s-caun32.ads: Likewise.
3032         * s-caun64.adb: Likewise.
3033         * s-caun64.ads: Likewise.
3034         * s-chepoo.ads: Likewise.
3035         * s-crc32.adb: Likewise.
3036         * s-crc32.ads: Likewise.
3037         * s-crtl.ads: Likewise.
3038         * s-direio.adb: Likewise.
3039         * s-direio.ads: Likewise.
3040         * s-dsaser.ads: Likewise.
3041         * s-except.adb: Likewise.
3042         * s-except.ads: Likewise.
3043         * s-exctab.adb: Likewise.
3044         * s-exctab.ads: Likewise.
3045         * s-exnint.adb: Likewise.
3046         * s-exnint.ads: Likewise.
3047         * s-exnllf.adb: Likewise.
3048         * s-exnllf.ads: Likewise.
3049         * s-exnlli.adb: Likewise.
3050         * s-exnlli.ads: Likewise.
3051         * s-expint.adb: Likewise.
3052         * s-expint.ads: Likewise.
3053         * s-explli.adb: Likewise.
3054         * s-explli.ads: Likewise.
3055         * s-expllu.adb: Likewise.
3056         * s-expllu.ads: Likewise.
3057         * s-expmod.adb: Likewise.
3058         * s-expmod.ads: Likewise.
3059         * s-expuns.adb: Likewise.
3060         * s-expuns.ads: Likewise.
3061         * s-fatflt.ads: Likewise.
3062         * s-fatgen.adb: Likewise.
3063         * s-fatgen.ads: Likewise.
3064         * s-fatlfl.ads: Likewise.
3065         * s-fatllf.ads: Likewise.
3066         * s-fatsfl.ads: Likewise.
3067         * s-ficobl.ads: Likewise.
3068         * s-fileio.adb: Likewise.
3069         * s-fileio.ads: Likewise.
3070         * s-filofl.ads: Likewise.
3071         * s-finimp.adb: Likewise.
3072         * s-finimp.ads: Likewise.
3073         * s-finroo.adb: Likewise.
3074         * s-finroo.ads: Likewise.
3075         * s-fishfl.ads: Likewise.
3076         * s-fore.adb: Likewise.
3077         * s-fore.ads: Likewise.
3078         * s-fvadfl.ads: Likewise.
3079         * s-fvaffl.ads: Likewise.
3080         * s-fvagfl.ads: Likewise.
3081         * s-gearop.adb: Likewise.
3082         * s-gearop.ads: Likewise.
3083         * s-gecobl.adb: Likewise.
3084         * s-gecobl.ads: Likewise.
3085         * s-gecola.adb: Likewise.
3086         * s-gecola.ads: Likewise.
3087         * s-gerebl.adb: Likewise.
3088         * s-gerebl.ads: Likewise.
3089         * s-gerela.adb: Likewise.
3090         * s-gerela.ads: Likewise.
3091         * s-geveop.adb: Likewise.
3092         * s-geveop.ads: Likewise.
3093         * s-gloloc.adb: Likewise.
3094         * s-gloloc.ads: Likewise.
3095         * s-hibaen.ads: Likewise.
3096         * s-imenne.adb: Likewise.
3097         * s-imenne.ads: Likewise.
3098         * s-imgbiu.adb: Likewise.
3099         * s-imgbiu.ads: Likewise.
3100         * s-imgboo.adb: Likewise.
3101         * s-imgboo.ads: Likewise.
3102         * s-imgcha.adb: Likewise.
3103         * s-imgcha.ads: Likewise.
3104         * s-imgdec.adb: Likewise.
3105         * s-imgdec.ads: Likewise.
3106         * s-imgenu.adb: Likewise.
3107         * s-imgenu.ads: Likewise.
3108         * s-imgint.adb: Likewise.
3109         * s-imgint.ads: Likewise.
3110         * s-imgllb.adb: Likewise.
3111         * s-imgllb.ads: Likewise.
3112         * s-imglld.adb: Likewise.
3113         * s-imglld.ads: Likewise.
3114         * s-imglli.adb: Likewise.
3115         * s-imglli.ads: Likewise.
3116         * s-imgllu.adb: Likewise.
3117         * s-imgllu.ads: Likewise.
3118         * s-imgllw.adb: Likewise.
3119         * s-imgllw.ads: Likewise.
3120         * s-imgrea.adb: Likewise.
3121         * s-imgrea.ads: Likewise.
3122         * s-imguns.adb: Likewise.
3123         * s-imguns.ads: Likewise.
3124         * s-imgwch.adb: Likewise.
3125         * s-imgwch.ads: Likewise.
3126         * s-imgwiu.adb: Likewise.
3127         * s-imgwiu.ads: Likewise.
3128         * s-inmaop-dummy.adb: Likewise.
3129         * s-inmaop-vms.adb: Likewise.
3130         * s-inmaop.ads: Likewise.
3131         * s-interr-hwint.adb: Likewise.
3132         * s-interr-sigaction.adb: Likewise.
3133         * s-interr-vms.adb: Likewise.
3134         * s-interr.adb: Likewise.
3135         * s-interr.ads: Likewise.
3136         * s-intman-dummy.adb: Likewise.
3137         * s-intman-mingw.adb: Likewise.
3138         * s-intman-posix.adb: Likewise.
3139         * s-intman-solaris.adb: Likewise.
3140         * s-intman-vms.adb: Likewise.
3141         * s-intman-vms.ads: Likewise.
3142         * s-intman-vxworks.adb: Likewise.
3143         * s-intman-vxworks.ads: Likewise.
3144         * s-intman.ads: Likewise.
3145         * s-io.adb: Likewise.
3146         * s-io.ads: Likewise.
3147         * s-linux-alpha.ads: Likewise.
3148         * s-linux-hppa.ads: Likewise.
3149         * s-linux.ads: Likewise.
3150         * s-maccod.ads: Likewise.
3151         * s-mantis.adb: Likewise.
3152         * s-mantis.ads: Likewise.
3153         * s-mastop-irix.adb: Likewise.
3154         * s-mastop.adb: Likewise.
3155         * s-mastop.ads: Likewise.
3156         * s-memcop.ads: Likewise.
3157         * s-memory-mingw.adb: Likewise.
3158         * s-memory.adb: Likewise.
3159         * s-memory.ads: Likewise.
3160         * s-os_lib.ads: Likewise.
3161         * s-oscons-tmplt.c: Likewise.
3162         * s-osinte-aix.adb: Likewise.
3163         * s-osinte-darwin.adb: Likewise.
3164         * s-osinte-freebsd.adb: Likewise.
3165         * s-osinte-irix.adb: Likewise.
3166         * s-osinte-lynxos-3.adb: Likewise.
3167         * s-osinte-rtems.ads: Likewise.
3168         * s-osinte-tru64.adb: Likewise.
3169         * s-osinte-vxworks-kernel.adb: Likewise.
3170         * s-osinte-vxworks.adb: Likewise.
3171         * s-osprim-mingw.adb: Likewise.
3172         * s-osprim-posix.adb: Likewise.
3173         * s-osprim-solaris.adb: Likewise.
3174         * s-osprim-unix.adb: Likewise.
3175         * s-osprim-vms.adb: Likewise.
3176         * s-osprim-vms.ads: Likewise.
3177         * s-osprim-vxworks.adb: Likewise.
3178         * s-osprim.ads: Likewise.
3179         * s-pack03.adb: Likewise.
3180         * s-pack03.ads: Likewise.
3181         * s-pack05.adb: Likewise.
3182         * s-pack05.ads: Likewise.
3183         * s-pack06.adb: Likewise.
3184         * s-pack06.ads: Likewise.
3185         * s-pack07.adb: Likewise.
3186         * s-pack07.ads: Likewise.
3187         * s-pack09.adb: Likewise.
3188         * s-pack09.ads: Likewise.
3189         * s-pack10.adb: Likewise.
3190         * s-pack10.ads: Likewise.
3191         * s-pack11.adb: Likewise.
3192         * s-pack11.ads: Likewise.
3193         * s-pack12.adb: Likewise.
3194         * s-pack12.ads: Likewise.
3195         * s-pack13.adb: Likewise.
3196         * s-pack13.ads: Likewise.
3197         * s-pack14.adb: Likewise.
3198         * s-pack14.ads: Likewise.
3199         * s-pack15.adb: Likewise.
3200         * s-pack15.ads: Likewise.
3201         * s-pack17.adb: Likewise.
3202         * s-pack17.ads: Likewise.
3203         * s-pack18.adb: Likewise.
3204         * s-pack18.ads: Likewise.
3205         * s-pack19.adb: Likewise.
3206         * s-pack19.ads: Likewise.
3207         * s-pack20.adb: Likewise.
3208         * s-pack20.ads: Likewise.
3209         * s-pack21.adb: Likewise.
3210         * s-pack21.ads: Likewise.
3211         * s-pack22.adb: Likewise.
3212         * s-pack22.ads: Likewise.
3213         * s-pack23.adb: Likewise.
3214         * s-pack23.ads: Likewise.
3215         * s-pack24.adb: Likewise.
3216         * s-pack24.ads: Likewise.
3217         * s-pack25.adb: Likewise.
3218         * s-pack25.ads: Likewise.
3219         * s-pack26.adb: Likewise.
3220         * s-pack26.ads: Likewise.
3221         * s-pack27.adb: Likewise.
3222         * s-pack27.ads: Likewise.
3223         * s-pack28.adb: Likewise.
3224         * s-pack28.ads: Likewise.
3225         * s-pack29.adb: Likewise.
3226         * s-pack29.ads: Likewise.
3227         * s-pack30.adb: Likewise.
3228         * s-pack30.ads: Likewise.
3229         * s-pack31.adb: Likewise.
3230         * s-pack31.ads: Likewise.
3231         * s-pack33.adb: Likewise.
3232         * s-pack33.ads: Likewise.
3233         * s-pack34.adb: Likewise.
3234         * s-pack34.ads: Likewise.
3235         * s-pack35.adb: Likewise.
3236         * s-pack35.ads: Likewise.
3237         * s-pack36.adb: Likewise.
3238         * s-pack36.ads: Likewise.
3239         * s-pack37.adb: Likewise.
3240         * s-pack37.ads: Likewise.
3241         * s-pack38.adb: Likewise.
3242         * s-pack38.ads: Likewise.
3243         * s-pack39.adb: Likewise.
3244         * s-pack39.ads: Likewise.
3245         * s-pack40.adb: Likewise.
3246         * s-pack40.ads: Likewise.
3247         * s-pack41.adb: Likewise.
3248         * s-pack41.ads: Likewise.
3249         * s-pack42.adb: Likewise.
3250         * s-pack42.ads: Likewise.
3251         * s-pack43.adb: Likewise.
3252         * s-pack43.ads: Likewise.
3253         * s-pack44.adb: Likewise.
3254         * s-pack44.ads: Likewise.
3255         * s-pack45.adb: Likewise.
3256         * s-pack45.ads: Likewise.
3257         * s-pack46.adb: Likewise.
3258         * s-pack46.ads: Likewise.
3259         * s-pack47.adb: Likewise.
3260         * s-pack47.ads: Likewise.
3261         * s-pack48.adb: Likewise.
3262         * s-pack48.ads: Likewise.
3263         * s-pack49.adb: Likewise.
3264         * s-pack49.ads: Likewise.
3265         * s-pack50.adb: Likewise.
3266         * s-pack50.ads: Likewise.
3267         * s-pack51.adb: Likewise.
3268         * s-pack51.ads: Likewise.
3269         * s-pack52.adb: Likewise.
3270         * s-pack52.ads: Likewise.
3271         * s-pack53.adb: Likewise.
3272         * s-pack53.ads: Likewise.
3273         * s-pack54.adb: Likewise.
3274         * s-pack54.ads: Likewise.
3275         * s-pack55.adb: Likewise.
3276         * s-pack55.ads: Likewise.
3277         * s-pack56.adb: Likewise.
3278         * s-pack56.ads: Likewise.
3279         * s-pack57.adb: Likewise.
3280         * s-pack57.ads: Likewise.
3281         * s-pack58.adb: Likewise.
3282         * s-pack58.ads: Likewise.
3283         * s-pack59.adb: Likewise.
3284         * s-pack59.ads: Likewise.
3285         * s-pack60.adb: Likewise.
3286         * s-pack60.ads: Likewise.
3287         * s-pack61.adb: Likewise.
3288         * s-pack61.ads: Likewise.
3289         * s-pack62.adb: Likewise.
3290         * s-pack62.ads: Likewise.
3291         * s-pack63.adb: Likewise.
3292         * s-pack63.ads: Likewise.
3293         * s-parame-ae653.ads: Likewise.
3294         * s-parame-hpux.ads: Likewise.
3295         * s-parame-rtems.adb: Likewise.
3296         * s-parame-vms-alpha.ads: Likewise.
3297         * s-parame-vms-ia64.ads: Likewise.
3298         * s-parame-vms-restrict.ads: Likewise.
3299         * s-parame-vxworks.adb: Likewise.
3300         * s-parame-vxworks.ads: Likewise.
3301         * s-parame.adb: Likewise.
3302         * s-parame.ads: Likewise.
3303         * s-parint.adb: Likewise.
3304         * s-parint.ads: Likewise.
3305         * s-pooglo.adb: Likewise.
3306         * s-pooglo.ads: Likewise.
3307         * s-pooloc.adb: Likewise.
3308         * s-pooloc.ads: Likewise.
3309         * s-poosiz.adb: Likewise.
3310         * s-poosiz.ads: Likewise.
3311         * s-powtab.ads: Likewise.
3312         * s-proinf-irix-athread.adb: Likewise.
3313         * s-proinf-irix-athread.ads: Likewise.
3314         * s-proinf.adb: Likewise.
3315         * s-proinf.ads: Likewise.
3316         * s-purexc.ads: Likewise.
3317         * s-rannum.adb: Likewise.
3318         * s-rannum.ads: Likewise.
3319         * s-restri.adb: Likewise.
3320         * s-restri.ads: Likewise.
3321         * s-rident.ads: Likewise.
3322         * s-rpc.adb: Likewise.
3323         * s-rpc.ads: Likewise.
3324         * s-scaval.adb: Likewise.
3325         * s-scaval.ads: Likewise.
3326         * s-secsta.adb: Likewise.
3327         * s-secsta.ads: Likewise.
3328         * s-sequio.adb: Likewise.
3329         * s-sequio.ads: Likewise.
3330         * s-shasto.adb: Likewise.
3331         * s-shasto.ads: Likewise.
3332         * s-soflin.adb: Likewise.
3333         * s-soflin.ads: Likewise.
3334         * s-solita.adb: Likewise.
3335         * s-solita.ads: Likewise.
3336         * s-sopco3.adb: Likewise.
3337         * s-sopco3.ads: Likewise.
3338         * s-sopco4.adb: Likewise.
3339         * s-sopco4.ads: Likewise.
3340         * s-sopco5.adb: Likewise.
3341         * s-sopco5.ads: Likewise.
3342         * s-stache.adb: Likewise.
3343         * s-stache.ads: Likewise.
3344         * s-stalib.adb: Likewise.
3345         * s-stalib.ads: Likewise.
3346         * s-stausa.adb: Likewise.
3347         * s-stausa.ads: Likewise.
3348         * s-stchop-limit.ads: Likewise.
3349         * s-stchop-rtems.adb: Likewise.
3350         * s-stchop-vxworks.adb: Likewise.
3351         * s-stchop.adb: Likewise.
3352         * s-stchop.ads: Likewise.
3353         * s-stoele.adb: Likewise.
3354         * s-stoele.ads: Likewise.
3355         * s-stopoo.adb: Likewise.
3356         * s-stopoo.ads: Likewise.
3357         * s-stratt.adb: Likewise.
3358         * s-stratt.ads: Likewise.
3359         * s-strcom.adb: Likewise.
3360         * s-strcom.ads: Likewise.
3361         * s-string.adb: Likewise.
3362         * s-string.ads: Likewise.
3363         * s-strops.adb: Likewise.
3364         * s-strops.ads: Likewise.
3365         * s-strxdr.adb: Likewise.
3366         * s-ststop.adb: Likewise.
3367         * s-ststop.ads: Likewise.
3368         * s-taasde.adb: Likewise.
3369         * s-taasde.ads: Likewise.
3370         * s-tadeca.adb: Likewise.
3371         * s-tadeca.ads: Likewise.
3372         * s-tadert.adb: Likewise.
3373         * s-tadert.ads: Likewise.
3374         * s-taenca.adb: Likewise.
3375         * s-taenca.ads: Likewise.
3376         * s-taprob.ads: Likewise.
3377         * s-taprop-dummy.adb: Likewise.
3378         * s-taprop-hpux-dce.adb: Likewise.
3379         * s-taprop-irix.adb: Likewise.
3380         * s-taprop-linux.adb: Likewise.
3381         * s-taprop-lynxos.adb: Likewise.
3382         * s-taprop-mingw.adb: Likewise.
3383         * s-taprop-posix.adb: Likewise.
3384         * s-taprop-solaris.adb: Likewise.
3385         * s-taprop-tru64.adb: Likewise.
3386         * s-taprop-vms.adb: Likewise.
3387         * s-taprop-vxworks.adb: Likewise.
3388         * s-taprop.ads: Likewise.
3389         * s-tarest.adb: Likewise.
3390         * s-tarest.ads: Likewise.
3391         * s-tasdeb.adb: Likewise.
3392         * s-tasdeb.ads: Likewise.
3393         * s-tasinf-irix.ads: Likewise.
3394         * s-tasinf-linux.adb: Likewise.
3395         * s-tasinf-linux.ads: Likewise.
3396         * s-tasinf-mingw.adb: Likewise.
3397         * s-tasinf-mingw.ads: Likewise.
3398         * s-tasinf-solaris.adb: Likewise.
3399         * s-tasinf-solaris.ads: Likewise.
3400         * s-tasinf-tru64.ads: Likewise.
3401         * s-tasinf.adb: Likewise.
3402         * s-tasinf.ads: Likewise.
3403         * s-tasini.adb: Likewise.
3404         * s-tasini.ads: Likewise.
3405         * s-taskin.adb: Likewise.
3406         * s-taskin.ads: Likewise.
3407         * s-taspri-dummy.ads: Likewise.
3408         * s-taspri-hpux-dce.ads: Likewise.
3409         * s-taspri-mingw.ads: Likewise.
3410         * s-taspri-solaris.ads: Likewise.
3411         * s-taspri-tru64.ads: Likewise.
3412         * s-taspri-vms.ads: Likewise.
3413         * s-taspri-vxworks.ads: Likewise.
3414         * s-tasque.adb: Likewise.
3415         * s-tasque.ads: Likewise.
3416         * s-tasren.adb: Likewise.
3417         * s-tasren.ads: Likewise.
3418         * s-tasres.ads: Likewise.
3419         * s-tassta.adb: Likewise.
3420         * s-tassta.ads: Likewise.
3421         * s-tasuti.adb: Likewise.
3422         * s-tasuti.ads: Likewise.
3423         * s-tfsetr-default.adb: Likewise.
3424         * s-tfsetr-vxworks.adb: Likewise.
3425         * s-tpinop.adb: Likewise.
3426         * s-tpinop.ads: Likewise.
3427         * s-tpoben.adb: Likewise.
3428         * s-tpoben.ads: Likewise.
3429         * s-tpobop.adb: Likewise.
3430         * s-tpobop.ads: Likewise.
3431         * s-tpopde-vms.adb: Likewise.
3432         * s-tpopde-vms.ads: Likewise.
3433         * s-tpopsp-lynxos.adb: Likewise.
3434         * s-tpopsp-posix-foreign.adb: Likewise.
3435         * s-tpopsp-posix.adb: Likewise.
3436         * s-tpopsp-solaris.adb: Likewise.
3437         * s-tpopsp-vxworks.adb: Likewise.
3438         * s-tporft.adb: Likewise.
3439         * s-tposen.adb: Likewise.
3440         * s-tposen.ads: Likewise.
3441         * s-traceb.adb: Likewise.
3442         * s-traceb.ads: Likewise.
3443         * s-traces-default.adb: Likewise.
3444         * s-traces.adb: Likewise.
3445         * s-traces.ads: Likewise.
3446         * s-traent-vms.adb: Likewise.
3447         * s-traent-vms.ads: Likewise.
3448         * s-traent.adb: Likewise.
3449         * s-traent.ads: Likewise.
3450         * s-trafor-default.adb: Likewise.
3451         * s-trafor-default.ads: Likewise.
3452         * s-tratas-default.adb: Likewise.
3453         * s-tratas.adb: Likewise.
3454         * s-tratas.ads: Likewise.
3455         * s-unstyp.ads: Likewise.
3456         * s-utf_32.adb: Likewise.
3457         * s-utf_32.ads: Likewise.
3458         * s-vaflop-vms-alpha.adb: Likewise.
3459         * s-vaflop.adb: Likewise.
3460         * s-vaflop.ads: Likewise.
3461         * s-valboo.adb: Likewise.
3462         * s-valboo.ads: Likewise.
3463         * s-valcha.adb: Likewise.
3464         * s-valcha.ads: Likewise.
3465         * s-valdec.adb: Likewise.
3466         * s-valdec.ads: Likewise.
3467         * s-valenu.adb: Likewise.
3468         * s-valenu.ads: Likewise.
3469         * s-valint.adb: Likewise.
3470         * s-valint.ads: Likewise.
3471         * s-vallld.adb: Likewise.
3472         * s-vallld.ads: Likewise.
3473         * s-vallli.adb: Likewise.
3474         * s-vallli.ads: Likewise.
3475         * s-valllu.adb: Likewise.
3476         * s-valllu.ads: Likewise.
3477         * s-valrea.adb: Likewise.
3478         * s-valrea.ads: Likewise.
3479         * s-valuns.adb: Likewise.
3480         * s-valuns.ads: Likewise.
3481         * s-valuti.adb: Likewise.
3482         * s-valuti.ads: Likewise.
3483         * s-valwch.adb: Likewise.
3484         * s-valwch.ads: Likewise.
3485         * s-veboop.adb: Likewise.
3486         * s-veboop.ads: Likewise.
3487         * s-vector.ads: Likewise.
3488         * s-vercon.adb: Likewise.
3489         * s-vercon.ads: Likewise.
3490         * s-vmexta.adb: Likewise.
3491         * s-vmexta.ads: Likewise.
3492         * s-vxwext-kernel.ads: Likewise.
3493         * s-vxwext-rtp.adb: Likewise.
3494         * s-vxwext-rtp.ads: Likewise.
3495         * s-vxwext.ads: Likewise.
3496         * s-vxwork-arm.ads: Likewise.
3497         * s-vxwork-m68k.ads: Likewise.
3498         * s-vxwork-mips.ads: Likewise.
3499         * s-vxwork-ppc.ads: Likewise.
3500         * s-vxwork-sparcv9.ads: Likewise.
3501         * s-vxwork-x86.ads: Likewise.
3502         * s-wchcnv.adb: Likewise.
3503         * s-wchcnv.ads: Likewise.
3504         * s-wchcon.adb: Likewise.
3505         * s-wchcon.ads: Likewise.
3506         * s-wchjis.adb: Likewise.
3507         * s-wchjis.ads: Likewise.
3508         * s-wchstw.adb: Likewise.
3509         * s-wchstw.ads: Likewise.
3510         * s-wchwts.adb: Likewise.
3511         * s-wchwts.ads: Likewise.
3512         * s-widboo.adb: Likewise.
3513         * s-widboo.ads: Likewise.
3514         * s-widcha.adb: Likewise.
3515         * s-widcha.ads: Likewise.
3516         * s-widenu.adb: Likewise.
3517         * s-widenu.ads: Likewise.
3518         * s-widlli.adb: Likewise.
3519         * s-widlli.ads: Likewise.
3520         * s-widllu.adb: Likewise.
3521         * s-widllu.ads: Likewise.
3522         * s-widwch.adb: Likewise.
3523         * s-widwch.ads: Likewise.
3524         * s-win32.ads: Likewise.
3525         * s-winext.ads: Likewise.
3526         * s-wwdcha.adb: Likewise.
3527         * s-wwdcha.ads: Likewise.
3528         * s-wwdenu.adb: Likewise.
3529         * s-wwdenu.ads: Likewise.
3530         * s-wwdwch.adb: Likewise.
3531         * s-wwdwch.ads: Likewise.
3532         * scans.adb: Likewise.
3533         * scans.ads: Likewise.
3534         * seh_init.c: Likewise.
3535         * sfn_scan.adb: Likewise.
3536         * sinfo.adb: Likewise.
3537         * sinfo.ads: Likewise.
3538         * sinput.adb: Likewise.
3539         * sinput.ads: Likewise.
3540         * snames.adb: Likewise.
3541         * snames.ads: Likewise.
3542         * socket.c: Likewise.
3543         * stand.adb: Likewise.
3544         * stand.ads: Likewise.
3545         * stringt.adb: Likewise.
3546         * stringt.ads: Likewise.
3547         * sysdep.c: Likewise.
3548         * system-aix.ads: Likewise.
3549         * system-darwin-ppc.ads: Likewise.
3550         * system-darwin-x86.ads: Likewise.
3551         * system-darwin-x86_64.ads: Likewise.
3552         * system-freebsd-x86.ads: Likewise.
3553         * system-hpux-ia64.ads: Likewise.
3554         * system-hpux.ads: Likewise.
3555         * system-irix-n32.ads: Likewise.
3556         * system-irix-n64.ads: Likewise.
3557         * system-irix-o32.ads: Likewise.
3558         * system-linux-alpha.ads: Likewise.
3559         * system-linux-hppa.ads: Likewise.
3560         * system-linux-ia64.ads: Likewise.
3561         * system-linux-mips.ads: Likewise.
3562         * system-linux-mipsel.ads: Likewise.
3563         * system-linux-ppc.ads: Likewise.
3564         * system-linux-ppc64.ads: Likewise.
3565         * system-linux-s390.ads: Likewise.
3566         * system-linux-s390x.ads: Likewise.
3567         * system-linux-sh4.ads: Likewise.
3568         * system-linux-sparc.ads: Likewise.
3569         * system-linux-sparcv9.ads: Likewise.
3570         * system-linux-x86.ads: Likewise.
3571         * system-linux-x86_64.ads: Likewise.
3572         * system-lynxos-ppc.ads: Likewise.
3573         * system-lynxos-x86.ads: Likewise.
3574         * system-mingw-x86_64.ads: Likewise.
3575         * system-mingw.ads: Likewise.
3576         * system-rtems.ads: Likewise.
3577         * system-solaris-sparc.ads: Likewise.
3578         * system-solaris-sparcv9.ads: Likewise.
3579         * system-solaris-x86.ads: Likewise.
3580         * system-solaris-x86_64.ads: Likewise.
3581         * system-tru64.ads: Likewise.
3582         * system-vms-ia64.ads: Likewise.
3583         * system-vms-zcx.ads: Likewise.
3584         * system-vms.ads: Likewise.
3585         * system-vms_64.ads: Likewise.
3586         * system-vxworks-arm.ads: Likewise.
3587         * system-vxworks-m68k.ads: Likewise.
3588         * system-vxworks-mips.ads: Likewise.
3589         * system-vxworks-ppc.ads: Likewise.
3590         * system-vxworks-sparcv9.ads: Likewise.
3591         * system-vxworks-x86.ads: Likewise.
3592         * system.ads: Likewise.
3593         * table.adb: Likewise.
3594         * table.ads: Likewise.
3595         * targext.c: Likewise.
3596         * targparm.ads: Likewise.
3597         * tree_in.adb: Likewise.
3598         * tree_in.ads: Likewise.
3599         * tree_io.adb: Likewise.
3600         * tree_io.ads: Likewise.
3601         * types.adb: Likewise.
3602         * types.ads: Likewise.
3603         * uintp.adb: Likewise.
3604         * uintp.ads: Likewise.
3605         * uname.adb: Likewise.
3606         * uname.ads: Likewise.
3607         * urealp.adb: Likewise.
3608         * urealp.ads: Likewise.
3609         * vx_stack_info.c: Likewise.
3610         * widechar.adb: Likewise.
3611         * widechar.ads: Likewise.
3612         * exp_attr.adb: Change copyright header to refer to version
3613         3 of the GNU General Public License and to point readers at the
3614         COPYING3 file and the FSF's license web page.
3615         * sem.adb: Likewise.
3616         * sem_attr.ads: Likewise.
3617         * freeze.adb: Likewise.
3618         * freeze.ads: Likewise.
3619         * errout.ads: Likewise.
3620         * erroutc.adb: Likewise.
3621         * exp_ch11.ads: Likewise.
3622
3623 2009-04-09  Jakub Jelinek  <jakub@redhat.com>
3624
3625         * config-lang.in: Change copyright header to refer to version
3626         3 of the GNU General Public License and to point readers at the
3627         COPYING3 file and the FSF's license web page.
3628         * gcc-interface/trans.c: Likewise.
3629         * gnathtml.pl: Likewise.
3630         * gcc-interface/ada.h: Likewise.  Remove runtime exception.
3631         * gcc-interface/gigi.h: Likewise.
3632         * gcc-interface/misc.c: Likewise.
3633         * gcc-interface/targtyps.c: Likewise.
3634
3635 2009-04-09  Nicolas Setton  <setton@adacore.com>
3636
3637         * s-osinte-darwin.ads: Fix wrong binding to struc timeval.
3638
3639         * s-osinte-darwin.adb (To_Timeval): Adapt to fixed implementation of
3640         struct_timeval.
3641
3642 2009-04-09  Bob Duff  <duff@adacore.com>
3643
3644         * exp_ch5.adb, exp_ch9.adb: Correct miscellaneous Slocs in
3645         internally-generated nodes related to select statements to avoid
3646         confusing the debugger.
3647
3648 2009-04-09  Pascal Obry  <obry@adacore.com>
3649
3650         * make.adb: Ensure that all linker arguments are duplicated.
3651
3652 2009-04-09  Robert Dewar  <dewar@adacore.com>
3653
3654         * sem_ch5.adb: Minor reformatting
3655
3656 2009-04-09  Vincent Celier  <celier@adacore.com>
3657
3658         * vms_data.ads:
3659         Change GNAT CHECK qualifier /DIAGNOSIS_LIMIT to /DIAGNOSTIC_LIMIT
3660         New qualifier /LEXPAND_SOURCE=nnn for -gnatGnnn
3661         New qualifier /LXDEBUG=nnn for -gnatDnnn
3662         For H820-010
3663
3664         * gnat_ugn.texi:
3665         Update documentation for VMS qualifiers equivalent to -gnatGnn and
3666         -gnatDnn
3667
3668 2009-04-09  Nicolas Setton  <setton@adacore.com>
3669
3670         * s-osinte-darwin.ads: (Pad_Type): Make this an array of unsigned_long,
3671         to match layout of siginfo_t in sys/signal.h.
3672
3673         * gcc-interface/Makefile.in: Add section for x86_64 darwin.
3674
3675 2009-04-09  Thomas Quinot  <quinot@adacore.com>
3676
3677         * g-socket.ads: (Fd_Set): Use Interfaces.C.long alignment.
3678
3679 2009-04-09  Nicolas Setton  <setton@adacore.com>
3680
3681         * s-oscons-tmplt.c: Allow long lines in the generated spec.
3682         Add generation of Darwin-specific constants needed when binding to the
3683         pthread library.
3684
3685 2009-04-09  Robert Dewar  <dewar@adacore.com>
3686
3687         * checks.adb:
3688         (Insert_Valid_Check): Avoid unnecessary generation of junk declaration
3689         when no invalid values exist, Avoid duplicate read of atomic variable.
3690
3691         * cstand.adb (Build_Signed_Integer_Type): Set Is_Known_Valid
3692         (Standard_Unsigned): Set Is_Known_Valid
3693
3694         * sem_ch3.adb (Analyze_Subtype_Declaration): Copy Is_Known_Valid on
3695         subtype declaration if no constraint.
3696         (Set_Modular_Size): Set Is_Known_Valid if appropriate
3697         (Build_Derived_Numeric_Type): Copy Is_Known_Valid if no constraint
3698
3699 2009-04-09  Robert Dewar  <dewar@adacore.com>
3700
3701         * switch-c.adb, gnat_ugn.texi, vms_data.ads, switch.adb,
3702         switch.ads: for numeric switches, an optional equal sign is always
3703         allowed.
3704
3705 2009-04-09  Vincent Celier  <celier@adacore.com>
3706
3707         * prj-nmsc.adb (Get_Unit): Do not consider Casing on platform where
3708         the case of file names is not significant.
3709
3710 2009-04-09  Vincent Celier  <celier@adacore.com>
3711
3712         * errout.adb: Remove dependency on package Style
3713
3714         * style.ads, styleg.adb, styleg.ads (RM_Column_Check): Remove function,
3715         moved to Stylesw.
3716         
3717         * stylesw.ads, stylesw.adb (RM_Column_Check): New function, moved from
3718         Styleg.
3719
3720         * errutil.adb, par.adb: Import Stylesw
3721
3722 2009-04-09  Arnaud Charlet  <charlet@adacore.com>
3723
3724         * opt.ads: Fix typos.
3725
3726 2009-04-09  Robert Dewar  <dewar@adacore.com>
3727
3728         * einfo.adb: Minor reformatting
3729
3730 2009-04-09  Robert Dewar  <dewar@adacore.com>
3731
3732         * gcc-interface/Make-lang.in, style.ads, style.adb: Reorganize style
3733         units.
3734
3735         * styleg-c.ads, styleg-c.adb: Removed, no longer used.
3736
3737 2009-04-09  Robert Dewar  <dewar@adacore.com>
3738
3739         * g-comver.adb: Minor reformatting.
3740
3741 2009-04-09  Thomas Quinot  <quinot@adacore.com>
3742
3743         * lib-load.ads (Load_Unit): Update documentation.
3744
3745 2009-04-09  Ed Schonberg  <schonberg@adacore.com>
3746
3747         * lib-load.adb (Load_Unit): When loading the parent of a child unit
3748         named in a with_clause, retain the with_clause to preserve a
3749         limited_with indication.
3750
3751 2009-04-09  Robert Dewar  <dewar@adacore.com>
3752
3753         * sem_ch7.adb, sem_ch10.adb, sem_prag.adb, sem_ch12.adb, sem_util.adb,
3754         exp_ch13.adb, sem_ch6.adb, exp_disp.adb, sem_ch8.adb, sem_warn.adb,
3755         sem_cat.adb: Code clean up: use Is_Package_Or_Generic_Package where
3756         possible to replace an OR of two separate tests.
3757
3758 2009-04-09  Robert Dewar  <dewar@adacore.com>
3759
3760         * binderr.adb, errout.adb, errutil.adb: New circuitry for handling
3761         Maximum_Messages.
3762         
3763         * erroutc.adb, erroutc.ads (Warnings_Suppressed): Now tests global
3764         warning status as well.
3765         
3766         * opt.ads (Maximum_Messages): New name for Maximum_Errors.
3767         
3768         * switch-b.adb, switch-c.adb: Change name Maximum_Errors to
3769         Maximum_Messages.
3770         
3771         * bindusg.adb, usage.adb: Update line for -gnatm switch
3772
3773         * gnat_ugn.texi: Update documentation for -gnatmnn compiler switch and
3774         -mnn binder switch.
3775
3776 2009-04-09  Robert Dewar  <dewar@adacore.com>
3777
3778         * sem_ch10.adb: Minor reformatting.
3779
3780 2009-04-09  Bob Duff  <duff@adacore.com>
3781
3782         * exp_ch11.adb (Expand_Exception_Handlers, Prepend_Call_To_Handler):
3783         Set Sloc of generated nodes for calls to Undefer_Aborts and
3784         Save_Occurrence to No_Location, so the debugger ignores them and
3785         therefore does not jump back and forth when single stepping.
3786
3787 2009-04-09  Robert Dewar  <dewar@adacore.com>
3788
3789         * switch-b.adb: Minor reformatting.
3790
3791 2009-04-09  Robert Dewar  <dewar@adacore.com>
3792
3793         * sem_aggr.adb, exp_ch5.adb, sem_ch3.adb, exp_atag.adb, layout.adb,
3794         sem_dist.adb, exp_ch7.adb, sem_ch5.adb, sem_type.adb, exp_imgv.adb,
3795         exp_util.adb, sem_aux.adb, sem_aux.ads, exp_attr.adb, exp_ch9.adb,
3796         sem_ch7.adb, inline.adb, fe.h, sem_ch9.adb, exp_code.adb, einfo.adb,
3797         einfo.ads, exp_pakd.adb, checks.adb, sem_ch12.adb, exp_smem.adb,
3798         tbuild.adb, freeze.adb, sem_util.adb, sem_res.adb, sem_attr.adb,
3799         exp_dbug.adb, sem_case.adb, exp_tss.adb, exp_ch4.adb, exp_ch6.adb,
3800         sem_smem.adb, sem_ch4.adb, sem_mech.adb, sem_ch6.adb, exp_disp.adb,
3801         sem_ch8.adb, exp_aggr.adb, sem_eval.adb, sem_cat.adb, exp_dist.adb,
3802         sem_ch13.adb, exp_strm.adb, lib-xref.adb, sem_disp.adb, exp_ch3.adb:
3803         Reorganize einfo/sem_aux, moving routines from einfo to sem_aux
3804
3805 2009-04-09  Robert Dewar  <dewar@adacore.com>
3806
3807         * exp_util.adb (Silly_Boolean_Array_Xor_Test): Simplify existing code.
3808
3809         * atree.h: Add Elist26
3810
3811         * gnat_ugn.texi: Complete documentation deprecating -gnatN for non-gcc
3812         backends.
3813
3814 2009-04-09  Javier Miranda  <miranda@adacore.com>
3815
3816         * exp_disp.adb (Export_DT): Addition of a new argument (Index); used to
3817         retrieve from the Dispatch_Table_Wrappers list the external name.
3818         Addition of documentation.
3819         (Make_Secondary_DT): Addition of a new argument (Suffix_Index) that is
3820         used to export secondary dispatch tables (in the previous version of
3821         the frontend only primary dispatch tables were exported). Addition of
3822         documentation.
3823         (Import_DT): New subprogram (internal of Make_Tags). Used to import a
3824         dispatch table of a given tagged type. 
3825         (Make_Tags): Modified to import secondary dispatch tables.
3826
3827         * sem_ch3.adb (Analyze_Object_Declaration): Code cleanup.
3828         (Constant_Redeclaration): Code cleanup.
3829
3830         * einfo.ads (Dispatch_Table_Wrapper): Renamed to
3831         Dispatch_Table_Wrappers.  Update documentation.
3832
3833         * einfo.adb (Dispatch_Table_Wrapper, Set_Dispatch_Table_Wrapper):
3834         Renamed to Dispatch_Table_Wrappers.
3835
3836         * sem_util.adb (Collect_Interface_Components): Improve handling of
3837         private types.
3838
3839         * atree.ads (Elist26, Set_Elist26): New subprograms
3840
3841         * atree.adb (Elist26, Set_Elist26): New subprograms
3842
3843 2009-04-09  Javier Miranda  <miranda@adacore.com>
3844
3845         * sem_ch3.adb (Build_Derived_Record_Type): Fix typo.
3846         (Derive_Progenitor_Subprograms): Handle interfaces in subtypes of
3847         tagged types.
3848
3849 2009-04-09  Robert Dewar  <dewar@adacore.com>
3850
3851         * s-direio.adb: Minor reformatting
3852
3853         * exp_ch4.adb (Expand_Concatenate): Avoid overflow checks for String
3854
3855 2009-04-09  Robert Dewar  <dewar@adacore.com>
3856
3857         * exp_ch4.adb (Expand_Concatenate): Improve handling of overflow cases
3858
3859 2009-04-09  Pascal Obry  <obry@adacore.com>
3860
3861         * a-cihama.adb, a-cihama.ads, a-coinve.adb, a-coinve.ads,
3862         s-tpoben.adb, s-tpoben.ads, s-finimp.adb, s-finimp.ads,
3863         a-convec.adb, a-convec.ads, a-finali.adb, a-finali.ads,
3864         a-filico.ads: Add some missing overriding keywords.
3865
3866 2009-04-09  Pascal Obry  <obry@adacore.com>
3867
3868         * a-cihama.adb, a-cihama.ads, a-coinve.adb, a-coorma.ads, a-cihase.adb,
3869         a-cihase.ads, a-cohama.adb, a-cohama.ads, a-coorse.adb, a-coorse.ads,
3870         a-coormu.adb, a-coormu.ads, a-cohase.adb, a-cohase.ads: Minor
3871         reformatting.
3872
3873 2009-04-09  Ed Schonberg  <schonberg@adacore.com>
3874
3875         * sem_ch6.adb (Check_Overriding_Indicator): Do not generate warning on
3876         missing overriding indicator if the new declaration is not seen as
3877         primitive.
3878
3879 2009-04-09  Thomas Quinot  <quinot@adacore.com>
3880
3881         * exp_ch4.adb (Expand_Concatenate): Add circuitry to properly handle
3882         overflows in computation of bounds.
3883
3884 2009-04-09  Pascal Obry  <obry@adacore.com>
3885
3886         * a-cihama.adb, a-cgcaso.adb, a-cihase.adb, a-cohase.adb: Fix some
3887         typos in comment.
3888
3889 2009-04-09  Robert Dewar  <dewar@adacore.com>
3890
3891         * sem_attr.adb (Check_Stream_Attribute): Check violation of
3892         restriction No_Streams
3893
3894         * gnat_rm.texi: Clarify No_Streams restriction
3895
3896         * g-socket.adb: Minor reformatting.
3897
3898 2009-04-09  Thomas Quinot  <quinot@adacore.com>
3899
3900         * g-socket.ads: Mark Initialize and Finalize as obsolesent interfaces.
3901
3902 2009-04-09  Geert Bosch  <bosch@adacore.com>
3903
3904         * exp_fixd.adb (Build_Conversion): Accept new optional Trunc argument.
3905         (Set_Result): Likewise.
3906         (Expand_Convert_Float_To_Fixed): Have Set_Result truncate the
3907         conversion, as required by RM 4.6(31).
3908
3909 2009-04-08  Robert Dewar  <dewar@adacore.com>
3910
3911         * checks.adb (Enable_Overflow_Check): Do not enable if overflow checks
3912         suppressed.
3913         
3914         * exp_ch4.adb (Expand_Concatenate): Make sure checks are off for all
3915         resolution steps.
3916
3917 2009-04-08  Robert Dewar  <dewar@adacore.com>
3918
3919         * sem_ch12.adb (Analyze_Package_Instantiation): Remove test for
3920         No_Local_Allocators restriction preventing local instantiation.
3921
3922 2009-04-08  Thomas Quinot  <quinot@adacore.com>
3923
3924         * sem_eval.adb: Minor comment fix
3925
3926 2009-04-08  Thomas Quinot  <quinot@adacore.com>
3927
3928         * g-socket.adb, g-socket.ads (GNAT.Sockets.Sockets_Library_Controller):
3929         New limited controlled type used to automate the initialization and
3930         finalization of the sockets implementation.
3931         (GNAT.Sockets.Initialize, Finalize): Make these no-ops
3932
3933 2009-04-08  Vincent Celier  <celier@adacore.com>
3934
3935         * prj-attr.adb: New read-only project-level attribute Project_Dir
3936
3937         * prj-proc.adb (Add_Attributes): New parameter Project_Dir, value of
3938         read-only attribute of the same name.
3939         (Process_Declarative_Items): Call Add_Attributes with Project_Dir
3940         (Recursive_Process): Ditto
3941
3942         * snames.adb: Add new standard name Project_Dir
3943
3944         * snames.ads: Add new standard name Project_Dir
3945
3946 2009-04-08  Thomas Quinot  <quinot@adacore.com>
3947
3948         * checks.adb: Minor reformatting
3949
3950 2009-04-08  Vincent Celier  <celier@adacore.com>
3951
3952         * vms_data.ads: Add documentation for new style keyword
3953         OVERRIDING_INDICATORS
3954
3955 2009-04-08  Robert Dewar  <dewar@adacore.com>
3956
3957         * sem_ch3.adb (Check_Completion.Post_Error): Post error on spec if the
3958         spec is in the current unit.
3959
3960 2009-04-08  Ed Schonberg  <schonberg@adacore.com>
3961
3962         * sem_util.adb (Is_Protected_Self_Reference): Add guard to check for
3963         presence of entity.
3964
3965         * usage.adb, gnat_ugn.texi: add info on -gnatyO: overriding indicators
3966
3967 2009-04-08  Vincent Celier  <celier@adacore.com>
3968
3969         * vms_data.ads: Add VMS equivalent for -gnatyO (OVERRIDING_INDICATORS)
3970
3971 2009-04-08  Thomas Quinot  <quinot@adacore.com>
3972
3973         * checks.ads: Minor reformatting
3974
3975 2009-04-08  Robert Dewar  <dewar@adacore.com>
3976
3977         * gnat_rm.texi: Update documentation of pragma Obsolescent
3978         
3979         * sem_prag.adb (Analyze_Pragma, case Obsolescent): Allow identifiers to
3980         be omitted, and allow Entity parameter to be omitted.
3981
3982 2009-04-08  Thomas Quinot  <quinot@adacore.com>
3983
3984         * exp_util.adb: Minor comment fix
3985
3986 2009-04-08  Robert Dewar  <dewar@adacore.com>
3987
3988         * g-socket.ads: Fix bad syntax in pragma Obsolescent
3989
3990         * par-ch2.adb (Scan_Pragma_Argument_Association): Check for error of
3991         argument with no identifier following one that has an identifier. Was
3992         missed in some cases.
3993
3994         * sem_prag.adb (Analyze_Pragma, case Check_Policy): Allow Policy
3995         identifier.
3996         (Analyze_Pragma, case Obsolescent): Allow Message, Version identifiers
3997
3998         * snames.adb: Add Name_Policy
3999
4000         * snames.ads: Add Name_Policy
4001
4002 2009-04-08  Robert Dewar  <dewar@adacore.com>
4003
4004         * gnat_rm.texi: Minor reformatting
4005
4006         * par-ch2.adb: Minor reformatting
4007
4008 2009-04-08  Robert Dewar  <dewar@adacore.com>
4009
4010         * exp_attr.adb, sem_attr.adb, sem_util.adb: Code clean up.
4011
4012 2009-04-08  Robert Dewar  <dewar@adacore.com>
4013
4014         * sem_cat.adb (Check_Categorization_Dependencies): Handle Preelaborate
4015         properly in the presence of Remote_Types or Remote_Call_Interface.
4016
4017         * sem_util.adb: Add comment.
4018
4019 2009-04-08  Robert Dewar  <dewar@adacore.com>
4020
4021         * ug_words: Add /ASSUME_VALID for -gnatB
4022
4023         * vms_data.ads: Add /ASSUME_VALID for -gnatB
4024
4025         * sem_cat.adb: Add clarifying commment
4026
4027         * a-direio.ads (Bytes): Make sure value is non-zero
4028
4029 2009-04-08  Ed Schonberg  <schonberg@adacore.com>
4030
4031         * sem_util.adb (Is_Variable): If the prefix is an explicit dereference
4032         that does not come from source, check for a rewritten function call in
4033         prefixed notation before other forms of rewriting.
4034
4035 2009-04-08  Robert Dewar  <dewar@adacore.com>
4036
4037         * Makefile.rtl: Remove s-strops and s-sopco? from the run time, since
4038         these are now obsolescent units used only for bootrapping with an
4039         older compiler.
4040
4041 2009-04-08  Robert Dewar  <dewar@adacore.com>
4042
4043         * gnat_rm.texi: Add documentation for pragma Thread_Local_Storage
4044
4045         * sem_ch3.adb: Minor comment updates
4046
4047 2009-04-08  Ed Schonberg  <schonberg@adacore.com>
4048
4049         * inline.adb (Back_End_Cannot_Inline): restrict warning to subprograms
4050         that come from source.
4051
4052 2009-04-08  Tristan Gingold  <gingold@adacore.com>
4053
4054         * gcc-interface/gigi.h (enum attr_type): Add ATTR_THREAD_LOCAL_STORAGE.
4055         * gcc-interface/decl.c (prepend_attributes): New case
4056         Pragma_Thread_Local_Storage.
4057         * gcc-interface/utils.c (process_attributes): New case
4058         ATTR_THREAD_LOCAL_STORAGE.
4059
4060 2009-04-08  Ed Schonberg  <schonberg@adacore.com>
4061
4062         * inline.adb (Back_End_Cannot_Inline): Do not mark a body as inlineable
4063         by the back-end if it contains a call to a subprogram without a
4064         previous spec that is declared in the same unit.
4065
4066         * errout.ads: Update comments on uses of dirs
4067
4068 2009-04-08  Robert Dewar  <dewar@adacore.com>
4069
4070         * exp_ch4.adb (Expand_Concatenate): Make sure nodes are properly typed
4071
4072 2009-04-08  Tristan Gingold  <gingold@adacore.com>
4073
4074         * sem_prag.adb: Restrict pragma Thread_Local_Storage to library level
4075         variables.
4076         Set Has_Gigi_Rep_Item flag to TLS variables (to ease gigi work).
4077
4078 2009-04-08  Vincent Celier  <celier@adacore.com>
4079
4080         * prj-nmsc.adb:
4081         (Add_Source): Add the mapping of the unit name to source file name in
4082         the Unit_Sources_HT hash table, if the unit name is not null.
4083
4084         * prj.adb (Reset): Reset hash table Tree.Unit_Sources_HT
4085
4086         * prj.ads (Unit_Sources_Htable): New hash table instantiation
4087         (Project_Tree_Data): New component Unit_Sources_HT
4088
4089 2009-04-08  Thomas Quinot  <quinot@adacore.com>
4090
4091         * sem_ch8.adb: Minor reformatting.
4092         Minor code reorganization.
4093
4094 2009-04-08  Robert Dewar  <dewar@adacore.com>
4095
4096         * snames.h, einfo.adb, einfo.ads, sem_prag.adb, snames.adb,
4097         snames.ads, freeze.adb, par-prag.adb: Add implementation of
4098         pragma Thread_Local_Storage, setting new flag
4099         Has_Pragma_Thread_Local_Storage in corresponding entities.
4100
4101 2009-04-08  Emmanuel Briot  <briot@adacore.com>
4102
4103         * prj.ads: Update comment on switches file
4104
4105         * prj-nmsc.adb: Code clean up. Use renaming clauses.
4106
4107 2009-04-08  Robert Dewar  <dewar@adacore.com>
4108
4109         * exp_ch4.adb (Expand_Concatenate): Further fixes to bounds handling
4110
4111 2009-04-08  Thomas Quinot  <quinot@adacore.com>
4112
4113         * ali-util.adb: Minor comment fix
4114
4115 2009-04-08  Ed Schonberg  <schonberg@adacore.com>
4116
4117         * sem_ch8.adb (Analyze_Use_Type): Improve error message when clause
4118         appears in a context clause, and the enclosing package is mentioned in
4119         a limited_with_clause.
4120         (Use_One_Type): Reject clause if type is still incomplete.
4121
4122 2009-04-08  Emmanuel Briot  <briot@adacore.com>
4123
4124         * prj-nmsc.adb (Check_File, Process_Sources_In_Multi_Language_Mode):
4125         avoid copies of Source_Data variables when possible, since these
4126         involve calls to memcpy() which are done too many times.
4127
4128 2009-04-08  Robert Dewar  <dewar@adacore.com>
4129
4130         * exp_ch4.adb (Expand_Concatenate): Clean up code
4131
4132 2009-04-07  Thomas Quinot  <quinot@adacore.com>
4133
4134         * exp_ch4.adb (Expand_Concatenate): Add missing conversion to index
4135         type for the case of concatenating a constrained array indexed by an
4136         enumeration type.
4137
4138 2009-04-07  Ed Schonberg  <schonberg@adacore.com>
4139
4140         * sem_ch6.adb (Check_Conformance): when checking conformance of an
4141         operation that overrides an abstract operation inherited from an
4142         interface, return False if only one of the controlling formals is an
4143         access parameter.
4144
4145 2009-04-07  Ed Schonberg  <schonberg@adacore.com>
4146
4147         * sem_ch8.adb (Analyze_Object_Renaming): additional error messages
4148         mandated by AI05-105.
4149
4150 2009-04-07  Vincent Celier  <celier@adacore.com>
4151
4152         * prj-nmsc.adb (Get_Mains): Warn if a main is an empty string
4153
4154 2009-04-07  Thomas Quinot  <quinot@adacore.com>
4155
4156         * usage.adb: Minor fix in usage message.
4157
4158         * sem_ch10.adb (Remove_Homonyms): Fix subtype of formal in body to
4159         match declaration; the correct subtype is Node_Id, not Entity_Id,
4160         because the expected node kind is an identifier, not a defining
4161         identifier.
4162
4163         * switch-c.adb: Minor reformatting.
4164
4165         * uintp.adb: Minor reformatting.
4166
4167 2009-04-07  Robert Dewar  <dewar@adacore.com>
4168
4169         * exp_ch13.adb: Minor reformatting
4170
4171 2009-04-07  Robert Dewar  <dewar@adacore.com>
4172
4173         * sem_warn.adb (Check_Infinite_Loop_Warning.Test_Ref): Add defence
4174         against missing parent.
4175
4176 2009-04-07  Thomas Quinot  <quinot@adacore.com>
4177
4178         * xoscons.adb: Minor reformatting
4179
4180 2009-04-07  Robert Dewar  <dewar@adacore.com>
4181
4182         * rtsfind.ads: Remove obsolete string concatenation entries
4183
4184 2009-04-07  Robert Dewar  <dewar@adacore.com>
4185
4186         * exp_ch4.adb (Expand_Concatenate): Redo handling of bounds
4187
4188 2009-04-07  Ed Schonberg  <schonberg@adacore.com>
4189
4190         * sem_ch10.adb (Check_Body_Required): Handle properly imported
4191         subprograms.
4192
4193 2009-04-07  Gary Dismukes  <dismukes@adacore.com>
4194
4195         * exp_ch13.adb (Expand_N_Attribute_Definition_Clause, case
4196         Attribute_Address): When Init_Or_Norm_Scalars is True and the object
4197         is of a scalar or string type then suppress the setting of the
4198         expression to Empty.
4199
4200         * freeze.adb (Warn_Overlay): Also emit the warnings about default
4201         initialization for the cases of scalar and string objects when
4202         Init_Or_Norm_Scalars is True.
4203
4204 2009-04-07  Bob Duff  <duff@adacore.com>
4205
4206         * s-secsta.ads, g-pehage.ads, s-fileio.ads: Minor comment fixes
4207
4208 2009-04-07  Bob Duff  <duff@adacore.com>
4209
4210         * gnat_rm.texi, s-fileio.adb (System.File_IO.Open): New feature: A
4211         Form parameter of Text_Translation=No allows binary mode for Text_IO
4212         files.
4213
4214         * gnat_rm.texi: Document Form parameter Text_Translation=xxx.
4215
4216 2009-04-07  Javier Miranda  <miranda@adacore.com>
4217
4218         * exp_ch5.adb (Expand_Assign_Array): Add implicit conversion when
4219         processing the bounds for bit packed arrays or VM target machines.
4220
4221 2009-04-07  Thomas Quinot  <quinot@adacore.com>
4222
4223         * g-sothco.ads (Int_Access): Remove extraneous access type (use
4224         anonymous access instead).
4225         (Get_Socket_From_Set): Fix incorrectly reverted formals
4226         Last and Socket to match the underlying C routine.
4227
4228         * g-socket.adb, g-socket.ads
4229         (Get): Use named parameter associations instead of positional ones in
4230         call go Get_Socket_From_Set, since this routine has two formals of the
4231         same type.
4232         (Image): New procedure.
4233
4234         * g-socthi-vms.adb, g-socthi-vms.ads, g-socthi-vxworks.adb,
4235         g-socthi-vxworks.ads, g-socthi-mingw.ads, g-socthi.adb, g-socthi.ads:
4236         (C_Ioctl, Syscall_Ioctl): use "access C.int" instead of "Int_Access"
4237         for type of Arg formal.
4238
4239         * sem_warn.adb: Minor reformatting
4240
4241 2009-04-07  Ed Schonberg  <schonberg@adacore.com>
4242
4243         * sem_util.adb (Has_Tagged_Component): Fix typo in loop that iterates
4244         over record components.
4245
4246 2009-04-07  Nicolas Roche  <roche@adacore.com>
4247
4248         * gsocket.h:
4249         Don't include resolvLib.h on VxWorks 6 (kernel and rtp). This library
4250         has disappeared between VxWorks 6.4 and VxWorks 6.5
4251         In RTP mode use time.h instead of times.h
4252
4253 2009-04-07  Robert Dewar  <dewar@adacore.com>
4254
4255         * exp_ch4.adb (Expand_N_Op_Concat): Improve lower bound handling
4256
4257 2009-04-07  Kevin Pouget  <pouget@adacore.com>
4258
4259         * exp_dist.adb: Modify Build_From_Any_Fonction procedure to correct
4260         expanded code for constrained types.
4261
4262 2009-04-07  Ed Schonberg  <schonberg@adacore.com>
4263
4264         * sem_ch4.adb (Analyze_Overloaded_Selected_Component): implement
4265         AI05-105: in an object renaming declaration, anonymousness is a name
4266         resolution rule.
4267
4268         * sem_ch8.adb (Analyze_Object_Renaming): Ditto.
4269
4270 2009-04-07  Arnaud Charlet  <charlet@adacore.com>
4271
4272         * g-comlin.adb (Expansion): Fix old regression: also return directory
4273         names when matching.
4274
4275 2009-04-07  Robert Dewar  <dewar@adacore.com>
4276
4277         * exp_ch4.adb:
4278         (Expand_N_Op_Concat): Call Expand_Concatenate for all cases
4279         (Expand_Concatenate): New name for Expand_Concatenate_String which has
4280         been rewritten to handle all types.
4281         (Expand_Concatenate_Other): Remove
4282
4283 2009-04-07  Ed Schonberg  <schonberg@adacore.com>
4284
4285         * lib-xref.adb (Generate_Reference): A default subprogram in an
4286         instance appears within the tree for the instance, but generates an
4287         implicit reference in the ALI.
4288
4289 2009-04-07  Javier Miranda  <miranda@adacore.com>
4290
4291         * sem_ch3.adb (Build_Derived_Record_Type): When processing a tagged
4292         derived type that has discriminants, propagate the list of interfaces
4293         to the corresponding new base type. In addition, propagate also
4294         attribute Limited_Present (found working in this patch).
4295
4296 2009-04-07  Robert Dewar  <dewar@adacore.com>
4297
4298         * exp_ch4.adb: Rewrite concatenation expansion.
4299
4300 2009-04-07  Ed Schonberg  <schonberg@adacore.com>
4301
4302         * sem_ch8.adb (Restore_Scope_Stack): First_Private_Entity is only
4303         relevant to packages.
4304
4305 2009-04-07  Robert Dewar  <dewar@adacore.com>
4306
4307         * sem_attr.adb: Minor reformatting
4308
4309         * sem_ch6.adb: Minor reformatting
4310
4311 2009-04-07  Tristan Gingold  <gingold@adacore.com>
4312
4313         * socket.c: Add more protections against S_resolvLib_ macros.
4314
4315 2009-04-07  Thomas Quinot  <quinot@adacore.com>
4316
4317         * sem_attr.adb: Minor reformatting
4318
4319 2009-04-07  Ed Schonberg  <schonberg@adacore.com>
4320
4321         * sem_ch6.adb (New_Overloaded_Entity): New predicate
4322         Is_Overriding_Alias to handle properly types that inherit two homonym
4323         operations that have distinct dispatch table entries.
4324
4325 2009-04-07  Emmanuel Briot  <briot@adacore.com>
4326
4327         * s-regexp.adb (Create_Mapping): Ignore excaped open parenthesis when
4328         looking for the end of a parenthesis group
4329
4330 2009-04-07  Tristan Gingold  <gingold@adacore.com>
4331
4332         * gsocket.h Don't #include resolvLib.h if __RTP__ is defined.
4333
4334         * socket.c Don't use resolvLib_ macros if not defined.
4335
4336 2009-04-07  Robert Dewar  <dewar@adacore.com>
4337
4338         * g-socket.adb: Minor reformatting.
4339
4340         * g-socthi-mingw.adb: Minor reformatting
4341
4342         * g-sothco.ads: Minor reformatting
4343
4344         * exp_ch4.adb:
4345         (Expand_Concatenate_String): Complete rewrite to generate efficient code
4346         inline instead of relying on external library routines.
4347
4348         * s-strops.ads, s-sopco5.ads, s-sopco5.adb, s-sopco4.ads, s-sopco4.adb,
4349         s-sopco3.ads, s-sopco3.adb, s-strops.adb: Note that this unit is now
4350         obsolescent
4351
4352 2009-04-07  Ed Schonberg  <schonberg@adacore.com>
4353
4354         * sem_attr.adb:
4355         (Eval_Attribute): for attributes of array objects that are not strings,
4356         attributes are not static if nominal subtype of object is unconstrained.
4357
4358 2009-04-07  Ed Schonberg  <schonberg@adacore.com>
4359
4360         * sem_ch6.adb (New_Overloaded_Entity): If two implicit homonym
4361         operations for a type T in an instance do not override each other,
4362         when T is derived from a formal private type, the corresponding
4363         operations inherited by a type derived from T outside
4364         of the instance do not override each other either.
4365
4366 2009-04-07  Robert Dewar  <dewar@adacore.com>
4367
4368         (Osint.Fail): Change calling sequence to have one string arg
4369         (Make.Make_Failed): Same change
4370         All callers are adjusted to use concatenation
4371
4372 2009-04-07  Robert Dewar  <dewar@adacore.com>
4373
4374         * exp_ch4.adb: Fix documentation typo
4375
4376 2009-04-07  Robert Dewar  <dewar@adacore.com>
4377
4378         * tbuild.ads: Minor reformatting
4379
4380 2009-04-07  Javier Miranda  <miranda@adacore.com>
4381
4382         * exp_disp.adb (Make_DT): Avoid the generation of the OSD_Table
4383         when compiling under ZFP runtime.
4384
4385 2009-04-07  Robert Dewar  <dewar@adacore.com>
4386
4387         * g-comlin.adb: Minor reformatting
4388
4389 2009-04-07  Thomas Quinot  <quinot@adacore.com>
4390
4391         * socket.c, g-socthi-vms.adb, g-socthi-vms.ads, g-socthi-vxworks.adb,
4392         g-socthi-vxworks.ads, g-socthi-mingw.adb, g-socthi-mingw.ads,
4393         g-socthi.adb, g-socthi.ads, g-socket.adb, g-socket.ads, g-sothco.ads:
4394         Remove dynamic allocation of Fd_Set in Socket_Set_Type objects.
4395
4396 2009-04-07  Robert Dewar  <dewar@adacore.com>
4397
4398         * gnat_ugn.texi: Document -gnatDnn/-gnatGnn
4399
4400         * opt.ads (Sprint_Line_Limit): New parameter
4401         
4402         * sprint.adb: Usa Sprint_Line_Limit instead of Line_Limit throughout
4403         
4404         * switch-c.adb: Recognize -gnatDnnn and -gnatGnnn switches
4405         
4406         * usage.adb: Output information for -gnatGnn -gnatDnn
4407
4408 2009-04-07  Robert Dewar  <dewar@adacore.com>
4409
4410         * make.adb: Minor reformatting
4411
4412 2009-04-07  Robert Dewar  <dewar@adacore.com>
4413
4414         * mlib-tgt-specific-vms-alpha.adb: Minor reformatting
4415
4416 2009-04-07  Robert Dewar  <dewar@adacore.com>
4417
4418         * mlib-tgt-specific-vms-ia64.adb: Minor reformatting
4419
4420 2009-04-07  Robert Dewar  <dewar@adacore.com>
4421
4422         * checks.adb:
4423         Remove Assume_Valid parameter from In_Subrange_Of calls
4424         
4425         * sem_eval.adb:
4426         (Is_Subrange_Of): Remove Assume_Valid parameter, not needed
4427         (Is_In_Range): Remove incorrect use of Assume_Valid
4428         (Is_Out_Of_Range): Remove incorrect use of Assume_Valid
4429         
4430         * sem_eval.ads:
4431         (Is_Subrange_Of): Remove Assume_Valid parameter, not needed
4432         (Is_In_Range): Documentation cleanup
4433         (Is_Out_Of_Range): Documentation cleanup
4434
4435         * gnat_rm.texi:
4436         Add documentation for Assume_No_Invalid_Values pragma
4437
4438         * sem_ch12.adb: Minor reformatting
4439
4440         * sem_ch6.adb: (Check_Conformance): Avoid cascaded errors
4441
4442         * sem_prag.adb: Improve error message.
4443
4444         * gnatchop.adb, osint.ads, sinput.adb, sinput.ads, styleg.adb:
4445         LF/CR no longer recognized as line terminator
4446
4447         * switch.ads: Minor documentation improvement
4448
4449         * vms_data.ads: Minor reformatting
4450
4451 2009-04-07  Robert Dewar  <dewar@adacore.com>
4452
4453         * checks.adb (Determine_Range): Add Assume_Valid parameter
4454         
4455         * checks.ads (Determine_Range): Add Assume_Valid parameter
4456         
4457         * errout.adb (Error_Msg_NEL): Use Suppress_Loop_Warnings rather than
4458          Is_Null_Loop to suppress warnings in a loop body.
4459         
4460         * exp_ch4.adb:
4461         (Rewrite_Comparison): Major rewrite to accomodate invalid values
4462         
4463         * exp_ch5.adb:
4464         (Expand_N_Loop_Statement): Delete loop known not to execute
4465         
4466         * opt.ads:
4467         (Assume_No_Invalid_Values): Now set to False, and as documented, this
4468          fully enables the proper handling of invalid values.
4469         
4470         * sem_attr.adb:
4471         New calling sequence for Is_In_Range
4472         
4473         * sem_ch5.adb:
4474         (Analyze_Iteration_Scheme): Accomodate possible invalid values
4475          in determining if a loop range is null.
4476         
4477         * sem_eval.adb:
4478         (Is_In_Range): Add Assume_Valid parameter
4479         (Is_Out_Of_Range): Add Assume_Valid_Parameter
4480         (Compile_Time_Compare): Major rewrite to accomodate invalid values and
4481          also to do more accurate and complete range analysis, catching more
4482          cases.
4483         
4484         * sem_eval.ads:
4485         (Is_In_Range): Add Assume_Valid parameter
4486         (Is_Out_Of_Range): Add Assume_Valid_Parameter
4487         
4488         * sem_util.adb:
4489         New calling sequence for Is_In_Range
4490         
4491         * sinfo.adb:
4492         (Suppress_Loop_Warnings): New flag
4493         
4494         * sinfo.ads:
4495         (Is_Null_Loop): Update documentation
4496         (Suppress_Loop_Warnings): New flag
4497         
4498         * gnat_ugn.texi: Document -gnatB switch
4499
4500 2009-04-07  Arnaud Charlet  <charlet@adacore.com>
4501
4502         * gnatvsn.ads: Bump version number.
4503
4504 2009-04-07  Thomas Quinot  <quinot@adacore.com>
4505
4506         * exp_ch3.adb: Minor rewording (comments)
4507
4508 2009-04-07  Robert Dewar  <dewar@adacore.com>
4509
4510         * exp_disp.adb: Minor reformatting
4511
4512 2009-04-07  Eric Botcazou  <ebotcazou@adacore.com>
4513
4514         * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Test the
4515         underlying type.
4516         * gcc-interface/trans.c (lvalue_required_p): Likewise.
4517
4518 2009-04-07  Eric Botcazou  <ebotcazou@adacore.com>
4519
4520         * gcc-interface/trans.c (Attribute_to_gnu) <Max_Size_In_Storage_Elmts>:
4521         Do not convert the result.  Remove obsolete comment.
4522
4523 2009-04-07  Eric Botcazou  <ebotcazou@adacore.com>
4524
4525         * gcc-interface/trans.c (establish_gnat_vms_condition_handler): Clear
4526         DECL_CONTEXT.
4527         (Subprogram_Body_to_gnu): Fix pasto.
4528
4529 2009-04-07  Eric Botcazou  <ebotcazou@adacore.com>
4530
4531         * gcc-interface/gigi.h (standard_datatypes): Remove ADT_void_type_decl.
4532         (void_type_decl_node): Remove.
4533         (init_gigi_decls): Likewise.
4534         (gnat_install_builtins): Declare.
4535         (record_builtin_type): Likewise.
4536         (create_type_stub_decl): Likewise.
4537         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Void>: Use void_type.
4538         (gnat_to_gnu_entity) <E_Array_Type>: Make fat and thin pointer types
4539         artificial.
4540         <E_Array_Subtype>: Use the index types, not only their name, in the
4541         record giving the names of the bounds, if any.
4542         For a packed array type, make it artificial only if the base type
4543         was artificial as well.  Remove redundant statement.
4544         (gnat_to_gnu_entity) <E_Incomplete_Type>: Do not create TYPE_DECL for
4545         dummy types.
4546         Use create_type_stub_decl to build the TYPE_STUB_DECL of types.
4547         (rest_of_type_decl_compilation_no_defer): Likewise.
4548         * gcc-interface/misc.c (gnat_printable_name): Add missing guard.
4549         * gcc-interface/utils.c (make_dummy_type): Always create TYPE_STUB_DECL
4550         and use create_type_stub_decl to build it.
4551         (gnat_pushdecl): Rewrite condition.
4552         (gnat_install_builtins): Remove bogus declaration.
4553         (record_builtin_type): New function.
4554         (finish_record_type): Use create_type_stub_decl to build TYPE_STUB_DECL
4555         of types.
4556         (create_type_stub_decl): New function.
4557         (create_type_decl): Assert that the type is not dummy.  If the type
4558         hasn't been named yet, equate the TYPE_STUB_DECL to the created node.
4559         (build_vms_descriptor32): Do not create TYPE_DECL for the descriptor.
4560         (build_vms_descriptor): Likewise.
4561         (init_gigi_decls): Delete and move bulk of code to...
4562         * gcc-interface/trans.c (gigi): ...here.  Use record_builtin_type.
4563         (emit_range_check): Add gnat_node parameter.
4564         (emit_index_check): Likewise.
4565         (emit_check): Likewise.
4566         (build_unary_op_trapv): Likewise.
4567         (build_binary_op_trapv): Likewise.
4568         (convert_with_check): Likewise.
4569         (Attribute_to_gnu): Adjust calls for above changes.
4570         (call_to_gnu): Likewise.
4571         (gnat_to_gnu): Likewise.
4572         (assoc_to_constructor): Likewise.
4573         (pos_to_constructor): Likewise.
4574         (Sloc_to_locus): Set BUILTINS_LOCATION for Standard_Location nodes.
4575         (process_type): Do not create TYPE_DECL for dummy types.
4576
4577 2009-04-07  Eric Botcazou  <ebotcazou@adacore.com>
4578
4579         * gcc-interface/decl.c (gnat_to_gnu_entity): Reorder local variables.
4580         * gcc-interface/trans.c: Fix formatting throughout.  Fix comments.
4581         * gcc-interface/utils.c: Fix comments.
4582
4583 2009-04-07  Eric Botcazou  <ebotcazou@adacore.com>
4584
4585         * gcc-interface/decl.c (compile_time_known_address_p): Rewrite and
4586         move around.
4587         (gnat_to_gnu_type): Move around.
4588         (get_unpadded_type): Likewise.
4589         * gcc-interface/utils.c (update_pointer_to): Use synthetic macro.
4590         Tidy comments.
4591
4592 2009-04-07  Eric Botcazou  <ebotcazou@adacore.com>
4593
4594         * gcc-interface/trans.c (check_for_eliminated_entity): New function.
4595         (Attribute_to_gnu): Invoke it for Access- and Address-like attributes.
4596         (call_to_gnu): Invoke it instead of manually checking.
4597
4598 2009-04-04  Eric Botcazou  <ebotcazou@adacore.com>
4599
4600         * gcc-interface/utils.c (finish_record_type): Force structural equality
4601         checks if the record type is discriminated.
4602
4603 2009-03-31  Eric Botcazou  <ebotcazou@adacore.com>
4604
4605         * system-linux-alpha.ads (Functions_Return_By_DSP): Remove.
4606         * system-linux-mips.ads (Functions_Return_By_DSP): Likewise.
4607         * system-linux-mipsel.ads (Functions_Return_By_DSP): Likewise.
4608         * system-linux-s390.ads (Functions_Return_By_DSP): Likewise.
4609         * system-linux-s390x.ads (Functions_Return_By_DSP): Likewise.
4610         * system-linux-sparc.ads (Functions_Return_By_DSP): Likewise.
4611         * system-linux-sparcv9.ads (Functions_Return_By_DSP): Likewise.
4612
4613 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
4614
4615         * gcc-interface/decl.c (maybe_pad_type): Use TREE_OVERFLOW instead
4616         of TREE_CONSTANT_OVERFLOW.
4617
4618 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
4619
4620         PR rtl-optimization/323
4621         * gcc-interface/misc.c (gnat_post_options): Set
4622         flag_excess_precision_cmdline.  Give an error for
4623         -fexcess-precision=standard for processors where the option is
4624         significant.
4625
4626 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
4627
4628         PR c/39323
4629         * gcc-interface/utils.c (create_field_decl): Use "unsigned int"
4630         on bit_align.
4631
4632 2009-03-11  Olivier Hainque  <hainque@adacore.com>
4633
4634         * gcc-interface/trans.c (gnat_to_gnu) <case N_Slice>: In range
4635         checks processing, remove unintended TREE_TYPE walk on index type.
4636
4637 2009-03-01  Eric Botcazou  <ebotcazou@adacore.com>
4638
4639         PR ada/39264
4640         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Do no
4641         call make_packable_type on fat pointer types.
4642         <E_Array_Subtype>: Likewise.
4643         <E_Record_Subtype>: Call make_packable_type on all record types
4644         except for fat pointer types.
4645         (make_packable_type): Likewise.
4646         (gnat_to_gnu_field): Likewise.
4647
4648 2009-02-28  Eric Botcazou  <ebotcazou@adacore.com>
4649
4650         * gcc-interface/Makefile.in (cygwin/mingw): Revert accidental
4651         EH_MECHANISM change made on 2007-12-06.
4652
4653 2009-02-26  Andreas Schwab  <schwab@suse.de>
4654
4655         PR ada/39172
4656         * Makefile.in (srcdir): Set to @top_srcdir@ instead of @srcdir@.
4657         * gcc-interface/Makefile.in: Change all uses of $(srcdir),
4658         $(fsrcdir) and $(fsrcpfx) to add ada subdir.
4659         (AWK): Substitute.
4660         (target_cpu_default): Substitute.
4661
4662 2009-02-25  Laurent GUERBY  <laurent@guerby.net>
4663
4664         PR ada/39221
4665         * a-teioed.adb (Expand): Fix Result overflow.
4666
4667 2009-02-25  Laurent GUERBY <laurent@guerby.net>
4668
4669         * gcc-interface/Makefile.in: Fix multilib handling for
4670         sparc64-linux.
4671
4672 2009-02-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4673
4674         * s-oscons-tmplt.c [__osf__ && !_SS_MAXSIZE]: Undef AF_UNIX6.
4675
4676 2009-02-18  H.J. Lu  <hongjiu.lu@intel.com>
4677
4678         * gcc-interface/misc.c (gnat_post_options): Turn off warn_psabi.
4679
4680 2009-02-16  Eric Botcazou  <ebotcazou@adacore.com>
4681
4682         * gcc-interface/deftarg.c: Remove.
4683
4684 2009-02-10  Olivier Hainque  <hainque@adacore.com>
4685             Eric Botcazou  <ebotcazou@adacore.com>
4686
4687         * gcc-interface/decl.c (enum alias_set_op): New enumeration.
4688         (copy_alias_set): Rename into...
4689         (relate_alias_sets): ...this.  Add third parameter OP.  Retrieve the
4690         underlying array of unconstrained arrays for the new type as well.
4691         If the old and new alias sets don't conflict, make one a subset of
4692         the other as per the OP parameter.
4693         (gnat_to_gnu_entity): Adjust calls to copy_alias_set.
4694         <E_Record_Type>: Do not copy the alias set for derived types.
4695         For all types, make the alias set of derived types a superset of
4696         that of their parent type.
4697         (make_aligning_type): Adjust calls to copy_alias_set.
4698         (make_packable_type): Likewise.
4699         * gcc-interface/trans.c (gnat_to_gnu)<N_Validate_Unchecked_Conversion>:
4700         Check for alias set conflict instead of strict equality to issue the
4701         warning.
4702
4703 2009-02-09  Eric Botcazou  <ebotcazou@adacore.com>
4704
4705         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_String_Literal_Subtype>:
4706         Set TYPE_NONALIASED_COMPONENT on the array type only if appropriate.
4707         (copy_alias_set): Assert that arrays have the same aliasing settings.
4708         (substitute_in_type) <ARRAY_TYPE>: Copy TYPE_NONALIASED_COMPONENT.
4709
4710 2009-02-08  Eric Botcazou  <ebotcazou@adacore.com>
4711
4712         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_String_Literal_Subtype>:
4713         Set TYPE_NONALIASED_COMPONENT on the array type.
4714
4715 2009-01-31  Laurent GUERBY  <laurent@guerby.net>
4716
4717         * gcc-interface/Makefile.in: Fix mipsel linux handling.
4718
4719 2009-01-16  Jakub Jelinek  <jakub@redhat.com>
4720
4721         * gcc-interface/Makefile.in: Fix multilib handling for
4722         powerpc64-linux.
4723
4724 2009-01-12  Eric Botcazou  <ebotcazou@adacore.com>
4725
4726         * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Really strip
4727         only useless conversions around renamed objects.
4728
4729 2009-01-11  Eric Botcazou  <ebotcazou@adacore.com>
4730
4731         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: Put
4732         the _Tag field before any discriminants in the field list.
4733         (components_to_record): Remove obsolete comment.
4734
4735 2008-12-09  Jakub Jelinek  <jakub@redhat.com>
4736
4737         PR ada/38450
4738         * gcc-interface/utils.c (finish_record_type): Use SET_TYPE_MODE.
4739         * gcc-interface/decl.c (gnat_to_gnu_entity, make_aligning_type):
4740         Likewise.
4741
4742 2008-12-05  Sebastian Pop  <sebastian.pop@amd.com>
4743
4744         PR bootstrap/38262
4745         * gcc-interface/Make-lang.in (gnat1): Add BACKENDLIBS, remove GMPLIBS.
4746
4747 2008-11-29  Eric Botcazou  <ebotcazou@adacore.com>
4748
4749         PR ada/30827
4750         * g-comver.adb (Ver_Len_Max): Fix inconsistency.
4751
4752 2008-11-27  Eric Botcazou  <ebotcazou@adacore.com>
4753
4754         * gcc-interface/decl.c: Fix various nits.
4755
4756 2008-11-20  Eric Botcazou  <ebotcazou@adacore.com>
4757
4758         * gcc-interface/utils.c (init_gigi_decls): Fix type mismatch.
4759
4760 2008-11-16  Eric Botcazou  <ebotcazou@adacore.com>
4761
4762         PR ada/38127
4763         * gcc-interface/decl.c (make_type_from_size) <INTEGER_TYPE>: Do not
4764         special-case boolean types.  Propagate  the name.
4765         * gcc-interface/targtyps.c: Tweak comment.
4766
4767 2008-11-15  Geert Bosch  <bosch@adacore.com>
4768
4769         * gcc-interface/trans.c (emit_check): Put back a final save_expr
4770         to prevent exponential expansion during gimplification.
4771
4772 2008-11-15  Eric Botcazou  <ebotcazou@adacore.com>
4773
4774         * gcc-interface/lang-specs.h: Expand -coverage and reorder switches.
4775
4776 2008-11-15  Eric Botcazou  <ebotcazou@adacore.com>
4777
4778         * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Force constants
4779         initialized to a static constant to be statically allocated even if
4780         they are of a padding type, provided the original type also has
4781         constant size.
4782
4783 2008-11-15  Laurent Guerby  <laurent@guerby.net>
4784
4785         PR ada/37993
4786         * gcc-interface/Makefile.in: Add multilib handling for x86_64
4787         on darwin.
4788         * system-darwin-x86_64.ads: New file.
4789
4790 2008-11-13  Olivier Hainque  <hainque@adacore.com>
4791
4792         * gcc-interface/decl.c (gnat_to_gnu_entity) <case E_Function>:
4793         Turn Ada Pure on subprograms back into GCC CONST when eh constructs
4794         are explicit to the middle-end.  Tidy.
4795
4796 2008-11-09  Eric Botcazou  <ebotcazou@adacore.com>
4797
4798         * gcc-interface/ada-tree.def (PLUS_NOMOD_EXPR): New tree code.
4799         (MINUS_NOMOD_EXPR): Likewise.
4800         * gcc-interface/utils2.c (build_binary_op) <PREINCREMENT_EXPR>: Make
4801         unreachable.
4802         <PLUS_NOMOD_EXPR>: New case.
4803         <MINUS_NOMOD_EXPR>: Likewise.
4804         * gcc-interface/trans.c (Loop_Statement_to_gnu): Build increment-and-
4805         assignment statement instead of using an increment operator.
4806
4807 2008-11-07  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4808
4809         * system-irix-n64.ads: New file.
4810         * gcc-interface/Makefile.in (mips-sgi-irix6*): Support O32 and N64
4811         multilibs.
4812
4813 2008-11-07  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4814
4815         PR ada/37681
4816         * system-solaris-x86_64.ads: New file.
4817         * gcc-interface/Makefile.in (*86-solaris2*): Support x86_64 multilib.
4818
4819 2008-11-07  Bechir Zalila  <bechir.zalila@gmail.com>
4820             Eric Botcazou  <ebotcazou@adacore.com>
4821
4822         PR ada/34289
4823         * lib.ads: (Enable_Switch_Storing): Declare.
4824         * lib.adb: (Enable_Switch_Storing): New procedure.
4825         * switch-c.adb (Scan_Front_End_Switches): Add support for -gnatea.
4826         * make.adb: (Compile_Sources.Compile): Add -gnatea as first option.
4827         (Display): Never display -gnatea
4828         * gcc-interface/lang-specs.h: If -gnatea is present, pass -gnatez.
4829
4830 2008-11-07  Thomas Quinot  <quinot@adacore.com>
4831
4832         * gcc-interface/trans.c (Attribute_to_gnu, case Attr_Length): Check
4833         for empty range in original base type, not converted result type.
4834
4835 2008-11-07  Geert Bosch  <bosch@adacore.com>
4836
4837         * gcc-interface/trans.c (build_binary_op_trapv): Convert arguments
4838         and result for call to __gnat_mulv64.
4839
4840 2008-11-07  Eric Botcazou  <ebotcazou@adacore.com>
4841
4842         * gcc-interface/trans.c: Fix formatting nits.
4843
4844 2008-11-07  Geert Bosch  <bosch@adacore.com>
4845
4846         * gcc-interface/trans.c (build_binary_op_trapv): Avoid emitting
4847         overflow check for constant result.
4848
4849 2008-11-07  Geert Bosch  <bosch@adacore.com>
4850
4851         * gcc-interface/trans.c (build_binary_op_trapv): Use more efficient
4852         overflow check for addition/subtraction if neither operand is constant.
4853
4854 2008-11-06  Eric Botcazou  <ebotcazou@adacore.com>
4855
4856         * gcc-interface/Makefile.in (SPARC/Solaris): Use a common set of
4857         files for the target-dependent part of the runtime.
4858         (SPARC/Linux): Likewise.
4859
4860 2008-11-06  Eric Botcazou  <ebotcazou@adacore.com>
4861
4862         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Out_Parameter>: If not
4863         optimizing, create a PARM_DECL pointing to the VAR_DECL for debugging
4864         purposes.
4865
4866 2008-11-06  Eric Botcazou  <ebotcazou@adacore.com>
4867
4868         * gcc-interface/misc.c (gnat_printable_name): Always return a copy
4869         in GC memory.
4870
4871 2008-11-06  Eric Botcazou  <ebotcazou@adacore.com>
4872
4873         PR ada/19419
4874         * gcc-interface/trans.c (gnat_to_gnu) <N_Assignment_Statement>:
4875         Generate a call to memmove for an assignment between overlapping
4876         array slices.
4877
4878 2008-11-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4879
4880         PR target/37977
4881         * gcc-interface/Makefile.in: Add multilib handling for
4882         s390-linux and s390x-linux.
4883
4884 2008-10-24  Jakub Jelinek  <jakub@redhat.com>
4885
4886         * gcc-interface/Make-lang.in (check-ada-subtargets): Depend on
4887         check-acats-subtargets and check-gnat-subtargets.
4888         (check_acats_targets): New variable.
4889         (check-acats-subtargets, check-acats%): New targets.
4890         (check-acats): If -j is used and CHAPTERS is empty, run the testing
4891         in multiple make goals, possibly parallel, and afterwards run
4892         dg-extract-results.sh to merge the sum and log files.
4893
4894 2008-10-17  Geert Bosch  <bosch@adacore.com>
4895
4896         * gcc-interface/trans.c (gnat_to_gnu) <N_Slice>: Simplify expansion
4897         to use only a single check instead of three, and avoid unnecessary
4898         COMPOUND_EXPR.
4899         (emit_check): Avoid useless COMPOUND_EXPRs and SAVE_EXPRs, sometimes
4900         creating more opportunities for optimizations.
4901
4902 2008-10-13  Jakub Jelinek  <jakub@redhat.com>
4903
4904         PR middle-end/37601
4905         * gcc-interface/utils.c (gnat_types_compatible_p): Handle
4906         NULL TYPE_DOMAIN.
4907
4908 2008-10-07  Eric Botcazou  <ebotcazou@adacore.com>
4909
4910         * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Move code
4911         dealing with volatileness to after code dealing with renaming.
4912
4913 2008-10-06  Eric Botcazou  <ebotcazou@adacore.com>
4914
4915         * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Minor tweaks.
4916         * gcc-interface/trans.c (Pragma_to_gnu): Likewise.
4917
4918 2008-10-06  Eric Botcazou  <ebotcazou@adacore.com>
4919
4920         * gcc-interface/utils.c (can_fold_for_view_convert_p): New predicate.
4921         (unchecked_convert): Use it to disable problematic folding with
4922         VIEW_CONVERT_EXPR in the general case.  Always disable it for the
4923         special VIEW_CONVERT_EXPR built for integral types and cope with
4924         its addressability issues by preserving the first conversion.
4925
4926 2008-10-01  Andreas Schwab  <schwab@suse.de>
4927
4928         * system-linux-ppc64.ads: New file.
4929         * gcc-interface/Makefile.in: Add multilib handling for
4930         powerpc-linux.
4931
4932 2008-09-26  Eric Botcazou  <ebotcazou@adacore.com>
4933
4934         * decl.c (gnat_to_gnu_entity) <object>: Cap the alignment promotion
4935         to that of ptr_mode instead of word_mode.
4936
4937 2008-09-26  Eric Botcazou  <ebotcazou@adacore.com>
4938
4939         PR ada/5911
4940         * gcc-interface/Makefile.in (SPARC/Solaris): Add multilib support.
4941
4942 2008-09-25  Samuel Tardieu  <sam@rfc1149.net>
4943
4944         PR ada/37641
4945         * adaint.c (__gnat_set_non_writable): Use FILE_WRITE_EA
4946         instead of deprecated FILE_WRITE_PROPERTIES.
4947
4948 2008-09-22  Olivier Hainque  <hainque@adacore.com>
4949
4950         * gcc-interface/decl.c (gnat_to_gnu_entity): Even when they
4951         are never assigned, volatile entities are not constant for code
4952         generation purposes.
4953
4954 2008-09-21  Laurent Guerby  <laurent@guerby.net>
4955
4956         PR ada/5911
4957         * gcc-interface/Makefile.in: Add multilib handling for x86_64
4958         and sparc.
4959         * system-linux-sparcv9.ads: New file.
4960
4961 2008-09-20  Eric Botcazou  <ebotcazou@adacore.com>
4962
4963         * exp_dbug.ads: Document new convention for the XVZ variable.
4964         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Generate
4965         debug info if necessary for the type padding the component type.
4966         <E_Array_Subtype>: Likewise.
4967         (maybe_pad_type): Emit the XVZ variable in units.
4968         * gcc-interface/trans.c (Loop_Statement_to_gnu): Fix formatting nits.
4969         (Subprogram_Body_to_gnu): Set the source line of the subprogram's node
4970         on statements generated to initialize the parameter attributes cache.
4971         Set the source line of the end label of the body on the special return
4972         statement built for a procedure with copy-in copy-out parameters.
4973
4974 2008-09-20  Eric Botcazou  <ebotcazou@adacore.com>
4975
4976         PR ada/37585
4977         * gcc-interface/utils.c (create_subprog_decl): Disable inlining for
4978         inlined external functions if they contain a nested function not
4979         declared inline.
4980
4981 2008-09-18  Jan Hubicka  <jh@suse.cz>
4982
4983         * gcc-interface/utils.c (create_subprog_decl): Use DECL_DECLARED_INLINE_P.
4984         (end_subprog_body): Do not set DECL_INLINE.
4985
4986 2008-09-17  Pascal Rigaux  <pixel@mandriva.com>
4987
4988         PR ada/21327
4989         * gnat_ugn.texi: Use proper format in direntry.
4990
4991 2008-09-15  Eric Botcazou  <ebotcazou@adacore.com>
4992
4993         * gcc-interface/trans.c (gigi): Declare the name of the compilation
4994         unit as the first global name.
4995
4996 2008-09-14  Jan Hubicka  <jh@suse.cz>
4997
4998         * gcc-interface/Make-lang.in (gnat1): Add CFLAGS.
4999
5000 2008-09-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5001
5002         * a-crbtgk.adb, a-direct.ads, a-tasatt.adb, ali.ads,
5003         bindgen.adb, checks.adb, einfo.ads, exp_aggr.adb, exp_ch11.adb,
5004         exp_ch3.adb, exp_ch4.adb, exp_ch6.adb, exp_ch7.adb, exp_ch9.adb,
5005         exp_dbug.ads, exp_disp.adb, exp_dist.adb, exp_pakd.adb,
5006         exp_util.adb, g-alveop.ads, g-comlin.adb, g-comlin.ads,
5007         g-diopit.adb, g-socket.ads, gcc-interface/decl.c,
5008         gcc-interface/gigi.h, gcc-interface/trans.c,
5009         lib-load.adb, lib-xref.ads, make.adb, mlib-prj.adb, nlists.ads,
5010         opt.ads, par-ch10.adb, par-ch5.adb, par.adb, s-os_lib.ads,
5011         s-oscons-tmplt.c, s-parint.ads, s-regpat.ads, s-shasto.ads,
5012         s-stausa.ads, s-taprop-vms.adb, sem.adb, sem_ch10.adb,
5013         sem_ch11.adb, sem_ch12.adb, sem_ch13.adb, sem_ch3.adb,
5014         sem_ch3.ads, sem_ch4.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb,
5015         sem_elim.adb, sem_prag.adb, sem_util.adb, sem_util.ads,
5016         sem_warn.adb, sinfo.ads, styleg.adb, vms_data.ads: Fix typos in
5017         comments.
5018         * gnathtml.pl: Fix typos.
5019
5020 2008-09-10  Joel Sherrill <joel.sherrill@oarcorp.com>
5021
5022         * gcc-interface/Makefile.in: Switch RTEMS to s-interr-hwint.adb.
5023         * s-osinte-rtems.ads: Add shared hardware interrupt adapter
5024         layer. RTEMS binds to OS provided adapter routines so there are
5025         no modifications to s-osinte-rtems.adb.
5026
5027 2008-09-09  Arnaud Charlet  <charlet@adacore.com>
5028             Joel Sherrill  <joel.sherrill@oarcorp.com>
5029
5030        * gcc-interface/Makefile.in: Switch VxWorks to s-interr-hwint.adb.
5031
5032        * s-interr-vxworks.adb: Renamed to s-interr-hwint.adb
5033
5034        * s-interr-hwint.adb: New file.
5035
5036         * s-osinte-vxworks.ads, s-osinte-vxworks.adb: Add new functions
5037         needed by s-interr-hwint.adb.
5038
5039         * s-osinte-vxworks-kernel.adb: New file.
5040
5041 2008-09-05  Joel Sherrill <joel.sherrill@oarcorp.com>
5042
5043         * s-stchop-rtems.adb: Add file missed in early commit.  Already
5044         referenced in gcc-interface/Makefile.in.
5045
5046 2008-08-30  Thomas Quinot  <quinot@adacore.com>
5047
5048         * gcc-interface/Make-lang.in: Allow s-oscons.{o,ali} to
5049         be built even without a separate libada directory.
5050
5051 2008-08-22  Arnaud Charlet  <charlet@adacore.com>
5052
5053         * lib-xref.ads: Fix typo in subprogram reference definition.
5054
5055 2008-08-22  Robert Dewar  <dewar@adacore.com>
5056
5057         * s-sopco3.adb, s-sopco4.adb, s-sopco5.adb, s-strops.adb: Minor code fix
5058         to avoid warning.
5059
5060         * g-trasym.adb: Ditto
5061
5062         * s-utf_32.adb (Get_Category): Fix obvious typo
5063
5064         * s-wwdcha.adb: Minor code reorganization
5065         Remove dead code
5066
5067 2008-08-22  Robert Dewar  <dewar@adacore.com>
5068
5069         * checks.adb (Determine_Range): Deal with values that might be invalid
5070
5071         * opt.adb, opt.ads (Assume_No_Invalid_Values[_Config]): New
5072         configuration switches.
5073
5074         * par-prag.adb: Dummy entry for pragma Assume_No_Invalid_Values
5075
5076         * sem_prag.adb: Implement pragma Assume_No_Default_Values
5077
5078         * snames.adb, snames.ads, snames.h:
5079         Add entries for pragma Assume_No_Invalid_Values
5080
5081         * switch-c.adb: Add processing for -gnatB switch
5082
5083         * usage.adb: Add entry for flag -gnatB (no bad invalid values)
5084
5085 2008-08-22  Javier Miranda  <miranda@adacore.com>
5086
5087         * exp_ch3.adb (Build_Init_Statements): Transfer to the body of the
5088         init procedure all the expanded code associated with the spec of
5089         task types and protected types.
5090
5091 2008-08-22  Gary Dismukes  <dismukes@adacore.com>
5092
5093         * exp_aggr.adb (Static_Array_Aggregate): Call Analyze_And_Resolve on the
5094         component expression copies rather than directly setting Etype and
5095         Is_Static_Expression.
5096
5097 2008-08-22  Gary Dismukes  <dismukes@adacore.com>
5098
5099         * sem_util.adb (Has_Preelaborable_Initialization): Revise checking of
5100         private types to allow for types derived from a private type with
5101         preelaborable initialization, but return False for a private extension
5102         (unless it has the pragma).
5103
5104 2008-08-22  Robert Dewar  <dewar@adacore.com>
5105
5106         * opt.ads: Minor code reorganization (put entries in alpha order)
5107
5108 2008-08-22  Pascal Obry  <obry@adacore.com>
5109
5110         * initialize.c, adaint.c: Use Lock_Task and Unlock_Task for non-blocking
5111         spawn.
5112
5113 2008-08-22  Geert Bosch  <bosch@adacore.com>
5114
5115         * gcc-interface/trans.c: Define FP_ARITH_MAY_WIDEN
5116         (convert_with_check): Only use longest_float_type if FP_ARITH_MAY_WIDEN is 0
5117
5118 2008-08-22  Doug Rupp  <rupp@adacore.com>
5119
5120         * bindgen.adb [VMS] (Gen_Adainit_Ada, Gen_Adainit_C): Import and call
5121         __gnat_set_features.
5122
5123         * init.c
5124         (__gnat_set_features): New function.
5125         (__gnat_features_set): New tracking variable.
5126         (__gl_no_malloc_64): New feature global variable
5127
5128 2008-08-22  Ed Schonberg  <schonberg@adacore.com>
5129
5130         * sem_ch8.adb (Use_One_Type): Do not emit warning message about redundant
5131         use_type_clause in an instance.
5132
5133 2008-08-22  Bob Duff  <duff@adacore.com>
5134
5135         * exp_ch6.ads: Remove pragma Precondition, since it breaks some builds.
5136
5137 2008-08-22  Robert Dewar  <dewar@adacore.com>
5138
5139         * exp_ch6.adb: Minor reformatting
5140
5141         * exp_ch7.adb: Minor reformatting
5142
5143         * exp_ch7.ads: Put routines in proper alpha order
5144
5145         * exp_dist.adb: Minor reformatting
5146
5147 2008-08-22  Vincent Celier  <celier@adacore.com>
5148
5149         * prj.ads: Minor comment update
5150
5151 2008-08-22  Robert Dewar  <dewar@adacore.com>
5152
5153         * sem_ch5.adb (One_Bound): Fix latent bug involving secondary stack
5154
5155 2008-08-22  Ed Schonberg  <schonberg@adacore.com>
5156
5157         * exp_tss.adb:
5158         (Base_Init_Proc): For a protected subtype, use the base type of the
5159         corresponding record to locate the propoer initialization procedure.
5160
5161 2008-08-22  Robert Dewar  <dewar@adacore.com>
5162
5163         * checks.adb:
5164         (In_Subrange_Of): New calling sequence
5165         (Determine_Range): Prepare for new processing using base type
5166
5167         * exp_ch4.adb:
5168         (Compile_Time_Compare): Use new calling sequence
5169
5170         * exp_ch5.adb:
5171         (Compile_Time_Compare): Use new calling sequence
5172
5173         * sem_eval.adb:
5174         (Compile_Time_Compare): New calling sequence allows dealing with
5175         invalid values.
5176         (In_Subrange_Of): Ditto
5177
5178         * sem_eval.ads:
5179         (Compile_Time_Compare): New calling sequence allows dealing with
5180         invalid values.
5181         (In_Subrange_Of): Ditto
5182
5183 2008-08-22  Pascal Obry  <obry@adacore.com>
5184
5185         * adaint.c: Fix possible race condition on win32_wait().
5186
5187 2008-08-22  Bob Duff  <duff@adacore.com>
5188
5189         * exp_ch5.adb, exp_ch7.adb, exp_ch7.ads, exp_util.adb, freeze.adb,
5190         exp_ch4.adb, exp_ch6.ads, exp_ch6.adb, sem_ch6.adb, exp_aggr.adb,
5191         exp_intr.adb, exp_ch3.adb: Rename:
5192         Exp_Ch7.Controlled_Type => Needs_Finalization
5193         Exp_Ch7.CW_Or_Controlled_Type => CW_Or_Has_Controlled_Part
5194         Exp_Ch5.Expand_N_Extended_Return_Statement.Controlled_Type =>
5195          Has_Controlled_Parts
5196         (Has_Some_Controlled_Component): Fix bug in array case.
5197
5198 2008-08-22  Robert Dewar  <dewar@adacore.com>
5199
5200         * sem_ch8.adb: Minor reformatting
5201
5202 2008-08-22  Kevin Pouget  <pouget@adacore.com>
5203
5204         * s-shasto.ads, s-shasto.adb: Move Shared_Var_ROpen, Shared_Var_WOpen and
5205         Shared_Var_Close procedure specifications from package spec to package body.
5206
5207         * rtsfind.ads: Remove RE_Shared_Var_Close, RE_Shared_Var_ROpen,
5208         RE_Shared_Var_WOpen entries.
5209
5210         * exp_dist.adb: Update RE_Any_Content_Ptr to RE_Any_Container_Ptr in
5211         Build_To_Any_Call, Build_TypeCode_Call and Build_From_Any_Call procedures.
5212
5213 2008-08-22  Eric Botcazou  <ebotcazou@adacore.com>
5214
5215         * init.c: adjust EH support code on Alpha/Tru64 as well.
5216
5217         * raise-gcc.c: Add back a couple of comments.
5218
5219 2008-08-22  Ed Schonberg  <schonberg@adacore.com>
5220
5221         * exp_ch5.adb (Expand_Simple_Function_Return): If secondary stack is
5222         involved and the return type is class-wide, use the type of the expression
5223         for the generated access type. Suppress useless discriminant checks on the
5224         allocator.
5225
5226 2008-08-22  Bob Duff  <duff@adacore.com>
5227
5228         * exp_ch7.adb: Minor comment fix
5229
5230         * exp_ch6.ads: Minor comment fix
5231
5232 2008-08-22  Thomas Quinot  <quinot@adacore.com>
5233
5234         * sem_ch8.adb: Minor reformatting
5235         Minor code reorganization (introduce subprogram to factor duplicated
5236         code).
5237
5238 2008-08-22  Sergey Rybin  <rybin@adacore.com>
5239
5240         * gnat_ugn.texi: Change the description of gnatcheck default rule
5241         settings.
5242
5243 2008-08-22  Eric Botcazou  <ebotcazou@adacore.com>
5244
5245         * init.c (__gnat_adjust_context_for_raise): Delete for AIX, HP-UX,
5246         Solaris, FreeBSD, VxWorks and PowerPC/Linux.  For x86{-64}/Linux,
5247         do not adjust the PC anymore.
5248         (__gnat_error_handler): Do not call __gnat_adjust_context_for_raise
5249         on AIX, HP-UX, Solaris, FreeBSD and VxWorks.
5250
5251         * raise-gcc.c (get_call_site_action_for): Use _Unwind_GetIPInfo
5252         instead of _Unwind_GetIP.
5253
5254 2008-08-22  Gary Dismukes  <dismukes@adacore.com>
5255
5256         * exp_aggr.adb (Static_Array_Aggregate): When a static array aggregate
5257         with a range is transformed into a positional aggregate, any copied
5258         component literals should be marked Is_Static_Expression.
5259
5260         * sem_eval.adb (Compile_Time_Known_Value): Don't treat null literals as
5261         not being known at at compile time when Configurable_Run_Time_Mode is
5262         true.
5263
5264 2008-08-22  Robert Dewar  <dewar@adacore.com>
5265
5266         * exp_attr.adb:
5267         (Expand_N_Attribute_Reference): No validity checking on OUT parameter of
5268         Read or Input attribute.
5269
5270 2008-08-22  Ed Schonberg  <schonberg@adacore.com>
5271
5272         * sem_ch8.adb (Use_One_Type): when checking which of two use_type
5273         clauses in related units is redundant, if one of the units is a package
5274         instantiation, use its instance_spec to determine which unit is the
5275         ancestor of the other.
5276
5277 2008-08-22  Javier Miranda  <miranda@adacore.com>
5278
5279         * exp_attr.adb (Expand_N_Attribute_Reference): In case of access
5280         attributes add missing support to handle designated types that come
5281         from the limited view.
5282
5283         * exp_disp.adb (Expand_Interface_Conversion): Remove wrong assertion.
5284
5285 2008-08-22  Sergey Rybin  <rybin@adacore.com>
5286
5287         * vms_data.ads: Add entry for new gnatcheck -mNNN option
5288
5289         * gnat_ugn.texi: Add description for gnatcheck option '-m'
5290
5291 2008-08-22  Sergey Rybin  <rybin@adacore.com>
5292
5293         * gnat_ugn.texi: Update the gnatcheck subsection for metric rules
5294         acoording to the latest changes in the metric rule interface
5295
5296 2008-08-22  Vincent Celier  <celier@adacore.com>
5297
5298         * make.adb (Check.File_Not_A_Source_Of): New Boolean function
5299         (Check): Check if the file names registered in the ALI file for the
5300         spec, the body and each of the subunits are the ones expected.
5301
5302 2008-08-22  Robert Dewar  <dewar@adacore.com>
5303
5304         * g-catiio.adb: Code cleanup.
5305
5306 2008-08-20  Vincent Celier  <celier@adacore.com>
5307
5308         * make.adb (Gnatmake): Remove extra space in version line
5309
5310         * ali.adb:
5311         (Scan_ALI): Use Name_Find, not Name_Enter to get the name of a subunit,
5312         as the name may already have been entered in the table by the Project
5313         Manager.
5314
5315 2008-08-20  Jose Ruiz  <ruiz@adacore.com>
5316
5317         * errno.c (__get_errno, __set_errno for MaRTE): Transform then into
5318         weak symbols so we use the version provided by MaRTE when available.
5319
5320 2008-08-20  Emmanuel Briot  <briot@adacore.com>
5321
5322         * g-catiio.ads, g-catiio.adb:
5323         (Value): Avoid an unnecessary system call to Clock in most cases.
5324         This call is only needed when only the time is provided in the string,
5325         and ignored in all other cases. This is more efficient.
5326
5327 2008-08-20  Eric Botcazou  <ebotcazou@adacore.com>
5328
5329         * raise-gcc.c: Fix formatting nits.
5330
5331 2008-08-20  Robert Dewar  <dewar@adacore.com>
5332
5333         * sem_ch13.adb:
5334         (Adjust_Record_For_Reverse_Bit_Order): Do not access First_Bit for
5335         non-existing component clause.
5336
5337         * exp_ch5.adb: Minor reformatting
5338
5339         * g-comlin.adb: Minor reformatting
5340
5341         * make.adb: Minor reformatting
5342
5343         * prj-proc.adb: Minor reformatting
5344
5345         * stylesw.ads: Minor reformatting
5346
5347 2008-08-20  Vincent Celier  <celier@adacore.com>
5348
5349         * make.adb (Gnatmake_Switch_Found): New Boolean global variable
5350         (Switch_May_Be_Passed_To_The_Compiler): New Boolean global variable
5351         (Add_Switches): New Boolean parameter Unknown_Switches_To_The_Compiler
5352          defaulted to True. Fail when Unknown_Switches_To_The_Compiler is False
5353         and a switch is not recognized by gnatmake.
5354         (Gnatmake): Implement new scheme for gnatmake switches and global
5355         compilation switches.
5356         (Switches_Of): Try successively Switches (<file name>),
5357         Switches ("Ada"), Switches (others) and Default_Switches ("Ada").
5358
5359 2008-08-20  Ed Schonberg  <schonberg@adacore.com>
5360
5361         * styleg-c.ads, styleg-c.adb (Missing_Overriding): new procedure to
5362         implement style check that overriding operations are explicitly marked
5363         at such.
5364
5365         * style.ads (Missing_Overriding): new procedure that provides interface
5366         to previous one.
5367
5368         * stylesw.ads, stylesw.adb: New style switch -gnatyO, to enable check
5369         that the declaration or body of overriding operations carries an
5370         explicit overriding indicator.
5371
5372         * sem_ch8.adb
5373         (Analyze_Subprogram_Renaming): if operation is overriding, check whether
5374         explicit indicator should be present.
5375
5376         * sem_ch6.adb (Verify_Overriding_Indicator,
5377         Check_Overriding_Indicator): If operation is overriding, check whether
5378         declaration and/or body of subprogram should be present
5379
5380 2008-08-20  Vincent Celier  <celier@adacore.com>
5381
5382         * prj-nmsc.adb (Check_Naming_Schemes): Accept source file names for
5383         gprbuild when casing is MixedCase, whatever the casing of the letters
5384         in the file name.
5385
5386 2008-08-20  Gary Dismukes  <dismukes@adacore.com>
5387
5388         * exp_ch3.adb (Build_Array_Init_Proc): Clarify comment related to
5389         creating dummy init proc.
5390         (Requires_Init_Proc): Return False in the case No_Default_Initialization
5391         is in force and the type does not have associated default
5392         initialization. Move test of Is_Public (with tests of restrictions
5393         No_Initialize_Scalars and No_Default_Initialization) to end, past tests
5394         for default initialization.
5395
5396 2008-08-20  Jerome Lambourg  <lambourg@adacore.com>
5397
5398         * g-comlin.adb (For_Each_Simple_Switch): Take care of switches not part
5399         of any alias or prefix but having attached parameters (as \"-O2\").
5400
5401 2008-08-20  Robert Dewar  <dewar@adacore.com>
5402
5403         * s-fileio.adb: Minor reformatting
5404
5405 2008-08-20  Thomas Quinot  <quinot@adacore.com>
5406
5407         * exp_strm.adb (Build_Elementary_Input_Call,
5408         Build_Elementary_Write_Call): Fix incorrect condition in circuitry that
5409         selects the stream attribute routines for long float types.
5410
5411 2008-08-20  Vincent Celier  <celier@adacore.com>
5412
5413         * prj-proc.adb (Process_Declarative_Items): Add Location for Array_Data
5414
5415         * prj.ads (Array_Data): Add a component Location
5416
5417 2008-08-20  Ed Schonberg  <schonberg@adacore.com>
5418
5419         * sem_prag.adb:
5420         (Analyze_Pragma, case Obsolescent): Add entity information on the pragma
5421         argument for ASIS and navigation use.
5422
5423 2008-08-20  Ed Schonberg  <schonberg@adacore.com>
5424
5425         * einfo.ads: Add comment.
5426
5427 2008-08-20  Bob Duff  <duff@adacore.com>
5428
5429         * sem_eval.ads: Minor comment fix.
5430
5431 2008-08-20  Bob Duff  <duff@adacore.com>
5432
5433         * exp_ch4.adb (Expand_N_And_Then, Expand_N_Or_Else): Improve constant
5434         folding. We were folding things like "False and then ...", but not
5435         "X and then ..." where X is a constant whose value is known at compile
5436         time.
5437
5438 2008-08-20  Hristian Kirtchev  <kirtchev@adacore.com>
5439
5440         * exp_ch5.adb (Controlled_Type): New routine.
5441         (Expand_N_Extended_Return_Statement): When generating a move of the
5442         final list in extended return statements, check the type of the
5443         function and in the case of double expanded return statements, the type
5444         of the returned object.
5445         (Expand_Simple_Function_Return): Perform an interface conversion when
5446         the type of the returned object is an interface and the context is an
5447         extended return statement.
5448
5449 2008-08-20  Ed Schonberg  <schonberg@adacore.com>
5450
5451         * sem_util.adb (Set_Debug_Info_Needed): If the entity is a private type
5452         and the full view is visible, set flag on full view as well.
5453
5454 2008-08-20  Thomas Quinot  <quinot@adacore.com>
5455
5456         * g-comlin.adb: Minor reformatting
5457         Minor code reorganization.
5458
5459         * freeze.adb: Minor reformatting
5460
5461 2008-08-20  Vincent Celier  <celier@adacore.com>
5462
5463         * prj-nmsc.adb (Check_File): An excluded Ada source file may be a
5464         source of another project.
5465
5466 2008-08-20  Pascal Obry  <obry@adacore.com>
5467
5468         * s-os_lib.ads: Minor reformatting.
5469
5470 2008-08-20  Arnaud Charlet  <charlet@adacore.com>
5471
5472         * gnatvsn.ads: Minor reformatting.
5473
5474 2008-08-20  Arnaud Charlet  <charlet@adacore.com>
5475
5476         * a-crbtgk.adb, repinfo.adb, g-traceb.ads, repinfo.ads,
5477         system-linux-s390x.ads, s-fatflt.ads, s-parame-ae653.ads, g-spipat.adb,
5478         g-spipat.ads, g-tasloc.adb, g-debpoo.adb, g-except.ads, g-debpoo.ads,
5479         mdll-utl.adb, g-string.adb, g-soliop-solaris.ads, par-sync.adb,
5480         exp_ch6.ads, a-cihama.ads, g-curexc.ads, system-linux-sh4.ads,
5481         g-utf_32.adb, g-hesorg.adb, s-proinf-irix-athread.ads, s-parint.adb,
5482         s-parint.ads, exp_ch7.ads, system-linux-alpha.ads, g-dirope.adb,
5483         sinfo-cn.adb, par-labl.adb, a-ciorse.adb, g-calend.adb,
5484         s-parame-vms-alpha.ads, nlists.h, exp_imgv.adb, exp_fixd.ads,
5485         g-calend.ads, gnatcmd.ads, g-table.adb, s-memory-mingw.adb,
5486         g-alveop.ads, g-memdum.ads, g-altive.ads, initialize.c, g-regpat.adb,
5487         g-busorg.ads, g-regpat.ads, g-encstr.ads, g-regexp.adb, g-regexp.ads,
5488         live.ads, g-dyntab.adb, prj-nmsc.ads, par-ch12.adb, 9drpc.adb,
5489         g-alvevi.ads, s-memory.adb, math_lib.adb, s-parame.ads, s-memory.ads,
5490         s-regexp.adb, a-exexda.adb, i-cstrea-vms.adb, a-exexpr.adb,
5491         g-soliop-mingw.ads, s-imgrea.adb, namet.adb, system-vms.ads,
5492         s-inmaop-dummy.adb, s-finroo.ads, a-ngcefu.adb, s-hibaen.ads,
5493         g-soliop.ads, s-auxdec.adb, g-locfil.ads, gnatxref.adb, memroot.adb,
5494         osint-b.ads, memroot.ads, s-parame-hpux.ads, errutil.adb,
5495         system-linux-s390.ads, par-util.adb, osint-c.ads, exp_pakd.ads,
5496         i-pacdec.ads, par-endh.adb, mlib-tgt.ads, prj-strt.ads,
5497         s-osprim-vms.adb, s-proinf.ads, output.ads, g-moreex.ads,
5498         a-finali.ads, s-fatlfl.ads, namet.h, mdll.ads, g-dynhta.ads,
5499         s-imgenu.ads, par-tchk.adb, g-excact.ads, memtrack.adb, s-fatgen.adb,
5500         a-exexpr-gcc.adb, g-arrspl.adb, par-ch4.adb, g-cgideb.adb, freeze.ads,
5501         g-altcon.adb, s-fatllf.ads, gnatfind.adb, s-osinte-lynxos-3.adb,
5502         a-exextr.adb, g-htable.ads, a-calfor.adb, s-imgcha.adb, argv.c,
5503         a-chahan.ads, g-hesora.adb, system-vms_64.ads, par-ch5.adb, g-md5.adb,
5504         lib-xref.ads, g-md5.ads, g-casuti.ads, s-fatsfl.ads, exp_dbug.ads,
5505         s-htable.ads, a-ngcoar.adb, s-arit64.ads, a-ngelfu.adb, a-filico.ads,
5506         par-ch6.adb, s-inmaop.ads, s-parame-vxworks.ads, s-casuti.ads,
5507         a-numaux-darwin.adb, a-cohama.ads, system-linux-sparc.ads, g-os_lib.adb,
5508         system-vms-ia64.ads, s-parame-vms-restrict.ads, a-clrefi.ads,
5509         s-parame-vms-ia64.ads, a-strfix.adb, a-coorse.adb, a-comlin.ads,
5510         a-chtgke.adb, s-imgint.adb, g-expect.ads, exp_ch4.ads, s-finimp.adb,
5511         mingw32.h, g-heasor.adb, g-alleve.adb, a-ngrear.adb, s-mastop-irix.adb,
5512         s-poosiz.adb, link.c: Fix copyright notice.
5513
5514 2008-08-20  Arnaud Charlet  <charlet@adacore.com>
5515
5516         * g-comlin.ads: Update comments.
5517
5518 2008-08-20  Ed Schonberg  <schonberg@adacore.com>
5519
5520         * sem_ch8.adb (Analyze_Subprogram_Renaming): Inherit Is_Imported flag.
5521
5522 2008-08-20  Gary Dismukes  <dismukes@adacore.com>
5523
5524         * exp_ch11.adb:
5525         (Expand_Exception_Handlers): Call Make_Exception_Handler instead of
5526         Make_Implicit_Exception_Handler when rewriting an exception handler with
5527         a choice parameter, and pass the handler's Sloc instead of that of the
5528         handled sequence of statements. Make_Implicit_Exception_Handler sets the
5529         Sloc to No_Location (unless debugging generated code), which we don't
5530         want for the case of a user handler.
5531
5532 2008-08-20  Robert Dewar  <dewar@adacore.com>
5533
5534         * freeze.adb (Freeze_Record_Type): Improve msg for non-contiguous field
5535
5536         * sem_ch13.adb:
5537         (Adjust_Record_For_Reverse_Bit_Order): Messages about layout are
5538         now labeled as info msgs, not warnings.
5539
5540         * tbuild.ads: Clarify documentation of Make_Implicit_Exception_Handler
5541
5542         * usage.adb: Minor change to avoid overlong line for -gnatwz/Z
5543
5544         * a-textio.adb: Remove redundant test.
5545
5546         * a-witeio.adb: Minor code reorganization
5547         Remove redundant test found working on another issue
5548
5549         * a-ztexio.adb: Minor code reorganization
5550         Remove redundant test found working on another issue
5551
5552 2008-08-20  Thomas Quinot  <quinot@adacore.com>
5553
5554         * s-fileio.adb (Open) Use C helper function to determine whether a
5555         given errno value corresponds to a "file not found" error.
5556
5557         * sysdep.c (__gnat_is_file_not_found_error): New C helper function.
5558
5559 2008-08-20  Jose Ruiz  <ruiz@adacore.com>
5560
5561         * errno.c (__get_errno for MaRTE): Use the MaRTE function pthread_errno
5562         to get access to the per-task errno variable.
5563         (__set_errno for MaRTE): Do not redefine this function here since it is
5564         already defined in MaRTE.
5565
5566 2008-08-20  Tristan Gingold  <gingold@adacore.com>
5567
5568         * gnat_ugn.texi: Gcov is not supported on static library on AIX.
5569
5570 2008-08-20  Robert Dewar  <dewar@adacore.com>
5571
5572         * freeze.adb: Minor reformatting
5573
5574         * g-comlin.adb: Minor reformatting
5575
5576         * g-socket.adb: Minor reformatting
5577
5578         * g-socthi-mingw.adb: Minor reformatting
5579
5580         * g-stheme.adb: Minor reformatting
5581
5582 2008-08-20  Ed Schonberg  <schonberg@adacore.com>
5583
5584         * sem_aggr.adb, sem_type.adb, exp_ch9.ads, einfo.ads,
5585         exp_ch6.adb, exp_aggr.adb (Valid_Ancestor): Resolve
5586         confusion between partial and full views of an ancestor of the context
5587         type when the parent is a private extension declared in a parent unit,
5588         and full views are available for the context type.
5589
5590 2008-08-18  Samuel Tardieu  <sam@rfc1149.net>
5591             Robert Dewar  <dewar@adacore.com>
5592
5593         PR ada/30827
5594         * bindgen.adb (Gen_Output_File_Ada): Zero-terminate the
5595         version string.
5596         Move comment in the right place.
5597         * g-comver.adb (Version): Look for a zero-termination in
5598         addition to a closing parenthesis.
5599
5600 2008-08-18  Samuel Tardieu  <sam@rfc1149.net>
5601
5602         * exp_ch13.adb, exp_disp.adb, sem_cat.adb, sem_ch10.adb,
5603         * sem_ch12.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb,
5604         * sem_prag.adb, sem_util.adb, sem_warn.adb: Use
5605         Is_Package_Or_Generic_Package instead of hand-crafted tests.
5606
5607 2008-08-18  Samuel Tardieu  <sam@rfc1149.net>
5608
5609         PR ada/15808
5610         * sem_ch6.adb (Check_Private_Overriding): Check for generic packages
5611         as well.
5612
5613 2008-08-17  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
5614
5615         * adaint.c (_gnat_set_close_on_exec) [_WIN32]: Implement.
5616
5617 2008-08-16  Eric Botcazou  <ebotcazou@adacore.com>
5618
5619         * gcc-interface/trans.c (call_to_gnu): Use the Sloc of the call
5620         for back-copy statements in lieu of that of the actual.
5621
5622 2008-08-16  Eric Botcazou  <ebotcazou@adacore.com>
5623
5624         PR ada/20548
5625         * gcc-interface/decl.c (gnat_to_gnu_entity): Use DECL_SIZE_UNIT in the
5626         setjmp test consistently.  Adjust for new behavior of flag_stack_check.
5627         * gcc-interface/utils2.c (build_call_alloc_dealloc): Remove redundant
5628         test of flag_stack_check.  Adjust for new behavior of flag_stack_check.
5629
5630 2008-08-13  Samuel Tardieu  <sam@rfc1149.net>
5631
5632         PR ada/36777
5633         * sem_util.ads, sem_util.adb (Is_Protected_Self_Reference): New.
5634         * sem_attr.adb (Check_Type): The current instance of a protected
5635         object is not a type name.
5636         (Analyze_Access_Attribute): Accept instances of protected objects.
5637         (Analyze_Attribute, Attribute_Address clause): Ditto.
5638         * exp_attr.adb (Expand_N_Attribute_Reference): Rewrite
5639         the prefix as being the current instance if needed.
5640
5641 2008-08-12  Danny Smith  <danyssmith@users.sourceforge.net>
5642
5643         * gcc-interface/Makefile.in (EXTRA_GNATRTL_NONTASKING_OBJS) [WINDOWS]:
5644         Remove duplicate s-win32.o. Add s-winext.o.
5645
5646 2008-08-12  Danny Smith  <danyssmith@users.sourceforge.net>
5647
5648         * g-stsifd-sockets.adb (Create): Replace Constants.SOCK_STREAM
5649         with SOSC.SOCK__STREAM.
5650         * g-socthi-mingw.adb (C_Select) Replace Constants.MSG_OOB with
5651         SOSC.MSG_OOB.
5652
5653 2008-08-11  Joel Sherrill  <joel.sherrill@oarcorp.com>
5654
5655         * s-oscons-tmplt.c: RTEMS defines AF_INET6 but does support it.
5656         * gsocket.h, socket.c: Update to support RTEMS.
5657         * gcc-interface/Make-lang.in: Include CFLAGS_FOR_TARGET when cross.
5658
5659 2008-08-10  Samuel Tardieu  <sam@rfc1149.net>
5660             Robert Dewar <dewar@adacore.com>
5661
5662         * exp_ch4.adb (Expand_N_Op_Expon): Force evaluation of
5663         left argument even when right argument is 0.
5664         (Expand_N_Op_Mod): Ditto when right argument is 1.
5665         (Expand_N_Op_Multiply): Ditto when any argument is 0.
5666         (Expand_N_Op_Rem): Ditto when right argument is 1.
5667
5668 2008-08-09  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
5669
5670         * gcc-interface/misc.c (gnat_handle_option): Replace set_Wunused
5671         by warn_unused.
5672
5673 2008-08-08  Ed Schonberg  <schonberg@adacore.com>
5674
5675         * freeze.adb (Generate_Prim_Op_References): New procedure, abstracted
5676         from Freeze_Entity. Used to generate cross-reference information for
5677         types declared in generic packages.
5678
5679 2008-08-08  Thomas Quinot  <quinot@adacore.com>
5680
5681         * gcc-interface/Makefile.in: Reintroduce g-soccon.ads as a
5682         compatibility shim.
5683
5684 2008-08-08  Thomas Quinot  <quinot@adacore.com>
5685
5686         * gsocket.h:
5687         On Windows, include <errno.h> and redefine only selected errno values
5688         from their <winsock2.h> definitions.
5689
5690         * s-osinte-freebsd.ads: Minor reformatting
5691
5692         * s-osinte-hpux.ads, s-osinte-irix.ads: Minor reformatting
5693
5694         * g-soccon.ads: New file.
5695
5696         * g-stheme.adb, g-socthi-vms.adb, g-socthi-vxworks.adb,
5697         g-socthi-mingw.adb, g-sttsne-vxworks.adb, g-socthi.adb,
5698         g-stsifd-sockets.adb, g-socket.adb, g-socket.ads,
5699         g-sothco.adb, g-sothco.ads: Add back GNAT.Sockets.Constants as a child
5700         unit, to allow building software that depends on this internal unit
5701         with both older and newer compilers.
5702
5703 2008-08-08  Robert Dewar  <dewar@adacore.com>
5704
5705         * s-strxdr.adb: Minor reformatting
5706
5707 2008-08-08  Bob Duff  <duff@adacore.com>
5708
5709         * gnat_ugn.texi: The "Run-Time Checks" section said "arithmetic overflow
5710         checking for integer operations (including division by zero)", which
5711         is wrong -- divide by zero is not part of overflow checking.
5712         Also added misc clarification about what check-suppression means.
5713
5714         * gnat_rm.texi: Clarify the meaning of pragma Suppress.
5715
5716 2008-08-08  Jerome Lambourg  <lambourg@adacore.com>
5717
5718         * g-comlin.adb (Add_Switch): Handle addition of switches at the
5719         begining of the command line.
5720         (Append, Add): Renaming of Append to Add as this now allows addition
5721         at the begining of the list.
5722
5723         * g-comlin.ads (Add_Switch): Handle addition of switches at the
5724         begining of the command line.
5725
5726 2008-08-08  Thomas Quinot  <quinot@adacore.com>
5727
5728         * g-sercom.ads:
5729         (Name): Document application scope (only legacy PC serial ports on
5730         Linux and Windows).
5731
5732 2008-08-08  Thomas Quinot  <quinot@adacore.com>
5733
5734         * gcc-interface/Makefile.in, gcc-interface/Make-lang.in: Revert
5735         previous change, not needed after all.
5736
5737 2008-08-08  Ed Schonberg  <schonberg@adacore.com>
5738
5739         * exp_ch4.adb (Expand_Allocator_Expression): add check if null
5740         exclusion indicator is present
5741
5742 2008-08-08  Robert Dewar  <dewar@adacore.com>
5743
5744         * g-comlin.adb: Minor code reorganization
5745         Minor reformatting
5746
5747         * g-comlin.ads: Minor reformatting
5748
5749         * s-fileio.adb: Minor reformatting
5750
5751         * sem_attr.adb: Minor code reorganization (use Nkind_In)
5752         Minor reformatting
5753
5754 2008-08-06  Samuel Tardieu  <sam@rfc1149.net>
5755
5756         * gcc-interface/Make-lang.in: Use GCC_FOR_TARGET when dealing
5757         with s-oscons-tmplt.i.
5758
5759 2008-08-06  Samuel Tardieu  <sam@rfc1149.net>
5760
5761         * gcc-interface/Make-lang.in (OSCONS_CPPFLAGS): Remove.
5762
5763 2008-08-06  Ed Schonberg  <schonberg@adacore.com>
5764
5765         * sem_ch3.adb (Analyze_Component_Declaration): Protect against misuse
5766         of incomplete type.
5767
5768         * sem_ch8.adb (Analyze_Object_Renaming): Diagnose properly a renaming
5769         of a formal parameter of an incomplete type. Improve error message for
5770         other improper uses of incomplete types.
5771
5772 2008-08-06  Robert Dewar  <dewar@adacore.com>
5773
5774         * gnat_ugn.texi: Clarify -gnato documentation
5775
5776 2008-08-06  Thomas Quinot  <quinot@adacore.com>
5777
5778         * gcc-interface/Makefile.in,
5779         g-socthi-vxworks.adb, g-socthi-mingw.adb, g-sttsne-vxworks.adb,
5780         g-socthi.adb, g-socket.adb, g-socket.ads, g-sothco.ads,
5781         g-soccon-linux-x86.ads, g-soccon-vxworks.ads, g-soccon-mingw.ads,
5782         g-soccon-hpux-ia64.ads, g-soccon-irix.ads, g-soccon-linux-64.ads,
5783         g-soccon-aix.ads, g-soccon-solaris.ads, g-soccon-lynxos.ads,
5784         g-soccon-vms.ads, g-soccon.ads, g-soccon-freebsd.ads,
5785         g-soccon-linux-ppc.ads, g-soccon-tru64.ads, g-soccon-hpux.ads,
5786         g-soccon-solaris-64.ads, gen-oscons.c, g-soccon-darwin.ads,
5787         g-soccon-mingw-64.ads, g-soccon-linux-mips.ads, g-soccon-rtems.ads:
5788         Remove GNAT.Sockets.Constants. This internal package is replaced by
5789         System.OS_Constants.
5790
5791 2008-08-06  Thomas Quinot  <quinot@adacore.com>
5792
5793         * gcc-interface/Makefile.in, gcc-interface/Make-lang.in:
5794         Remove obsolete targets referencing gen-soccon
5795         When generating s-oscons.ads, use a file name that includes the
5796         THREAD_KIND, to ensure that the (potentially different) version from a
5797         previous build with a different threads flavour does not get reused.
5798
5799 2008-08-06  Thomas Quinot  <quinot@adacore.com>
5800
5801         * sem_res.adb: Minor reformatting
5802
5803         * s-fileio.adb (Open): When file open operation fails, raise Name_Error
5804         only when the operating system reports a non-existing file or directory
5805         (ENOENT), otherwise raise Name_Error.
5806
5807         * exp_ch11.adb: Minor reformatting
5808
5809 2008-08-06  Ed Schonberg  <schonberg@adacore.com>
5810
5811         * sem_ch3.adb (Access_Subprogram_Declaration): If the return type is
5812         incomplete, add the access_to_subprogram type to the list of private
5813         dependents only if the incomplete type will be completed in the current
5814         scope.
5815         (Build_Discriminant_Constraints): If the type of the discriminant is
5816         access_to_variable, reject a constraint that is access_to_constant.
5817
5818 2008-08-06  Thomas Quinot  <quinot@adacore.com>
5819
5820         * g-socket-dummy.adb, g-socket-dummy.ads, g-sothco-dummy.adb,
5821         g-sothco-dummy.ads, g-socthi-dummy.adb, g-socthi-dummy.ads,
5822         g-sttsne-dummy.ads: New files.
5823
5824         * gcc-interface/Makefile.in, Makefile.rtl: Use placeholder sources
5825         with pragma Unimplemented_Unit for sockets packages on Nucleus.
5826
5827 2008-08-06  Pascal Obry  <obry@adacore.com>
5828
5829         * adaint.c: Another fix for ACL support on Windows.
5830
5831 2008-08-06  Javier Miranda  <miranda@adacore.com>
5832
5833         * exp_disp (Expand_Interface_Actuals): Adds missing support for
5834         expansion of calls to subprograms using selected components.
5835
5836 2008-08-06  Ed Schonberg  <schonberg@adacore.com>
5837
5838         * sem_res.adb (Resolve_Call): Use base type to determine whether a
5839         dereference is needed because a subtype of an access_to_subprogram is
5840         simply an access-subtype
5841
5842 2008-08-06  Jerome Lambourg  <lambourg@adacore.com>
5843
5844         * g-comlin.adb (Set_Command_Line): Now that aliases can contain
5845         parameters, always specify the expected separator.
5846
5847 2008-08-06  Thomas Quinot  <quinot@adacore.com>
5848
5849         * xnmake.adb: Use new XUtil package for platform independent text
5850         output.
5851
5852 2008-08-06  Vincent Celier  <celier@adacore.com>
5853
5854         * gnat_ugn.texi: Document compiler switch -gnateG
5855
5856 2008-08-06  Quentin Ochem  <ochem@adacore.com>
5857
5858         * s-stausa.adb (Fill_Stack): Fixed pragma assert and top pattern mark
5859         in the case of an empty pattern size.
5860         (Compute_Result): Do not do any computation in the case of an empty
5861         pattern size.
5862         (Report_Result): Fixed computation of the overflow guard.
5863
5864 2008-08-06  Ed Schonberg  <schonberg@adacore.com>
5865
5866         * g-awk.adb (Finalize): Do not use directly objects of the type in the
5867         finalization routine to prevent elaboration order anomalies in new
5868         finalization scheme.
5869
5870 2008-08-06  Ed Schonberg  <schonberg@adacore.com>
5871
5872         * sem_ch3.adb (Find_Type_Name): protect against duplicate incomplete
5873         declaration for the same type.
5874
5875 2008-08-06  Thomas Quinot  <quinot@adacore.com>
5876
5877         * sem.adb: Minor rewording (comment)
5878
5879 2008-08-06  Jerome Lambourg  <lambourg@adacore.com>
5880
5881         * g-comlin.adb (Define_Switch, Get_Switches): New.
5882         (Can_Have_Parameter, Require_Parameter, Actual_Switch): New, used when
5883         ungrouping switches.
5884         (For_Each_Simple_Switch): Allow more control over parameters handling.
5885         This generic method now allows ungrouping of switches with parameters
5886         and switches with more than one letter after the prefix.
5887         (Set_Command_Line): Take care of switches that are prefixed with a
5888         switch handling parameters without delimiter (-gnatya and -gnaty3 for
5889         example).
5890         (Add_Switch, Remove_Switch): Handle parameters possibly present inside
5891         a group, as in gnaty3aM80 (3 and 80 are parameters). Report status of
5892         the operation.
5893         (Start, Alias_Switches, Group_Switches): Take care of parameters
5894         possibly present inside a group.
5895
5896         * g-comlin.ads (Define_Switch): New method used to define a list of
5897         expected switches, that are necessary for correctly ungrouping switches
5898         with more that one character after the prefix.
5899         (Get_Switches): Method that builds a getopt string from the list of
5900         switches as set previously by Define_Switch.
5901         (Add_Switch, Remove_Switch): New versions of the methods, reporting the
5902         status of the operation. Also allow the removal of switches with
5903         parameters only.
5904         (Command_Line_Configuration_Record): Maintain a list of expected
5905         switches.
5906
5907 2008-08-06  Doug Rupp  <rupp@adacore.com>
5908
5909         * gcc-interface/decl.c (gnat_to_gnu_param): Force 32bit descriptor if
5910         TARGET_MALLOC64 clear.
5911
5912         * gcc-interface/utils2.c (build_call_alloc_dealloc): Force 32bit malloc
5913         if TARGET_MALLOC64 clear.
5914
5915         * gcc-interface/gigi.h (TARGET_ABI_OPEN_VMS): Move here from utils2.c
5916         (TARGET_MALLC64): New macro. Default to clear.
5917
5918 2008-08-06  Doug Rupp  <rupp@adacore.com>
5919
5920         * gcc-interface/utils2.c (snames.h) Include
5921         (TARGET_ABI_OPEN_VMS): Initialize.
5922         (build_call_alloc_dealloc); [TARGET_ABI_OPEN_VMS] Allocate on 32bit heap
5923         for Convention C.
5924
5925 2008-08-06  Ed Schonberg  <schonberg@adacore.com>
5926
5927         * sem_ch3.adb (Process_Discriminants): diagnose redundant or improper
5928         null exclusion in a discriminant declaration
5929
5930         * sem_ch8.adb (Analyze_Object_Renaming): diagnose null exclusion
5931         indicators when type is not an access type.
5932
5933         * sem_ch12.adb (Formal_Object_Declaration): diagnose null exclusion
5934         indicators when type is not an access type.
5935
5936 2008-08-06  Javier Miranda  <miranda@adacore.com>
5937
5938         * exp_disp (Expand_Interface_Conversion): Freeze the entity associated
5939         with the target interface before expanding the code of the interface
5940         conversion.
5941
5942 2008-08-05  Ed Schonberg  <schonberg@adacore.com>
5943
5944         * freeze.adb:
5945         (Freeze_Entity): A deferred constant does not violate the restriction
5946         No_Default_Initialization,
5947
5948         * sem_ch3.adb (Process_Subtype): An allocator is a valid construct that
5949         can carry a null exclusion indicator, and on which an error may be
5950         posted if the indicator is redundant.
5951
5952         * sem_ch8.adb (Analyze_Object_Renaming): Verify that a null exclusion
5953         does not apply to a subtype mark that already excludes null.
5954
5955         * sem_ch12.adb (Formal_Object_Declaration): Verify that a null
5956         exclusion does not apply to a subtype mark that already excludes null.
5957
5958 2008-08-05  Thomas Quinot  <quinot@adacore.com>
5959
5960         * Makefile.rtl: Compile s-oscons.ads as part of the runtime library.
5961
5962 2008-08-05  Doug Rupp  <rupp@adacore.com>
5963
5964         * vms_data.ads: Translation for /POINTER_SIZE qualifier.
5965
5966 2008-08-05  Thomas Quinot  <quinot@adacore.com>
5967
5968         * gsocket.h: Make this file includable in a Nucleus environment, which
5969         does not support sockets.
5970
5971         * socket.c: Remove Nucleus-specific hack.
5972
5973 2008-08-05  Pascal Obry  <obry@adacore.com>
5974
5975         * adaint.c: Remove support for readable attribute on vxworks and nucleus
5976
5977 2008-08-05  Ed Schonberg  <schonberg@adacore.com>
5978
5979         * sem_attr.adb:
5980         (Analyze_Attribute, case 'Result): handle properly the case where some
5981         operand of the expression in a post-condition generates a transient
5982         block.
5983
5984         * sem_ch5.adb (Analyze_Assignment_Statement): Apply conversion to
5985         right-hand side when it is an anonymous access_to_subprogram, to force
5986         static accessibility check when needed.
5987
5988 2008-08-05  Sergey Rybin  <rybin@adacore.com>
5989
5990         * gnat_ugn.texi: Changing the description of the gnatcheck metrics
5991         rule according to the change in the rule option.
5992         Add documentation for -gnatw.b/-gnatw.B
5993
5994 2008-08-05  Robert Dewar  <dewar@adacore.com>
5995
5996         * ug_words: Add entries for -gnatw.b/-gnatw.B
5997
5998         * vms_data.ads: Add entries for -gnatw.b/-gnatw.B
5999
6000 2008-08-05  Vincent Celier  <celier@adacore.com>
6001
6002         * a-wtdeio.adb (Put (Current_Output)): Use Fore in the call to Put
6003         (File).
6004
6005         * a-ztdeio.adb: Ditto.
6006
6007 2008-08-05  Pascal Obry  <obry@adacore.com>
6008
6009         * adaint.c, adaint.h, s-os_lib.adb, s-os_lib.ads: Add support for the
6010         readable attribute.
6011
6012 2008-08-05  Vincent Celier  <celier@adacore.com>
6013
6014         * s-wchwts.adb:
6015         (Wide_String_To_String): Returns a String with the same 'First as its
6016         parameter S.
6017         (Wide_Wide_String_To_String): Ditto
6018
6019         * s-wchwts.ads:
6020         (Wide_String_To_String): Document that the lowest index of the returned
6021         String is equal to S'First.
6022
6023 2008-08-05  Thomas Quinot  <quinot@adacore.com>
6024
6025         * xoscons.adb, xutil.ads, xutil.adb, s-oscons-tmplt.c: New files.
6026
6027         * gcc-interface/Makefile.in, gcc-interface/Make-lang.in: Generate
6028         s-oscons.ads
6029
6030 2008-08-05  Robert Dewar  <dewar@adacore.com>
6031
6032         * opt.ads (Warn_On_Biased_Representation): New flag
6033
6034         * sem_ch13.adb:
6035         (Analyze_Attribute_Definition_Clause): Issue warning when biased
6036         representation is required.
6037         (Minimum_Size): Don't allow biasing if enum rep clause case
6038
6039         * sem_warn.adb:
6040         (Set_Dot_Warning_Switch): Add handling of -gnatw.b/B switches
6041         (Set_Warning_Switch): Include -gnatw.b in -gnatwa, -gnatw.B in gnatws
6042
6043         * usage.adb: Add lines for -gnatw.b/B switches
6044
6045 2008-08-05  Pascal Obry  <obry@adacore.com>
6046
6047         * a-coinve.adb: Reorder the code to avoid uninitialized warning.
6048
6049         * adaint.c: In UNIX cases do not call __gnat_stat but stat directly.
6050
6051 2008-08-05  Thomas Quinot  <quinot@adacore.com>
6052
6053         * socket.c: Minor reformatting.
6054
6055 2008-08-05  Robert Dewar  <dewar@adacore.com>
6056
6057         * sem_ch3.adb: Minor reformatting
6058
6059         * prj-nmsc.adb: Minor reformatting
6060
6061 2008-08-05  Ed Schonberg  <schonberg@adacore.com>
6062
6063         * sem_ch12.adb (Validate_Array_Type_Instance): Only apply complex
6064         visibility check on the component type if the simple test fails.
6065
6066 2008-08-05  Jose Ruiz  <ruiz@adacore.com>
6067
6068         * init.c (__gnat_install_handler for linux): If we are building the
6069         Xenomai run time then we need to do two additional things: avoid
6070         memory swapping and transform the Linux environment task into a native
6071         Xenomai task.
6072
6073         * gcc-interface/Makefile.in (LIBGNAT_TARGET_PAIRS for xenomai run
6074         time): Use interface to Xenomai native skin and avoid linux-specific
6075         way of setting CPU affinity.
6076         (EH_MECHANISM for the xenomai run time): Use sjlj exception mechanism.
6077
6078 2008-08-05  Bob Duff  <duff@adacore.com>
6079
6080         * checks.ads: Minor comment fix
6081
6082 2008-08-05  Thomas Quinot  <quinot@adacore.com>
6083
6084         * g-sercom.adb, g-sercom.ads, g-sercom-mingw.adb,
6085         g-sercom-linux.adb (Data_Bits): Change literals B7 and B8 to CS7 and
6086         CS8.
6087
6088 2008-08-05  Robert Dewar  <dewar@adacore.com>
6089
6090         * mlib.adb: Minor code reorganization
6091         Minor reformatting
6092
6093         * make.adb: Minor reformatting
6094
6095         * prj-attr.ads: Minor reformatting
6096
6097         * s-os_lib.adb: Minor reformatting
6098
6099         * s-fileio.adb: Minor code reorganization
6100         Minor reformatting
6101
6102         * prj.ads: Minor reformatting
6103
6104 2008-08-05  Bob Duff  <duff@adacore.com>
6105
6106         * sem_ch3.adb (Analyze_Object_Declaration): Avoid type Any_Access in
6107         unresolved initial value of "null", because it causes implicitly
6108         generated "=" operators to be ambiguous, and because this type should
6109         not be passed to gigi.
6110
6111 2008-08-05  Vincent Celier  <celier@adacore.com>
6112
6113         * mlib.adb: Update comments.
6114
6115         * make.adb (Switches_Of): Check for Switches (others), before checking
6116         for Default_Switches ("Ada").
6117         (Gnatmake): Use Builder'Switches (others) in preference to
6118         Builder'Default_Switches ("Ada") if there are several mains.
6119
6120         * prj-attr-pm.adb:
6121         (Add_Attribute): Add component Others_Allowed in Attribute_Record
6122         aggregate.
6123
6124         * prj-attr.adb:
6125         Add markers to indicates that attributes Switches allow others as index
6126         (Others_Allowed_For): New Boolean function, returning True for
6127         attributes with the mark.
6128         (Initialize): Recognize optional letter 'O' as the marker for
6129         associative array attributes where others is allowed as the index.
6130
6131         * prj-attr.ads:
6132         (Others_Allowed_For): New Boolean function
6133         (Attribute_Record): New Boolean component Others_Allowed
6134
6135         * prj-dect.adb:
6136         (Parse_Attribute_Declaration): For associative array attribute where
6137         others is allowed as the index, allow others as an index.
6138
6139         * prj-nmsc.adb:
6140         (Process_Binder): Skip associative array attributes with index others
6141         (Process_Compiler): Ditto
6142
6143         * prj-util.adb:
6144         (Value_Of (Index, In_Array)): Make no attempt to put in lower case when
6145         index is All_Other_Names.
6146
6147         * prj.ads:
6148         (All_Other_Names): New constant
6149
6150         * prj-proc.adb:
6151         (Process_Declarative_Items): Skip associative array attribute when index
6152         is reserved word "others".
6153
6154 2008-08-05  Vasiliy Fofanov  <fofanov@adacore.com>
6155
6156         * gen-oscons.c: Adapt for VMS where termios.h is not available.
6157
6158 2008-08-05  Thomas Quinot  <quinot@adacore.com>
6159
6160         * a-rttiev.adb: Minor reformatting (comments)
6161
6162         * gen-soccon.c: Rename to gen-oscons.c
6163
6164         * gen-oscons.c: New file. Now generate System.OS_Constants instead of
6165         GNAT.Sockets.Constants.
6166         Add new constants for GNAT.Serial_Communications and System.File_IO.
6167
6168 2008-08-05  Javier Miranda  <miranda@adacore.com>
6169
6170         * sem_util.adb (Collect_Interfaces_Info): Minor reformating.
6171         * exp_ch3.adb (Build_Offset_To_Top_Functions): Code cleanup: the
6172         implementation of this routine has been simplified.
6173
6174 2008-08-05  Pascal Obry  <obry@adacore.com>
6175
6176         * adaint.c, adaint.h, s-os_lib.adb, s-os_lib.ads: Fix the
6177         Set_Read_Only Win32 implementation.
6178
6179 2008-08-05  Thomas Quinot  <quinot@adacore.com>
6180
6181         * exp_strm.adb: Minor reformatting (comments)
6182
6183         * sem_ch12.adb: Minor reformatting.
6184
6185 2008-08-05  Robert Dewar  <dewar@adacore.com>
6186
6187         * sem_ch3.adb: Minor reformatting
6188
6189         * checks.adb: Minor reformatting
6190
6191 2008-08-05  Thomas Quinot  <quinot@adacore.com>
6192
6193         * tbuild.ads (New_External_Name): Update spec to reflect relaxed
6194         restriction on Prefix.
6195
6196 2008-08-05  Jerome Lambourg  <lambourg@adacore.com>
6197
6198         * g-comlin.adb (Sort_Sections, Group_Switches): New/Modified internal
6199         methods needed to handle switch sections when building a command line.
6200         (Define_Section, Add_Switch, Remove_Switch, Is_New_Section,
6201         Current_Section): New public methods or methods modified to handle
6202         building command lines with sections.
6203         (Set_Command_Line): Take into account sections when analysing a switch
6204         string.
6205         (Start): Sort the switches by sections before iterating the command line
6206         elements.
6207
6208         * g-comlin.ads (Define_Section, Add_Switch, Remove_Switch,
6209         Is_New_Section, Current_Section): New methods or methods modified to
6210         handle building command lines with sections.
6211
6212 2008-08-05  Ed Schonberg  <schonberg@adacore.com>
6213
6214         * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): For access
6215         discriminants, indicate that the corresponding object declaration has
6216         no initialization, to prevent spurious warnings when the access type is
6217         null-excluding.
6218
6219 2008-08-05  Ed Schonberg  <schonberg@adacore.com>
6220
6221         * sem_res.adb (Resolve_Call): If this is a call to the predefined
6222         Abort_Task, warn if the call appears within a protected operation.
6223
6224 2008-08-04  Robert Dewar  <dewar@adacore.com>
6225
6226         * exp_ch4.adb (Expand_N_In): Suppress range warnings in instances
6227
6228 2008-08-04  Ed Schonberg  <schonberg@adacore.com>
6229
6230         * sem_ch3.adb:
6231         (Replace_Anonymous_Access_To_Protected_Subprogram): Handle properly an
6232         anonymous access to protected subprogram that is the return type of the
6233         specification of a subprogram body.
6234
6235         * sem_ch6.adb:
6236         (Analyze_Subprogram_Body): if the return type is an anonymous access to
6237         subprogram, freeze it now to prevent access anomalies in the back-end.
6238
6239         * exp_ch9.adb: Minor code cleanup.
6240         Make sure that new declarations are inserted into the tree before
6241         analysis (from code reading).
6242
6243 2008-08-04  Robert Dewar  <dewar@adacore.com>
6244
6245         * exp_ch5.adb:
6246         (Expand_Simple_Function_Return): Check No_Secondary_Stack restriction
6247         at point of return.
6248
6249 2008-08-04  Thomas Quinot  <quinot@adacore.com>
6250
6251         * sem_type.adb, sem_ch4.adb, sprint.adb, exp_ch3.adb: Minor reformatting
6252
6253 2008-08-04  Vasiliy Fofanov  <fofanov@adacore.com>
6254
6255         * g-soccon-mingw.ads: Fix value for MSG_WAITALL
6256
6257 2008-08-04  Javier Miranda  <miranda@adacore.com>
6258
6259         * sem_prag.adb (Process_Convention): Add missing support for
6260          N_Private_Extension_Declaration nodes.
6261
6262 2008-08-04  Robert Dewar  <dewar@adacore.com>
6263
6264         * exp_ch4.adb: Minor reformatting
6265
6266 2008-08-04  Pascal Obry  <obry@adacore.com>
6267
6268         * adaint.h: Add missing prototype.
6269
6270         * adaint.c: Refine support for Windows file attributes.
6271
6272 2008-08-04  Robert Dewar  <dewar@adacore.com>
6273
6274         * sem_res.adb:
6275         (Valid_Conversion): Catch case of designated types having different
6276         sizes, even though they statically match.
6277
6278 2008-08-04  Javier Miranda  <miranda@adacore.com>
6279
6280         * sem_eval.adb (Subtypes_Statically_Match): Remove superfluous patch
6281         added in previous patch to handle access to subprograms.
6282
6283 2008-08-04  Robert Dewar  <dewar@adacore.com>
6284
6285         * freeze.adb:
6286         (Freeze_Entity): Only check No_Default_Initialization restriction for
6287         constructs that come from source
6288
6289 2008-08-04  Thomas Quinot  <quinot@adacore.com>
6290
6291         * exp_ch6.adb: Minor comment fix.
6292
6293         * sem_ch4.adb: Minor reformatting.
6294
6295 2008-08-04  Robert Dewar  <dewar@adacore.com>
6296
6297         * sem_res.adb: (Large_Storage_Type): Improve previous change.
6298
6299 2008-08-04  Pascal Obry  <obry@adacore.com>
6300
6301         * adaint.c, s-os_lib.adb, s-os_lib.ads: Use Windows ACL to deal with
6302         file attributes.
6303
6304 2008-08-04  Javier Miranda  <miranda@adacore.com>
6305
6306         * sem_ch3.adb (Access_Subprogram_Declaration): Adding missing support
6307         for N_Formal_Object_Declaration nodes. Adding kludge required by
6308         First_Formal to provide its functionality with access to functions.
6309         (Replace_Anonymous_Access_To_Protected_Subprogram): Add missing support
6310         for anonymous access types returned by functions.
6311
6312         * sem_ch5.adb (Analyze_Assignment): Code cleanup to avoid duplicate
6313         conversion of null-excluding access types (required only once to force
6314         the generation of the required runtime check).
6315
6316         * sem_type.adb (Covers): minor reformating
6317
6318         * checks.adb (Null_Exclusion_Static_Checks): Avoid reporting errors
6319         with internally generated nodes. Avoid generating the error inside init
6320         procs.
6321
6322         * sem_res.adb (Resolve_Membership_Test): Minor reformating.
6323         (Resolve_Null): Generate the null-excluding check in case of assignment
6324         to a null-excluding object.
6325         (Valid_Conversion): Add missing support for anonymous access to
6326         subprograms.
6327
6328         * sem_ch6.adb (Check_Return_Subtype_Indication): Add missing support for
6329         anonymous access types whose designated type is an itype. This case
6330         occurs with anonymous access to protected subprograms types.
6331         (Analyze_Return_Type):  Add missing support for anonymous access to
6332         protected subprogram.
6333
6334         * sem_eval.adb (Subtypes_Statically_Match): In case of access to
6335         subprograms addition of missing check on matching convention. Required
6336         to properly handle access to protected subprogram types.
6337
6338         * exp_ch3 (Build_Assignment): Code cleanup removing duplicated check on
6339         null excluding access types.
6340
6341 2008-08-04  Ed Schonberg  <schonberg@adacore.com>
6342
6343         * sem_ch12.adb: Add comments
6344
6345         * sem_ch4.adb (Analyze_Allocator): If the designated type is a non-null
6346         access type and the allocator is not initialized, warn rather than
6347         reporting an error.
6348
6349 2008-08-04  Robert Dewar  <dewar@adacore.com>
6350
6351         * exp_ch4.adb: Minor reformatting
6352
6353         * exp_dist.adb: Minor reformatting
6354
6355         * g-comlin.adb: Minor reformatting
6356
6357 2008-08-04  Gary Dismukes  <dismukes@adacore.com>
6358
6359         * exp_aggr.adb (Build_Record_Aggr_Code): Perform a conversion of the
6360         target to the type of the aggregate in the case where the target object
6361         is class-wide.
6362
6363         * exp_ch5.adb (Expand_Simple_Function_Return): When the function's
6364         result type is class-wide and inherently limited, and the expression
6365         has a specific type, create a return object of the specific type, for
6366         more efficient handling of returns of build-in-place aggregates (avoids
6367         conversions of the class-wide return object to the specific type on
6368         component assignments).
6369
6370         * sem_ch6.adb (Check_Return_Subtype_Indication): Suppress the error
6371         about a type mismatch for a class-wide function with a return object
6372         having a specific type when the object declaration doesn't come from
6373         source. Such an object can result from the expansion of a simple return.
6374
6375 2008-08-04  Vasiliy Fofanov  <fofanov@adacore.com>
6376
6377         * g-soccon-mingw-64.ads, system-mingw-x86_64.ads: New files.
6378
6379         * gcc-interface/Makefile.in: Use 64bit-specific system files when
6380         compiling for 64bit windows.
6381
6382 2008-08-04  Jerome Lambourg  <lambourg@adacore.com>
6383
6384         * g-comlin.adb (Group_Switches): Preserve the switch order when
6385         grouping and allow switch grouping of switches with more than one
6386         character extension (e.g. gnatw.x).
6387         (Args_From_Expanded): Remove this now obsolete method.
6388
6389 2008-08-04  Ed Schonberg  <schonberg@adacore.com>
6390
6391         * exp_ch4.adb (Get_Allocator_Final_List): Freeze anonymous type for
6392         chain at once, to ensure that type is properly decorated for back-end,
6393         when allocator appears within a loop.
6394
6395 2008-08-04  Kevin Pouget  <pouget@adacore.com>
6396
6397         * snames.h, snames.adb, snames.ads:
6398         Add Attr_To_Any, Attr_From_Any and Attr_TypeCode defines.
6399
6400         * exp_dist.ads, exp_dist.adb: Add Build_From_Any_Call,
6401         Build_To_Any_Call and Build_TypeCode_Call procedures.
6402
6403         * exp_attr.adb, sem_attr.adb: Add corresponding cases.
6404
6405         * rtsfind.ads: Add corresponding names.
6406
6407         * tbuild.adb: Update prefix restrictions to allow '_' character.
6408
6409 2008-08-04  Doug Rupp  <rupp@adacore.com>
6410
6411         * gigi.h (fill_vms_descriptor): Add third parameter gnat_actual
6412         * trans.c (call_to_gnu): Call fill_vms_descriptor with new parameter.
6413         * utils2.c (fill_vms_descriptor): Add third parameter for error sloc and
6414         use it.  Calculate pointer range overflow using 64bit types.
6415
6416 2008-08-04  Ed Schonberg  <schonberg@adacore.com>
6417
6418         * sem_ch3.adb (Access_Definition): A formal object declaration is a
6419         legal context for an anonymous access to subprogram.
6420
6421         * sem_ch4.adb (Analyze_One_Call): If the call can be interpreted as an
6422         indirect call, report success to the caller to include possible
6423         interpretation.
6424
6425         * sem_ch6.adb (Check_Return_Type_Indication): Apply proper conformance
6426         check when the type
6427         of the extended return is an anonymous access_to_subprogram type.
6428
6429         * sem_res.adb:
6430         (Resolve_Call): Insert a dereference if the type of the subprogram is an
6431         access_to_subprogram and the context requires its return type, and a
6432         dereference has not been introduced previously.
6433
6434 2008-08-04  Arnaud Charlet  <charlet@adacore.com>
6435
6436         * usage.adb (Usage): Minor rewording of -gnatwz switch, to improve
6437         gnatcheck support in GPS.
6438
6439 2008-08-04  Vincent Celier  <celier@adacore.com>
6440
6441         * mlib.adb (Create_Sym_Links): Create relative symbolic links when
6442         requested
6443
6444 2008-08-04  Vincent Celier  <celier@adacore.com>
6445
6446         * gprep.adb (Process_One_File): Call Prep.Preprocess with a Boolean
6447         variable, but don't check the resulting value as it has no impact on
6448         the processing.
6449
6450         * opt.ads:
6451         (Generate_Processed_File): New Boolean flag, set to True in the compiler
6452         when switch -gnateG is used.
6453
6454         * prep.adb:
6455         (Preprocess): new Boolean out parameter Source_Modified. Set it to True
6456         when the source is modified by the preprocessor and there is no
6457         preprocessing errors.
6458
6459         * prep.ads (Preprocess): new Boolean out parameter Source_Modified
6460
6461         * sinput-l.adb:
6462         (Load_File): Output the result of preprocessing if the source text was
6463         modified.
6464
6465         * switch-c.adb (Scan_Front_End_Switches): Recognize switch -gnateG
6466
6467         * switch-m.adb (Normalize_Compiler_Switches): Normalize switch -gnateG
6468
6469         * ug_words: Add VMS equivalent for -gnateG
6470
6471         * vms_data.ads:
6472         Add VMS option /GENERATE_PROCESSED_SOURCE, equivalent to switch -gnateG
6473
6474 2008-08-04  Doug Rupp  <rupp@adacore.com>
6475
6476         * gcc-interface/utils2.c:
6477         (fill_vms_descriptor): Raise CE if attempt made to pass 64bit pointer
6478         in 32bit descriptor.
6479
6480 2008-08-04  Robert Dewar  <dewar@adacore.com>
6481
6482         * par-ch10.adb: Minor reformatting
6483
6484         * i-cobol.adb: Minor reformatting.
6485
6486 2008-08-04  Ed Schonberg  <schonberg@adacore.com>
6487
6488         * sem_ch3.adb (Access_Definition): Create an itype reference for an
6489         anonymous access return type of a regular function that is not a
6490         compilation unit.
6491
6492 2008-08-04  Vincent Celier  <celier@adacore.com>
6493
6494         * prj-attr.adb: New Builder attribute Global_Compilation_Switches
6495
6496         * snames.adb: New standard name Global_Compilation_Switches
6497
6498         * snames.ads: New standard name Global_Compilation_Switches
6499
6500         * make.adb: Correct spelling error in comment
6501
6502 2008-08-04  Arnaud Charlet  <charlet@adacore.com>
6503
6504         * sem_prag.adb (Check_Form_Of_Interface_Name): Fix handling for CLI
6505         target.
6506
6507 2008-08-04  Thomas Quinot  <quinot@adacore.com>
6508
6509         * sem_ch10.adb: Minor comment fix.
6510
6511 2008-08-04  Robert Dewar  <dewar@adacore.com>
6512
6513         * restrict.adb: Improved messages for restriction warnings
6514
6515         * restrict.ads: Improved messages for restriction messages
6516
6517         * s-rident.ads (Profile_Name): Add No_Profile
6518
6519 2008-08-04  Robert Dewar  <dewar@adacore.com>
6520
6521         * system-darwin-x86.ads: Correct bad definition of Max_Nonbinary_Modulus
6522
6523 2008-08-04  Robert Dewar  <dewar@adacore.com>
6524
6525         * freeze.adb (Freeze_Entity): Check for size clause for boolean warning
6526
6527 2008-08-04  Vincent Celier  <celier@adacore.com>
6528
6529         * prj-proc.adb:
6530         (Copy_Package_Declarations): When inheriting package Naming from a
6531         project being extended, do not inherit source exception names.
6532
6533 2008-08-04  Ed Schonberg  <schonberg@adacore.com>
6534
6535         * sem_prag.adb (Check_Precondition_Postcondition): When scanning the
6536         list of declaration to find previous subprogram, do not go to the
6537         original node of a generic unit.
6538
6539 2008-08-02  Eric Botcazou  <ebotcazou@adacore.com>
6540
6541         * gcc-interface/utils2.c (build_binary_op) <PLUS_EXPR, MINUS_EXPR>:
6542         New case.  Convert BOOLEAN_TYPE operation to the default integer type.
6543
6544 2008-08-01  Eric Botcazou  <ebotcazou@adacore.com>
6545
6546         * gcc-interface/ada-tree.h (DECL_PARM_ALT): Now DECL_PARM_ALT_TYPE.
6547         * gcc-interface/decl.c (gnat_to_gnu_param): Fix formatting, simplify
6548         and adjust for above renaming.
6549         * gcc-interface/utils.c (convert_vms_descriptor): Likewise. Add new
6550         gnu_expr_alt_type parameter.  Convert the expression to it instead
6551         of changing its type in place.
6552         (build_function_stub): Adjust call to above function.
6553
6554 2008-08-01  Eric Botcazou  <ebotcazou@adacore.com>
6555
6556         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Constant>: Remove dead
6557         code.  Do not get full definition of deferred constants with address
6558         clause for a use.  Do not ignore deferred constant definitions with
6559         address clause.  Ignore constant definitions already marked with the
6560         error node.
6561         <object>: Remove obsolete comment.  For a deferred constant with
6562         address clause, get the initializer from the full view.
6563         * gcc-interface/trans.c (gnat_to_gnu) <N_Attribute_Definition_Clause>:
6564         Rework and remove obsolete comment.
6565         <N_Object_Declaration>: For a deferred constant with address clause,
6566         mark the full view with the error node.
6567         * gcc-interface/utils.c (convert_to_fat_pointer): Rework and fix
6568         formatting nits.
6569
6570 2008-08-01  Hristian Kirtchev  <kirtchev@adacore.com>
6571
6572         * rtsfind.ads: Add block IO versions of stream routines for Strings.
6573
6574         * bindgen.adb, gnat_rm.texi, gnat_ugn.texi, opt.ads,
6575         sem_prag.adb, snames.adb, snames.ads, snames.h,
6576         par-prag.adb: Undo previous stream related changes.
6577
6578         * s-rident.ads: Add new restriction No_Stream_Optimizations.
6579
6580         * s-ststop.ads, s-ststop.adb: Comment reformatting.
6581         Define enumeration type to designate different IO mechanisms.
6582         Enchance generic package Stream_Ops_Internal to include an
6583         implementation of Input and Output.
6584
6585         * exp_attr.adb (Find_Stream_Subprogram): If restriction
6586         No_Stream_Optimization is active, choose the default byte IO
6587         implementations of stream attributes for Strings.
6588         Otherwise use the corresponding block IO version.
6589
6590 2008-08-01  Olivier Hainque  <hainque@adacore.com>
6591
6592         * gcc-interface/decl.c (gnat_to_gnu_entity) <case E_Function>: Do not
6593         turn Ada Pure into GCC const, now implicitely implying nothrow as well.
6594
6595 2008-08-01  Robert Dewar  <dewar@adacore.com>
6596
6597         * par-ch3.adb (P_Defining_Identifier): Avoid repeated attempt to
6598         convert plain identifier into defining identifier.
6599
6600 2008-08-01  Robert Dewar  <dewar@adacore.com>
6601
6602         * sem_prag.adb (Check_Form_Of_Interface_Name): Refine and improve
6603         warnings
6604
6605         * lib-xref.adb: Add error defense.
6606
6607 2008-08-01  Bob Duff  <duff@adacore.com>
6608
6609         * ioexcept.ads, sequenio.ads, directio.ads: Correct comment.
6610
6611 2008-08-01  Gary Dismukes  <dismukes@adacore.com>
6612
6613         * exp_ch6.adb (Expand_Call): Adjustment to previous fix for passing
6614         correct accessibility levels. In the "when others" case, retrieve the
6615         access level of the Etype of Prev rather than Prev_Orig, because the
6616         original exression has not always been analyzed.
6617
6618 2008-08-01  Robert Dewar  <dewar@adacore.com>
6619
6620         * prj-nmsc.adb: Minor reformatting
6621
6622         * sem_ch4.adb: Minor reformatting
6623         Minor code reorganization
6624
6625         * prj.ads: Minor reformatting
6626
6627         * s-os_lib.adb: Minor reformatting
6628
6629         * par-prag.adb (Prag, case Wide_Character_Encoding): Deal with upper
6630         half encodings
6631
6632         * scans.ads: Minor reformatting.
6633
6634         * sem_prag.adb (Analyze_Pragma): Put entries in alpha order
6635         (Analyze_Pragma): Make sure all GNAT pragmas call GNAT_Pragma
6636
6637         * sem_res.adb:
6638         (Resolve_Call): Check violation of No_Specific_Termination_Handlers
6639
6640         * sem_ch12.adb: Minor comment reformatting
6641
6642         * par-ch3.adb (P_Type_Declaration): Properly handle missing type
6643         keyword
6644
6645 2008-08-01  Robert Dewar  <dewar@adacore.com>
6646
6647         * sem_ch6.adb (Process_PPCs): Don't copy spec PPC to body if not
6648         generating code
6649
6650 2008-08-01  Ed Schonberg  <schonberg@adacore.com>
6651
6652         * checks.adb (Apply_Float_Conversion_Check): If the expression to be
6653         converted is a real literal and the target type has static bounds,
6654         perform the conversion exactly to prevent floating-point anomalies on
6655         some targets.
6656
6657 2008-08-01  Vincent Celier  <celier@adacore.com>
6658
6659         * prj-attr.adb: New attribute Compiler'Name_Syntax (<lang>)
6660
6661         * prj-nmsc.adb (Process_Compiler): Recognize attribute Name_Syntax
6662
6663         * prj.adb (Object_Exist_For): Use Object_Generated, not
6664         Objects_Generated that is removed and was never modified anyway.
6665
6666         * prj.ads:
6667         (Path_Syntax_Kind): New enumeration type
6668         (Language_Config): New component Path_Syntax, defaulted to Host.
6669         Components PIC_Option and Objects_Generated removed, as they are not
6670         used.
6671
6672         * snames.adb: New standard name Path_Syntax
6673
6674         * snames.ads: New standard name Path_Syntax
6675
6676 2008-08-01  Vincent Celier  <celier@adacore.com>
6677
6678         * mlib-utl.adb:
6679         (Adalib_Path): New variable to store the path of the adalib directory
6680         when procedure Specify_Adalib_Dir is called.
6681         (Lib_Directory): If Adalib_Path is not null, return its value
6682         (Specify_Adalib_Dir): New procedure
6683
6684         * mlib-utl.ads (Specify_Adalib_Dir): New procedure
6685
6686 2008-08-01  Ed Schonberg  <schonberg@adacore.com>
6687
6688         * sem_prag.adb:
6689         (Check_Precondition_Postcondition): If not generating code, analyze the
6690         expression in a postcondition that appears in a subprogram body, so that
6691         it is properly decorated for ASIS use.
6692
6693 2008-08-01  Gary Dismukes  <dismukes@adacore.com>
6694
6695         * exp_ch6.adb (Expand_Call): Remove ugly special-case code that resets
6696         Orig_Prev to Prev in the case where the actual is N_Function_Call or
6697         N_Identifier. This was interfering with other cases that are rewritten
6698         as N_Identifier, such as allocators, resulting in passing of the wrong
6699         accessibility level, and based on testing this code is apparently no
6700         longer needed at all.
6701
6702 2008-08-01  Ed Schonberg  <schonberg@adacore.com>
6703
6704         * sem_ch4.adb (Analyze_One_Call): Handle complex overloading of a
6705         procedure call whose prefix
6706         is a parameterless function call that returns an access_to_procedure.
6707
6708 2008-08-01  Jose Ruiz  <ruiz@adacore.com>
6709
6710         * adaint.c (__gnat_tmp_name): Refine the generation of temporary names
6711         for RTX. Adding a suffix that is incremented at each iteration.
6712
6713 2008-08-01  Robert Dewar  <dewar@adacore.com>
6714
6715         * sem_ch6.adb (Analyze_Subprogram_Body): Remove special casing of
6716         Raise_Exception
6717
6718 2008-08-01  Jerome Lambourg  <lambourg@adacore.com>
6719
6720         * s-os_lib.adb (Normalize_Pathname): Take care of double-quotes in
6721         paths, which are authorized by Windows but can lead to errors when used
6722         elsewhere.
6723
6724 2008-08-01  Ed Schonberg  <schonberg@adacore.com>
6725
6726         * sem_ch12.ads (Need_Subprogram_Instance_Body): new function, to create
6727         a pending instantiation for the body of a subprogram that is to be
6728         inlined.
6729
6730         * sem_ch12.adb:
6731         (Analyze_Subprogram_Instantiation): use Need_Subprogram_Instance_Body.
6732
6733         * sem_prag.adb (Make_Inline): If the pragma applies to an instance,
6734         create a pending instance for its body, so that calls to the subprogram
6735         can be inlined by the back-end.
6736
6737 2008-08-01  Jose Ruiz  <ruiz@adacore.com>
6738
6739         * gnat_ugn.texi: Document the RTX run times (rts-rtx-rtss and
6740         rts-rtx-w32).
6741
6742 2008-08-01  Robert Dewar  <dewar@adacore.com>
6743
6744         * scng.adb (Error_Illegal_Wide_Character): Bump scan pointer
6745
6746 2008-08-01  Doug Rupp  <rupp@adacore.com>
6747
6748         * gnat_rm.texi: Document new mechanism Short_Descriptor.
6749
6750         * types.ads (Mechanism_Type): Modify range for new Short_Descriptor
6751         mechanism values.
6752
6753         * sem_prag.adb (Set_Mechanism_Value): Enhance for Short_Descriptor
6754         mechanism and Short_Descriptor mechanism values.
6755
6756         * snames.adb (preset_names): Add short_descriptor entry.
6757
6758         * snames.ads: Add Name_Short_Descriptor.
6759
6760         * types.h: Add new By_Short_Descriptor mechanism values.
6761
6762         * sem_mech.adb (Set_Mechanism_Value): Enhance for Short_Descriptor
6763         mechanism and Short_Descriptor mechanism values.
6764
6765         * sem_mech.ads (Mechanism_Type): Add new By_Short_Descriptor mechanism
6766         values.
6767         (Descriptor_Codes): Modify range for new mechanism values.
6768
6769         * treepr.adb (Print_Entity_Enfo): Handle new By_Short_Descriptor
6770         mechanism values.
6771
6772         * gcc-interface/decl.c (gnat_to_gnu_entity): Handle By_Short_Descriptor.
6773         (gnat_to_gnu_param): Handle By_Short_Descriptor.
6774
6775         * gcc-interface/gigi.h (build_vms_descriptor64): Remove prototype.
6776         (build_vms_descriptor32): New prototype.
6777         (fill_vms_descriptor): Remove unneeded gnat_actual parameter.
6778
6779         * gcc-interface/trans.c (call_to_gnu): Removed unneeded gnat_actual
6780         argument in call fill_vms_descriptor.
6781
6782         * gcc-interface/utils.c (build_vms_descriptor32): Renamed from
6783         build_vms_descriptor and enhanced to hande Short_Descriptor mechanism.
6784         (build_vms_descriptor): Renamed from build_vms_descriptor64.
6785         (convert_vms_descriptor32): New function.
6786         (convert_vms_descriptor64): New function.
6787         (convert_vms_descriptor): Rewrite to handle both 32bit and 64bit
6788         descriptors.
6789
6790         * gcc-interface/utils2.c (fill_vms_descriptor): Revert previous changes,
6791         no longer needed.
6792
6793 2008-08-01  Jose Ruiz  <ruiz@adacore.com>
6794
6795         * adaint.c (__gnat_tmp_name): RTSS applications do not support tempnam
6796         nor tmpnam, so we always use c:\WINDOWS\Temp\gnat-XXXXXX as temporary
6797         name.
6798
6799 2008-08-01  Jose Ruiz  <ruiz@adacore.com>
6800
6801         * cstreams.c (__gnat_full_name): RTSS applications cannot ask for the
6802         current directory so only fully qualified names are allowed.
6803
6804 2008-08-01  Robert Dewar  <dewar@adacore.com>
6805
6806         * gnat_ugn.texi:
6807         Minor editing, remove uncomfortable use of semicolon
6808
6809         * s-ststop.adb: Add some ??? comments
6810
6811         * sem_ch10.adb: Minor reformatting
6812
6813         * snames.ads:
6814         Minor comment fixes, some pragmas were not properly
6815         categorized in the comments, documentation change only
6816
6817         * xref_lib.adb: Minor reformatting
6818
6819         * sinput.adb: Minor reformatting
6820
6821         * gnatchop.adb: Minor reformatting
6822
6823         * sem_util.ads: Minor reformatting.
6824
6825         * opt.ads: Minor documentation fix
6826
6827         * scng.adb: Minor reformatting
6828
6829         * prj-part.adb: Update comments
6830
6831 2008-08-01  Ed Schonberg  <schonberg@adacore.com>
6832
6833         * exp_disp.adb (Expand_Interface_Conversion): If the target type is a
6834         tagged synchronized type, use corresponding record type.
6835
6836 2008-08-01  Doug Rupp  <rupp@adacore.com>
6837
6838         * mlib-tgt-specific-vms-alpha.adb (Build_Dynamic_Library): Output a
6839         dummy transfer address for debugging.
6840
6841         * mlib-tgt-specific-vms-ia64.adb (Build_Dynamic_Library): Likewise.
6842
6843         * vms_data.ads: vms_data.ads: New qualfier /MACHINE_CODE_LISTING
6844
6845 2008-07-31  Eric Botcazou  <ebotcazou@adacore.com>
6846
6847         * gcc-interface/decl.c (gnat_to_gnu_entity): Fix formatting.
6848         * gcc-interface/utils.c (create_field_decl): Avoid superfluous work.
6849
6850 2008-07-31  Pascal Obry  <obry@adacore.com>
6851
6852         * prj-nmsc.adb: Keep Object and Exec directory casing.
6853
6854 2008-07-31  Jose Ruiz  <ruiz@adacore.com>
6855
6856         * system-rtx-rtss.ads
6857         Change the default stack size. It is important to set the commit part.
6858
6859         * s-taprop-rtx.adb
6860         (Initialize): Get the clock resolution.
6861         (RT_Resolution): Return the clock resolution that is indicated by the
6862         system.
6863
6864         * s-parame-vxworks.adb
6865         Document that this body is used for RTX in RTSS (kernel) mode.
6866
6867         * gcc-interface/Makefile.in
6868         (LIBGNAT_TARGET_PAIRS for the rtx_rtss run time): Use the
6869         s-parame-vxworks.adb body in order to have reasonable stack sizes in
6870         RTX RTSS kernel mode. Virtual memory is not used in that case, so we
6871         cannot ask for too big values.
6872
6873 2008-07-31  Robert Dewar  <dewar@adacore.com>
6874
6875         * exp_aggr.adb: Minor reformatting
6876
6877         * makeutl.adb: Minor reformatting
6878
6879         * prj-env.adb: Minor reformatting
6880
6881 2008-07-31  Hristian Kirtchev  <kirtchev@adacore.com>
6882
6883         * exp_disp.adb (Prim_Op_Kind): Retrieve the full view when a private
6884         tagged type is completed by a concurrent type.
6885
6886 2008-07-31  Gary Dismukes  <dismukes@adacore.com>
6887
6888         * sem_aggr.adb:
6889         (Resolve_Record_Aggregate): Bypass error that a type without
6890         components must have a "null record" aggregate when compiling for Ada
6891         2005, since it's legal to give an aggregate of form (others => <>)
6892         for such a type.
6893
6894 2008-07-31  Javier Miranda  <miranda@adacore.com>
6895
6896         * sem_ch4.adb (Valid_First_Argument_Of): Complete its functionality to
6897         handle synchronized types. Required to handle well the object.operation
6898         notation applied to synchronized types.
6899
6900 2008-07-31  Quentin Ochem  <ochem@adacore.com>
6901
6902         * s-stausa.adb (Fill_Stack): Stack_Used_When_Filling is now stored
6903         anymore - just used internally.
6904         Added handling of very small tasks - when the theoretical size is
6905         already full at the point of the call.
6906         (Report_Result): Fixed result computation, Stack_Used_When_Filling does
6907         not need to be added to the result.
6908
6909 2008-07-31  Hristian Kirtchev  <kirtchev@adacore.com>
6910
6911         * sem_ch6.adb (Disambiguate_Spec): Continue the disambiguation if the
6912         corresponding spec is a primitive wrapper. Update comment.
6913
6914 2008-07-31  Hristian Kirtchev  <kirtchev@adacore.com>
6915
6916         * bindgen.adb Comment reformatting. Update the list of run-time globals.
6917         (Gen_Adainit_Ada): Add the declaration, import and value set for
6918         configuration flag Canonical_Streams.
6919         (Gen_Adainit_C): Add the declaration and initial value of external
6920         symbol __gl_canonical_streams.
6921
6922         * init.c: Update the list of global values computed by the binder.
6923
6924         * opt.ads: Add flag Canonical_Streams.
6925
6926         * par-prag.adb (Prag): Include Pragma_Canonical_Streams to the list of
6927         semantically handled pragmas.
6928
6929         * sem_prag.adb: Add an entry into enumeration type Sig_Flags.
6930         (Analyze_Pragma): Add case for pragma Canonical_Streams.
6931
6932         * snames.adb: Add character value for name Canonical_Streams.
6933
6934         * snames.ads:
6935         Add Name_Canonical_Streams to the list of configuration pragmas.
6936         Add Pragma_Canonical_Streams to enumeration type Pragma_Id.
6937
6938         * snames.h: Add a definition for Pragma_Canonical_Streams.
6939
6940         * s-ststop.adb:
6941         Add a flag and import to seize the value of external symbol
6942         __gl_canonical_streams. Update comment and initial value of constant
6943         Use_Block_IO.
6944
6945         * gnat_rm.texi: Add section of pragma Canonical_Streams.
6946
6947         * gnat_ugn.texi:
6948         Add pragma Canonical_Streams to the list of configuration pragmas.
6949
6950 2008-07-31  Ed Schonberg  <schonberg@adacore.com>
6951
6952         * sem_ch10.adb (Build_Unit_Name): If the unit name in a with_clause
6953         has the form A.B.C and B is a unit renaming, analyze its compilation
6954         unit and add a with_clause on A.b to the context.
6955
6956 2008-07-31  Vincent Celier  <celier@adacore.com>
6957
6958         * makeutl.adb (Executable_Prefix_Path): If Locate_Exec_On_Path fails,
6959         return the empty string, instead of raising Constraint_Error.
6960
6961 2008-07-31  Gary Dismukes  <dismukes@adacore.com>
6962
6963         * checks.ads (Apply_Accessibility_Check): Add parameter Insert_Node.
6964
6965         * checks.adb (Apply_Accessibility_Check): Insert the check on
6966         Insert_Node.
6967
6968         * exp_attr.adb:
6969         (Expand_N_Attribute_Refernce, Attribute_Access): Pass attribute node
6970         to new parameter Insert_Node on call to Apply_Accessibility_Check.
6971         Necessary to distinguish the insertion node because the dereferenced
6972         formal may come from a rename, but the check must be inserted in
6973         front of the attribute.
6974
6975         * exp_ch4.adb:
6976         (Expand_N_Allocator): Pass actual for new Insert_Node parameter on
6977         call to Apply_Accessibility_Check.
6978         (Expand_N_Type_Conversion): Pass actual for new Insert_Node parameter
6979         on call to Apply_Accessibility_Check.
6980         Minor reformatting
6981
6982 2008-07-31  Javier Miranda  <miranda@adacore.com>
6983
6984         * sem_type.adb (Has_Compatible_Type): Complete support for synchronized
6985         types when the candidate type is a synchronized type.
6986
6987         * sem_res.adb (Resolve_Actuals): Reorganize code handling synchronized
6988         types, and complete management of synchronized types adding missing
6989         code to handle formal that is a synchronized type.
6990
6991         * sem_ch4.adb (Try_Primitive_Operation): Avoid testing attributes that
6992         are not available and cause the compiler to blowup. Found compiling
6993         test with switch -gnatc
6994
6995         * sem_ch6.adb (Check_Synchronized_Overriding): Remove local subprogram
6996         Has_Correct_Formal_Mode plus code cleanup.
6997
6998 2008-07-31  Bob Duff  <duff@adacore.com>
6999
7000         * sinput.adb (Skip_Line_Terminators): Fix handling of LF/CR -- it was
7001         recognized as two end-of-lines, but it should be just one.
7002
7003 2008-07-31  Thomas Quinot  <quinot@adacore.com>
7004
7005         * exp_ch9.adb: Minor reformatting
7006
7007         * tbuild.ads: Fix several occurrences of incorrectly referring to
7008         Name_Find as Find_Name.
7009
7010 2008-07-31  Ed Schonberg  <schonberg@adacore.com>
7011
7012         * exp_aggr.adb (Aggr_Size_OK): If the aggregate has a single component
7013         and the context is an object declaration with non-static bounds, treat
7014         the aggregate as non-static.
7015
7016 2008-07-31  Vincent Celier  <celier@adacore.com>
7017
7018         * prj-part.adb, prj-part.ads, prj.adb, prj.ads, prj-env.adb:
7019         Move back spec of Parse_Single_Project to body, as it is not called
7020         outside of package Prj.Part.
7021         (Project_Data): Remove components Linker_Name, Linker_Path and
7022         Minimum_Linker_Options as they are no longer set.
7023         Remove function There_Are_Ada_Sources from package Prj and move code
7024         in the only place it was used, in Prj.Env.Set_Ada_Paths.
7025
7026 2008-07-31  Arnaud Charlet  <charlet@adacore.com>
7027
7028         * mlib-utl.ads: Fix typo.
7029
7030 2008-07-31  Robert Dewar  <dewar@adacore.com>
7031
7032         * sem_ch12.adb: Minor reformatting
7033
7034 2008-07-31  Sergey Rybin  <rybin@adacore.com>
7035
7036         * gnat_ugn.texi: Change the description of the
7037         Overly_Nested_Control_Structures: now the rule always requires a
7038         positive parameter for '+R' option
7039
7040 2008-07-31  Thomas Quinot  <quinot@adacore.com>
7041
7042         * g-pehage.adb: Minor reformatting
7043
7044 2008-07-31  Pascal Obry  <obry@adacore.com>
7045
7046         * s-finimp.ads: Minor reformatting.
7047
7048 2008-07-31  Vincent Celier  <celier@adacore.com>
7049
7050         * s-regexp.ads: Minor comment fix
7051
7052 2008-07-31  Arnaud Charlet  <charlet@adacore.com>
7053
7054         * s-direio.adb (Reset): Replace pragma Unmodified by Warnings (Off),
7055         so that we can compile this file successfully with -gnatc.
7056
7057 2008-07-31  Hristian Kirtchev  <kirtchev@adacore.com>
7058
7059         * exp_attr.adb (Find_Stream_Subprogram): Check the base type instead
7060         of the type when looking for stream subprograms for type String,
7061         Wide_String and Wide_Wide_String.
7062
7063         * s-ststop.adb: Change the initialization expression of constant
7064         Use_Block_IO.
7065
7066 2008-07-31  Geert Bosch  <bosch@adacore.com>
7067
7068         * arit64.c:
7069         New file implementing __gnat_mulv64 signed integer multiplication with
7070         overflow checking
7071
7072         * fe.h (Backend_Overflow_Checks_On_Target): Define for use by Gigi
7073
7074         * gcc-interface/gigi.h:
7075         (standard_types): Add ADT_mulv64_decl
7076         (mulv64_decl): Define subprogram declaration for __gnat_mulv64
7077
7078         * gcc-interface/utils.c:
7079         (init_gigi_decls): Add initialization of mulv64_decl
7080
7081         * gcc-interface/trans.c:
7082         (build_unary_op_trapv): New function
7083         (build_binary_op_trapv): New function
7084         (gnat_to_gnu): Use the above functions instead of
7085         build_{unary,binary}_op
7086
7087         * gcc-interface/Makefile.in
7088         (LIBGNAT_SRCS): Add arit64.c
7089         (LIBGNAT_OBJS): Add arit64.o
7090
7091 2008-07-31  Vincent Celier  <celier@adacore.com>
7092
7093         * prj-nmsc.adb (Check_Library_Attributes): Check if Linker'Switches or
7094         Linker'Default_Switches are declared. Warn if they are declared.
7095
7096 2008-07-31  Ed Schonberg  <schonberg@adacore.com>
7097
7098         * exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration): Use
7099         Insert_Actions to place the pointer declaration in the code, rather
7100         than Insert_Before_And_Analyze, so that insertions of temporaries are
7101         kept in the proper order when transient scopes are present.
7102
7103
7104 2008-07-31  Robert Dewar  <dewar@adacore.com>
7105
7106         * einfo.adb (Spec_PPC): Now defined for generic subprograms
7107
7108         * einfo.ads (Spec_PPC): Now defined for generic subprograms
7109
7110         * sem_prag.adb (Check_Precondition_Postcondition): Handle generic
7111         subprogram case
7112
7113 2008-07-31  Vincent Celier  <celier@adacore.com>
7114
7115         * s-os_lib.adb: Minor comment fix
7116
7117 2008-07-31  Ed Schonberg  <schonberg@adacore.com>
7118
7119         * sem_ch6.adb (Analyze_Generic_Subprogram_Body): After analysis,
7120         transfer pre/postconditions from generic copy to original tree, so that
7121         they will appear in each instance.
7122         (Process_PPCs): Do not transform postconditions into a procedure in a
7123         generic context, to prevent double expansion of check pragmas.
7124
7125         * sem_attr.adb: In an instance, the prefix of the 'result attribute
7126         can be the renaming of the
7127         current instance, so check validity of the name accordingly.
7128
7129 2008-07-31  Robert Dewar  <dewar@adacore.com>
7130
7131         * mlib-utl.ads: Minor reformatting
7132
7133 2008-07-31  Ed Schonberg  <schonberg@adacore.com>
7134
7135         sem_attr.adb: 'Result can have an ambiguous prefix, and is resolved
7136         from context. This attribute must be usable in Ada95 mode.
7137         The attribute can appear in the body of a function marked
7138         Inline_Always, but in this case the postocondition is not enforced.
7139
7140         sem_prag.adb (Check_Precondition_Postcondition): within the expansion
7141         of an inlined call pre- and postconditions are legal
7142
7143 2008-07-31  Vincent Celier  <celier@adacore.com>
7144
7145         * prj.adb, prj.ads, clean.adb, prj-nmsc.adb: Remove declarations that
7146         were for gprmake only
7147
7148 2008-07-31  Robert Dewar  <dewar@adacore.com>
7149
7150         * gnat_ugn.texi: Update -gnatN documentation.
7151
7152         * gnat_rm.texi: Add note about pre/postcondition
7153         pragmas not checked in conjunction with front-end inlining.
7154
7155 2008-07-31  Robert Dewar  <dewar@adacore.com>
7156
7157         * g-pehage.adb, g-pehage.ads: Minor reformatting
7158
7159 2008-07-31  Arnaud Charlet  <charlet@adacore.com>
7160
7161         * mlib-utl.ads, prj-makr.ads: Add comments.
7162
7163 2008-07-30  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
7164
7165         * gcc-interface/Makefile.in (EXTRA_GNATRTL_NONTASKING_OBJS)
7166         [WINDOWS]: Add s-winext.o.
7167
7168 2008-07-30  Eric Botcazou  <ebotcazou@adacore.com>
7169
7170         PR ada/36554
7171         * back_end.adb (Call_Back_End): Pass Standard_Boolean to gigi.
7172         * gcc-interface/gigi.h (gigi): Take new standard_boolean parameter.
7173         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Enumeration_Subtype>:
7174         Set precision to 1 for subtype of BOOLEAN_TYPE.
7175         (set_rm_size): Set TYPE_RM_SIZE_NUM for BOOLEAN_TYPE.
7176         (make_type_from_size): Deal with BOOLEAN_TYPE.
7177         * gcc-interface/misc.c (gnat_print_type): Likewise.
7178         * gcc-interface/trans.c (gigi): Take new standard_boolean parameter.
7179         Set boolean_type_node as its translation in the table, as well
7180         as boolean_false_node for False and boolean_true_node for True.
7181         * gcc-interface/utils.c (gnat_init_decl_processing): Create custom
7182         8-bit boolean_type_node and set its TYPE_RM_SIZE_NUM.
7183         (create_param_decl): Deal with BOOLEAN_TYPE.
7184         (build_vms_descriptor): Likewise.
7185         (build_vms_descriptor64): Likewise.
7186         (convert): Deal with BOOLEAN_TYPE like with ENUMERAL_TYPE.
7187
7188 2008-07-30  Robert Dewar  <dewar@adacore.com>
7189
7190         * exp_ch9.adb: Minor reformatting
7191
7192         * exp_util.ads (Find_Prim_Op): Document that Program_Error is raised
7193         if no primitive operation is found.
7194
7195         * exp_util.adb: (Find_Prim_Op): Add comments for previous change
7196
7197         * sem_ch8.adb: Minor reformatting
7198
7199 2008-07-30  Laurent Pautet  <pautet@adacore.com>
7200
7201         * g-pehage.adb:
7202         Remove a limitation on the length of the words handled by the minimal
7203         perfect hash function generator.
7204
7205         * g-pehage.ads:
7206         Detail the use of subprograms Insert, Initialize, Compute and Finalize.
7207         Fix some typos.
7208
7209 2008-07-30  Robert Dewar  <dewar@adacore.com>
7210
7211         * gnatlink.adb: Minor reformatting
7212
7213 2008-07-30  Thomas Quinot  <quinot@adacore.com>
7214
7215         * rtsfind.adb (Check_RPC): Check version consistency even when not
7216         generating RCI stubs. Provide more detailed error message in case of
7217         mismatch.
7218
7219 2008-07-30  Ed Schonberg  <schonberg@adacore.com>
7220
7221         * sem_ch8.adb (Analyze_Subprogram_Renaming): When renaming an attribute
7222         as a actual in an instance, check for a missing attribute to prevent
7223         program_error on an illegal program.
7224
7225         * exp_util.adb (Find_Prim_Op): Rather than Assert (False), raise program
7226         error if primitive is not found, so that exception can be handled
7227         elsewhere on illegal programs.
7228
7229 2008-07-30  Robert Dewar  <dewar@adacore.com>
7230
7231         * uintp.adb (UI_GCD): Fix potential overflow
7232
7233 2008-07-30  Hristian Kirtchev  <kirtchev@adacore.com>
7234
7235         * einfo.adb: Flag245 is now used.
7236         (Is_Primitive_Wrapper, Set_Is_Primitive_Wrapper): Relax the assertion
7237         check to include functions.
7238         (Is_Private_Primitive, Set_Is_Private_Primitive): New subprograms.
7239         (Wrapped_Entity, Set_Wrapped_Entity): Relax the assertion check to
7240         include functions.
7241         (Write_Entity_Flags): Move flag Is_Primitive, add Is_Private_Primitive
7242         to the list of displayed flags.
7243
7244         * einfo.ads: Update comment on the usage of Is_Primitive_Wrapper and
7245         Wrapped_Entity. These two flags are now present in functions.
7246         New flag Is_Private_Primitive.
7247         (Is_Private_Primitive, Set_Is_Private_Primitive): New subprograms.
7248
7249         * exp_ch9.adb:
7250         (Build_Wrapper_Bodies): New subprogram.
7251         (Build_Wrapper_Body): The spec and body have been moved to in
7252         Build_Wrapper_ Bodies. Code cleanup.
7253         (Build_Wrapper_Spec): Moved to the spec of Exp_Ch9. Code cleanup.
7254         Wrappers are now generated for primitives declared between the private
7255         and full view of a concurrent type that implements an interface.
7256         (Build_Wrapper_Specs): New subprogram.
7257         (Expand_N_Protected_Body): Code reformatting. Replace the wrapper body
7258         creation mechanism with a call to Build_Wrapper_Bodies.
7259         (Expand_N_Protected_Type_Declaration): Code reformatting. Replace the
7260         wrapper spec creation mechanism with a call to Build_Wrapper_Specs.
7261         (Expand_N_Task_Body): Replace the wrapper body creation
7262         mechanism with a call to Build_Wrapper_Bodies.
7263         (Expand_N_Task_Type_Declaration): Replace the wrapper spec
7264         creation mechanism with a call to Build_Wrapper_Specs.
7265         (Is_Private_Primitive_Subprogram): New subprogram.
7266         (Overriding_Possible): Code cleanup.
7267         (Replicate_Entry_Formals): Renamed to Replicate_Formals, code cleanup.
7268
7269         * exp_ch9.ads (Build_Wrapper_Spec): Moved from the body of Exp_Ch9.
7270
7271         * sem_ch3.adb: Add with and use clause for Exp_Ch9.
7272         (Process_Full_View): Build wrapper specs for all primitives
7273         that belong to a private view completed by a concurrent type
7274         implementing an interface.
7275
7276         * sem_ch6.adb (Analyze_Subprogram_Body): When the current subprogram
7277         is a primitive of a
7278         concurrent type with a private view that implements an interface, try to
7279         find the proper spec.
7280         (Analyze_Subprogram_Declaration): Mark a subprogram as a private
7281         primitive if the type of its first parameter is a non-generic tagged
7282         private type.
7283         (Analyze_Subprogram_Specification): Code reformatting.
7284         (Disambiguate_Spec): New routine.
7285         (Find_Corresponding_Spec): Add a flag to controll the output of errors.
7286         (Is_Private_Concurrent_Primitive): New routine.
7287
7288         * sem_ch6.ads:
7289         (Find_Corresponding_Spec): Add a formal to control the output of errors.
7290
7291 2008-07-30  Doug Rupp  <rupp@adacore.com>
7292
7293         * gigi.h (build_vms_descriptor64): New function prototype.
7294         (fill_vms_descriptor): Modified function prototype.
7295
7296         * utils.c (build_vms_descriptor64): New function.
7297
7298         * utils2.c (fill_vms_descriptor): Fix handling on 32bit systems.
7299
7300         * trans.c (call_to_gnu): Call fill_vms_descriptor with new third
7301         argument.
7302
7303         * decl.c (gnat_to_gnu_tree): For By_Descriptor mech, build both a
7304         64bit and 32bit descriptor and save the 64bit version as an alternate
7305         TREE_TYPE in the parameter.
7306         (make_type_from_size) <RECORD_TYPE>: Use the appropriate mode for the
7307         thin pointer.
7308
7309         * ada-tree.h (DECL_PARM_ALT, SET_DECL_PARM_ALT): New macros.
7310
7311 2008-07-30  Robert Dewar  <dewar@adacore.com>
7312
7313         * make.adb: Minor reformatting
7314
7315         * mlib-utl.adb: Minor reformatting
7316
7317         * osint.ads: Minor reformatting
7318
7319 2008-07-30  Jose Ruiz  <ruiz@adacore.com>
7320
7321         * adaint.c
7322         (__gnat_file_exists): Do not use __gnat_stat for RTX.
7323         (__main for RTX in RTSS mode): Create this dummy procedure symbol to
7324         avoid the use of this symbol from libgcc.a in RTX kernel mode.
7325
7326         * cio.c
7327         (put_int, put_int_stderr, put_char, put_char_stderr): For RTX we call
7328         the function RtPrintf for console output.
7329
7330         * argv.c Do not use the environ variable for RTX.
7331
7332         * gnatlink.adb (gnatlink): The part that handles the --RTS option has
7333         been moved before the call to Osint.Add_Default_Search_Dirs in order
7334         to take into account the flags in system.ads (RTX_RTSS_Kernel_Module)
7335         from the appropriate run time.
7336
7337         * targparm.ads
7338         (RTX_RTSS_Kernel_Module_On_Target): Add this flag that is set to True if
7339         target is a RTSS module for RTX.
7340
7341         * targparm.adb (Targparm_Tags, RTX_Str, Targparm_Str): Add tag RTX for
7342         RTX_RTSS_Kernel_Module
7343         (Get_Target_Parameters): Add processing of RTX_RTSS_Kernel_Module flag.
7344
7345         * gcc-interface/Makefile.in (LIBGNAT_TARGET_PAIRS for RTX): Use gcc
7346         exception handling mechanism for Windows and RTX in Win32 mode, but
7347         not for RTX in kernel mode (RTSS).
7348         (LIBGNAT_SRCS): Remove ada.h
7349
7350 2008-07-30  Paolo Bonzini  <bonzini@gnu.org>
7351
7352         * gcc-interface/Make-lang.in (ALL_ADAFLAGS): Remove X_ADAFLAGS and
7353         T_ADAFLAGS, replace ALL_ADA_CFLAGS with ADA_CFLAGS.
7354         (ALL_ADA_CFLAGS): Remove, replace throughout with ADA_CFLAGS.
7355         * gcc-interface/Makefile.in (XCFLAGS, X_CFLAGS, X_CPPFLAGS, T_CPPFLAGS,
7356         X_ADA_CFLAGS, T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS, ADA_CFLAGS,
7357         ALL_ADA_CFLAGS): Remove.
7358         (ALL_ADAFLAGS, MOST_ADAFLAGS): Remove X_ADAFLAGS and T_ADAFLAGS,
7359         replace ALL_ADA_CFLAGS with ADA_CFLAGS.
7360         (GCC_CFLAGS): Remove X_CFLAGS.
7361         (LOOSE_CFLAGS): Remove X_CFLAGS and XCFLAGS.
7362         (ALL_CPPFLAGS): Remove X_CPPFLAGS and T_CPPFLAGS.
7363         (ADA_CFLAGS): Substitute.
7364
7365 2008-07-30  Laurent Guerby  <laurent@guerby.net>
7366
7367         PR ada/5911
7368         * gcc-interface/Makefile.in (MULTISUBDIR, RTSDIR): New variables.
7369         Pass MULTISUBDIR to recursive make. Use $(RTSDIR) instead of rts.
7370         Replace stamp-gnatlib* by stamp-gnatlib*-rts.
7371         * gcc-interface/Make-lang.in: Replace stamp-gnatlib2
7372         by stamp-gnatlib2-rts.
7373
7374 2008-07-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7375
7376         PR documentation/15479
7377         * gnat-style.texi: Remove AdaCore copyright statement and GPL
7378         statement for GNAT.  Add @copying stanza, use it.  Update to
7379         GFDL 1.2.  Do not list GFDL as Invariant Section, do not list
7380         title as Front-Cover Text.
7381         * gnat_rm.texi: Likewise.
7382         * gnat_ugn.texi: Likewise.
7383
7384 2008-07-29  Jan Hubicka  <jh@suse.cz>
7385
7386         * trans.c (process_inlined_subprograms): Remove tree_really_inline
7387         check.
7388
7389 2008-07-29  Arnaud Charlet  <charlet@adacore.com>
7390
7391         * gcc-interface: New directory.
7392
7393         * ada-tree.def, cuintp.c, gigi.h, Makefile.in, targtyps.c, ada.h,
7394         utils.c, ada-tree.h, decl.c, lang.opt, Make-lang.in, trans.c,
7395         config-lang.in, deftarg.c, lang-specs.h, misc.c, utils2.c: Moved
7396         to gcc-interface subdirectory.
7397
7398 2008-07-29  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
7399
7400         * Makefile.in (EXTRA_GNATRTL_NONTASKING_OBJS): Remove extra s-win32.o.
7401
7402 2008-07-28  Jan Hubicka  <jh@suse.cz>
7403
7404         * misc.c (gnat_post_options): Do not set flag_no_inline.
7405
7406 2008-07-28  Richard Guenther  <rguenther@suse.de>
7407
7408         Merge from gimple-tuples-branch.
7409
7410         2008-07-22  Olivier Hainque  <hainque@adacore.com>
7411
7412         * gigi.h (end_subprog_body): New ELAB_P argument, saying if
7413         this is called for an elab proc to be discarded if empty.
7414         * utils.c (end_subprog_body): Honor ELAB_P.
7415         (build_function_stub): Adjust call to end_subprog_body.
7416         * trans.c (Subprogram_Body_to_gnu): Likewise.
7417         (gigi): Reorganize processing of elab procs to prevent
7418         gimplifying twice, using the new end_subprog_body argument.
7419
7420         2008-07-19  Richard Guenther  <rguenther@suse.de>
7421
7422         * Make-lang.in (trans.o): Add tree-iterator.h dependency.
7423         (utils.o): Likewise.
7424         * trans.c: Include tree-iterator.h.
7425         (gnat_gimplify_expr): Adjust prototype.  Fix typo.
7426         (gnat_gimplify_stmt): Use SET_EXPR_LOCATION.
7427         (set_expr_location_from_node): Likewise.
7428         (gigi): Tuplify.
7429         * ada-tree.h (union lang_tree_node): Use TREE_CHAIN instead
7430         of GENERIC_NEXT.
7431         * utils.c: Include tree-iterator.h.
7432         * gigi.h (gnat_gimplify_expr): Adjust prototype.
7433
7434         2008-07-18  Aldy Hernandez  <aldyh@redhat.com>
7435
7436         * trans.c: Include gimple.h instead of tree-gimple.h.
7437         * utils.c: Same.
7438
7439         2008-07-14  Aldy Hernandez  <aldyh@redhat.com>
7440
7441         * trans.c (gnat_gimplify_expr): Use gimplify_assign.
7442
7443 2008-07-25  Jan Hubicka  <jh@suse.cz>
7444
7445         * utils.c (end_subprog_body): Remove inline trees check.
7446         * misc.c (gnat_post_options): Do not set flag_inline_trees.
7447
7448 2008-07-25  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7449
7450         * raise-gcc.c: Move tsystem.h before tm.h.
7451
7452 2008-07-20  Arnaud Charlet  <charlet@adacore.com>
7453
7454         * gnathtml.pl: New file.
7455
7456 2008-07-19  Olivier Hainque  <hainque@adacore.com>
7457
7458         * targtyps.c (get_target_default_allocator_alignment): Use
7459         MALLOC_ABI_ALIGNMENT.
7460
7461 2008-07-17  Olivier Hainque  <hainque@adacore.com>
7462
7463         * adaint.c (__MINGW32__ section): Include ctype.h and define
7464         a fallback ISALPHA if IN_RTS.
7465         (__gnat_is_absolute_path): Use ISALPHA instead of isalpha.
7466
7467 2008-07-17  Olivier Hainque  <hainque@adacore.com>
7468
7469         * utils.c (create_var_decl_1): Relax expectations on the PUBLIC_FLAG
7470         argument, to apply to references in addition to definitions.  Prevent
7471         setting TREE_STATIC on externals.
7472         (gnat_pushdecl): Always clear DECL_CONTEXT on public externals.
7473
7474 2008-07-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7475
7476         PR documentation/15479
7477         * gnat_ugn.texi (@ovar): New macro, from autoconf.texi.
7478         Replace backets around optional parameters with @ovar
7479         where possible, use @r{[}, @r{]} otherwise.
7480         Replace some @r, @i, and @emph with @var where appropriate.
7481
7482 2008-07-02  Eric Botcazou  <ebotcazou@adacore.com>
7483
7484         * decl.c (make_type_from_size) <INTEGER_TYPE>: Fix typo and tidy up.
7485
7486 2008-06-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7487
7488         * ada-tree.h (SET_TYPE_LANG_SPECIFIC, SET_DECL_LANG_SPECIFIC): Fix
7489         -Wc++-compat warnings.
7490         * adaint.c (__gnat_locate_regular_file, __gnat_locate_exec,
7491         __gnat_locate_exec_on_path): Likewise.
7492         * decl.c (annotate_value): Likewise.
7493         * misc.c (gnat_handle_option): Likewise.
7494         * trans.c (gnat_to_gnu, extract_encoding, decode_name,
7495         post_error_ne_tree): Likewise.
7496
7497 2008-06-27  Eric Botcazou  <ebotcazou@adacore.com>
7498
7499         * utils.c (convert) <CONSTRUCTOR>: When converting it to a packable
7500         version of its type, attempt to first convert its elements.
7501
7502 2008-06-26  Chris Proctor  <chrisp_42@bigpond.com>
7503
7504         * Makefile.in: Fix *86 kfreebsd target specific pairs.
7505
7506 2008-06-25  Samuel Tardieu  <sam@rfc1149.net>
7507
7508         * Makefile.in: Use mlib-tgt-specific-linux.adb for sh4 as well.
7509
7510 2008-06-24  Eric Botcazou  <ebotcazou@adacore.com>
7511
7512         * utils2.c (known_alignment): Derive the alignment from pointed-to
7513         types only if it is otherwise unknown.
7514         <INTEGER_CST>: Tidy.
7515         <MULT_EXPR>: Likewise.
7516         <POINTER_PLUS_EXPR>: If the alignment of the offset is unknown, use
7517         that of the base.
7518
7519 2008-06-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7520
7521         PR ada/36573
7522         * s-osinte-hpux-dce.ads (SA_ONSTACK): Define.
7523
7524 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7525
7526         * gnat_rm.texi (Implementation Defined Characteristics)
7527         (Standard Library Routines): Use @smallexample for indented
7528         text.  Drop Indentation outside examples.
7529         * gnat_ugn.texi: Likewise.
7530
7531 2008-06-13  Olivier Hainque  <hainque@adacore.com>
7532
7533         * decl.c (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): Define to 0
7534         if undefined.
7535         (gnat_to_gnu_entity) <case E_Function/Procedure>: Request stack
7536         realignment with force_align_arg_pointer attribute on foreign
7537         convention subprograms if FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN.
7538
7539 2008-06-13  Olivier Hainque  <hainque@adacore.com>
7540
7541         * utils.c (rest_of_record_type_compilation): When computing
7542         encodings for the components of a variable size type, early
7543         strip conversions on the current position expression to make
7544         sure it's shape is visible.  Use remove_conversions for this
7545         purpose.
7546
7547 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
7548
7549         * decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: In the case of a
7550         constrained subtype of a discriminated type, discard the fields that
7551         are beyond its limits according to its size.
7552
7553 2008-06-10  Olivier Hainque  <hainque@adacore.com>
7554
7555         * utils.c (create_subprog_decl): If this is for the 'main' entry
7556         point according to the asm name, redirect main_identifier_node.
7557
7558 2008-06-09  Eric Botcazou  <ebotcazou@adacore.com>
7559
7560         * decl.c (components_to_record): Adjust the packedness for the
7561         qualified union as well.
7562
7563 2008-06-09  Arnaud Charlet  <charlet@adacore.com>
7564
7565         * Make-lang.in: Use -gnatwns instead of -gnatws to make sytyle
7566         checks non fatal.
7567
7568 2008-06-07  Samuel Tardieu  <sam@rfc1149.net>
7569
7570         * sem_res.adb (Large_Storage_Type): A type is large if it
7571         requires as many bits as Positive to store its values and its
7572         bounds are known at compile time.
7573         * sem_ch13.adb (Minimum_Size): Note that this function returns
7574         0 if the size is not known at compile time.
7575
7576 2008-06-06  Nicolas Setton  <setton@adacore.com>
7577             Olivier Hainque  <hainque@adacore.com>
7578
7579         * ada-tree.h (DECL_PARALLEL_TYPE): New language specific
7580         attribute, parallel descriptive type attached to another
7581         type for debug info generation purposes.
7582         * utils.c (add_parallel_type): New function, register
7583         parallel type to be attached to a type.
7584         (get_parallel_type): New function, fetch a registered
7585         parallel type, if any.
7586         (rest_of_record_type_compilation): Register the parallel
7587         type we make for variable size records.
7588         * gigi.h (add_parallel_type, get_parallel_type): Declare.
7589         * decl.c (gnat_to_gnu_entity, maybe_pad_type): Register the
7590         parallel debug types we make.
7591         * trans.c (extract_encoding, decode_name): New functions.
7592         (gigi): If the DWARF attribute extensions are available, setup
7593         to use them.
7594         * lang.opt: Register language specific processing request
7595         for -gdwarf+.
7596         * misc.c (gnat_dwarf_extensions): New global variable. How much
7597         do we want of our DWARF extensions. 0 by default.
7598         (gnat_handle_option) <OPT_gdwarf_>: Increment gnat_dwarf_extensions.
7599         (gnat_post_options): Map gnat_dwarf_extensions to the
7600         commonuse_gnu_debug_info_extensions for later processing.
7601
7602 2008-06-04  Samuel Tardieu  <sam@rfc1149.net>
7603
7604         * einfo.ads, einfo.adb: Remove unused flag Function_Returns_With_DSP.
7605
7606 2008-06-03  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7607
7608         * Makefile.in (common_tools): Fix typos in $(exeext) extension.
7609         * gnat_ugn.texi (Style Checking)
7610         (Adding the Results of Compiler Checks to gnatcheck Output)
7611         (Example of Binder Output File): Fix typos.
7612         * ali.ads, einfo.ads, exp_ch4.adb, exp_ch6.adb,
7613         exp_dbug.ads, exp_dist.adb, exp_smem.adb, g-socket.ads,
7614         s-osinte-rtems.ads, s-shasto.ads, s-stausa.adb,
7615         s-stausa.ads, sem_cat.adb, sem_ch12.adb, sem_ch3.adb,
7616         sem_ch4.adb, sem_ch6.adb, sem_ch8.adb, sem_util.ads,
7617         sinfo.ads, utils.c: Fix typos in comments.
7618         * sem_ch6.adb, vms_data.ads: Fix typos in strings.
7619
7620 2008-05-29  Thomas Quinot  <quinot@adacore.com>
7621
7622         * sem_eval.adb: Minor reformatting
7623
7624 2008-05-29  Ed Schonberg  <schonberg@adacore.com>
7625
7626         * sem_ch6.adb (Analyze_Subprogram_Specification): if the return type
7627         is abstract, do not apply abstractness check on subprogram if this is
7628         a renaming declaration.
7629
7630 2008-05-29  Arnaud Charlet  <charlet@adacore.com>
7631
7632         PR ada/864
7633         * osint.ads, osint.adb (Program_Name): New parameter "Prog" to
7634         allow recognition of program suffix in addition to prefix.
7635
7636         * gnatchop.adb (Locate_Executable): Add support for prefix.
7637
7638         * make.adb, gnatcmd.adb, gnatlink.adb, prj-makr.adb,
7639         mlib-utl.adb: Adjust calls to Program_Name.
7640
7641 2008-05-29  Robert Dewar  <dewar@adacore.com>
7642
7643         * sem_ch3.adb: Minor reformatting
7644         * sem_prag.adb: Minor reformatting
7645         * sem_res.adb: Minor reformatting
7646         * sinput-p.ads: Minor reformatting
7647
7648 2008-05-29  Javier Miranda  <miranda@adacore.com>
7649
7650         * sem_util.adb:
7651         (Abstract_Interface_List): Add missing support for full type-declaration
7652         associated with synchronized types.
7653
7654 2008-05-29  Robert Dewar  <dewar@adacore.com>
7655
7656         * sem_eval.adb (Is_Same_Value): Take care of several more cases
7657
7658 2008-05-28  Ed Schonberg  <schonberg@adacore.com>
7659
7660         * sem_ch5.adb (Analyze_Assignment): If the name is of a local anonymous
7661         access type, wrap the expression in a conversion to force an
7662         accessibility check.
7663
7664         * sem_aggr.adb (Aggegate_Constraint_Checks): Apply conversion to force
7665         accessibility checks even when expansion is disabled in order to
7666         generate messages in the presence of previous errors or in
7667         semantics-only mode.
7668
7669 2008-05-28  Eric Botcazou  <ebotcazou@adacore.com>
7670
7671         * system-lynxos-ppc.ads (Always_Compatible_Rep): Set to False.
7672         * system-lynxos-x86.ads (Always_Compatible_Rep): Set to False.
7673
7674 2008-05-28  Vincent Celier  <celier@adacore.com>
7675
7676         PR ada/34446
7677         * gnat_ugn.texi: Document restriction introduced on 2007-04-20 in
7678         preprocessing expressions
7679
7680 2008-05-28  Vincent Celier  <celier@adacore.com>
7681
7682         * sinput-p.adb (Source_File_Is_Subunit): Allow special character used
7683         for preprocessing
7684
7685         * sinput-p.ads: Minor comment update and reformatting
7686
7687 2008-05-28  Ed Schonberg  <schonberg@adacore.com>
7688
7689         * sem_res.adb (Valid_Conversion): An anonymous access_to_subprogram
7690         type has a deeper level than any master only when it is the type of an
7691         access parameter.
7692
7693 2008-05-28  Javier Miranda  <miranda@adacore.com>
7694
7695         * sem_ch3.adb (Derive_Progenitor_Subprograms): Add documentation.
7696
7697 2008-05-28  Javier Miranda  <miranda@adacore.com>
7698
7699         * sem_util.ads (Find_Overridden_Synchronized_Primitive): Removed.
7700         * sem_util.adb (Find_Overridden_Synchronized_Primitive): Removed.
7701         * sem_ch6.adb (Check_Synchronized_Overriding): Remove one formal.
7702         Add code that was previously located in
7703         Find_Overridden_Synchronized_Primitive because it is only used here.
7704
7705 2008-05-28  Sergey Rybin  <rybin@adacore.com>
7706
7707         * sem_prag.adb (Process_Extended_Import_Export_Subprogram_Pragma): Set
7708         Entity field for formal_parameter_NAME in MECHANISM_ASSOCIATION.
7709
7710 2008-05-28  Robert Dewar  <dewar@adacore.com>
7711
7712         * restrict.ads:
7713         Add missing restrictions, and properly label all GNAT defined ones
7714
7715         * rtsfind.ads:
7716         Add entry for Ada_Real_Time.Timing_Events.Timing_Event
7717         Add entry for Ada.Task_Termination.Set_Specific_Handler
7718         Add entry for Ada.Task_Termination.Specific_Handler
7719
7720         * s-rident.ads:
7721         Add missing restrictions and properly mark all gnat defined ones
7722
7723         * sem_ch3.adb:
7724         (Analyze_Object_Declaration): Check No_Local_Timing_Events restriction
7725
7726         * sem_res.adb:
7727         (Resolve_Call): Check violation of No_Specific_Termination_Handlers
7728
7729         * gnat_rm.texi: Add missing restrictions, and properly label all
7730         GNAT defined ones
7731
7732 2008-05-28  Robert Dewar  <dewar@adacore.com>
7733
7734         * restrict.adb:
7735         (Check_Restriction): violation of restriction No_Finalization is
7736         treated as a serious error to stop expansion
7737
7738 2008-05-28  Robert Dewar  <dewar@adacore.com>
7739
7740         * exp_util.adb: Minor reformatting
7741         * exp_util.ads: Minor reformatting.
7742
7743 2008-05-28  Arnaud Charlet  <charlet@adacore.com>
7744
7745         * Make-lang.in: Remove gprmake.
7746
7747         * gprmake.adb, makegpr.ads, makegpr.adb: Removed.
7748
7749 2008-05-28  Ed Schonberg  <schonberg@adacore.com>
7750
7751         * sem_ch3.adb (Diagnose_Interface): Cleanup error messages involving
7752         improper progenitor names, and avoid cascaded errors.
7753
7754 2008-05-28  Robert Dewar  <dewar@adacore.com>
7755
7756         * gnat_rm.texi: Add note on Old giving warning when applied to constant
7757
7758         * sem_attr.adb (Analyze_Attribute, case Old): Give warning if prefix is
7759         a constant
7760
7761 2008-05-28  Robert Dewar  <dewar@adacore.com>
7762
7763         * exp_fixd.adb (Build_Multiply): Correct one-off error in computing
7764         size
7765
7766 2008-05-28  Robert Dewar  <dewar@adacore.com>
7767
7768         * exp_ch5.adb:
7769         (Expand_Simple_Function_Return): Copy unaligned result into temporary
7770
7771 2008-05-28  Javier Miranda  <miranda@adacore.com>
7772
7773         * sem_ch3.adb (Derive_Progenitor_Primitives): Add missing support
7774         for user-defined predefined primitives.
7775
7776         * sem_util.adb (Matches_Prefixed_View_Profile): Ditto.
7777         (Find_Overridden_Synchronized_Primitive): Ditto.
7778
7779         * sem_ch6.adb (Check_Synchronized_Overriding): Ditto.
7780
7781 2008-05-27  Arnaud Charlet  <charlet@adacore.com>
7782
7783         * a-ststio.adb, s-direio.adb:
7784         Further code clean up of previous change.
7785         Update comments.
7786
7787 2008-05-27  Vincent Celier  <celier@adacore.com>
7788
7789         * prj-nmsc.adb: Minor reformatting
7790
7791 2008-05-27  Bob Duff  <duff@adacore.com>
7792
7793         * sem_ch3.adb (Build_Incomplete_Type_Declaration): In the case of an
7794         untagged private type with a tagged full type, where the full type has
7795         a self reference, create the corresponding class-wide type early, in
7796         case the self reference is "access T'Class".
7797
7798 2008-05-27  Ed Schonberg  <schonberg@adacore.com>
7799
7800         * exp_aggr.adb (Build_Array_Aggr_Code): If component type includes
7801         tasks and context is an object declaration. create master entity before
7802         expansion.
7803
7804 2008-05-27  Robert Dewar  <dewar@adacore.com>
7805
7806         * mlib-prj.adb: Minor reformatting
7807
7808         * prj-part.adb: Minor reformatting
7809
7810         * prj.ads: Minor reformatting
7811
7812         * exp_ch3.adb: Minor reformatting.
7813
7814         * sem_ch3.ads: Minor reformatting
7815
7816         * sem_eval.adb: Minor reformatting
7817
7818 2008-05-27  Vincent Celier  <celier@adacore.com>
7819
7820         * gnatcmd.adb:
7821         <prefix>-gnat stack spawns gnatstack, not <prefix>-gnatstack
7822
7823 2008-05-27  Ed Schonberg  <schonberg@adacore.com>
7824
7825         * exp_aggr.adb (Expand_Array_Aggregate): If the aggregate contains
7826         tasks, create an activation chain now, before the expansion into
7827         assignments and build-in-place calls that require the presence of an
7828         activation chain.
7829         (Backend_Processing_Possible): If the component type is inherently
7830         limited, the aggregate must be expanded into individual built-in-place
7831         assignments.
7832
7833         * sem_ch6.adb (Build_Extra_Formals): Use underlying type of result to
7834         determine whether an allocation extra parameter must be built, to
7835         handle case of a private type whose full type is a discriminated type
7836         with defaults.
7837
7838 2008-05-27  Bob Duff  <duff@adacore.com>
7839
7840         * gnat_rm.texi:
7841         Document the new behavior regarding trampolines.
7842
7843 2008-05-27  Arnaud Charlet  <charlet@adacore.com>
7844
7845         * a-direio.adb, a-sequio.adb: Replace address clause by
7846         unrestricted_access, simpler and compatible with .NET.
7847
7848 2008-05-27  Vincent Celier  <celier@adacore.com>
7849
7850         * prj-part.adb:
7851         (Project_Path_Name_Of.Try_Path): Do not use Locate_Regular_File to find
7852         a project file, so that symbolic links are not resolved.
7853
7854 2008-05-27  Arnaud Charlet  <charlet@adacore.com>
7855
7856         * a-ztexio.adb, a-textio.adb, a-witeio.adb, s-direio.adb:
7857         Replace heavy address clause by 'Unrestricted_Access, cleaner and more
7858         portable across GNAT targets, since this kind of address clause is not
7859         supported by VM back-ends (.NET/JGNAT).
7860
7861 2008-05-27  Arnaud Charlet  <charlet@adacore.com>
7862
7863         * bindgen.adb: Update comments.
7864
7865         * s-tasinf-mingw.adb: Add "with" of System.OS_Interface
7866
7867 2008-05-27  Vincent Celier  <celier@adacore.com>
7868
7869         * gnatcmd.adb, prj-proc.adb, make.adb, mlib-prj.adb, prj.adb,
7870         prj.ads, makegpr.adb, makeutl.adb, clean.adb, prj-nmsc.adb,
7871         mlib-tgt.adb, prj-env.adb, prj-env.ads:
7872         (Path_Information): New record type
7873         Use component of type Path_Information when there are two paths, one in
7874         canonical format and one in display format.
7875         Update the project manager to these new components.
7876
7877 2008-05-27  Robert Dewar  <dewar@adacore.com>
7878
7879         * makeutl.adb: Minor reformatting
7880         * prj-nmsc.adb: Minor reformatting
7881         * s-stausa.adb: Minor reformatting
7882         * s-stausa.ads: Minor reformatting
7883         * sem_ch6.adb: Minor reformatting
7884
7885 2008-05-27  Thomas Quinot  <quinot@adacore.com>
7886
7887         * sem_res.adb: Minor comment fixes
7888
7889 2008-05-27  Thomas Quinot  <quinot@adacore.com>
7890
7891         * makeutl.adb: Minor code reorganization
7892
7893         * exp_aggr.adb: Add ??? comment
7894         Fix typo
7895
7896         * exp_ch6.adb: Minor reformatting
7897
7898 2008-05-27  Quentin Ochem  <ochem@adacore.com>
7899
7900         * s-stausa.adb (Initialize): Updated result initialization, and
7901         initialization of environment stack.
7902         (Fill_Stack): Improved computation of the pattern zone, taking into
7903         account already filled at the calling point.
7904         (Get_Usage_Range): Now uses Min_Measure and Max_Measure instead of
7905         Measure and Overflow_Guard.
7906         (Report_Result): Fixed computation of the result using new fields of
7907         Stack_Analyzer.
7908
7909         * s-stausa.ads (Initialize_Analyzer): Replaced Size / Overflow_Guard
7910         params by more explicit Stack_Size / Max_Pattern_Size params.
7911         (Stack_Analyzer): Added distinct Stack_Size & Pattern_Size fields.
7912         Added Stack_Used_When_Filling field.
7913         (Task_Result): Replaced Measure / Overflow_Guard by more explicit
7914         Min_Measure and Max_Measure fields.
7915
7916         * s-tassta.adb (Task_Wrapper): Updated call to Initialize_Analyzer.
7917
7918 2008-05-27  Vincent Celier  <celier@adacore.com>
7919
7920         * prj-nmsc.adb:
7921         (Check_File): Make sure that a unit that replaces the same unit in a
7922          project being extended is properly processed.
7923
7924 2008-05-27  Ed Schonberg  <schonberg@adacore.com>
7925
7926         * sem_ch3.adb:
7927         (Get_Discr_Value): Remove obsolete code that failed to find the value
7928         of a discriminant for an inherited task component appearing in a type
7929         extension.
7930
7931 2008-05-27  Thomas Quinot  <quinot@adacore.com>
7932
7933         (System.File_IO.{Close, Delete, Reset}):
7934         Change File parameter from "in out AFCB_Ptr" to "access AFCB_Ptr".
7935
7936         (Ada.*_IO.{Close, Delete, Reset, Set_Mode}):
7937         Pass File parameter by reference.
7938
7939 2008-05-27  Vincent Celier  <celier@adacore.com>
7940
7941         * prj-nmsc.adb:
7942         (Process_Sources_In_Multi_Language_Mode): Check that there are not two
7943         sources of the same project that have the same object file name.
7944         (Find_Explicit_Sources): Always remove a source exception that was not
7945         found.
7946
7947 2008-05-27  Thomas Quinot  <quinot@adacore.com>
7948
7949         * sem_ch3.adb: Minor reformatting
7950
7951 2008-05-27  Ed Schonberg  <schonberg@adacore.com>
7952
7953         * sem_ch6.adb:
7954         (Is_Interface_Conformant): Handle properly a primitive operation that
7955         overrides an interface function with a controlling access result.
7956         (Type_Conformance): If Skip_Controlling_Formals is true, when matching
7957         inherited and overriding operations, omit as well the conformance check
7958         on result types, to prevent spurious errors.
7959
7960 2008-05-27  Vincent Celier  <celier@adacore.com>
7961
7962         * makeutl.ads, makeutl.adb:
7963         (Set_Location): New procedure
7964         (Get_Location): New function
7965         (Update_Main): New procedure
7966
7967 2008-05-27  Vincent Celier  <celier@adacore.com>
7968
7969         * prj-nmsc.adb:
7970         (Check_Library): Allow standard project to be extended as a static
7971         library project.
7972         (Get_Mains): Do not inherit attribute Main in an extending library
7973         project.
7974
7975 2008-05-27  Eric Botcazou  <ebotcazou@adacore.com>
7976
7977         * system-darwin-ppc.ads (Always_Compatible_Rep): Set to False.
7978         * system-darwin-x86.ads (Always_Compatible_Rep): Likewise.
7979         * system-freebsd-x86.ads (Always_Compatible_Rep): Likewise.
7980         * system-linux-ppc.ads (Always_Compatible_Rep): Likewise.
7981         * system-linux-x86_64.ads (Always_Compatible_Rep): Likewise.
7982         * system-linux-x86.ads (Always_Compatible_Rep): Likewise.
7983         * system-mingw.ads (Always_Compatible_Rep): Likewise.
7984         * system-solaris-sparc.ads (Always_Compatible_Rep): Likewise.
7985         * system-solaris-sparcv9.ads (Always_Compatible_Rep): Likewise.
7986         * system-solaris-x86.ads (Always_Compatible_Rep): Likewise.
7987
7988 2008-05-27  Ed Schonberg  <schonberg@adacore.com>
7989
7990         * sem_attr.adb: add guard to previous patch.
7991
7992 2008-05-27  Ed Schonberg  <schonberg@adacore.com>
7993
7994         * exp_disp.adb (Build_Dispatch_Tables): For a private type completed by
7995         a synchronized tagged type, do not attempt to build dispatch table for
7996         full view. The table is built for the corresponding record type, which
7997         has its own declaration.
7998
7999 2008-05-27  Gary Dismukes  <dismukes@adacore.com>
8000
8001         * sem_ch3.adb (Fixup_Bad_Constraint): Set the Etype on the bad subtype
8002         to the known type entity E, rather than setting it to Any_Type. Fixes
8003         possible blowup in function Base_Init_Proc, as called from Freeze_Entity
8004         for objects whose type had an illegal constraint.
8005
8006 2008-05-27  Vincent Celier  <celier@adacore.com>
8007
8008         * gnat_ugn.texi:
8009         Add succinct documentation for attribute Excluded_Source_List_File
8010
8011 2008-05-27  Vincent Celier  <celier@adacore.com>
8012
8013         * prj-attr.adb: Add new project level attribute Map_File_Option
8014
8015         * prj-nmsc.adb (Process_Linker): Process new attribute Map_File_Option
8016
8017         * prj.ads: Minor reformatting and comment update
8018         (Project_Configuration): New component Map_File_Option
8019
8020         * snames.adb: New standard name Map_File_Option
8021
8022         * snames.ads: New standard name Map_File_Option
8023
8024 2008-05-27  Vincent Celier  <celier@adacore.com>
8025
8026         * xsnames.adb: Remove unused variable Oname
8027
8028 2008-05-27  Doug Rupp  <rupp@adacore.com>
8029
8030         * exp_ch6.adb:
8031         (Expand_N_Function_Call): Fix comments. Minor reformatting.
8032
8033         * exp_vfpt.ads:
8034         (Expand_Vax_Foreign_Return): Fix comments.
8035
8036 2008-05-27  Thomas Quinot  <quinot@adacore.com>
8037
8038         * exp_dist.adb: Minor reformating
8039
8040 2008-05-26  Gary Dismukes  <dismukes@adacore.com>
8041
8042         * exp_ch3.adb (Expand_N_Object_Declaration): Remove checks for
8043         No_Default_Initialization, which is now delayed until the freeze point
8044         of the object. Add a comment about deferral of the check.
8045
8046         * freeze.adb (Freeze_Entity): The check for No_Default_Initialization
8047         on objects is moved here.
8048
8049 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
8050
8051         * s-casi16.adb (Uhalf): Rewrite it as integer with small alignment.
8052         (Compare_Array_S16): Adjust for above change.
8053         * s-casi32.adb (Uword): Likewise.
8054         (Compare_Array_S32): Likewise.
8055         * s-casi64.adb (Uword): Likewise.
8056         (Compare_Array_S64): Likewise.
8057         * s-caun16.adb (Uhalf): Likewise.
8058         (Compare_Array_U16): Likewise.
8059         * s-caun32.adb (Uword): Likewise.
8060         (Compare_Array_U32): Likewise.
8061         * s-caun64.adb (Uword): Likewise.
8062         (Compare_Array_U64): Likewise.
8063
8064 2008-05-26  Robert Dewar  <dewar@adacore.com>
8065
8066         * exp_ch6.adb: Add ??? comment for previous change
8067
8068         * exp_vfpt.adb: Minor reformatting
8069
8070         * exp_vfpt.ads: Add ??? comment for last change
8071
8072         * sem_attr.adb: Add some ??? comments for previous change
8073
8074         * s-vaflop.ads: Add comments for previous change
8075
8076 2008-05-26  Doug Rupp  <rupp@adacore.com>
8077
8078         * s-vaflop-vms-alpha.adb:
8079         Remove System.IO use clause, to prevent spurious ambiguities when
8080         package is access through rtsfind.
8081
8082 2008-05-26  Sergey Rybin  <rybin@adacore.com>
8083
8084         * tree_io.ads (ASIS_Version_Number): Update because of the changes
8085         made in front-end
8086
8087 2008-05-26  Ed Schonberg  <schonberg@adacore.com>
8088
8089         * sem_attr.adb:
8090         (Resolve_Attribute, case 'address):  S (A .. B)' address can be safely
8091         converted to S (A)'address only if A .. B is known to be a non-null
8092         range.
8093
8094 2008-05-26  Doug Rupp  <rupp@adacore.com>
8095
8096         * s-vaflop.adb:
8097         (Return_D, Return_F, Return_G): New functions.
8098
8099         * s-vaflop.ads:
8100         (Return_D, Return_F, Return_G): New functions.
8101
8102         * exp_vfpt.adb:
8103         (Expand_Vax_Foreign_Return): New procedure
8104
8105         * exp_vfpt.ads:
8106         (Expand_Vax_Foreign_Return): New procedure
8107
8108         * rtsfind.ads:
8109         (RE_Return_D, RE_Return_F, RE_Return_G): New RE_Ids
8110         (RE_Return_D, RE_Return_F, RE_Return_G): New RE_Unit_Table elements
8111
8112         * exp_ch6.adb:
8113         Import Exp_Vfpt
8114         (Expand_N_Function_Call): Call Expand_Vax_Foreign_Return.
8115
8116         * s-vaflop-vms-alpha.adb:
8117         (Return_D, Return_F, Return_G): New functions.
8118
8119 2008-05-26  Gary Dismukes  <dismukes@adacore.com>
8120
8121         * exp_ch3.adb (Build_Array_Init_Proc): Only set Init_Proc to a dummy
8122         init proc entity when there is actual default initialization associated
8123         with the component type, to avoid spurious errors on objects of scalar
8124         array types that are marked Is_Public when No_Default_Initialization
8125         applies.
8126
8127 2008-05-26  Thomas Quinot  <quinot@adacore.com>
8128
8129         * rtsfind.ads, rtsfind.adb:
8130         (RE_Get_RACW): New runtime library entity provided by PolyORB s-parint.
8131         (Check_RPC): Support per-PCS-kind API versioning.
8132
8133         exp_dist.ads, exp_dist.adb:
8134         (Build_Stub_Tag, Get_Stub_Elements): New utility subprograms.
8135         (PolyORB_Support.Add_RACW_From_Any): Offload common code to new runtime
8136          library function Get_RACW.
8137         (PolyORB_Support.Add_RACW_To_Any): Offload common code to new runtime
8138         library function Get_Reference.
8139         (PolyORB_Support.Add_RACW_Read_Attribute): Use Get_RACW instead of going
8140         through an intermediate Any.
8141         (PolyORB_Support.Add_RACW_Write_Attribute): Use Get_Reference instead of
8142         going through an intermediate Any.
8143
8144         * sem_dist.adb: Minor reformatting.
8145
8146 2008-05-26  Javier Miranda  <miranda@adacore.com>
8147
8148         * einfo.ads (Abstract_Interface_Alias): Renamed as Interface_Alias.
8149         (Set_Abstract_Interface_Alias): Renamed as Set_Interface_Alias.
8150         (Is_Internal): Adding documentation on internal entities that have
8151         attribute Interface_Alias (old attribute Abstract_Interface_Alias)
8152
8153         * einfo.adb (Abstract_Interface_Alias): Renamed as Interface_Alias.
8154         (Set_Abstract_Interface_Alias): Renamed as Set_Interface_Alias.
8155         Added assertion to force entities with this attribute to have
8156         attribute Is_Internal set to True.
8157         (Next_Tag_Component): Simplify assertion using attribute Is_Tag.
8158
8159         * sem_ch3.adb (Derive_Interface_Subprograms): This subprogram has been
8160         renamed as Derive_Progenitor_Subprograms. In addition, its code is
8161         a new implementation.
8162         (Add_Interface_Tag_Components): Remove special management of
8163         synchronized interfaces.
8164         (Analyze_Interface_Declaration): Minor reformating
8165         (Build_Derived_Record_Type): Minor reformating
8166         (Check_Abstract_Overriding): Avoid reporting error in case of abstract
8167         predefined primitive inherited from interface type because the body of
8168         internally generated predefined primitives of tagged types are generated
8169         later by Freeze_Type
8170         (Derive_Subprogram): Avoid generating an internal name if the parent
8171         subprogram overrides an interface primitive.
8172         (Derive_Subprograms): New implementation that keeps separate the
8173         management of tagged types not implementing interfaces, from tagged
8174         types that implement interfaces.
8175         (Is_Progenitor): New implementation.
8176         (Process_Full_View): Add documentation
8177         (Record_Type_Declaration): Replace call to Derive_Interface_Subprograms
8178         by call to Derive_Progenitor_Subprograms.
8179
8180         * sem_ch6.ads (Is_Interface_Conformant): New subprogram.
8181         (Check_Subtype_Conformant, Subtype_Conformant): Adding new argument
8182         Skip_Controlling_Formals.
8183
8184         * sem_ch6.adb (Is_Interface_Conformant): New subprogram.
8185         (Check_Conventions): New implementation. Remove local subprogram
8186         Skip_Check. Remove formal Search_From of routine Check_Convention.
8187         (Check_Subtype_Conformant, Subtype_Conformant): Adding new argument
8188         Skip_Controlling_Formals.
8189         (New_Overloaded_Entity): Enable addition of predefined dispatching
8190         operations.
8191
8192         * sem_disp.ads
8193         (Find_Primitive_Covering_Interface): New subprogram.
8194
8195         * sem_disp.adb (Check_Dispatching_Operation): Disable registering
8196         the task body procedure as a primitive of the corresponding tagged
8197         type.
8198         (Check_Operation_From_Private_Type): Avoid adding twice an entity
8199         to the list of primitives.
8200         (Find_Primitive_Covering_Interface): New subprogram.
8201         (Override_Dispatching_Operation): Add documentation.
8202
8203         * sem_type.adb (Covers): Minor reformatings
8204
8205         * sem_util.ads (Collect_Abstract_Interfaces): Renamed as
8206         Collect_Interfaces.
8207         Rename formal.
8208         (Has_Abstract_Interfaces): Renamed as Has_Interfaces.
8209         (Implements_Interface): New subprogram.
8210         (Is_Parent): Removed.
8211         (Primitive_Names_Match): New subprogram.
8212         (Remove_Homonym): Moved here from Derive_Interface_Subprograms.
8213         (Ultimate_Alias): New subprogram.
8214
8215         * sem_util.adb (Collect_Abstract_Interfaces): Renamed as
8216         Collect_Interfaces.
8217         Remove special management for synchronized types. Rename formal. Remove
8218         internal subprograms Interface_Present_In_Parent and Add_Interface.
8219         (Has_Abstract_Interfaces): Renamed as Has_Interfaces. Replace assertion
8220         on non-record types by code to return false in such case.
8221         (Implements_Interface): New subprogram.
8222         (Is_Parent): Removed. No special management is now required for
8223         synchronized types covering interfaces.
8224         (Primitive_Names_Match): New subprogram.
8225         (Remove_Homonym): Moved here from Derive_Interface_Subprograms.
8226         (Ultimate_Alias): New subprogram.
8227
8228         * exp_ch3.adb (Add_Internal_Interface_Entities): New subprogram.
8229         Add internal entities associated with secondary dispatch tables to
8230         the list of tagged type primitives that are not interfaces.
8231         (Freeze_Record_Type): Add new call to Add_Internal_Interface_Entities
8232         (Make_Predefined_Primitive_Specs): Code reorganization to improve
8233         the management of predefined equality operator. In addition, if
8234         the type has an equality function corresponding with a primitive
8235         defined in an interface type, the inherited equality is abstract
8236         as well, and no body can be created for it.
8237
8238         * exp_disp.ads (Is_Predefined_Dispatching_Operation): Moved from
8239         exp_util to exp_disp.
8240         (Is_Predefined_Interface_Primitive): New subprogram. Returns True if
8241         an entity corresponds with one of the predefined primitives required
8242         to implement interfaces.
8243         Update copyright notice.
8244
8245         * exp_disp.adb (Set_All_DT_Position): Add assertion. Exclude from the
8246         final check on abstract subprograms all the primitives associated with
8247         interface primitives because they must be visible in the public and
8248         private part.
8249         (Write_DT): Use Find_Dispatching_Type to locate the name of the
8250         interface type. This allows the use of this routine, for debugging
8251         purposes, when the tagged type is not fully decorated.
8252         (Is_Predefined_Dispatching_Operation): Moved from exp_util to exp_disp.
8253         Factorize code calling new subprogram Is_Predefined_Interface_Primitive.
8254         (Is_Predefined_Interface_Primitive): New subprogram. Returns True if an
8255         entity corresponds with one of the predefined primitives required to
8256         implement interfaces.
8257
8258         * exp_util.adb (Find_Interface_ADT): New implementation
8259         (Find_Interface): Removed.
8260
8261         * sprint.adb (Sprint_Node_Actual): Generate missing output for the
8262         list of interfaces associated with nodes
8263         N_Formal_Derived_Type_Definition and N_Private_Extension_Declaration.
8264
8265 2008-05-26  Thomas Quinot  <quinot@adacore.com>
8266
8267         * exp_ch5.adb (Make_Tag_Ctrl_Assignment): Add missing guard on
8268         condition for assignment to temporary.
8269
8270 2008-05-26  Ed Schonberg  <schonberg@adacore.com>
8271
8272         * exp_ch4.adb (Expand_Concatenate_Other): Add explicit constraint
8273         checks on the upper bound if the index type is a modular type, to
8274         prevent wrap-around computations when size is close to upper bound of
8275         type.
8276
8277 2008-05-26  Robert Dewar  <dewar@adacore.com>
8278
8279         * sem_ch3.adb: Minor reformatting
8280
8281 2008-05-26  Ed Schonberg  <schonberg@adacore.com>
8282
8283         * sem_ch12.adb (Remove_Parent): Use specification of instance
8284         to retrieve generic parent,
8285         to handle properly the case where the instance is a child unit.
8286         Add guard to handle properly wrapper packages.
8287         Minor reformatting
8288
8289 2008-05-26  Thomas Quinot  <quinot@adacore.com>
8290
8291         * sinfo.ads: Minor reformatting
8292
8293 2008-05-26  Hristian Kirtchev  <kirtchev@adacore.com>
8294
8295         * exp_ch4.adb (Expand_N_Type_Conversion): Minor code reformatting.
8296         Generate a tag check when the result subtype of a function, defined by
8297         an access definition, designates a specific tagged type.
8298         (Make_Tag_Check): New routine.
8299
8300 2008-05-26  Arnaud Charlet  <charlet@adacore.com>
8301
8302         * ceinfo.adb, csinfo.adb: Remove warnings. Update headers.
8303
8304 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
8305
8306         * gigi.h (gigi): Remove bogus ATTRIBUTE_UNUSED marker.
8307         (builtin_decl_for): Likewise.
8308         * trans.c (gigi): Likewise.
8309         * utils.c (def_builtin_1): Fix formatting.
8310
8311 2008-05-26  Hristian Kirtchev  <kirtchev@adacore.com>
8312
8313         * exp_ch3.adb (Build_Init_Statements): Alphabetize local variables.
8314         Create the statements which map a string name to protected or task
8315         entry indix.
8316
8317         * exp_ch9.adb: Add with and use clause for Stringt.
8318         Minor code reformatting.
8319         (Build_Entry_Names): New routine.
8320         (Make_Initialize_Protection, Make_Task_Create_Call): Generate a value
8321         for flag Build_Entry_Names which controls the allocation of the data
8322         structure for the string names of entries.
8323
8324         * exp_ch9.ads (Build_Entry_Names): New subprogram.
8325
8326         * exp_util.adb (Entry_Names_OK): New function.
8327
8328         * exp_util.ads (Entry_Names_OK): New function.
8329
8330         * rtsfind.ads: Add RO_PE_Set_Entry_Name and RO_TS_Set_Entry_Name to
8331         enumerations RE_Id and RE_Unit_Table.
8332
8333         * s-taskin.adb Add with and use clause for Ada.Unchecked_Deallocation.
8334         (Free_Entry_Names_Array): New routine.
8335
8336         * s-taskin.ads: Comment reformatting.
8337         Add types String_Access, Entry_Names_Array, Entry_Names_Array_Access.
8338         Add component Entry_Names to record Ada_Task_Control_Block.
8339         (Free_Entry_Names_Array): New routine.
8340
8341         * s-tassta.adb (Create_Task): If flag Build_Entry_Names is set,
8342         dynamically allocate an array
8343         of string pointers. This structure holds string entry names.
8344         (Free_Entry_Names): New routine.
8345         (Free_Task, Vulnerable_Free_Task): Deallocate the entry names array.
8346         (Set_Entry_Names): New routine.
8347
8348         * s-tassta.ads:
8349         (Create_Task): Add formal Build_Entry_Names. The flag is used to
8350         control the allocation of the data structure which stores entry names.
8351         (Set_Entry_Name): New routine.
8352
8353         * s-tpoben.adb:
8354         Add with and use clause for Ada.Unchecked_Conversion.
8355         (Finalize): Deallocate the entry names array.
8356         (Free_Entry_Names): New routine.
8357         (Initialize_Protection_Entries): When flag Build_Entry_Names is set,
8358         create an array of string pointers to hold the entry names.
8359         (Set_Entry_Name): New routine.
8360
8361         * s-tpoben.ads:
8362         Add field Entry_Names to record Protection_Entries.
8363         (Initialize_Protection_Entries): Add formal Build_Entry_Names.
8364         (Set_Entry_Name): New routine.
8365
8366 2008-05-26  Vincent Celier  <celier@adacore.com>
8367
8368         * prj-nmsc.adb:
8369         (Process_Project_Level_Simple_Attributes): process attribute Library_GCC
8370
8371         * prj.ads:
8372         (Project_Configuration): New component Shared_Lib_Driver
8373
8374 2008-05-26  Ed Schonberg  <schonberg@adacore.com>
8375
8376         * inline.adb:
8377         (Cleanup_Scopes): For a protected operation, transfer finalization list
8378         to protected body subprogram, to force cleanup actions when needed.
8379
8380 2008-05-26  Robert Dewar  <dewar@adacore.com>
8381
8382         * sem_cat.adb: Minor reformatting
8383
8384         * gnatname.adb: Minor reformatting
8385
8386         * osint.ads: Minor reformatting
8387
8388         * s-carun8.ads: Minor reformatting
8389
8390         * g-heasor.ads: Minor comment fix (unit is now pure)
8391
8392 2008-05-26  Robert Dewar  <dewar@adacore.com>
8393
8394         * exp_ch2.adb:
8395         (Expand_Current_Value): Properly type generated integer literal
8396
8397 2008-05-26  Sergey Rybin  <rybin@adacore.com>
8398
8399         * gnat_ugn.texi: Add description for the new gnatcheck rule -
8400         Separate_Numeric_Error_Handlers.
8401
8402 2008-05-26  Pascal Obry  <obry@adacore.com>
8403
8404         * sem_aggr.adb: Minor reformatting.
8405
8406 2008-05-26  Jose Ruiz  <ruiz@adacore.com>
8407
8408         * s-osinte-aix.adb:
8409         (To_Target_Priority): Setting the time slice value to 0 or greater sets
8410         the scheduling policy to FIFO within priorities or round-robin
8411         respectively.
8412         Hence, the priority must be set in this case to the one selected by the
8413         user.
8414
8415 2008-05-26  Ed Schonberg  <schonberg@adacore.com>
8416
8417         * sem_ch12.adb:
8418         (Remove_Parent): If the enclosing scope is an instance whose generic
8419         parent is declared within some parent scope of the just completed
8420         instance, make full views of the entities in that parent visible, when
8421         applicable.
8422
8423 2008-05-26  Kai Tietz  <kai.tietz@onevision.com>
8424
8425         * mingw32.h (STD_MINGW): Set to true for target w64.
8426
8427 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
8428
8429         * trans.c (Attribute_to_gnu) <Code_Address>: Set TREE_NO_TRAMPOLINE
8430         instead of TREE_STATIC on the ADDR_EXPR.
8431
8432 2008-05-24  Eric Botcazou  <ebotcazou@adacore.com>
8433
8434         * trans.c (gnat_to_gnu): Do not set source location info on NOP_EXPRs.
8435         (Sloc_to_locus): Do not overwrite known GCC locations when translating
8436         GNAT standard locations.
8437
8438 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
8439
8440         * gigi.h (mark_visited): Declare.
8441         * decl.c (gnat_to_gnu_entity): Use mark_visited instead of marking
8442         only the topmost node of expressions.
8443         (elaborate_expression_1): Look deeper for read-only variables.
8444         * trans.c (add_decl_expr): Use mark_visited instead of marking by hand.
8445         (mark_visited): Move logic to mark_visited_r.  Invoke walk_tree.
8446         (mark_visited_r): New function.
8447
8448 2008-05-23  Vincent Celier  <celier@adacore.com>
8449
8450         * snames.adb: New standard name Excluded_Source_List_File.
8451
8452         * snames.ads: New standard name Excluded_Source_List_File.
8453
8454         * prj-attr.adb: New project level attribute Excluded_Source_List_File.
8455
8456         * prj-nmsc.adb: (Find_Excluded_Sources): New parameter Project.
8457         Get excluded sources from
8458         file indicated by attribute Excluded_Source_List_File, when present and
8459         neither Excluded_Source_Files nor Locally_Removed_Files are declared.
8460
8461 2008-05-23  Robert Dewar  <dewar@adacore.com>
8462
8463         * exp_dist.adb: Minor reformatting
8464
8465 2008-05-23  Ed Schonberg  <schonberg@adacore.com>
8466
8467         * sem_attr.adb (Resolve_Attribute, case 'address): If the prefix is a
8468         slice, convert it to an indexed component, which is equivalent, more
8469         efficient, and usable even if the slice itself is not addressable.
8470
8471 2008-05-23  Olivier Hainque  <hainque@adacore.com>
8472
8473         * gnat_ugn.texi (Calling Conventions): Document that the Intrinsic
8474         convention also allows access to named compiler built-in subprograms
8475         such as the GCC __builtin family.
8476
8477 2008-05-23  Vincent Celier  <celier@adacore.com>
8478
8479         * prj-nmsc.adb (Check_Naming_Schemes): Check a file for spec, body and
8480         sep. If there are several possibilities, choose the one with the
8481         longer prefix.
8482
8483 2008-05-23  Vincent Celier  <celier@adacore.com>
8484
8485         * gnatlink.adb (Process_Args): Do not disable scanning of ALI file for
8486         back end switches when executable specified with --GCC= is same as
8487         default, even if there are additional options.
8488
8489         * gnat_ugn.texi:
8490         Document when the back end switches from the ALI file are taken into
8491         account when gnatlink is invoked with --GCC=
8492
8493 2008-05-23  Thomas Quinot  <quinot@adacore.com>
8494
8495         * s-os_lib.adb:
8496         (copy_File): Do not open destination file if source file is unreadable.
8497
8498 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
8499
8500         * utils.c (handle_type_generic_attribute): Adjust to accept
8501         fixed arguments before an elipsis.
8502
8503 2008-05-21  Thomas Quinot  <quinot@adacore.com>
8504
8505         * g-sothco.ads, g-sothco.adb: New files.
8506
8507 2008-05-20  Thomas Quinot  <quinot@adacore.com>
8508
8509         * Makefile.rtl (GNAT.Sockets.Thin_Common): New unit.
8510
8511         * g-sttsne-vxworks.adb: Add missing dependency on Sockets.Constants.
8512         Add missing "with" of Ada.Unchecked_Conversion
8513
8514         * g-soccon-linux-ppc.ads, g-soccon-linux-64.ads, g-soccon-lynxos.ads,
8515         g-soccon-linux-x86.ads, g-soccon-hpux-ia64.ads,
8516         g-soccon-solaris-64.ads, g-soccon-tru64.ads, g-soccon-aix.ads,
8517         g-soccon-irix.ads, g-soccon-hpux.ads, g-soccon-solaris.ads,
8518         g-soccon-vms.ads, g-soccon-mingw.ads, g-soccon-vxworks.ads,
8519         g-socthi-vxworks.adb, g-soccon-freebsd.ads, g-soccon.ads:
8520         Move common code out of GNAT.Sockets.Thin implementations and into
8521         Thin_Common.
8522         New constant SIZEOF_fd_set
8523         New flag Has_Sockaddr_Len
8524         New constants SIZEOF_sockaddr_in, SIZEOF_sockaddr_in6
8525
8526         * g-stsifd-sockets.adb
8527         (Create): Remove call to Set_Length; use Set_Family to set the family
8528         and (on appropriate platforms) length fields in struct sockaddr.
8529
8530         * g-socthi.adb, g-socthi.ads, g-socthi-vms.ads, g-socthi-vms.adb,
8531         g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vxworks.adb,
8532         g-soccon-darwin.ads, g-soccon-darwin.ads: New constant SIZEOF_fd_set
8533         Move common code out of GNAT.Sockets.Thin implementations and into
8534         Thin_Common.
8535
8536         * g-socket.ads, g-socket.adb:
8537         Move common code out of GNAT.Sockets.Thin implementations and into
8538         Thin_Common.
8539         (Connect_Socket, Accept_Socket): Provide new versions of these two
8540         routines that operate with a user specified timeout.
8541         (Bind_Socket, Connect_Socket, Send_Socket): Remove calls to Set_Length,
8542         this is now handled automatically by Set_Family on platforms that
8543         require it.
8544
8545         * gen-soccon.c:
8546         Move common code out of GNAT.Sockets.Thin implementations and into
8547         Thin_Common.
8548         (SIZEOF_sockaddr_in6): On platforms where IPv6 is not supported, define
8549         this constant to 0 (not -1) because we use it to initialize an
8550         unsigned_char value.
8551         Align values for numeric constants only.
8552         Handle the case of systems that do not support AF_INET6.
8553         New constant SIZEOF_fd_set
8554         New flag Has_Sockaddr_Len
8555         New constants SIZEOF_sockaddr_in, SIZEOF_sockaddr_in6
8556
8557         * gsocket.h: New flag Has_Sockaddr_Len
8558         New constants SIZEOF_sockaddr_in, SIZEOF_sockaddr_in6
8559
8560 2008-05-20  Santiago Uruena  <uruena@adacore.com>
8561
8562         * i-cobol.ads: Interfaces.COBOL should be preelaborate.
8563
8564 2008-05-20  Arnaud Charlet  <charlet@adacore.com>
8565
8566         * s-linux-hppa.ads (atomic_lock_t): Put back proper alignment now that
8567         the underlying issue with malloc/free has been fixed. Remove associated
8568         comments.
8569         Minor reformatting.
8570         Related to PR ada/24533
8571
8572 2008-05-20  Robert Dewar  <dewar@adacore.com>
8573
8574         * ali.adb: Correct casing of ASCII.NUL
8575
8576         * styleg-c.adb (Check_Identifier): Handle case of names in ASCII
8577         properly.
8578
8579 2008-05-20  Robert Dewar  <dewar@adacore.com>
8580             Gary Dismukes  <dismukes@adacore.com>
8581
8582         * checks.adb (Apply_Arithmetic_Overflow_Check): Avoid intermediate
8583         overflow if result converted to wider integer type.
8584         (Apply_Type_Conversion_Checks): Don't emit checks on conversions to
8585         discriminated types when discriminant checks are suppressed.
8586
8587 2008-05-20  Vincent Celier  <celier@adacore.com>
8588
8589         * cstand.adb (Print_Standard): Issue the correct Size clause for type
8590         Wide_Wide_Character.
8591
8592 2008-05-20  Tristan Gingold  <gingold@adacore.com>
8593
8594         * decl.c: Do not emit a variable for a object that has an address
8595         representation clause whose value is known at compile time.
8596         When a variable has an address clause whose value is known at compile
8597         time, refer to this variable by using directly the address instead of
8598         dereferencing a pointer.
8599
8600 2008-05-20  Robert Dewar  <dewar@adacore.com>
8601
8602         PR ada/30740
8603         * einfo.ads, einfo.adb (Non_Binary_Modulus): Applies to all types and
8604         subtypes, always False for non-modular types.
8605         Shared_Var_Assign_Proc (node22) and Shared_Var_Read_Proc (node 15)
8606         entry nodes have been replaced by Shared_Var_Procs_Instance (node22)
8607         for Shared_Storage package.
8608         (Is_RACW_Stub_Type): New entity flag.
8609
8610         * exp_ch4.adb
8611         (Expand_N_Op_Expon): Avoid incorrect optimization of a*(2**b) in the
8612         case where we have a modular type with a non-binary modules.
8613         Comments reformattings.
8614
8615         * sem_intr.adb: Simplify code not that Non_Binary_Modulus applies to
8616         all types.
8617
8618 2008-05-20  Javier Miranda  <miranda@adacore.com>
8619
8620         * exp_aggr.adb
8621         (Build_Record_Aggr_Code): Fix wrong tests checking progenitors. Previous
8622         tests did not covered the case in which the type of the aggregate has
8623         no progenitors but some its parents has progenitors.
8624
8625 2008-05-20  Gary Dismukes  <dismukes@adacore.com>
8626             Hristian Kirtchev  <kirtchev@adacore.com>
8627
8628         * exp_ch3.adb
8629         (Expand_N_Object_Declaration): Correct the condition which triggers the
8630         generation of a call to Displace when initializing a class-wide object.
8631         (Build_Dcheck_Functions): Build discriminant-checking for null variants
8632         when Frontend_Layout_On_Target is true to ensure that they're available
8633         for calling when a record variant size function is built in Layout.
8634
8635 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
8636
8637         * exp_ch5.adb (Expand_Assign_Record): Within an initialization
8638         procedure for a derived type retrieve the discriminant values from the
8639         parent using the corresponding discriminant.
8640         (Expand_N_Assignment_Statement): Skip generation of implicit
8641         if-statement associated with controlled types if we are
8642         compiling with restriction No_Finalization.
8643
8644 2008-05-20  Vincent Celier  <celier@adacore.com>
8645
8646         * prj.adb (Hash (Project_Id)): New function
8647         (Project_Empty): Add new component Interfaces_Defined
8648
8649         * prj.ads (Source_Data): New component Object_Linked
8650         (Language_Config): New components Object_Generated and Objects_Linked
8651         (Hash (Project_Id)): New function
8652         (Source_Data): New Boolean components In_Interfaces and
8653         Declared_In_Interfaces.
8654         (Project_Data): New Boolean component Interfaces_Defined
8655
8656         * prj-attr.adb:
8657         New project level attribute Object_Generated and Objects_Linked
8658         Add new project level attribute Interfaces
8659
8660         * prj-dect.adb: Use functions Present and No throughout
8661         (Parse_Variable_Declaration): If a string type is specified as a simple
8662         name and is not found in the current project, look for it also in the
8663         ancestors of the project.
8664
8665         * prj-makr.adb:
8666         Replace procedure Make with procedures Initialize, Process and Finalize
8667         to implement H414-023: process different directories with different
8668         patterns.
8669         Use functions Present and No throughout
8670
8671         * prj-makr.ads:
8672         Replace procedure Make with procedures Initialize, Process and Finalize
8673
8674         * prj-nmsc.adb
8675         (Add_Source): Set component Object_Exists and Object_Linked accordnig to
8676         the language configuration.
8677         (Process_Project_Level_Array_Attributes): Process new attributes
8678         Object_Generated and Object_Linked.
8679         (Report_No_Sources): New Boolean parameter Continuation, defaulted to
8680         False, to indicate that the erreor/warning is a continuation.
8681         (Check): Call Report_No_Sources with Contnuation = True after the first
8682         call.
8683         (Error_Msg): Process successively contnuation character and warning
8684         character.
8685         (Find_Explicit_Sources): Check that all declared sources have been found
8686         (Check_File): Indicate in hash table Source_Names when a declared source
8687         is found.
8688         (Check_File): Set Other_Part when found
8689         (Find_Explicit_Sources): In multi language mode, check if all exceptions
8690         to the naming scheme have been found. For Ada, report an error if an
8691         exception has not been found. Otherwise, disregard the exception.
8692         (Check_Interfaces): New procedure
8693         (Add_Source): When Other_Part is defined, set mutual pointers in spec
8694         and body.
8695         (Check): In multi-language mode, call Check_Interfaces
8696         (Process_Sources_In_Multi_Language_Mode): Set In_Interfaces to False
8697         for an excluded source.
8698         (Remove_Source): A source replacing a source in the interfaces is also
8699         in the interfaces.
8700
8701         * prj-pars.adb: Use function Present
8702
8703         * prj-part.adb: Use functions Present and No throughout
8704         (Parse_Single_Project): Set the parent project for child projects
8705         (Create_Virtual_Extending_Project): Register project with no qualifier
8706         (Parse_Single_Project): Allow an abstract project to be extend several
8707         times. Do not allow an abstract project to extend a non abstract
8708         project.
8709
8710         * prj-pp.adb: Use functions Present and No throughout
8711         (Print): Take into account the full associative array attribute
8712         declarations.
8713
8714         * prj-proc.adb: Use functions Present and No throughout
8715         (Expression): Call itself with the same From_Project_Node for the
8716         default value of an external reference.
8717
8718         * prj-strt.adb: Use functions Present and No throughout
8719         (Parse_Variable_Reference): If a variable is specified as a simple name
8720         and is not found in the current project, look for it also in the
8721         ancestors of the project.
8722
8723         * prj-tree.ads, prj-tree.adb (Present): New function
8724         (No): New function
8725         Use functions Present and No throughout
8726         (Parent_Project_Of): New function
8727         (Set_Parent_Project_Of): New procedure
8728
8729         * snames.ads, snames.adb:
8730         Add new standard names Object_Generated and Objects_Linked
8731
8732 2008-05-20  Hristian Kirtchev  <kirtchev@adacore.com>
8733
8734         * exp_ch6.adb (Expand_Call): Add guard to ensure that both the parent
8735         and the derived type are of the same kind.
8736         (Expand_Call): Generate type conversions for actuals of
8737         record or array types when the parent and the derived types differ in
8738         size and/or packed status.
8739
8740 2008-05-20  Javier Miranda  <miranda@adacore.com>
8741             Ed Schonberg  <schonberg@adacore.com>
8742
8743         * exp_disp.adb (Make_DT, Make_Secondary_DT, Make_Tags): Avoid
8744         generating dispatch tables of locally defined tagged types statically.
8745         Remove implicit if-statement that is no longer required.
8746         (Expand_Dispatching_Call): If this is a call to an instance of the
8747         generic dispatching constructor, the type of the first argument may be
8748         a subtype of Tag, so always use the base type to recognize this case.
8749
8750 2008-05-20  Thomas Quinot  <quinot@adacore.com>
8751
8752         * exp_dist.adb
8753         (GARLIC_Support.Add_RACW_Read_Attribute): When a zero value is received,
8754         and the RACW is null-excluding, raise CONSTRAINT_ERROR instead of
8755         assigning NULL into the result, to avoid a spurious warning.
8756         (Add_RACW_Features, case Same_Scope): Add assertion that designated type
8757         is not frozen.
8758         (Add_Stub_Type): Set entity flag Is_RACW_Stub_Type on generated stub
8759         type.
8760         (Build_From_Any_Function, Build_To_Any_Function,
8761         Build_TypeCode_Function): For a type that has user-specified stream
8762         attributes, use an opaque sequence of octets as the representation.
8763
8764 2008-05-20  Kevin Pouget  <pouget@adacore.com>
8765
8766         * exp_smem.ads, exp_smem.adb: Construction of access and assign
8767         routines has been replaced by an instantiation of
8768         System.Shared_Storage.Shared_Var_Procs generic package, while expanding
8769         shared variable declaration.
8770         Calls to access and assign routines have been replaced by calls to
8771         Read/Write routines of System.Shared_Storage.Shared_Var_Procs
8772         instantiated package.
8773
8774         * rtsfind.ads: RE_Shared_Var_Procs entry has been added in RE_Unit_Table
8775         It identifies the new generic package added in s-shasto.
8776
8777         * s-shasto.adb, s-shasto.ads: A new generic package has been added, it
8778         is instantiated for each shared passive variable. It provides
8779         supporting procedures called upon each read or write access by the
8780         expanded code.
8781
8782         * sem_attr.adb:
8783         For this runtime unit (always compiled in GNAT mode), we allow
8784         stream attributes references for limited types for the case where
8785         shared passive objects are implemented using stream attributes,
8786         which is the default in GNAT's persistent storage implementation.
8787
8788 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
8789
8790         * freeze.adb
8791         (Freeze_Enumeration_Type): For a subtype that inherits a foreign
8792         convention from its base type, do not set the type to that of integer,
8793         because it may inherit a size clause.
8794         Warn on a size clause with a size different
8795         from that of Integer, if the type has convention C.
8796
8797 2008-05-20  Vincent Celier  <celier@adacore.com>
8798
8799         * gnatname.adb
8800         (Scan_Args): Rewrite to take into account new switch --and to separate
8801         arguments into sections.
8802         (Gnatname): Call Prj.Makr.Initialize, then Prj.Makr.Process for each
8803         section, then Finalize.
8804
8805 2008-05-20  Tristan Gingold  <gingold@adacore.com>
8806
8807         * init.c: Enable stack probing on ppc-linux.
8808
8809         * tracebak.c: Add symbolic traceback for ppc-linux.
8810
8811         * system-linux-ppc.ads: Enable stack probing on ppc-linux.
8812
8813 2008-05-20  Arnaud Charlet  <charlet@adacore.com>
8814
8815         * Makefile.in
8816         (common-tools): New rule, to avoid parallel build failure on gnat tools.
8817         Reenable parallel builds on this Makefile.
8818
8819         * Make-lang.in: Update dependencies.
8820
8821 2008-05-20  Robert Dewar  <dewar@adacore.com>
8822
8823         * opt.ads (Treat_Restrictions_As_Warnings): New switch
8824
8825         * sem_prag.adb, par-prag.adb, restrict.ads: Implement flag
8826         Treat_Restrictions_As_Warnings.
8827
8828         * switch-c.adb: Recognize new switch -gnatr
8829
8830         * usage.adb: Add line for -gnatr
8831
8832 2008-05-20  Hristian Kirtchev  <kirtchev@adacore.com>
8833
8834         * par-ch3.adb
8835         (P_Access_Definition): Change the error message when parsing "access
8836         all" in Ada 95 mode. The message no longer forces the user to recompile
8837         in 05 mode only to discover that anonymous access types are not allowed
8838         to have "all".
8839
8840 2008-05-20  Hristian Kirtchev  <kirtchev@adacore.com>
8841
8842         * par-ch9.adb
8843         (P_Protected): Update the error message on missing "-gnat05" switch when
8844         using interfaces in conjunction with protected types. Remove the
8845         incorrect error message associated with the presence of "private" after
8846         a "with".
8847
8848 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
8849
8850         * sem_aggr.adb: Update comments.
8851         Improve previous change for PR ada/17985
8852
8853 2008-05-20  Thomas Quinot  <quinot@adacore.com>
8854
8855         * sem_cat.adb
8856         (Set_Categorization_From_Scope): Do not set In_Remote_Types unless in
8857         the visible part of the spec of a remote types unit.
8858         (Validate_Remote_Access_Object_Type_Declaration):
8859         New local subprogram Is_Valid_Remote_Object_Type, replaces
8860         Is_Recursively_Limited_Private.
8861         (Validate_RACW_Primitives): Enforce E.2.2(14) rules: the types of all
8862         non-controlling formals (and the return type, even though this is not
8863         explicit in the standard) must support external streaming.
8864         (Validate_RCI_Subprogram_Declaration): Enforce E.2.3(14) rules: same
8865         as above for of RAS types and RCI subprograms. (The return type is not
8866         checked yet).
8867         Update comments related to RACWs designating limited interfaces per
8868         ARG ruling on AI05-060.
8869
8870         * sem_util.ads, sem_util.adb
8871         (Is_Remote_Access_To_Class_Wide_Type): Only rely on Is_Remote_Types and
8872         Is_Remote_Call_Interface to identify RACW types in a stable and
8873         consistent way. We used to rely in this predicate on the privateness of
8874         the designated type and its ancestors, but depending on the currently
8875         visible private parts, this caused false negatives. We now uniformly
8876         rely on checks made at the point where the RACW type is declared.
8877         (Inspect_Deferred_Constant_Completion): Moved from Sem_Ch7.
8878
8879 2008-05-20  Javier Miranda  <miranda@adacore.com>
8880             Ed Schonberg  <schonberg@adacore.com>
8881             Hristian Kirtchev  <kirtchev@adacore.com>
8882
8883         * sem_ch3.adb
8884         (Analyze_Object_Declaration): Fix over-conservative condition
8885         restricting use of predefined assignment with tagged types that have
8886         convention CPP.
8887         (Analyze_Object_Declaration): Relax the check regarding deferred
8888         constants declared in scopes other than packages since they can be
8889         completed with pragma Import.
8890         Add missing escaping of all-caps word 'CPP' in error messages.
8891         (Build_Discriminated_Subtype): Do not inherit representation clauses
8892         from parent type if subtype already carries them, because they are
8893         inherited earlier during derivation and already include those that may
8894         come from a partial view.
8895
8896         * sem_ch9.adb, sem_ch5.adb, sem_ch6.adb (Analyze_Subprogram_Body):
8897         Check the declarations of a subprogram body for proper deferred
8898         constant completion.
8899
8900         * sem_ch7.ads, sem_ch7.adb
8901         (Inspect_Deferred_Constant_Completion): Moved to sem_util.
8902
8903 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
8904             Thomas Quinot  <quinot@adacore.com>
8905
8906         * sem_ch4.adb
8907         (Try_Indexed_Call): Handle properly a construct of the form F(S) where
8908         F is a parameterless function that returns an array, and S is a subtype
8909         mark.
8910         (Analyze_Call): Insert dereference when the prefix is a parameterless
8911         function that returns an access to subprogram and the call has
8912         parameters.
8913         Reject a non-overloaded call whose name resolves to denote
8914         a primitive operation of the stub type generated to support a remote
8915         access-to-class-wide type.
8916
8917 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
8918
8919         * sem_ch8.adb
8920         (Note_Redundant_Use): Diagnose a redundant use within a subprogram body
8921         when there is a use clause for the same entity in the context.
8922         (Analyze_Subprogram_Renaming): A renaming_as_body is legal if it is
8923         created for a stream attribute of an abstract type or interface type.
8924
8925 2008-05-20  Thomas Quinot  <quinot@adacore.com>
8926
8927         * sem_dist.ads, sem_dist.adb (Is_RACW_Stub_Type_Operation): New
8928         subprogram.
8929
8930         * sem_type.adb
8931         (Add_One_Interp): Ignore any interpretation that is a primitive
8932         operation of an RACW stub type (these primitives are only executed
8933         through dispatching, never through static calls).
8934         (Collect_Interps): When only one interpretation has been found, set N's
8935         Entity and Etype to that interpretation, otherwise Entity and Etype may
8936         still refer to an interpretation that was ignored by Add_One_Interp,
8937         in which case would end up with being marked as not overloaded but with
8938         an Entity attribute not pointing to its (unique) correct interpretation.
8939
8940 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
8941
8942         * sem_eval.adb
8943         (Eval_Slice): Warn when a slice whose discrete range is a subtype name
8944         denotes the whole array of its prefix.
8945
8946 2008-05-20  Robert Dewar  <dewar@adacore.com>
8947
8948         * sem_res.adb (Resolve_Op_Not): Warn on double negation
8949
8950 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
8951
8952         * sprint.adb
8953         (Print_Itype): Do not modify the sloc of the component type of a
8954         (packed) array itype, because it is an unrelated type whose source
8955         location is independent of the point of creation of the itype itself.
8956
8957 2008-05-20  Thomas Quinot  <quinot@adacore.com>
8958
8959         * uintp.adb, urealp.adb: Replace calls to Increment_Last + Set with
8960         Append.
8961
8962 2008-05-20  Robert Dewar  <dewar@adacore.com>
8963             Vincent Celier  <celier@adacore.com>
8964
8965         * vms_data.ads: Add entry for -gnatr
8966         Put GNAT SYNC section in proper alpha order
8967         Add VMS qualifier /DISPLAY_PROGRESS equivalent to gnatmake switch -d
8968
8969         * gnat_ugn.texi: Add documentation for new gnatname switch --and
8970         Update the style checks section
8971         Add documentation of -gnatr
8972         Add to the "Adding the Results of Compiler Checks to gnatcheck Output"
8973         subsection the explanation how compiler checks should be disabled for
8974         gnatcheck.
8975         Update the list of Ada 95 reserved words used by in the project language
8976         Add documentation for project qualifiers.
8977         Document that abstract projects may be extended by different projects in
8978         the same project tree.
8979         Add documentation for gnatmake switch -d
8980
8981         * ug_words: Add -gnatyy VMS equivalence string.
8982         Add entry for -gnatr
8983
8984 2008-05-20  Bob Duff  <duff@adacore.com>
8985
8986         * a-rttiev.adb
8987         (Set_Handler): Remove code from both of these that implements
8988         RM-D.15(15/2), because it causes a race condition and potential
8989         deadlock.
8990         (Process_Queued_Events): Add comment explaining "exception when others
8991         => null". Add clarifying ".all", even though implicit .all is legal
8992         here.
8993
8994 2008-05-20  Arnaud Charlet  <charlet@adacore.com>
8995
8996         * s-winext.ads: Replace representation clause by pragma Pack. Gives
8997         equivalent representation, but has the advantage of allowing
8998         compilation of this file under 64 bits platforms.
8999
9000         * s-os_lib.adb (Normalize_Pathname): Mark Cur_Dir constant.
9001
9002         * s-osinte-irix.ads: (Alternate_Stack_Size): Add dummy declaration.
9003
9004         * adaint.c:
9005         Don't define dummy implementation of convert_addresses on ppc-linux.
9006
9007 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
9008
9009         * exp_ch7.adb
9010         (Expand_Ctrl_Function_Call): Do not attach result to finalization list
9011         if expression is aggregate component.
9012
9013 2008-05-20  Robert Dewar  <dewar@adacore.com>
9014
9015         * g-byorma.adb, gnatlink.adb, prepcomp.adb, sinfo.ads,
9016         sem_ch12.adb: Update comments. Minor reformatting.
9017
9018         * exp_ch2.adb: Typo
9019
9020         * s-unstyp.ads: Fixed some typos in comments.
9021
9022 2008-05-20  Arnaud Charlet  <charlet@adacore.com>
9023
9024         * s-taspri-vxworks.ads (Task_Address, Task_Address_Size): New
9025         type/constant.
9026
9027         * g-socthi-vxworks.ads: Update to latest socket changes.
9028
9029         * a-caldel-vms.adb: Resync with a-caldel spec.
9030
9031         * exp_ch9.ads, sem_ch8.ads, inline.adb: Minor reformatting.
9032         Update comments.
9033
9034 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
9035
9036         * trans.c (gnat_to_gnu) <N_Validate_Unchecked_Conversion>: Account
9037         for dummy types pointed to by the converted pointer types.
9038
9039 2008-05-15  Eric Botcazou  <ebotcazou@adacore.com>
9040
9041         * trans.c (add_decl_expr): At toplevel, mark the TYPE_ADA_SIZE field
9042         of records and unions.
9043         (gnat_to_gnu) <N_Validate_Unchecked_Conversion>: Fix formatting.
9044
9045 2008-05-14  Samuel Tardieu  <sam@rfc1149.net>
9046             Robert Dewar <dewar@adacore.com>
9047
9048         * sem_attr.adb (Analyze_Attribute, Attribute_Old case): Add
9049         restrictions to the prefix of 'Old.
9050         * sem_util.ads, sem_util.adb (In_Parameter_Specification): New.
9051         * gnat_rm.texi ('Old): Note that 'Old cannot be applied to local
9052         variables.
9053
9054 2008-05-13  Eric Botcazou  <ebotcazou@adacore.com>
9055
9056         PR ada/24880
9057         PR ada/26635
9058         * utils.c (convert) <INTEGER_TYPE>: When converting an additive
9059         expression to an integral type with lower precision, use NOP_EXPR
9060         directly in a couple of special cases.
9061
9062 2008-05-12  Samuel Tardieu  <sam@rfc1149.net>
9063             Ed Schonberg <schonberg@adacore.com>
9064
9065         * sem_ch3.adb (Build_Derived_Record_Type): Accept statically matching
9066         constraint expressions.
9067
9068 2008-05-12  Tomas Bily  <tbily@suse.cz>
9069
9070         * utils2.c (known_alignment, contains_save_expr_p)
9071         (gnat_mark_addressable): Use CASE_CONVERT.
9072         * decl.c (annotate_value): Likewise.
9073         * trans.c (maybe_stabilize_reference): Likewise.
9074         * utils2.c (build_binary_op): Use CONVERT_EXPR_P.
9075         * utils.c (rest_of_record_type_compilation): Likewise.
9076         * trans.c (protect_multiple_eval, Attribute_to_gnu)
9077         (protect_multiple_eval): Likewise.
9078
9079 2008-05-08  Andreas Schwab  <schwab@suse.de>
9080
9081         * utils.c (handle_pure_attribute, init_gigi_decls): Rename
9082         DECL_IS_PURE to DECL_PURE_P.
9083
9084 2008-05-05  Eric Botcazou  <ebotcazou@adacore.com>
9085
9086         * decl.c (maybe_pad_type): Add ??? comment.
9087
9088 2008-05-03  Eric Botcazou  <ebotcazou@adacore.com>
9089
9090         * decl.c (components_to_record): Zero the alignment of the qualified
9091         union built for the variant part upon creating it.
9092
9093 2008-05-03  Eric Botcazou  <ebotcazou@adacore.com>
9094
9095         * decl.c (maybe_pad_type): Try to get a form of the type with integral
9096         mode even if the alignment is not a factor of the original size.  But
9097         make sure to create the inner field with the original size.  Reorder.
9098         * trans.c (addressable_p) <COMPONENT_REF>: Treat the field of a padding
9099         record as always addressable.
9100         * utils.c (convert): Deal specially with conversions between original
9101         and packable versions of a record type.
9102         * utils2.c (build_binary_op) <MODIFY_EXPR>: Be more restrictive when
9103         recognizing an assignment between padded objects.
9104
9105 2008-05-01  Eric Botcazou  <ebotcazou@adacore.com>
9106
9107         * decl.c (make_packable_type): Resize the last component to its RM size
9108         only if it is of an aggregate type.
9109         * trans.c (call_to_gnu): Fix nit in comment.
9110         (gnat_to_gnu): Likewise.
9111
9112 2008-04-30  Samuel Tardieu  <sam@rfc1149.net>
9113
9114         * Makefile.in: Adapt sh4-linux target.
9115
9116 2008-04-29  Ed Schonberg  <schonberg@adacore.com>
9117
9118         PR ada/35792
9119         * sem_ch3.adb (Find_Type_Name): Refuse completion of an incomplete
9120         tagged type by an untagged protected or task type.
9121
9122 2008-04-28  Eric Botcazou  <ebotcazou@adacore.com>
9123             Tristan Gingold  <gingold@adacore.com>
9124
9125         PR ada/36007
9126         * decl.c (gnat_to_gnu_entity) <object>: Do not promote alignment
9127         of aliased objects with an unconstrained nominal subtype.
9128         Cap the promotion to the effective alignment of the word mode.
9129
9130 2008-04-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9131
9132         * Make-lang.in (ada.tags, check-acats, ada/treeprs.ads)
9133         (ada/einfo.h, ada/sinfo.h, ada/nmake.adb, ada/nmake.ads):
9134         Use '&&' instead of ';'.
9135
9136 2008-04-24  Olivier Hainque  <hainque@adacore.com>
9137
9138         * trans.c (Attribute_to_gnu) <case Attr_Length>: Length computation
9139         doesn't require signed arithmetic anymore.
9140
9141 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
9142
9143         * trans.c (Attribute_to_gnu): Don't set TREE_INVARIANT.
9144         (call_to_gnu): Don't set TREE_INVARIANT.
9145         * utils2.c (gnat_build_constructor): Don't set TREE_INVARIANT.
9146
9147 2008-04-22  Joel Sherrill <joel.sherrill@oarcorp.com>
9148
9149         * s-osinte-rtems.adb: Add sigalstack function.
9150         * s-osinte-rtems.ads: Add SO_ONSTACK and sigalstack
9151         function. Add Alternate_Stack and Alternate_Stack_Size.
9152         Add missing process_shared field to pthread_condattr_t
9153         and change ss_low_priority to int from timespec.
9154
9155 2008-04-22  Samuel Tardieu  <sam@rfc1149.net>
9156
9157         * i-forbla.adb: Link against -llapack and -lblas by default
9158         instead of the private -lgnalasup.
9159
9160 2008-04-21  Olivier Hainque  <hainque@adacore.com>
9161
9162         Access to most C builtins from Ada
9163         * utils.c: #include "langhooks.h" and define GCC_DIAG_STYLE.
9164         (handle_pure_attribute, handle_novops_attribute,
9165         handle_nonnull_attribute, handle_sentinel_attribute,
9166         handle_noreturn_attribute, handle_malloc_attribute,
9167         handle_type_generic_attribute): New attribute handlers, from C fe.
9168         (gnat_internal_attribute_table): Map the new handlers.
9169         (gnat_init_decl_processing): Move call to gnat_install_builtins to ...
9170         (init_gigi_decls): ... here.
9171         (handle_const_attribute, handle_nothrow_attribute, builtin_decl_for):
9172         Move to a section dedicated to builtins processing.
9173         (build_void_list_node, builtin_type_for_size): New functions.
9174         (def_fn_type, get_nonnull_operand): Likewise.
9175         (install_builtin_elementary_type, install_builtin_function_types,
9176         install_builtin_attributes): Likewise.
9177         (fake_attribute_handler): Fake handler for attributes we don't
9178         support in Ada.
9179         (def_builtin_1): New function, worker for DEF_BUILTIN.
9180         (install_builtin_functions): New function.
9181         (gnat_install_builtins): Move to the builtins processing section.
9182         Now calling the newly introduced installers.
9183
9184 2008-04-20  Eric Botcazou  <ebotcazou@adacore.com>
9185
9186         * decl.c (gnat_to_gnu_entity) <object>: Also promote the alignment of
9187         constant objects, but not exceptions.
9188         * trans.c (add_decl_expr): Use gnat_types_compatible_p for type
9189         compatibility test.
9190         * utils.c (create_var_decl_1): Likewise.
9191         * utils2.c (build_binary_op) <MODIFY_EXPR>: Also use the padded view of
9192         the type when copying to padded object and the source is a constructor.
9193
9194 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
9195
9196         * decl.c (gnat_to_gnu_entity) <object>: When trying to promote the
9197         alignment, reset it to zero if it would end up not being greater
9198         than that of the type.
9199
9200 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
9201
9202         * decl.c (maybe_pad_type): Only generate the XVS parallel type if
9203         the padded type has a variable size.
9204
9205 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
9206
9207         * decl.c (gnat_to_gnu_entity) <E_Subprogram_Type>: Use the return by
9208         target pointer mechanism as soon as the size is not constant.
9209
9210 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
9211
9212         * gigi.h (create_var_decl_1): Declare.
9213         (create_var_decl): Turn into a macro invoking create_var_decl_1.
9214         (create_true_var_decl): Likewise.
9215         * utils.c (create_var_decl_1): Make global and reorder parameters.
9216         (create_var_decl): Delete.
9217         (create_true_var_decl): Likewise.
9218
9219 2008-04-17  Eric Botcazou  <ebotcazou@adacore.com>
9220
9221         * decl.c (gnat_to_gnu_entity) <object>: Promote the alignment of
9222         objects by default.
9223         * fe.h (Debug_Flag_Dot_A): Delete.
9224         * debug.adb (-gnatd.a): Update documentation.
9225
9226 2008-04-17  Samuel Tardieu  <sam@rfc1149.net>
9227
9228         * g-socket.ads, g-socket.adb (Get_Address): Make Stream a
9229         "not null" parameter.
9230
9231 2008-04-17  Samuel Tardieu  <sam@rfc1149.net>
9232
9233         * g-socket.adb: Add a message "IPv6 not supported" to the
9234         Socket_Error exception.
9235
9236 2008-04-16  Samuel Tardieu  <sam@rfc1149.net>
9237
9238         PR ada/29015
9239         * sem_ch12.adb (Instantiate_Type): Check whether the full view of
9240         the type is known instead of the underlying type.
9241
9242 2008-04-15  Ed Schonberg  <schonberg@adacore.com>
9243
9244         PR ada/22387
9245         * exp_ch5.adb (Expand_Assign_Record): Within an initialization
9246         procedure for a derived type retrieve the discriminant values from
9247         the parent using the corresponding discriminant.
9248
9249 2008-04-15  Samuel Tardieu  <sam@rfc1149.net>
9250             Gary Dismukes  <dismukes@adacore.com>
9251
9252         PR ada/28733
9253         * sem_ch8.adb (Analyze_Use_Package): Do not allow "use" of something
9254         which is not an entity (and hence not a package).
9255         (End_Use_Package): Ditto.
9256
9257 2008-04-15  Ed Schonberg  <schonberg@adacore.com>
9258
9259         PR ada/16086
9260         * sem_ch12.adb (Analyze_Formal_Subprogram): The default can be any
9261         protected operation that matches the signature, not only an entry, a
9262         regular subprogram or a literal.
9263
9264 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
9265
9266         * ada-tree.h (DECL_BY_COMPONENT_PTR_P): Use DECL_LANG_FLAG_3.
9267         * decl.c (gnat_to_gnu_entity) <object>: Call maybe_pad_type only
9268         if a size or alignment is specified.  Do not take into account
9269         alignment promotions for the computation of the object's size.
9270         <type>: Call maybe_pad_type only if a size or alignment is specified.
9271         (maybe_pad_type): Really reuse the RM_Size of the original type if
9272         requested.
9273         * trans.c (Attribute_to_gnu): Fix a couple of nits.
9274         * utils2.c (build_binary_op) <MODIFY_EXPR>: Merge related conditional
9275         statements.  Use the padded view of the type when copying between
9276         padded objects of the same underlying type.
9277
9278 2008-04-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9279
9280         * vms_data.ads: Fix typo in constant.
9281         * gen-soccon.c: Fix typo in error string.
9282         * gnat_rm.texi (Pragma Optimize_Alignment, Pragma Postcondition):
9283         Fix typos.
9284         * a-calcon.ads, a-calend-vms.adb, a-calend.adb, a-crdlli.ads,
9285         bcheck.adb, checks.adb, einfo.ads, errout.adb, erroutc.adb,
9286         erroutc.ads, exp_attr.adb, exp_ch11.adb, exp_ch2.adb,
9287         exp_ch5.adb, exp_ch9.adb, exp_ch9.ads, exp_pakd.adb,
9288         exp_util.adb, fmap.adb, g-soccon-linux-mips.ads,
9289         g-soccon-rtems.ads, g-timsta.adb, g-timsta.ads, lib-writ.ads,
9290         mlib-tgt-specific-linux.adb, mlib-tgt-specific-tru64.adb,
9291         s-interr-vxworks.adb, s-interr.adb, s-osinte-lynxos.ads,
9292         s-rident.ads, s-taprop-solaris.adb, s-tassta.adb, s-win32.ads,
9293         sem_aggr.adb, sem_attr.ads, sem_ch10.adb, sem_ch13.ads,
9294         sem_ch3.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb, sem_ch9.adb,
9295         sem_prag.ads, sem_res.adb, sem_util.adb, sem_util.ads,
9296         sinfo.ads: Fix typos in comments.
9297
9298 2008-04-14  Robert Dewar  <dewar@adacore.com>
9299
9300         * sem_prag.adb (Analyze_Pragma, Linker_Section case): Extend error
9301         to every non-object and change error message.
9302
9303 2008-04-14  Robert Dewar  <dewar@adacore.com>
9304
9305         * sem_util.ads, sem_util.adb (In_Subprogram): Remove.
9306         * sem_attr.adb (Anayze_Attribute): Check for Current_Subprogram
9307         directly.
9308
9309 2008-04-14  Samuel Tardieu  <sam@rfc1149.net>
9310
9311         PR ada/18680
9312         * sem_prag.adb (Analyze_Pragma, Linker_Section case): Refuse to
9313         apply pragma Linker_Section on type.
9314
9315 2008-04-14  Samuel Tardieu  <sam@rfc1149.net>
9316
9317         PR ada/16098
9318         * sem_prag.adb (Error_Pragma_Ref): New.
9319         (Process_Convention): Specialized message for non-local
9320         subprogram renaming. Detect the problem in homonyms as well.
9321
9322 2008-04-14  Samuel Tardieu  <sam@rfc1149.net>
9323
9324         PR ada/15915
9325         * sem_util.ads, sem_util.adb (Denotes_Variable): New function.
9326         * sem_ch12.adb (Instantiate_Object): Use it.
9327         * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Ensure that
9328         storage pool denotes a variable as per RM 13.11(15).
9329
9330 2008-04-14  Samuel Tardieu  <sam@rfc1149.net>
9331
9332         * sem_util.ads, sem_util.adb (In_Subprogram): New function.
9333         * sem_attr.adb (Analyze_Attribute, Attribute_Old case): Use it.
9334
9335 2008-04-14  Rolf Ebert  <rolf.ebert.gcc@gmx.de>
9336
9337         PR ada/20822
9338         * xgnatugn.adb (Put_Line): New procedure, ensuring Unix
9339         line endings even on non-Unix platforms.
9340
9341 2008-04-14  Samuel Tardieu  <sam@rfc1149.net>
9342
9343         PR ada/35050
9344         * xref_lib.adb (Parse_Identifier_Info): Correctly parse and ignore the
9345         renaming information.
9346
9347 2008-04-13  Samuel Tardieu  <sam@rfc1149.net>
9348
9349         PR ada/17985
9350         * sem_aggr.adb (Valid_Ancestor_Type): A type is not an ancestor of
9351         itself.
9352
9353 2008-04-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9354
9355         * sfn_scan.adb, sfn_scan.ads, sinfo.ads,
9356         sinput-d.ads, sinput-l.adb, sinput-l.ads, sinput.ads,
9357         snames.ads, sprint.adb, stand.ads, stringt.ads,
9358         styleg.adb, styleg.ads, stylesw.adb, stylesw.ads,
9359         switch.ads, sysdep.c, table.adb, table.ads,
9360         targparm.ads, tb-gcc.c, tbuild.ads, tracebak.c,
9361         trans.c, tree_io.adb, treepr.adb, types.adb, types.ads,
9362         uintp.adb, uintp.ads, utils.c, utils2.c, validsw.ads,
9363         vms_conv.adb, vms_conv.ads, vms_data.ads, widechar.adb,
9364         widechar.ads, xeinfo.adb, xgnatugn.adb, xr_tabls.adb,
9365         xr_tabls.ads, xref_lib.adb, xref_lib.ads, xsinfo.adb:
9366         Fix comment typos.
9367
9368         * sem_ch10.adb, sem_ch10.ads,
9369         sem_ch12.adb, sem_ch12.ads, sem_ch13.adb, sem_ch13.ads,
9370         sem_ch3.adb, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb,
9371         sem_ch6.ads, sem_ch8.adb, sem_ch8.ads, sem_ch9.adb,
9372         sem_elab.adb, sem_elab.ads, sem_elim.ads, sem_eval.adb,
9373         sem_eval.ads, sem_intr.adb, sem_mech.adb, sem_mech.ads,
9374         sem_prag.adb, sem_prag.ads, sem_res.adb, sem_res.ads,
9375         sem_type.adb, sem_util.adb, sem_util.ads, sem_warn.adb,
9376         sem_warn.ads: Fix comment typos.
9377
9378         * s-secsta.adb, s-sequio.ads, s-shasto.ads,
9379         s-soflin.ads, s-stalib.ads, s-stausa.adb,
9380         s-stausa.ads, s-strxdr.adb, s-taenca.adb, s-taenca.ads,
9381         s-taprob.adb, s-taprop-hpux-dce.adb, s-taprop-irix.adb,
9382         s-taprop-linux.adb, s-taprop-mingw.adb, s-taprop-posix.adb,
9383         s-taprop-solaris.adb, s-taprop-tru64.adb, s-taprop-vms.adb,
9384         s-taprop-vxworks.adb, s-taprop.ads, s-tarest.adb,
9385         s-tarest.ads, s-tasini.adb, s-tasini.ads, s-taskin.ads,
9386         s-tasque.ads, s-tassta.adb, s-tassta.ads, s-tasuti.ads,
9387         s-tpoben.adb, s-tpoben.ads, s-tpobop.adb,
9388         s-tpopsp-posix.adb, s-tpopsp-rtems.adb, s-tposen.adb,
9389         s-tposen.ads, s-traceb-hpux.adb, s-traces.ads,
9390         s-trafor-default.ads, s-unstyp.ads, s-utf_32.ads,
9391         s-vaflop.adb, s-vaflop.ads, s-valrea.adb, s-valuti.adb,
9392         s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, scans.ads,
9393         scn.adb, scng.adb, seh_init.c, sem.ads, sem_aggr.adb,
9394         sem_attr.adb, sem_attr.ads, sem_case.adb, sem_case.ads,
9395         sem_cat.adb, sem_cat.ads: Fix comment typos.
9396
9397 2008-04-12  Joel Sherrill  <joel@oarcorp.com>
9398
9399         PR ada/35825
9400         * g-soccon-rtems.ads: Add IP_PKTINFO as unsupported.
9401
9402 2008-04-12  Arnaud Charlet  <charlet@adacore.com>
9403
9404         * s-linux-hppa.ads: Fix syntax errors.
9405
9406 2008-04-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9407
9408         * gnat_ugn.texi: Fix typos.
9409         * raise-gcc.c, repinfo.adb, repinfo.ads, restrict.adb,
9410         restrict.ads, rtsfind.adb, rtsfind.ads, s-arit64.ads,
9411         s-asthan-vms-alpha.adb, s-auxdec.ads, s-casuti.ads,
9412         s-fatflt.ads, s-fatgen.adb, s-fatlfl.ads,
9413         s-fatllf.ads, s-fatsfl.ads, s-filofl.ads,
9414         s-finimp.adb, s-finroo.ads, s-fishfl.ads,
9415         s-fvadfl.ads, s-fvaffl.ads, s-fvagfl.ads,
9416         s-hibaen.ads, s-htable.ads, s-imgcha.adb,
9417         s-imgenu.ads, s-imgint.adb, s-imgrea.adb,
9418         s-inmaop-dummy.adb, s-inmaop.ads, s-interr-vms.adb,
9419         s-interr-vxworks.adb, s-interr.adb, s-interr.ads,
9420         s-intman-vxworks.ads, s-intman.ads, s-mastop-irix.adb,
9421         s-os_lib.adb, s-os_lib.ads, s-osinte-aix.ads,
9422         s-osinte-darwin.ads, s-osinte-freebsd.ads,
9423         s-osinte-hpux.ads, s-osinte-lynxos-3.adb,
9424         s-osinte-lynxos-3.ads, s-osinte-lynxos.ads,
9425         s-osinte-rtems.ads, s-osinte-solaris-posix.ads,
9426         s-osprim-mingw.adb, s-osprim-vms.adb, s-parame-ae653.ads,
9427         s-parame-hpux.ads, s-parame-vms-alpha.ads,
9428         s-parame-vms-ia64.ads, s-parame-vms-restrict.ads,
9429         s-parame-vxworks.ads, s-parame.ads, s-parint.adb,
9430         s-parint.ads, s-poosiz.adb, s-proinf-irix-athread.ads,
9431         s-proinf.ads, s-regexp.adb, s-regpat.adb, s-regpat.ads,
9432         s-rident.ads: Fix comment typos.
9433
9434 2008-04-09  Samuel Tardieu  <sam@rfc1149.net>
9435
9436         PR ada/28305
9437         * sem_ch6.adb (Build_Body_To_Inline): Do not save and restore
9438         environment if generic instance is a top-level one.
9439
9440 2008-04-09  Doug Rupp  <rupp@adacore.com>
9441
9442         * decl.c (validate_size): Set minimum size for fat pointers same as
9443         access types. Code clean ups.
9444
9445         * gmem.c (xstrdup32): New macro for 32bit dup on VMS, noop otherwise
9446         (__gnat_gmem_a2l_initialize): Dup exename into 32 bit memory on VMS
9447
9448         * s-auxdec-vms_64.ads, s-auxdec.ads (Short_Address_Size): New constant
9449
9450         * s-crtl.ads (malloc32) New function, alias for malloc
9451         (realloc32) New function, alias for realloc
9452
9453         * socket.c (__gnat_new_socket_set): Malloc fd_set in 32 bits on VMS
9454
9455         * utils2.c (build_call_alloc_dealloc): Return call to short malloc if
9456         allocator size is 32 and default pointer size is 64.
9457         (find_common_type): Document assumption on t1/t2 vs lhs/rhs. Force use of
9458         lhs type if smaller, whatever the modes.
9459
9460         * gigi.h (malloc32_decl): New macro definition
9461
9462         * utils.c (init_gigi_decls): New malloc32_decl
9463         Various code clean ups.
9464
9465         * s-asthan-vms-alpha.adb (Process_AST.To_Address): Unchecked convert to
9466         Task_Address vice System.Address.
9467
9468         * s-taspri-vms.ads: Import System.Aux_DEC
9469         (Task_Address): New subtype of System.Aux_DEC.Short_Address
9470         (Task_Address_Size): New constant size of System.Aux_DEC.Short_Address
9471
9472         * s-asthan-vms-alpha.adb (Process_AST.To_Address): Unchecked convert to
9473         Task_Address vice System.Address.
9474
9475         * s-inmaop-vms.adb: Import System.Task_Primitives
9476         (To_Address): Unchecked convert to Task_Address vice System.Address
9477
9478         * s-taprop-vms.adb (Timed_Delay): Always set the timer even if delay
9479         expires now.
9480         (To_Task_ID) Unchecked convert from Task_Adddress vice System.Address
9481         (To_Address) Unchecked convert to Task_Address vice System.Address
9482
9483         * s-tpopde-vms.adb: Remove unnecessary warning pragmas
9484
9485         * g-socthi-vms.ads: Add 32bit size clauses on socket access types.
9486
9487 2008-04-08  Eric Botcazou  <ebotcazou@adacore.com>
9488
9489         * gigi.h (standard_datatypes): Add ADT_fdesc_type and ADT_null_fdesc.
9490         (fdesc_type_node): Define.
9491         (null_fdesc_node): Likewise.
9492         * decl.c (gnat_to_gnu_entity) <E_Access_Subprogram_Type>: If the target
9493         uses descriptors for vtables and the type comes from a dispatch table,
9494         return the descriptor type.
9495         * trans.c (Attribute_to_gnu) <Attr_Unrestricted_Access>: If the target
9496         uses descriptors for vtables and the type comes from a dispatch table,
9497         build a descriptor in the static case and copy the existing one in the
9498         non-static case.
9499         (gnat_to_gnu) <N_Null>: If the target uses descriptors for vtables and
9500         the type is a pointer-to-subprogram coming from a dispatch table,
9501         return the null descriptor.
9502         <N_Unchecked_Type_Conversion>: If the target uses descriptors for
9503         vtables, the source type is the descriptor type and the target type
9504         is a pointer type, first build the pointer.
9505         * utils.c (init_gigi_decls): If the target uses descriptors for vtables
9506         build the descriptor type and the null descriptor.
9507
9508 2008-04-08  Eric Botcazou  <ebotcazou@adacore.com>
9509
9510         * decl.c (prepend_attributes): Fix typo.
9511         * trans.c (Pragma_to_gnu): Likewise.
9512         * utils.c (gnat_genericize): Likewise.
9513
9514 2008-04-08  Eric Botcazou  <ebotcazou@adacore.com>
9515             Richard Kenner  <kenner@adacore.com>
9516
9517         * ada-tree.h (TYPE_PACKED_ARRAY_TYPE_P): Only set it when bit-packed.
9518         * decl.c (gnat_to_gnu_entity): Adjust for above change.
9519         <E_Record_Type>: Try to get a better form of the component for
9520         packing, even if it has an integral mode.
9521         <E_Record_Subtype>: Likewise.
9522         * trans.c (gnat_to_gnu): Do not require BLKmode for the special
9523         exception suppressing the final conversion between record types.
9524
9525 2008-04-08  Eric Botcazou  <ebotcazou@adacore.com>
9526
9527         * decl.c (gnat_to_gnu_entity) <object>: If -gnatd.a and not optimizing
9528         alignment for space, promote the alignment of non-scalar variables with
9529         no size and alignment.
9530         * gigi.h (gnat_types_compatible_p): Declare.
9531         * misc.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Set to above predicate.
9532         * trans.c (gnat_to_gnu): Revert revision 129339 change.  Minor cleanup.
9533         * utils.c (gnat_types_compatible_p) : New predicate.
9534         (convert): Use it throughout to test for cases where a mere view
9535         conversion is sufficient.
9536         * utils2.c (build_binary_op): Minor tweaks.
9537         (build_unary_op): Likewise.
9538
9539 2008-04-08  Eric Botcazou  <ebotcazou@adacore.com>
9540
9541         * decl.c (adjust_packed): Expand comment.
9542
9543 2008-04-08  Arnaud Charlet  <charlet@adacore.com>
9544
9545         * s-tasuti.ads: Use Task_Address instead of System.Address.
9546
9547         * makeutl.adb (Path_Or_File_Name): New function
9548
9549         * nlists.ads, itypes.ads: Update comments.
9550
9551         * s-crtl.ads (malloc32, realloc32): New functions.
9552
9553         * s-auxdec.ads (Short_Address_Size): New constant.
9554
9555         * a-taside.adb, s-tasdeb.adb: Use Task_Address.
9556
9557         * s-ststop.ads, s-ststop.adb: New file.
9558
9559         * exp_tss.ads, s-taprop-lynxos.adb: Update comments.
9560         Minor reformatting.
9561
9562 2008-04-08  Pascal Obry  <obry@adacore.com>
9563
9564         * g-sercom.ads, g-sercom.adb (Data_Rate): Add B115200.
9565         (Stop_Bits_Number): New type.
9566         (Parity_Check): Likewise.
9567         (Set): Add parameter to set the number of stop bits and
9568         the parity. Parameter timeout is now a duration instead
9569         of a plain integer.
9570
9571         * g-sercom-linux.adb:
9572         Implement the stop bits and parity support for GNU/Linux.
9573         Fix handling of timeout, it must be given in tenth of seconds.
9574
9575         * g-sercom-mingw.adb:
9576         Implement the stop bits and parity support for Windows.
9577         Use new s-win32.ads unit instead of declaring Win32 services
9578         directly into this body.
9579         Update handling of timeout as now a duration.
9580
9581         * s-win32.ads, s-winext.ads: New files.
9582
9583 2008-04-08  Eric Botcazou  <ebotcazou@adacore.com>
9584             Arnaud Charlet  <charlet@adacore.com>
9585
9586         * s-osinte-linux-alpha.ads, s-osinte-linux-hppa.ads: Removed.
9587
9588         s-taspri-posix-noaltstack.ads, s-linux.ads, s-linux-alpha.ads,
9589         s-linux-hppa.ads: New files. Disable alternate stack on ia64-hpux.
9590
9591         * s-osinte-lynxos-3.ads,
9592         (Alternate_Stack): Remove when not needed. Simplify declaration
9593         otherwise.
9594         (Alternate_Stack_Size): New constant.
9595
9596         s-osinte-mingw.ads, s-taprop-mingw.adb: Code clean up: avoid use of
9597         'Unrestricted_Access.
9598
9599         * s-osinte-hpux.ads, s-osinte-solaris-posix.ads, s-osinte-aix.ads,
9600         s-osinte-lynxos.ads, s-osinte-freebsd.ads s-osinte-darwin.ads,
9601         s-osinte-tru64.ads, s-osinte-irix.ads, s-osinte-linux.ads,
9602         s-osinte-solaris.ads, s-osinte-vms.ads
9603         (SA_ONSTACK): New constant.
9604         (stack_t): New record type.
9605         (sigaltstack): New imported function.
9606         (Alternate_Stack): New imported variable.
9607         (Alternate_Stack_Size): New constant.
9608
9609         * system-linux-x86_64.ads: (Stack_Check_Probes): Set to True.
9610
9611         * s-taspri-lynxos.ads, s-taspri-solaris.ads, s-taspri-tru64.ads,
9612         s-taspri-hpux-dce.ads, s-taspri-dummy.ads, s-taspri-posix.ads,
9613         s-taspri-vms.ads (Task_Address): New subtype of System.Address
9614         (Task_Address_Size): New constant size of System.Address
9615         (Alternate_Stack_Size): New constant.
9616
9617         * s-taprop-posix.adb, s-taprop-linux.adb (Get_Stack_Attributes): Delete.
9618         (Enter_Task): Do not notify stack to System.Stack_Checking.Operations.
9619         Establish the alternate stack if the platform makes use of n alternate
9620         signal stack for stack overflows.
9621         (Create_Task): Take into account the alternate stack in the stack size.
9622         (Initialize): Save the address of the alternate stack into the ATCB for
9623         the environment task.
9624         (Create_Task): Fix assertions for NPTL library (vs old LinuxThreads).
9625
9626         * s-parame.adb (Minimum_Stack_Size): Increase value to 16K
9627
9628         * system-linux-x86.ads: (Stack_Check_Probes): Set to True.
9629
9630         * s-intman-posix.adb:
9631         (Initialize): Set SA_ONSTACK for SIGSEGV if the platform makes use of an
9632         alternate signal stack for stack overflows.
9633
9634         * init.c (__gnat_adjust_context_for_raise, Linux version): On i386 and
9635         x86-64, adjust the saved value of the stack pointer if the signal was
9636         raised by a stack checking probe.
9637         (HP-UX section): Use global __gnat_alternate_stack as signal handler
9638         stack and only for SIGSEGV.
9639         (Linux section): Likewise on x86 and x86-64.
9640         [VxWorks section]
9641         (__gnat_map_signal): Now static.
9642         (__gnat_error_handler): Not static any more.
9643         (__gnat_adjust_context_for_raise): New function. Signal context
9644         adjustment for PPC && !VTHREADS && !RTP, as required by the zcx
9645         propagation circuitry.
9646         (__gnat_error_handler): Second argument of a sigaction handler is a
9647         pointer, not an int, and is unused.
9648         Adjust signal context before mapping to exception.
9649         Install signal handlers for LynxOS case.
9650
9651         * s-taskin.ads (Common_ATCB): New field Task_Alternate_Stack.
9652         (Task_Id): Set size to Task_Address_Size
9653         (To_Task_id): Unchecked convert from Task_Address vice System.Address
9654         (To_Address): Unchecked convert to Task_Address vice System.Address
9655
9656         * s-tassta.adb (Task_Wrapper): Define the alternate stack and save its
9657         address into the ATCB if the platform makes use of an alternate signal
9658         stack for stack overflows.
9659         (Free_Task): Add call to Finalize_Attributes_Link.
9660         Add argument Relative_Deadline to pass the value specified for
9661         the task. This is not yet used for any target.
9662
9663         * s-tassta.ads (Create_Task): Add argument Relative_Deadline to pass
9664         the value specified for the task.
9665
9666 2008-04-08  Arnaud Charlet  <charlet@adacore.com>
9667
9668         (s-osinte-vxworks6.ads): Removed, merged with s-osinte-vxworks.ads/.adb
9669         (s-vxwext.ads, s-vxwext-kernel.ads, s-vxwext-rtp.ads,
9670         s-vxwext-rtp.adb): New files.
9671
9672         * s-taprop-vxworks.adb, s-osinte-vxworks.ads, s-osinte-vxworks.adb:
9673         Minor updates to accomodate changes above.
9674
9675 2008-04-08  Pascal Obry  <obry@adacore.com>
9676
9677         * a-exetim-mingw.adb, s-gloloc-mingw.adb, s-taprop-mingw.adb,
9678         s-tasinf-mingw.ad{s,b}, s-taspri-mingw.ads:
9679         Use new s-win32.ads unit instead of declaration
9680         from s-osinte-mingw.ads.
9681
9682         * s-osinte-mingw.ads:
9683         Move all non tasking based interface to s-win32.ads.
9684
9685         * s-osprim-mingw.adb:
9686         Remove duplicated declarations and use s-win32.ads
9687         unit instead.
9688
9689 2008-04-08  Vincent Celier  <celier@adacore.com>
9690             Arnaud Charlet  <charlet@adacore.com>
9691
9692         * mlib-tgt-aix.adb, mlib-tgt-darwin.adb, mlib-tgt-hpux.adb,
9693         mlib-tgt-irix.adb, mlib-tgt-linux.adb, mlib-tgt-lynxos.adb,
9694         mlib-tgt-solaris.adb, mlib-tgt-tru64.adb, mlib-tgt-vms.adb,
9695         mlib-tgt-vms.ads, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
9696         mlib-tgt-vxworks.adb, mlib-tgt-mingw.adb: Renamed into...
9697
9698         * mlib-tgt-specific-aix.adb, mlib-tgt-specific-darwin.adb,
9699         mlib-tgt-specific-hpux.adb, mlib-tgt-specific-irix.adb,
9700         mlib-tgt-specific-linux.adb, mlib-tgt-specific-lynxos.adb,
9701         mlib-tgt-specific-solaris.adb, mlib-tgt-specific-tru64.adb,
9702         mlib-tgt-vms_common.adb, mlib-tgt-vms_common.ads,
9703         mlib-tgt-specific-vms-alpha.adb, mlib-tgt-specific-vms-ia64.adb,
9704         mlib-tgt-specific-vxworks.adb, mlib-tgt-specific-xi.adb,
9705         mlib-tgt-specific-mingw.adb: New names.
9706
9707         * Makefile.in:
9708         On VxWorks platforms use s-stchop-limit.ads for s-stchop.ads
9709         Get rid of gnatbl.
9710         (EXTRA_GNATRTL_NONTASKING_OBJS): Add s-win32.o
9711         Files mlib-tgt-*.adb have been renamed mlib-tgt-specific-*.adb
9712         Minor updates for VMS
9713
9714         * gnatbl.c: Removed.
9715
9716 2008-04-08  Thomas Quinot  <quinot@adacore.com>
9717
9718         * g-expect-vms.adb, a-textio.adb, a-witeio.adb, exp_dbug.adb,
9719         g-expect.adb, g-locfil.adb, gnatchop.adb, gnatdll.adb, gnatlbr.adb,
9720         gnatmem.adb, g-regist.adb, i-vxwork.ads, mlib-utl.adb, i-vxwork-x86.ads,
9721         a-ztexio.adb, g-enblsp-vms-alpha.adb, g-enblsp-vms-ia64.adb,
9722         s-os_lib.adb, s-regpat.adb, s-regpat.ads: Fix incorrect casing of
9723         ASCII.NUL throughout.
9724
9725 2008-04-08  Arnaud Charlet  <charlet@adacore.com>
9726             Matthew Heaney  <heaney@adacore.com>
9727
9728         * a-cgcaso.adb, a-convec.adb: (Swap, Sift): Avoid use of complex
9729         renaming.
9730
9731         * a-cgaaso.ads, a-secain.ads, a-slcain.ads, a-shcain.ads,
9732         a-crdlli.ads, a-coormu.ads, a-ciormu.ads: modified header to conform
9733         to convention for non-RM specs.
9734         Add descriptive header, and documented each operation
9735         document each operation
9736
9737 2008-04-08  Robert Dewar  <dewar@adacore.com>
9738             Bob Duff  <duff@adacore.com>
9739             Gary Dismukes  <dismukes@adacore.com>
9740             Ed Schonberg  <schonberg@adacore.com>
9741
9742         * alloc.ads: Add entries for Obsolescent_Warnings table
9743
9744         * einfo.ads, einfo.adb: Minor reformatting.
9745         (Is_Discriminal): New subprogram.
9746         (Is_Prival): New subprogram.
9747         (Is_Protected_Component): New subprogram.
9748         (Is_Protected_Private): Removed.
9749         (Object_Ref, Set_Object_Ref): Removed.
9750         (Prival, Set_Prival): Change assertion.
9751         (Privals_Chain, Set_Privals_Chain): Removed.
9752         (Prival_Link, Set_Prival_Link): New subprogram.
9753         (Protected_Operation, Set_Protected_Operation): Removed.
9754         (Protection_Object, Set_Protection_Object): New subprogram.
9755         (Write_Field17_Name): Remove case for Object_Ref.
9756         (Write_Field20_Name): Add case for Prival_Link.
9757         (Write_Field22_Name): Remove case for Protected_Operation,
9758         Privals_Chain.
9759         Add case for Protection_Object.
9760         (Can_Use_Internal_Rep): Make this into a [base type only] attribute,
9761         so clients
9762         (Overlays_Constant): New flag
9763         (Is_Constant_Object): New predicate
9764         (Is_Standard_Character_Type): New predicate
9765         (Optimize_Alignment_Space): New flag
9766         (Optimize_Alignment_Time): New flag
9767         (Has_Postconditions): New flag
9768         (Obsolescent_Warrning): Field removed
9769         (Spec_PPC_List): New field
9770         (Relative_Deadline_Variable, Set_Relative_Deadline_Variable): Add
9771         subprograms to get and set the relative deadline associated to a task.
9772
9773         * exp_attr.adb (May_Be_External_Call): Account for the case where the
9774         Access attribute is part of a named parameter association.
9775         (Expand_Access_To_Protected_Op): Test for the attribute occurring
9776         within an init proc and use that directly as the scope rather than
9777         traversing up to the protected operation's enclosing scope. Only apply
9778         assertion on Is_Open_Scopes in the case the scope traversal is done.
9779         For the init proc case use the address of the first formal (_init) as
9780         the protected object reference.
9781         Implement Invalid_Value attribute
9782         (Expand_N_Attribute_Reference): Case Attribute_Unrestricted_Access.
9783         contents of the dispatch table there is no need to duplicate the
9784         itypes associated with record types (i.e. the implicit full view
9785         of private types).
9786         Implement Enum_Val attribute
9787         (Expand_N_Attribute_Reference, case Old): Properly handle appearence
9788         within _Postconditions procedure
9789         (Expand_N_Attribute_Reference, case Result): Implement new attribute
9790
9791         * exp_ch5.adb (Expand_N_Simple_Return_Statement): Handle case in which
9792         a return statement calls a function that is not available in
9793         configurable runtime.
9794         (Analyze_If_Statement): don't optimize simple True/False cases in -O0
9795         (Expand_Non_Function_Return): Generate call to _Postconditions proc
9796         (Expand_Simple_Function_Return): Ditto
9797
9798         * frontend.adb: Add call to Sem_Aux.Initialize
9799
9800         * sem_aux.ads, sem_aux.adb: New file.
9801
9802         * par-prag.adb: Add entries for pragmas Precondition/Postcondition
9803         Add new Pragma_Relative_Deadline.
9804         Add support for pragmas Check and Check_Policy
9805
9806         * sem_attr.ads, sem_attr.adb (Check_Not_CPP_Type): New subprogram.
9807         (Check_Stream_Attribute): Add missing check (not allowed in CPP types)
9808         (Analyze_Attribute): In case of attributes 'Alignment and 'size add
9809         missing check because they are not allowed in CPP tagged types.
9810         Add Sure parameter to Note_Possible_Modification calls
9811         Add implementation of Invalid_Value attribute
9812         Implement new attribute Has_Tagged_Values
9813         Implement Enum_Val attribute
9814         (Analyze_Attribute, case Range): Set Name_Req True for prefix of
9815         generated attributes.
9816         (Analyze_Attribute, case Result): If prefix of the attribute is
9817         overloaded, it always resolves to the enclosing function.
9818         (Analyze_Attribute, case Result): Properly deal with analysis when
9819         Postconditions are not active.
9820         (Resolve_Attribute, case Result): Properly deal with appearence during
9821         preanalysis in spec.
9822         Add processing for attribute Result
9823
9824         * sem_ch6.ads, sem_ch6.adb (Check_Overriding_Indicator): Code cleanup
9825         for operators.
9826         (Analyze_Subprogram_Body): Install private_with_clauses when the body
9827         acts as a spec.
9828         (Check_Inline_Pragma): recognize an inline pragma that appears within
9829         the subprogram body to which it applies.
9830         (Analyze_Function_Return): Check that type of the expression of a return
9831         statement in a function with a class-wide result is not declared at a
9832         deeper level than the function.
9833         (Process_PPCs): Deal with enabling/disabling, using PPC_Enabled flag
9834         (Verify_Overriding_Indicator): Handle properly subprogram bodies for
9835         user- defined operators.
9836         (Install_Formals): Moved to spec to allow use from Sem_Prag for
9837         analysis of precondition/postcondition pragmas.
9838         (Analyze_Subprogram_Body.Last_Real_Spec_Entity): New name for
9839         Last_Formal, along with lots of comments on what this is about
9840         (Analyze_Subprogram_Body): Fix case where we move entities from the
9841         spec to the body when there are no body entities (now possible with
9842         precondition and postcondition pragmas).
9843         (Process_PPCs): New procedure
9844         (Analyze_Subprogram_Body): Add call to Process_PPCs
9845
9846         * sem_ch8.adb (Use_One_Type): refine warning on a redundant use_type
9847         clause.
9848         (Pop_Scope): Restore Check_Policy_List on scope exit
9849         (Push_Scope): Save Check_Policy_List on scope entry
9850         Change name In_Default_Expression      => In_Spec_Expression
9851         Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
9852         Change name Pre_Analyze_And_Resolve    => Preanalyze_And_Resolve
9853         (Analyze_Object_Renaming): Allow 'Reference as object
9854         (Analyze_Pragma, case Restriction_Warnings): Call GNAT_Pragma
9855         (Process_Restrictions_Or_Restriction_Warnings): Check for bad spelling
9856         of restriction identifier.
9857         Add Sure parameter to Note_Possible_Modication calls
9858
9859         * sem_prag.ads, sem_prag.adb (Analyze_Pragma, case Stream_Convert):
9860         Don't check for primitive operations when calling Rep_Item_Too_Late.
9861         (Process_Import_Or_Interface): Do not place flag on formal
9862         subprograms.
9863         (Analyze_Pragma, case Export): If the entity is a deferred constant,
9864         propagate information to full view, which is the one elaborated by the
9865         back-end.
9866         (Make_Inline): the pragma is effective if it applies to an internally
9867         generated subprogram declaration for a body that carries the pragma.
9868         (Analyze_Pragma, case Optimize_Alignment): Set new flag
9869         Optimize_Alignment_Local.
9870         (Analyze_PPC_In_Decl_Part): New procedure
9871         (Get_Pragma_Arg): Moved to outer level
9872         (Check_Precondition_Postcondition): Change to allow new visibility
9873         rules for package spec
9874         (Analyze_Pragma, case Check_Policy): Change placement rules to be
9875         same as pragma Suppress/Unsuppress.
9876         Change name In_Default_Expression      => In_Spec_Expression
9877         Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
9878         Change name Pre_Analyze_And_Resolve    => Preanalyze_And_Resolve
9879         (Check_Precondition_Postcondition): Do proper visibility preanalysis
9880         for the case of these pragmas appearing in the spec.
9881         (Check_Enabled): New function
9882         (Initialize): New procedure
9883         (Tree_Read): New procedure
9884         (Tree_Write): New procedure
9885         (Check_Precondition_Postcondition): New procedure
9886         Implement pragmas Check and Check_Policy
9887         Merge Assert processing with Check
9888
9889         * sem_warn.adb (Warn_On_Known_Condition): Handle pragma Check
9890         New warning flag -gnatw.e
9891
9892         * sinfo.ads, sinfo.adb (Has_Relative_Deadline_Pragma): New function
9893         returning whether a task (or main procedure) has a pragma
9894         Relative_Deadline.
9895         (Set_Has_Relative_Deadline_Pragma): Procedure to indicate that a task
9896         (or main procedure) has a pragma Relative_Deadline.
9897         Add Next_Pragma field to N_Pragma node
9898         (PPC_Enabled): New flag
9899         (Next_Pragma): Now used for Pre/Postcondition processing
9900
9901         * snames.h, snames.ads, snames.adb: New standard name
9902         Inherit_Source_Path
9903         Add entry for 'Invalid_Value attribute
9904         Add entry for new attribute Has_Tagged_Values
9905         Add entry for Enum_Val attribute
9906         Add new standard names Aggregate, Configuration and Library.
9907         Add _Postconditions
9908         Add _Result
9909         Add Pragma_Precondition
9910         Add Pragma_Postcondition
9911         Add Attribute_Result
9912         New standard name Archive_Builder_Append_Option
9913         (Preset_Names): Add _relative_deadline and relative_deadline definitions
9914         There was also a missing non_preemptive_within_priorities.
9915         (Get_Pragma_Id, Is_Pragma_Name): Add support for pragma
9916         Relative_Deadline.
9917         Add support for pragmas Check and Check_Policy
9918
9919         * tree_gen.adb: Call Sem_Aux.Tree_Write
9920
9921         * tree_in.adb: Call Sem_Aux.Tree_Read
9922
9923         * exp_ch11.adb (Expand_N_Raise_Statement): New Build_Location calling
9924         sequence
9925
9926         * exp_intr.adb (Expand_Source_Info): New Build_Location calling
9927         sequence
9928
9929         * exp_prag.adb (Expand_Pragma_Relative_Deadline): New procedure.
9930         (Expand_N_Pragma): Call the appropriate procedure for expanding pragma
9931         Relative_Deadline.
9932         (Expand_Pragma_Check): New procedure
9933
9934         * sinput.ads, sinput.adb (Build_Location_String): Now appends to name
9935         buffer.
9936
9937         * sinfo.adb (PPC_Enabled): New flag
9938
9939 2008-04-08  Robert Dewar  <dewar@adacore.com>
9940             Gary Dismukes  <dismukes@adacore.com>
9941             Javier Miranda  <miranda@adacore.com>
9942             Ed Schonberg  <schonberg@adacore.com>
9943
9944         * fe.h: Remove global Optimize_Alignment flag, no longer used
9945
9946         * layout.adb: Test Optimize_Alignment flags rather than global switch
9947
9948         * lib.ads, lib.adb: New OA_Setting field in library record
9949
9950         * lib-load.adb: New OA_Setting field in library record
9951
9952         * lib-writ.ads, lib-writ.adb (Collect_Withs, Write_With_Lines): Place
9953         units mentioned in limited_with_ clauses in the ali file, with an
9954         'Y' marker.
9955         New Ox fields in U line
9956
9957         * opt.adb: New flag Optimize_Alignment_Local
9958         (Check_Policy_List[_Config]): New flags
9959
9960         * opt.ads (Invalid_Value_Used): New flag
9961         New switch Optimize_Alignment_Local
9962         (Warn_On_Parameter_Order): New flag
9963         (Check_Policy_List[_Config]): New flags
9964
9965         * ali.ads, ali.adb: Add indicator 'Y' to mark mark the presence of
9966         limited_with clauses.
9967         New data structures for Optimize_Alignment
9968
9969         * bcheck.adb (Check_Consistent_Restriction_No_Default_Initialization):
9970         New procedure
9971         (Check_Consistent_Optimize_Alignment): Rework for new structure
9972         (Check_Consistent_Restrictions): Fix incorrect error message
9973
9974         sem_ch10.adb (Decorate_Tagged_Type): Set the Parent field of a newly
9975         created class-wide type (to the Parent field of the specific type).
9976         (Install_Siblings): Handle properly private_with_clauses on subprogram
9977         bodies and on generic units.
9978         (Analyze_With_Clause, Install_Limited_Withed_Unit): Guard against an
9979         illegal limited_with_clause that names a non-existent package.
9980         (Check_Body_Required): Determine whether a unit named a limited_with
9981         clause needs a body.
9982         (Analyze_Context): A limited_with_clause is illegal on a unit_renaming.
9983         Capture Optimize_Alignment settings to set new OA_Setting field in
9984         library record.
9985         (Build_Limited_Views): Include task and protected type declarations.
9986
9987         * sem_ch3.ads, sem_ch3.adb (Analyze_Object_Declaration): Handle the
9988         case of a possible constant redeclaration where the current object is
9989         an entry index constant.
9990         (Analyze_Object_Declaration): Generate an error in case of CPP
9991         class-wide object initialization.
9992         (Analyze_Object_Declaration): Add extra information on warnings for
9993         declaration of unconstrained objects.
9994         (Access_Type_Declaration): Set Associated_Final_Chain to Empty, to avoid
9995         conflicts with the setting of Stored_Constraint in the case where the
9996         access type entity has already been created as an E_Incomplete_Type due
9997         to a limited with clause.
9998         Use new Is_Standard_Character_Type predicate
9999         (Analyze_Object_Declaration): Apply access_constant check only after
10000         expression has been resolved, given that it may be overloaded with
10001         several access types.
10002         (Constant_Redeclaration): Additional legality checks for deferred
10003         constant declarations tha involve anonymous access types and/or null
10004         exclusion indicators.
10005         (Analyze_Type_Declaration): Set Optimize_Alignment flags
10006         (Analyze_Subtype_Declaration): Ditto
10007         (Analyze_Object_Declaration): Ditto
10008         (Analyze_Object_Declaration): Don't count tasks in generics
10009         Change name In_Default_Expression      => In_Spec_Expression
10010         Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
10011         Change name Pre_Analyze_And_Resolve    => Preanalyze_And_Resolve
10012         (Process_Discriminants): Additional check for illegal use of default
10013         expressions in access discriminant specifications in a type that is not
10014         explicitly limited.
10015         (Check_Abstract_Overriding): If an inherited function dispaches on an
10016         access result, it must be overridden, even if the type is a null
10017         extension.
10018         (Derive_Subprogram): The formals of the derived subprogram have the
10019         names and defaults of the parent subprogram, even if the type is
10020         obtained from the actual subprogram.
10021         (Derive_Subprogram): In the presence of interfaces, a formal of an
10022         inherited operation has the derived type not only if it descends from
10023         the type of the formal of the parent operation, but also if it
10024         implements it. This is relevant for the renamings created for the
10025         primitive operations of the actual for a formal derived type.
10026         (Is_Progenitor): New predicate, to determine whether the type of a
10027         formal in the parent operation must be replaced by the derived type.
10028
10029         * sem_util.ads, sem_util.adb (Has_Overriding_Initialize): Make
10030         predicate recursive to handle components that have a user-defined
10031         Initialize procedure. Handle controlled derived types whose ancestor
10032         has a user-defined Initialize procedured.
10033         (Note_Possible_Modification): Add Sure parameter, generate warning if
10034         sure modification of constant
10035         Use new Is_Standard_Character_Type predicate
10036         (Find_Parameter_Type): when determining whether a protected operation
10037         implements an interface operation, retrieve the type of the formal from
10038         the entity when the formal is an access parameter or an
10039         anonymous-access-to-subprogram.
10040         Move Copy_Parameter_List to sem_util, for use when building stubbed
10041         subprogram bodies.
10042         (Has_Access_Values): Tagged types now return False
10043         (Within_HSS_Or_If): New procedure
10044         (Set_Optimize_Alignment_Flags): New procedure
10045         Change name In_Default_Expression      => In_Spec_Expression
10046         Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
10047         Change name Pre_Analyze_And_Resolve    => Preanalyze_And_Resolve
10048
10049 2008-04-08  Tristan Gingold  <gingold@adacore.com>
10050
10051         * s-fileio.adb: Name_Error shouldn't be raised for a tempory file.
10052
10053 2008-04-08  Tristan Gingold  <gingold@adacore.com>
10054
10055 PR ada/10768
10056
10057         * cuintp.c: Fix 16 bits issue for AVR.
10058         On AVR, integer is 16 bits, so it can't be used to do math with
10059         Base (=32768).
10060         So use long_integer instead.
10061
10062 2008-04-08  Hristian Kirtchev  <kirtchev@adacore.com>
10063
10064         * a-calend-vms.ads, a-calend-vms.adb: Add with and use clause for
10065         System.OS_Primitives.
10066         Change type of various constants, parameters and local variables from
10067         Time to representation type OS_Time.
10068         (To_Ada_Time, To_Unix_Time): Correct sign of origin shift.
10069         Remove the declaration of constant Mili_F from several routines. New
10070         body for internal package Conversions_Operations.
10071         (Time_Of): Add default parameters for several formals.
10072
10073         * a-caldel.adb: Minor reformatting
10074
10075         * a-calend.ads, a-calend.adb: New body for internal package
10076         Conversions_Operations.
10077         (Time_Of): Add default parameters for several formals.
10078
10079         * Makefile.rtl: Add a-ststop
10080         Add Ada.Calendar.Conversions to the list of runtime files.
10081         Add g-timsta
10082
10083         * a-calcon.adb, a-calcon.ads: New files.
10084
10085 2008-04-08  Jose Ruiz  <ruiz@adacore.com>
10086             Tristan Gingold  <gingold@adacore.com>
10087
10088         * s-interr-dummy.adb, s-interr-vms.adb, s-interr-sigaction.adb
10089         (Install_Restricted_Handlers): New procedure
10090         which is a simplified version of Install_Handlers that does not store
10091         previously installed.
10092
10093         * s-interr-vxworks.adb: Fix ACATS cxc3001
10094         On VxWorks interrupts can't be detached.
10095         (Install_Restricted_Handlers): New procedure.
10096
10097         * s-interr.ads, s-interr.adb (Install_Restricted_Handlers): New
10098         procedure.
10099
10100 2008-04-08  Olivier Hainque  <hainque@adacore.com>
10101
10102         * s-intman-vxworks.ads, s-intman-vxworks.adb
10103         (Map_And_Raise_Exception): Remove. Was an import of only part of the
10104         required services already implemented elsewhere.
10105         (Notify_Exception): Delete body, import __gnat_error_handler instead.
10106         (Initialize): Add SA_SIGINFO to the sa_flags, to get the sigcontext
10107         argument passed to the handler, which we need for ZCX propagation
10108         purposes.
10109
10110 2008-04-08  Hristian Kirtchev  <kirtchev@adacore.com>
10111
10112         * adaint.h, adaint.c (__gnat_current_time_string): New routine.
10113
10114         * g-timsta.adb, g-timsta.ads: New files.
10115
10116 2008-04-08  Robert Dewar  <dewar@adacore.com>
10117
10118         * a-except-2005.ads, a-except-2005.adb, a-except.ads, a-except.adb
10119         (Raise_Exception): In accordance with AI-446, raise CE for Null_Id
10120         (Raise_Exception_Always): Fix documentation accordingly
10121
10122 2008-04-08  Robert Dewar  <dewar@adacore.com>
10123
10124         * a-strbou.ads, a-strbou.adb (From_String): New procedure (for use by
10125         Stream_Convert)
10126
10127         * sem_ch13.ads (Rep_Item_Too_Late): Document that Stream_Convert sets
10128         FOnly
10129
10130 2008-04-08  Javier Miranda  <miranda@adacore.com>
10131             Robert Dewar  <dewar@adacore.com>
10132             Ed Schonberg  <schonberg@adacore.com>
10133
10134         * a-tags.adb (Register_Interface_Offset): New subprogram.
10135         (Set_Dynamic_Offset_To_Top): New subprogram (see previous comment).
10136         (To_Predef_Prims_Table_Ptr): Removed.
10137         (Acc_Size): Removed.
10138         (To_Acc_Size): Removed.
10139         (Parent_Size): Modified to the call the subprogram returning the size of
10140         the parent by means of the new TSD component Size_Func.
10141
10142         * a-tags.ads (Offset_To_Top_Ptr): New access type declaration.
10143         (DT_Offset_To_Top_Offset): New constant value that is used to generate
10144         code referencing the Offset_To_Top component of the dispatch table's
10145         prologue.
10146         (Prim_Ptr): New declaration of access to procedure. Used to avoid the
10147         use of 'address to initialize dispatch table slots.
10148         (Size_Func): New component of the TSD. Used by the run-time to call the
10149         size primitive of the tagged type.
10150
10151         * checks.adb (Apply_Access_Check): Avoid check when accessing the
10152         Offset_To_Top component of a dispatch table.
10153         (Null_Exclusion_Static_Checks): If the non-null access type appears in a
10154         deferred constant declaration. do not add a null expression, to prevent
10155         spurious errors when full declaration is analyzed.
10156         (Apply_Discriminant_Check): If both discriminant constraints share a
10157         node which is not static but has no side effects, do not generate a
10158         check for that discriminant.
10159         (Generate_Index_Checks): Set Name_Req to true in call to duplicate
10160         subexpr, since the prefix of an attribute is a name.
10161
10162         * checks.ads: Fix nit in comment.
10163
10164         * exp_ch3.ads, exp_ch3.adb (Freeze_Record_Type): Do not add the spec
10165         and body of predefined primitives in case of CPP tagged type
10166         derivations.
10167         (Freeze_Type): Deal properly with no storage pool case
10168         (Make_Predefined_Primitive_Specs): Generate specification of abstract
10169         primitive Deep_Adjust if a nonlimited interface is derived from a
10170         limited interface.
10171         (Build_Dcheck_Functions): Create discriminant-checking functions only
10172         for variants that have some component(s).
10173         (Build_Slice_Assignment): In expanded code for slice assignment, handle
10174         properly the case where the slice bounds extend to the last value of the
10175         underlying representation.
10176         (Get_Simple_Init_Val): New calling sequence, accomodate Invalid_Value
10177         (Is_Variable_Size_Record): An array component has a static size if
10178         index bounds are enumeration literals.
10179
10180         * exp_disp.adb (Make_DT): Use the first subtype to determine whether
10181         an external tag has been specified for the type.
10182         (Building_Static_DT): Add missing support for private types.
10183         (Make_DT): Add declaration of Parent_Typ to ensure consistent access
10184         to the entity associated with the parent of Typ. This is done to
10185         avoid wrong access when the parent is a private type.
10186         (Expand_Interface_Conversion): Improve error message when the
10187         configurable runtime has no support for dynamic interface conversion.
10188         (Expand_Interface_Thunk): Add missing support to interface types in
10189         configurable runtime.
10190         (Expand_Dispatching_Call): remove obsolete code.
10191         (Make_DT): Replace occurrences of RE_Address by RE_Prim_Ptr, and
10192         ensure that all subtypes and aggregates associated with dispatch
10193         tables have the attribute Is_Dispatch_Table_Entity set to true.
10194         (Register_Primitive): Rename one variable to improve code reading.
10195         Replace occurrences of RE_Addres by RE_Prim_Ptr. Register copy o
10196         of the pointer to the 'size primitive in the TSD.
10197
10198         * rtsfind.ads (RE_DT_Offset_To_Top_Offset): New entity.
10199         (RE_Offset_To_Top_Ptr): New entity.
10200         (RE_Register_Interface_Offset): New entity.
10201         (RE_Set_Dynamic_Offset_To_Top): New entity.
10202         (RE_Set_Offset_To_Top): Removed entity.
10203         (RE_Prim_Ptr): New entity
10204         (RE_Size_Func): New entity
10205         (RE_Size_Ptr): New entity
10206         (RTU_Id): Add Ada_Dispatching and Ada_Dispatching_EDF.
10207         (Ada_Dispatching_Child): Define this new subrange.
10208         (RE_Id): Add new required run-time calls (RE_Set_Deadline, RE_Clock,
10209          RE_Time_Span, and RE_Time_Span_Zero).
10210         (RE_Unit_Table): Add new required run-time calls
10211
10212         * rtsfind.adb (Get_Unit_Name): Add processing for Ada.Dispatching
10213         children.
10214
10215         * exp_atag.ads, exp_atag.adb (Build_Offset_To_Top): New subprogram.
10216         (Build_Set_Static_Offset_To_Top): New subprogram. Generates code that
10217          initializes the Offset_To_Top component of a dispatch table.
10218         (Build_Predef_Prims): Removed.
10219         (Build_Get_Predefined_Prim_Op_Address): Replace call to Predef_Prims by
10220          its actual code.
10221         (Build_Set_Size_Function): New subprogram.
10222
10223         * exp_ch13.adb: Do not generate storage variable for storage_size zero
10224         (Expand): Handle setting/restoring flag Inside_Freezing_Actions
10225
10226 2008-04-08  Robert Dewar  <dewar@adacore.com>
10227
10228         * a-ztdeau.adb, a-tideau.adb, a-wtdeau.adb (Puts_Dec): Fix error in
10229         computing Fore when Exp > 0
10230
10231 2008-04-08  Robert Dewar  <dewar@adacore.com>
10232
10233         * back_end.adb: Remove Big_String_Ptr declarations (now in Types)
10234
10235         * errout.adb: Remove Big_String_Ptr declarations (now in Types)
10236         Change name Is_Style_Msg to Is_Style_Or_Info_Msg
10237
10238         * fmap.adb: Remove Big_String declarations (now in Types)
10239         (No_Mapping_File): New Boolean global variable
10240         (Initialize): When mapping file cannot be read, set No_Mapping_File to
10241         False.
10242         (Update_Mapping_File): Do nothing if No_Mapping_File is True. If the
10243         tables were empty before adding entries, open the mapping file
10244         with Truncate = True, instead of delete/re-create.
10245
10246         * fname-sf.adb: Remove Big_String declarations (now in Types)
10247
10248         * s-strcom.adb, g-dyntab.ads, g-table.ads, s-carsi8.adb,
10249         s-stalib.ads, s-carun8.adb: Add zero size Storage_Size clauses for
10250         big pointer types
10251
10252         * table.ads: Add for Table_Ptr'Storage_Size use 0
10253
10254         * types.ads: Add Big_String declarations
10255         Add Size_Clause of zero for big pointer types
10256
10257 2008-04-08  Vincent Celier  <celier@adacore.com>
10258
10259         * clean.adb (Parse_Cmd_Line): Recognize switch --subdirs=
10260         (Usage): Add line for switch --subdirs=
10261         Add new switch -eL, to follow symbolic links when processing project
10262         files.
10263
10264         * gnatcmd.adb: Process switches -eL and --subdirs=
10265         (Non_VMS_Usage): Output "gnaampcmd" instead of "gnat", and call
10266         Program_Name to get proper tool names when AAMP_On_Target is set.
10267         (Gnatcmd): Call Add_Default_Search_Dirs and Get_Target_Parameters to get
10268         AAMP_On_Target set properly for use of GNAAMP tools (this is needed by
10269         Osint.Program_Name).
10270
10271         * gnatname.adb: (Scan_Args): Recognize switches -eL and --subdirs=
10272         (Usage): Add lines for switches -eL and --subdirs=
10273
10274         * makeusg.adb: Add line for switch --subdirs=
10275
10276         * prj.ads:
10277         (Source_Data): New Boolean component Compiled, defaulted to True
10278         (Empty_File_Name: New global variable in private part, initialized in
10279         procedure Initialize.
10280         (Subdirs_Option): New constant string
10281         (Subdirs): New String_Ptr global variable
10282         (Language_Config): New component Include_Compatible_Languages
10283         (Project_Qualifier): New type for project qualifiers
10284         (Project_Data): New component Qualifier
10285         (Project_Configuration): New component Archive_Builder_Append_Option
10286
10287         * prj-nmsc.adb (Get_Unit_Exceptions): When a unit is already in
10288         another imported project indicate the name of this imported project.
10289         (Check_File): When a unit is in two project files, indicate the project
10290         names and the paths of the source files for each project.
10291         (Add_Source): Set Compiled to False if compiler driver is empty. Only
10292         set object, dependency and switches file names if Compiled is True.
10293         (Process_Compiler): Allow the empty string for value of attribute Driver
10294         (Get_Directories): When Subdirs is not null and Object_Dir is not
10295          specified, locate and create if necessary the actual object dir.
10296         (Locate_Directory): When Subdirs is not empty and Create is not the
10297         empty string, locate and create if necessary the actual directory
10298         as a subdirectory of directory Name.
10299         (Check_Library_Attributes.Check_Library): Allow a project where the only
10300         "sources" are header files of file based languages to be imported by
10301         library projects, in multi-language mode (gprbuild).
10302         (Check_Library_Attributes.Check_Library): In multi-language mode
10303         (gprbuild), allow a library project to import a project with no
10304         sources, even when this is not declared explicitly.
10305         (Check_If_Externally_Built): A virtual project extending an externally
10306         built project is also externally built.
10307         (Check_Library_Attributes): For a virtual project extending a library
10308         project, inherit the library directory.
10309         (Process_Project_Level_Array_Attributes): Process new attribute
10310         Inherit_Source_Path.
10311         For projects with specified qualifiers "standard", "library" or
10312         "abstract", check that the project conforms to the qualifier.
10313         (Process_Project_Level_Simple_Attributes): Process new attribute
10314          Archive_Builder_Append_Option.
10315
10316         * switch-m.adb: (Scan_Make_Switches): Process switch --subdirs=
10317         (Normalize_Compiler_Switches): Only keep compiler switches that are
10318         passed to gnat1 by the gcc driver and that are stored in the ALI file
10319         by gnat1.
10320         Do not take into account switc -save-temps
10321
10322         * makegpr.adb (Compile_Link_With_Gnatmake): Transmit switch -eL if
10323         gprmake is called with -eL.
10324         (Scan_Arg): Recognize switch -eL
10325         (Usage): Add line for switch -eL
10326
10327         * prj.adb (Initialize): Initialize Empty_File_Name
10328         (Project_Empty): New component Qualifier
10329
10330         * prj-attr.ads, prj-attr.adb: New project level attribute
10331         Inherit_Source_Path.
10332         New project level attribute Archive_Builder_Append_Option
10333
10334         * prj-dect.adb: Replace System.Strings by GNAT.Strings.
10335
10336         * prj-ext.adb (Initialize_Project_Path): In Multi_Language mode, add
10337         <prefix>/lib/gnat in the project path, after <prefix>/share/gpr, for
10338         upward compatibility.
10339
10340         * prj-part.adb (Project_Path_Name_Of.Try_Path): In high verbosity, put
10341         each Trying ..." on different lines.
10342         (Parse_Single_Project): Recognize project qualifiers. Fail in qualifier
10343         is "configuration" when not in configuration. Fail when in configuration
10344         when a specified qualifier is other than "configuration".
10345
10346         * prj-proc.adb (Process_Declarative_Items): Link new elements of copied
10347         full associative array together.
10348         (Recursive_Process): Put the project qualifier in the project data
10349
10350         * prj-tree.ads, prj-tree.adb: (Project_Qualifier_Of): New function
10351         (Set_Project_Qualifier_Of): New procedure
10352
10353 2008-04-08  Robert Dewar  <dewar@adacore.com>
10354
10355         * errout.ads: Update comments for new handling of info: messages
10356
10357         * erroutc.adb (Matches): New procedure
10358         (Warning_Specifically_Suppressed): Modified to handle multiple * chars
10359         (Is_Style_Or_Info_Msg): New name for Is_Style_Msg, now set for
10360          info messages as well as style messages.
10361
10362         * erroutc.ads: Remove unneeded fields from Specific_Warning_Entry
10363
10364         * sem_elab.adb (Supply_Bodies): Create actual bodies for stubbed
10365         subprograms.
10366         (Check_A_Call): Special "info: " warnings now have ? in the text
10367         (Elab_Warning): Use info message in static case
10368
10369 2008-04-08  Ed Schonberg  <schonberg@adacore.com>
10370
10371         * exp_aggr.adb (Static_Array_Aggregate): Use Max_Aggr_Size to determine
10372         whether an array aggregate with static bounds and scalar components
10373         should be expanded into a static constant.
10374
10375 2008-04-08  Gary Dismukes  <dismukes@adacore.com>
10376             Ed Schonberg  <schonberg@adacore.com>
10377             Robert Dewar  <dewar@adacore.com>
10378
10379         * sem_cat.adb (Validate_RCI_Subprogram_Declaration): Add tests of
10380         Has_Stream_Attribute_ Definition when checking for available stream
10381         attributes on parameters of a limited type in Ada 2005. Necessary for
10382         proper recognition of visible stream attribute clauses.
10383         (Has_Stream_Attribute_Definition): If the type is derived from a
10384         private type, then use the derived type's underlying type for checking
10385         whether it has stream attributes.
10386         (Validate_Object_Declaration): The check for a user-defined Initialize
10387         procedure applies also to types with controlled components or a
10388         controlled ancestor.
10389         Reject an object declaration in a preelaborated unit if the type is a
10390         controlled type with an overriding Initialize procedure.
10391         (Validate_Remote_Access_To_Class_Wide_Type): Return without further
10392         checking when the parent of a dereference is a selected component and
10393         the name has not been analyzed.
10394
10395         * sem_ch4.adb (Analyze_Selected_Component): Add checking for selected
10396         prefixes that are invalid explicit dereferences of remote
10397         access-to-class-wide values, first checking whether the selected
10398         component is a prefixed form of call to a tagged operation.
10399         (Analyze_Call): Remove code that issues an error for limited function
10400         calls in illegal contexts, as we now support all of the contexts that
10401         were forbidden here.
10402         Allow a function call that returns a task.and appears as the
10403         prefix of a selected component.
10404         (Analyze_Reference): Give error message if we try to make a 'Reference
10405         for an object that is atomic/aliased without its type having the
10406         corresponding attribute.
10407         (Analyze_Call): Remove condition checking for attributes to allow
10408         calls to functions with inherently limited results as prefixes of
10409         attributes. Remove related comment about Class attributes.
10410         (Analyze_Selected_Component): If the prefix is a remote type, check
10411         whether this is a prefixed call before reporting an error.
10412         (Complete_Object_Operation): If the controlling formal is an access to
10413         variable reject an actual that is a constant or an access to one.
10414         (Try_Object_Operation): If prefix is a tagged protected object,retrieve
10415         primitive operations from base type.
10416
10417         * exp_ch4.adb (Expand_N_Indexed_Component): Test for prefix that is a
10418         build-in-place
10419         function call and call Make_Build_In_Place_Call_In_Anonymous_Context.
10420         (Expand_N_Selected_Component): Test for prefix that is a build-in-place
10421         function call and call Make_Build_In_Place_Call_In_Anonymous_Context.
10422         (Expand_N_Slice): Test for prefix that is a build-in-place function call
10423         and call Make_Build_In_Place_Call_In_Anonymous_Context.
10424         (Analyze_Call): Remove code that issues an error for limited function
10425         calls in illegal contexts, as we now support all of the contexts that
10426         were forbidden here.
10427         New calling sequence for Get_Simple_Init_Val
10428         (Expand_Boolean_Operator): Add call to Silly_Boolean_Array_Xor_Test
10429         (Expand_N_Op_Not): Add call to Silly_Boolan_Array_Not_Test
10430
10431 2008-04-08  Hristian Kirtchev  <kirtchev@adacore.com>
10432             Ed Schonberg  <schonberg@adacore.com>
10433             Robert Dewar  <dewar@adacore.com>
10434
10435         * exp_ch2.adb: Minor reformatting.
10436         (Expand_Entry_Index_Parameter): Set the type of the identifier.
10437         (Expand_Entry_Reference): Add call to Expand_Protected_Component.
10438         (Expand_Protected_Component): New routine.
10439         (Expand_Protected_Private): Removed.
10440         Add Sure parameter to Note_Possible_Modification calls
10441
10442         * sem_ch12.ads, sem_ch12.adb (Analyze_Subprogram_Instantiation): The
10443         generated subprogram declaration must inherit the overriding indicator
10444         from the instantiation node.
10445         (Validate_Access_Type_Instance): If the designated type of the actual is
10446         a limited view, use the available view in all cases, not only if the
10447         type is an incomplete type.
10448         (Instantiate_Object):  Actual is illegal if the formal is null-excluding
10449         and the actual subtype does not exclude null.
10450         (Process_Default): Handle properly abstract formal subprograms.
10451         (Check_Formal_Package_Instance): Handle properly defaulted formal
10452         subprograms in a partially parameterized formal package.
10453         Add Sure parameter to Note_Possible_Modification calls
10454         (Validate_Derived_Type_Instance): if the formal is non-limited, the
10455         actual cannot be limited.
10456         (Collect_Previous_Instances): Generate instance bodies for subprograms
10457         as well.
10458
10459         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Small): Don't
10460         try to set RM_Size.
10461         Add Sure parameter to Note_Possible_Modification calls
10462         (Analyze_At_Clause): Preserve Comes_From_Source on Rewrite call
10463         (Analyze_Attribute_Definition_Clause, case Attribute_Address): Check for
10464         constant overlaid by variable and issue warning.
10465         Use new Is_Standard_Character_Type predicate
10466         (Analyze_Record_Representation_Clause): Check that the specified
10467         Last_Bit is not less than First_Bit - 1.
10468         (Analyze_Attribute_Definition_Clause, case Address): Check for
10469         self-referential address clause
10470
10471         * sem_ch5.ads, sem_ch5.adb (Diagnose_Non_Variable_Lhs): Rewrite the
10472         detection mechanism when the lhs is a prival.
10473         (Analyze_Assignment): Call Check_Unprotected_Access to detect
10474         assignment of a pointer to protected data, to an object declared
10475         outside of the protected object.
10476         (Analyze_Loop_Statement): Check for unreachable code after loop
10477         Add Sure parameter to Note_Possible_Modication calls
10478         Protect analysis from previous syntax error such as a scope mismatch
10479         or a missing begin.
10480         (Analyze_Assignment_Statement): The assignment is illegal if the
10481         left-hand is an interface.
10482
10483         * sem_res.ads, sem_res.adb (Resolve_Arithmetic_Op): For mod/rem check
10484         violation of restriction No_Implicit_Conditionals
10485         Add Sure parameter to Note_Possible_Modication calls
10486         Use new Is_Standard_Character_Type predicate
10487         (Make_Call_Into_Operator): Preserve Comes_From_Source when rewriting
10488         call as operator. Fixes problems (e.g. validity checking) which
10489         come from the result looking as though it does not come from source).
10490         (Resolve_Call): Check case of name in named parameter if style checks
10491         are enabled.
10492         (Resolve_Call): Exclude calls to Current_Task as entry formal defaults
10493         from the checking that such calls should not occur from an entry body.
10494         (Resolve_Call): If the return type of an Inline_Always function
10495         requires the secondary stack, create a transient scope for the call
10496         if the body of the function is not available for inlining.
10497         (Resolve_Actuals): Apply Ada2005 checks to view conversions of arrays
10498         that are actuals for in-out formals.
10499         (Try_Object_Operation): If prefix is a tagged protected object,retrieve
10500         primitive operations from base type.
10501         (Analyze_Selected_Component): If the context is a call to a protected
10502         operation the parent may be an indexed component prior to expansion.
10503         (Resolve_Actuals): If an actual is of a protected subtype, use its
10504         base type to determine whether a conversion to the corresponding record
10505         is needed.
10506         (Resolve_Short_Circuit): Handle pragma Check
10507
10508         * sem_eval.adb: Minor code reorganization (usea Is_Constant_Object)
10509         Use new Is_Standard_Character_Type predicate
10510         (Eval_Relational_Op): Catch more cases of string comparison
10511
10512 2008-04-08  Robert Dewar  <dewar@adacore.com>
10513             Gary Dismukes  <dismukes@adacore.com>
10514
10515         * s-rident.ads: Add No_Default_Initialization restriction
10516
10517         * exp_tss.adb:
10518         (Has_Non_Null_Base_Init_Proc): Handle No_Default_Initialization case
10519         (Set_TSS): Handle No_Default_Initialization case
10520
10521         * exp_ch6.adb (Expand_N_Subprogram_Body): Handle restriction
10522         No_Default_Initialization
10523         (Expand_N_Subprogram_Body): Remove redundant initialization of out
10524         parameters when Normalize_Scalars is active.
10525         (Add_Final_List_Actual_To_Build_In_Place_Call): Add formal Sel_Comp
10526         Fix casing error in formal parameter name in call
10527         (Register_Predefined_DT_Entry): Replace occurrences of RE_Address by
10528         (Expand_Call, Propagate_Tag): Call Kill_Current_Values when processing a
10529         dispatching call on VM targets.
10530
10531 2008-04-08  Gary Dismukes  <dismukes@adacore.com>
10532             Thomas Quinot  <quinot@adacore.com>
10533
10534         * exp_ch7.adb (Find_Final_List): Change the test for generating a
10535         selected component from an access type's Associated_Final_Chain to
10536         check for the presence of that field, rather than assuming it exists
10537         for all named access types.
10538         (Make_Clean): New formal Chained_Cleanup_Action allowing to specify a
10539         procedure to call at the end of the generated cleanup procedure.
10540         (Expand_Cleanup_Actions): When a new cleanup procedure is generated, and
10541         and an At_End_Proc already exists in the handled sequence of statements
10542         for which cleanup actions are being expanded, the original cleanup
10543         action must be preserved.
10544
10545 2008-04-08  Hristian Kirtchev  <kirtchev@adacore.com>
10546             Ed Schonberg  <schonberg@adacore.com>
10547             Robert Dewar  <dewar@adacore.com>
10548             Gary Dismukes  <dismukes@adacore.com>
10549
10550         * exp_ch9.ads, exp_ch9.adb (Build_Protected_Entry,
10551         Build_Unprotected_Subprogram_Body): Generate debug info for
10552         declarations related to the handling of private data in task and
10553         protected types.
10554         (Debug_Private_Data_Declarations): New subprogram.
10555         (Install_Private_Data_Declarations): Remove all debug info flagging.
10556         This is now done by Debug_Private_Data_Declarations at the correct
10557         stage of expansion.
10558         (Build_Simple_Entry_Call): If the task name is a function call, expand
10559         the prefix into an object declaration, and make the surrounding block a
10560         task master.
10561         (Build_Master_Entity): An internal block is a master if it wraps a call.
10562         Code reformatting, update comments. Code clean up.
10563         (Make_Task_Create_Call): Use 'Unrestricted_Access instead of 'Address.
10564         (Replicate_Entry_Formals): If the formal is an access parameter or
10565         anonymous access to subprogram, copy the original tree to create new
10566         entities for the formals of the subprogram.
10567         (Expand_N_Task_Type_Declaration): Create a Relative_Deadline variable
10568         for tasks to store the value passed using pragma Relative_Deadline.
10569         (Make_Task_Create_Call): Add the Relative_Deadline argument to the
10570         run-time call to create a task.
10571         (Build_Wrapper_Spec): If the controlling argument of the interface
10572         operation is an access parameter with a non-null indicator, use the
10573         non-null indicator on the wrapper.
10574
10575         * sem_ch9.adb (Analyze_Protected_Type): Only retrieve the full view when
10576         present, which it may not be in the case where the type entity is an
10577         incomplete view brought in by a limited with.
10578         (Analyze_Task_Type): Only retrieve the full view when present, which it
10579         may not be in the case where the type entity is an incomplete view brought
10580         in by a limited with.
10581         (Analyze_Protected_Definition): Set Is_Frozen on all itypes generated for
10582         private components of a protected type, to prevent the generation of freeze
10583         nodes for which there is no proper scope of elaboration.
10584
10585         * exp_util.ads, exp_util.adb
10586         (Remove_Side_Effects): If the expression is a function call that returns a
10587         task, expand into a declaration to invoke the build_in_place machinery.
10588         (Find_Protection_Object): New routine.
10589         (Remove_Side_Effects): Also make a copy of the value
10590         for attributes whose result is of an elementary type.
10591         (Silly_Boolean_Array_Not_Test): New procedure
10592         (Silly_Boolean_Array_Xor_Test): New procedure
10593         (Is_Volatile_Reference): New function
10594         (Remove_Side_Effects): Use Is_Volatile_Reference
10595         (Possible_Bit_Aligned_Component): Handle slice case properly
10596
10597         * exp_pakd.adb (Expand_Packed_Not): Move silly true/true or false/false
10598         case test to Exp_Util
10599         (Expand_Packed_Xor): Move silly true/true case test to Exp_Util
10600
10601 2008-04-08  Thomas Quinot  <quinot@adacore.com>
10602
10603         * exp_dist.ads, exp_dist.adb: Fix casing error in formal parameter name
10604         in call
10605         (Add_RACW_Features): When processing an RACW in another unit than the
10606         main unit, set Body_Decls to No_List to indicate that the bodies of
10607         the type's TSS must not be generated.
10608         (GARLIC_Support.Add_RACW_Read_Attribute,
10609         GARLIC_Support.Add_RACW_Write_Attribute): Do not generate bodies if
10610         Body_Decls is No_List.
10611         (PolyORB_Support.Add_RACW_Read_Attribute,
10612         PolyORB_Support.Add_RACW_Write_Attribute,
10613         PolyORB_Support.Add_RACW_From_Any,
10614         PolyORB_Support.Add_RACW_To_Any,
10615         PolyORB_Support.Add_RACW_TypeCode): Same.
10616         (Transmit_As_Unconstrained): New function.
10617         (Build_Ordered_Parameters_List): Use the above to order parameters.
10618         (GARLIC_Support.Build_General_Calling_Stubs):
10619         Use the above to determine which parameters to unmarshall using 'Input
10620         at the point where their temporary is declared (as opposed to later on
10621         with a 'Read call).
10622         (PolyORB_Support.Build_General_Calling_Stubs):
10623         Use the above to determine which parameters to unmarshall using From_Any
10624         at the point where their temporary is declared (as opposed to later on
10625         with an assignment).
10626
10627 2008-04-08  Ed Schonberg  <schonberg@adacore.com>
10628
10629         * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): If this is
10630         an Input function for an access type, do not perform default
10631         initialization on the local variable that receives the value, to
10632         prevent spurious warnings when the type is null-excluding.
10633
10634 2008-04-08  Robert Dewar  <dewar@adacore.com>
10635             Ed Schonberg  <schonberg@adacore.com>
10636
10637         * freeze.adb (Freeze_Entity): Improve warnings on access types in pure
10638         units.
10639         (Size_Known): Generic formal scalar types have known at compile
10640         time size, so remove check.
10641         Fix casing error in formal parameter name in call
10642         (Freeze_Subprogram): If the subprogram is a user-defined operator,
10643         recheck its overriding indication.
10644
10645 2008-04-08  Vincent Celier  <celier@adacore.com>
10646
10647         * gnat1drv.adb: Send all messages indicating an error to standard error
10648
10649 2008-04-08  Robert Dewar  <dewar@adacore.com>
10650
10651         * gnatbind.adb (Restriction_Could_Be_Set): New procedure
10652         (List_Applicable_Restrictions): Do not list existing restrictions
10653
10654 2008-04-08  Thomas Quinot  <quinot@adacore.com>
10655
10656         * g-socket.ads, g-socket.adb: Improve documentation of GNAT.Sockets:
10657         add a pointer to generic sockets literature
10658         do not mention that the given example is "typical" usage.
10659         Remove obsolete comment about multicast not being supported on Windows.
10660         (Connect_Socket): Make Server mode IN rather than IN OUT
10661         since this formal is never modified.
10662
10663 2008-04-08  Robert Dewar  <dewar@adacore.com>
10664
10665         * sprint.adb (Write_Itype): Handle Itypes whose Parent field points to
10666         the declaration for some different entity.
10667         (Sprint_Node_Actual, case N_Derived_Type_Definition): When an interface
10668         list is precent (following the parent subtype indication), display
10669         appropriate "and" keyword.
10670
10671         * itypes.adb: Remove unnecessary calls to Init_Size_Align and Init_Esize
10672         Remove unnecessary calls to Init_Size_Align and Init_Esize.
10673         Add notes on use of Parent field of an Itype
10674
10675 2008-04-08  Ed Schonberg  <schonberg@adacore.com>
10676             Robert Dewar  <dewar@adacore.com>
10677             Gary Dismukes  <dismukes@adacore.com>
10678
10679         * lib-xref.adb (Is_On_LHS): Remove dead code
10680         (Output_Overriden_Op): If the overridden operation is itself inherited,
10681         list the ancestor operation, which is the one whose body or absstract
10682         specification is actually being overridden. For source navigation
10683         purposes.
10684
10685         * sem_ch7.adb (Is_Primitive_Of): use base type to determine whether
10686         operation is primitive for the type.
10687         (Declare_Inherited_Private_Subprograms): If the new operation overrides
10688         an inherited private subprogram, set properly the Overridden_Operation
10689         attribute, for better cross-reference information.
10690         (Analyze_Package_Specification): Do late analysis of spec PPCs
10691         (Install_Private_Declaration, Uninstall_Declarations): Save/restore
10692         properly the full view and underlying full views of a private type in a
10693         child unit, whose full view is derived from a private type in a parent
10694         unit, and whose own full view becomes visible in the child body.
10695
10696         * sem_disp.adb (Check_Dispatching_Operation): When a body declares a
10697         primitive operation after the type has been frozen, add an explicit
10698         reference to the type and the operation, because other primitive
10699         references have been emitted already.
10700         (Expand_Call, Propagate_Tag): Call Kill_Current_Values when processing a
10701         dispatching call on VM targets.
10702
10703 2008-04-08  Vincent Celier  <celier@adacore.com>
10704             Thomas Quinot  <quinot@adacore.com>
10705
10706         * make.adb: (Gnatmake_Called): Remove, no longer necessary
10707         (Compile_Surces): Call Delete_Temp_Config_Files only if Gnatmake_Called
10708         is True and Debug_Flag_N is False. Debug_Flag_N means "keep temp files".
10709         (Insert_Project_Sources): Take into account index in multi-unit source
10710         files.
10711         After building a library project, delete all temporary files.
10712         (Initialize): Reset current output after parsing project file.
10713         (Collect_Arguments_And_Compile): Never insert in the queue the sources
10714         of library projects that are externally built.
10715         Put file name in error and inform messages if -df is used
10716         (Display): If invoked with -d7, do not display path names, but only
10717         file names.
10718
10719         * makeutl.ads (Path_Or_File_Name): New function
10720         (Path_Or_File_Name): New function
10721
10722 2008-04-08  Arnaud Charlet  <charlet@adacore.com>
10723
10724         * Make-lang.in: Disable warnings during first stage of bootstrap
10725         Get rid of gnatbl.
10726         Update dependencies.
10727
10728 2008-04-08  Vincent Celier  <celier@adacore.com>
10729
10730         * mlib-prj.adb (Build_Library): Compare with ALI file name in canonical
10731         case to decide if ALI object file is included in library.
10732         (Build_Library): Never attempt to build a library if the project is
10733         externally built.
10734
10735 2008-04-08  Thomas Quinot  <quinot@adacore.com>
10736
10737         * nlists.adb (Is_Non_Empty_List): Remove redundant test. First
10738         (No_List) is defined to return Empty.
10739
10740 2008-04-08  Jose Ruiz  <ruiz@adacore.com>
10741
10742         * osint.ads, osint.adb (Get_Libraries_From_Registry): Improve
10743         documentation.
10744         Update comments.
10745         (Read_Default_Search_Dirs): Do not consider spaces as path separators
10746         because spaces may be part of legal paths.
10747
10748 2008-04-08  Robert Dewar  <dewar@adacore.com>
10749
10750         * par-ch11.adb (P_Exception_Handler): Check indentation level for
10751         handler
10752
10753 2008-04-08  Ed Schonberg  <schonberg@adacore.com>
10754
10755         * par-ch3.adb (P_Type_Declaration) Reject the keyword "synchronized"
10756         in a type declaration, if this is not an interface declaration or
10757         private type extension.
10758
10759 2008-04-08  Vincent Celier  <celier@adacore.com>
10760
10761         * prj-util.adb (Executable_Of): New String parameter Language. When
10762         Ada_Main is False and Language is not empty, attempt to remove the body
10763         suffix or the spec suffix of the language to get the base of the
10764         executable file name.
10765         (Put): New Boolean parameter Lower_Case, defauilted to False. When
10766         Lower_Case is True, put the value in lower case in the name list.
10767         (Executable_Of): If there is no executable suffix in the configuration,
10768         then do not modify Executable_Extension_On_Target.
10769
10770         * prj-util.ads (Executable_Of): New String parameter Language,
10771         defaulted to the empty string.
10772         (Put): New Boolean parameter Lower_Case, defauilted to False
10773
10774 2008-04-08  Robert Dewar  <dewar@adacore.com>
10775
10776         * scng.adb (Scan_Identifier): Handle case of identifier starting with
10777         wide character using UTF-8 encoding.
10778
10779 2008-04-08  Javier Miranda  <miranda@adacore.com>
10780
10781         * sem.adb (Analyze): Consider case in which we analyze an empty node
10782         that was generated by a call to a runtime function that is not
10783         available under the configurable runtime.
10784
10785         * sem.ads (Inside_Freezing_Actions): New flag.
10786         (Save_Check_Policy_List): New field in scope stack entry
10787
10788 2008-04-08  Ed Schonberg  <schonberg@adacore.com>
10789             Robert Dewar  <dewar@adacore.com>
10790
10791         * sem_aggr.adb (Analyze_N_Extension_Aggregate): Add legality checks for
10792         the ancestor part of an extension aggregate for a limited type.
10793         (Resolve_Array_Aggregate): Issue warning for sliding of aggregate with
10794         enumeration index bounds.
10795         (Resolve_Array_Aggregate): Add circuit for diagnosing missing choices
10796         when array is too short.
10797         (Check_Expr_OK_In_Limited_Aggregate): Move function
10798         Check_Non_Limited_Type from Resolve_Record_Aggregate to top level (and
10799         change name).
10800         (Resolve_Array_Aggregate.Resolve_Aggr_Expr):
10801         Check_Expr_OK_In_Limited_Aggregates called to check for illegal limited
10802         component associations.
10803         (Check_Non_Limited_Type): Moved to outer level and renamed.
10804         (Resolve_Record_Aggregate): In an extension aggregate, an association
10805         with a box initialization can only designate a component of the
10806         extension, not a component inherited from the given ancestor
10807
10808         * sem_case.adb: Use new Is_Standard_Character_Type predicate
10809
10810 2008-04-08  Robert Dewar  <dewar@adacore.com>
10811
10812         * s-imgdec.adb (Set_Decimal_Digits): Fix error when input is zero with
10813         negative scale
10814         (Set_Decimal_Digits): Properly handle Aft=0 (equivalent to Aft=1)
10815         Properly handle case where Aft > Scale and input number is less than
10816         one.
10817
10818 2008-04-08  Hristian Kirtchev  <kirtchev@adacore.com>
10819
10820         * s-stoele.ads, s-soflin.ads: Move the location of
10821         Dummy_Communication_Block from System.Storage_Elements to
10822         System.Soft_Links.
10823
10824         * s-tpobop.ads: Add comment on usage of Dummy_Communication_Block to
10825         emulate Communication_Block in certain scenarios.
10826
10827 2008-04-08  Hristian Kirtchev  <kirtchev@adacore.com>
10828
10829         * s-strxdr.adb, s-stratt.ads, s-stratt.adb (Block_IO_OK): New
10830         subprogram.
10831         Add new subtype S_WWC, unchecked conversion routines From_WWC and
10832         To_WWC.
10833         (I_WWC, O_WWC): New routines for input and output of
10834         Wide_Wide_Character.
10835
10836 2008-04-08  Robert Dewar  <dewar@adacore.com>
10837
10838         * stringt.adb (Write_String_Table_Entry): Handle wide characters
10839         properly
10840
10841 2008-04-08  Robert Dewar  <dewar@adacore.com>
10842
10843         * styleg.adb (Check_Comment): Allow special char after -- in
10844         non-end-of-line case
10845
10846 2008-04-08  Robert Dewar  <dewar@adacore.com>
10847
10848         * stylesw.adb: Implement -gnaty + - y options
10849         (Set_GNAT_Style_Check_Options): Includ I in style check string
10850
10851         * stylesw.ads: Add comments for new style switch options
10852
10853 2008-04-08  Sergey Rybin  <rybin@adacore.com>
10854
10855         * tree_io.ads: Increase ASIS_Version_Number because of adding Sem_Aux
10856         to the set of the GNAT components needed by ASIS.
10857
10858 2008-04-08  Bob Duff  <duff@adacore.com>
10859
10860         * types.h: Change CE_Null_Exception_Id to the correct value (8, was 9).
10861
10862 2008-04-08  Tristan Gingold  <gingold@adacore.com>
10863
10864         * vxaddr2line.adb: Use Unsigned_32 instead of Integer for address type.
10865         Improve error message generation.
10866
10867 2008-04-08  Vincent Celier  <celier@adacore.com>
10868
10869         * a-direct.adb (Start_Search): Check for Name_Error before checking for
10870         Use_Error, as specified in the RM. Check if directory is open and raise
10871         Use_Error if it is not.
10872
10873 2008-04-08  Vincent Celier  <celier@adacore.com>
10874             Robert Dewar  <dewar@adacore.com>
10875
10876         * vms_conv.adb (Output_Version): Print "GNAAMP" instead of "GNAT when
10877         AAMP_On_Target is set.
10878
10879         * vms_data.ads: Add NOxxx to style check switch list
10880         Add entry COMPONENTS for -gnatVe
10881         Add VMS qualifiers for -eL (/FOLLOW_LINKS_FOR_FILES) and --subdirs=
10882         (/SUBDIRS=).
10883         (GCC_Switches): Add /ALL_BACK_END_WARNINGS.
10884         Add qualifiers for gnatmetric coupling options
10885         Add note that -gnata enables all checks
10886         Add entries [NO]PARAMETER_ORDER for -gnatw.p[P]
10887         Fix inconsistency for VMS qualifier for the gnatpp '-rnb' option
10888         New warning flag -gnatw.e
10889
10890         * usage.adb: Add entries for -gnaty+ -gnaty- -gnatyy
10891         Add entry for -gnatyN (forgotten before)
10892         Line for new warning switch -gnatw.p
10893         New warning flag -gnatw.e
10894
10895         * gnat_ugn.texi: Add documentation fpr project file switch -aP
10896         Document -gnaty - + y
10897         Replace occurences of "package specification" with "package spec"
10898         Define preprocessing symbols in documentation of gnatprep
10899         Clarify reason for distinguishing overflow checking
10900         Add documentation for project-aware tool switches -eL and --subdirs=
10901         Complete list of configuration pragmas
10902         Specify that, even when gnatmake switch -x is used, mains on the command
10903         line need to be sources of project files.
10904         Editing of gnatcheck/gnatmetric doc.
10905         Add documentation for -gnatw.p/-gnatw.P
10906         Add missing documentation for -fno-inline-functions.
10907         Add documentation for -gnatw.e
10908
10909         * gnat_rm.texi: Add documentation for No_Default_Initialization
10910         Replace occurences of "package specification" with "package spec"
10911         Document use of * in Warnings Off string
10912         Update documentation of alignment/component clauses.
10913         Add documentation for Invalid_Value
10914         Document new consistency rule for Optimize_Alignment
10915         Add documentation for Precondition and Postcondition pragmas
10916         Add documentation for Check and Check_Policy pragmas
10917         Document new Enum_Val attribute
10918         Remove requirement for static string in pragma Assert
10919         Add documentation on GNAT.Time_Stamp
10920
10921         * ug_words: add entry for -gnatVe
10922         Add entries for -gnat.p[P] /WARNINGS=[NO]PARAMETER_ORDER
10923         Add entry for -gnatw.e
10924
10925         * debug.adb: Add missing documentation for d.a flag
10926         Document new -gnatd.a switch.
10927         Add documentation for new gnatmake debug switch -df
10928
10929 2008-04-08  Thomas Quinot  <quinot@adacore.com>
10930
10931         * gen-soccon.c: Bump year in copyright notices.
10932
10933         * g-soccon-vxworks.ads: Add new constant IP_PKTINFO
10934
10935 2008-04-08  Eric Botcazou  <ebotcazou@adacore.com>
10936
10937         * ctrl_c.c: Improve handling of ctrl-c on LynxOS and Windows.
10938         Minor reformatting.
10939
10940 2008-04-08  Robert Dewar  <dewar@adacore.com>
10941             Bob Duff  <duff@adacore.com>
10942
10943         * impunit.adb: Add Interfaces.Java.JNI, System.Strings.Stream_Ops,
10944         Ada.Calendar.Conversions, Ada.Dispatching.EDF, GNAT.Time_Stamp
10945
10946         * s-intman-mingw.adb: Minor comment fix -- spell 'explicitly' correctly
10947
10948         * g-trasym.adb: Minor comment fix -- spell 'explicitly' correctly
10949
10950         * g-trasym.ads: Minor comment improvements
10951
10952         * s-stalib.adb: Minor comment fix -- spell 'explicitly' correctly
10953
10954         * a-sequio.ads, a-direio.ads: improve message for tagged type
10955
10956         * a-strunb.ads: Minor reformatting
10957
10958         * a-tifiio.adb: Minor reformatting
10959
10960         * atree.adb (Fix_Parents): Use clearer names for formals
10961         Cleanup and simplify code
10962         Use named notation in calls
10963
10964         * exp_fixd.adb (Do_Multiply_Fixed_Universal): Use named notation in
10965         confusing calls
10966
10967         * uintp.adb: Used named notation for some confusing calls
10968
10969         * bindusg.adb: Minor change in one line of output
10970
10971         * cstand.adb: Minor reformatting of src representation of Standard
10972
10973         * a-assert.ads: Add comment.
10974
10975         * g-decstr.adb: Fix bad indentation
10976
10977         * expander.ads, expander.adb: Code clean up.
10978
10979         * sem_dist.ads: Minor comment improvement
10980
10981         * sem_type.adb, g-dirope.ads, g-exctra.ads, s-valwch.adb,
10982         s-wchstw.adb, targparm.ads, widechar.adb: Minor reformatting
10983
10984         * i-cstrin.adb: Fix casing error in formal parameter name in call
10985
10986 2008-04-08  Ed Schonberg  <schonberg@adacore.com>
10987
10988         * binde.adb (Gather_All_Links, Gather_Dependencies): units that are
10989         mentioned in limited_with_clauses to do create semantic dependencies
10990         even though they appear in the ali file.
10991
10992 2008-04-08  Emmanuel Briot  <briot@adacore.com>
10993
10994         * g-comlin.ads, g-comlin.adb (Expansion): Remove unreachable return
10995         statement.
10996         (Get_Configuration): New subprogram.
10997
10998         * prj-pp.ads, prj-pp.adb (Pretty_Print): new parameters Id and Id_Tree
10999         These optional parameters help preserve the casing of the project's name
11000         when pretty-printing.
11001
11002 2008-04-08  Jerome Lambourg  <lambourg@adacore.com>
11003             Arnaud Charlet  <charlet@adacore.com>
11004
11005         * bindgen.adb (Gen_Adainit_Ada): If the main program is a CIL function,
11006         then use __gnat_set_exit_status to report the returned status code.
11007
11008         * comperr.adb (Compiler_Abort): Convert most bug boxes into clean error
11009         messages on .NET, since some constructs of the language are not
11010         properly supported.
11011
11012         * gnatlink.adb (Gnatlink): In case the command line is too long for the
11013         .NET linker, gnatlink now concatenate all .il files and pass this to
11014         ilasm.
11015
11016 2008-04-07  Aurelien Jarno  <aurelien@aurel32.net>
11017             Xavier Grave  <grave@ipno.in2p3.fr>
11018
11019         * Makefile.in: Add make ifeq define for mips/mipsel support.
11020         * g-soccon-linux-mips.ads, system-linux-mipsel.ads,
11021         system-linux-mips.ads: New files.
11022
11023 2008-04-07  Aurelien Jarno  <aurelien@aurel32.net>
11024
11025         * sysdep.c: add __GLIBC__ to the #ifdef preprocessor macros to
11026         detect systems using GNU libc.
11027         * gsocket.h: ditto.
11028         * socket.c: ditto.
11029         * adaint.c: ditto.
11030         * link.c: ditto.
11031
11032 2008-04-07  Aurelien Jarno  <aurelien@aurel32.net>
11033
11034         * s-osinte-linux-kfreebsd.ads (SC_NPROCESSORS_ONLN): New
11035         constant constant for sysconf call.
11036         (bit_field): New packed boolean type used by cpu_set_t.
11037         (cpu_set_t): New type corresponding to the C type with
11038         the same name. Note that on the Ada side we use a bit
11039         field array for the affinity mask. There is not need
11040         for the C macro for setting individual bit.
11041         (pthread_setaffinity_np): New imported routine.
11042         * Makefile.in: Use s-tasinf-linux.ads and s-tasinf-linux.adb
11043         on GNU/kFreeBSD.
11044
11045 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
11046
11047         * utils2.c (build_binary_op): Fold ARRAY_REF and ARRAY_RANGE_REF too.
11048
11049 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
11050
11051         * gigi.h (create_subprog_type): Remove returns_with_dsp parameter.
11052         * decl.c (gnat_to_gnu_entity): Adjust for above new prototype.
11053         * utils.c (create_subprog_type): Remove returns_with_dsp parameter.
11054         * trans.c (gnat_to_gnu) <N_Return_Statement>: Remove code dealing with
11055         Return by Depressed Stack Pointer.
11056
11057 2008-04-06  Eric Botcazou  <ebotcazou@adacore.com>
11058
11059         * decl.c (is_variable_size): Do not unconditionally return false
11060         on non-strict alignment platforms.
11061
11062 2008-04-06  Eric Botcazou  <ebotcazou@adacore.com>
11063
11064         * decl.c (rest_of_type_decl_compilation_no_defer): New local function
11065         used to process all the variants of the specified type.
11066         (gnat_to_gnu_entity): Invoke rest_of_type_decl_compilation for enumeral
11067         types too.  Call rest_of_type_decl_compilation_no_defer if undeferring.
11068         (rest_of_type_decl_compilation): Likewise.
11069         * utils.c (gnat_pushdecl): Propagate the name to all variants of type.
11070
11071 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
11072
11073         * gigi.h (insert_block): Kill.
11074         * utils.c (insert_block): Kill.
11075
11076 2008-04-02  Eric Botcazou  <ebotcazou@adacore.com>
11077
11078         * decl.c (gnat_to_gnu_entity) <object>: For a constant object whose
11079         type has self-referential size, get the size from the initializing
11080         expression directly if it is also a constant whose nominal type
11081         has self-referential size.
11082
11083 2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11084
11085         PR ada/33688
11086         * g-soccon-darwin.ads: Define new constant IP_PKTINFO.
11087
11088         PR ada/33857
11089         * env.c: Always include crt_externs.h if __APPLE__ is defined.
11090         (__gnat_setenv): Use setenv instead of putenv if __APPLE__ is defined.
11091
11092 2008-04-01  Andreas Jaeger  <aj@suse.de>
11093
11094         * g-soccon-linux-ppc.ads: Add new constants SO_REUSEPORT and
11095         IP_PKTINFO.
11096
11097 2008-03-31  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11098
11099         * g-table.adb, g-tasloc.adb, g-traceb.ads,
11100         g-trasym.adb, g-utf_32.adb, gen-soccon.c, gigi.h, gmem.c,
11101         gnatbind.adb, gnatchop.adb, gnatcmd.adb,
11102         gnatcmd.ads, gnatdll.adb, gnatfind.adb,
11103         gnatlink.adb, gnatmem.adb, gprep.adb,
11104         i-cstrea-vms.adb, i-cstrin.adb, i-pacdec.ads,
11105         i-vxwork.ads, impunit.adb, init.c, initialize.c, inline.adb,
11106         layout.adb, lib-writ.adb, lib-writ.ads, lib-xref.adb,
11107         lib-xref.ads, lib.adb, link.c, live.ads,
11108         make.adb, makegpr.adb, makeutl.adb, math_lib.adb,
11109         mdll-utl.adb, mdll.ads, memroot.adb, memroot.ads,
11110         misc.c, mlib-prj.adb, mlib-tgt-hpux.adb,
11111         mlib-tgt-linux.adb, mlib-tgt-tru64.adb, mlib-tgt.ads,
11112         namet.adb, namet.h, nlists.adb, nlists.ads,
11113         nlists.h, opt.ads, osint-b.ads, osint-c.adb,
11114         osint-c.ads, osint.adb, osint.ads, output.ads,
11115         par-ch10.adb, par-ch12.adb, par-ch2.adb, par-ch3.adb,
11116         par-ch4.adb, par-ch5.adb, par-ch6.adb, par-ch9.adb,
11117         par-endh.adb, par-labl.adb, par-prag.adb,
11118         par-sync.adb, par-tchk.adb, par-util.adb,
11119         par.adb, prep.adb, prep.ads, prepcomp.adb, prj-attr.ads,
11120         prj-dect.adb, prj-env.adb, prj-ext.adb, prj-nmsc.adb,
11121         prj-nmsc.ads, prj-pp.adb, prj-proc.adb,
11122         prj-strt.ads, prj-tree.ads, prj.adb, prj.ads: Fix comment typos.
11123
11124 2008-03-31  Eric Botcazou  <ebotcazou@adacore.com>
11125
11126         * decl.c (gnat_to_gnu_entity) <object>: Do not force a non-null
11127         size if it has overflowed.
11128
11129 2008-03-31  Olivier Hainque  <hainque@adacore.com>
11130             Eric Botcazou  <ebotcazou@adacore.com>
11131
11132         * utils2.c (find_common_type): Document assumption on t1/t2 vs
11133         lhs/rhs. Force use of lhs type if smaller, whatever the modes.
11134
11135 2008-03-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11136
11137         * a-textio.ads, a-witeio.ads, a-ztexio.ads, ali.ads,
11138         einfo.ads, erroutc.adb, erroutc.ads, exp_attr.adb,
11139         exp_imgv.adb, exp_intr.adb, exp_pakd.adb,
11140         exp_pakd.ads, exp_prag.adb, exp_smem.adb,
11141         exp_tss.ads, exp_util.adb, exp_util.ads,
11142         exp_vfpt.adb, freeze.adb, freeze.ads,
11143         frontend.adb, g-alleve.adb, g-altcon.adb,
11144         g-altive.ads, g-alveop.ads, g-alvevi.ads,
11145         g-arrspl.adb, g-busorg.ads, g-calend.adb,
11146         g-calend.ads, g-casuti.ads, g-cgideb.adb,
11147         g-comlin.adb, g-comlin.ads, g-curexc.ads,
11148         g-debpoo.adb, g-debpoo.ads, g-decstr.adb,
11149         g-dirope.adb, g-dirope.ads, g-dynhta.ads,
11150         g-dyntab.adb, g-encstr.ads, g-excact.ads,
11151         g-except.ads, g-expect.ads, g-heasor.adb,
11152         g-hesora.adb, g-hesorg.adb, g-htable.ads,
11153         g-locfil.ads, g-md5.adb, g-md5.ads,
11154         g-memdum.ads, g-moreex.ads, g-os_lib.adb,
11155         g-pehage.adb, g-pehage.ads, g-regexp.adb,
11156         g-regexp.ads, g-regpat.adb, g-regpat.ads,
11157         g-soccon-aix.ads, g-soccon-darwin.ads,
11158         g-soccon-freebsd.ads, g-soccon-hpux-ia64.ads,
11159         g-soccon-hpux.ads, g-soccon-irix.ads,
11160         g-soccon-linux-64.ads, g-soccon-linux-ppc.ads,
11161         g-soccon-linux-x86.ads, g-soccon-lynxos.ads,
11162         g-soccon-mingw.ads, g-soccon-solaris-64.ads,
11163         g-soccon-solaris.ads, g-soccon-tru64.ads,
11164         g-soccon-vms.ads, g-soccon-vxworks.ads,
11165         g-soccon.ads, g-socket.adb, g-socket.ads,
11166         g-socthi-mingw.adb, g-socthi-vms.adb,
11167         g-socthi-vxworks.adb, g-soliop-mingw.ads,
11168         g-soliop-solaris.ads, g-soliop.ads, g-spipat.adb,
11169         g-spipat.ads, g-string.adb, g-stsifd-sockets.adb: Fix comment
11170         typos.
11171
11172 2008-03-27  Eric Botcazou  <ebotcazou@adacore.com>
11173
11174         * decl.c (gnat_to_gnu_entity) <E_Procedure>: Also set the public flag
11175         if the procedure is imported.
11176
11177 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
11178
11179         * adaint.c: Fix warnings.
11180
11181 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
11182
11183         * g-dirope.ads, g-dirope.adb: (Dir_Type_Value): Moved to spec.
11184
11185 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
11186
11187         * a-witeio.adb: Fix problem with Current_Output (introduce Self).
11188         Fix problem of status check for null file
11189
11190 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
11191
11192         * s-proinf-irix-athread.ads, s-vxwork-mips.ads,
11193         s-traces.ads, s-vxwork-arm.ads, s-vxwork-ppc.ads, s-vxwork-sparcv9.ads,
11194         s-tasinf-mingw.ads, s-tasinf-linux.ads, s-tasdeb.ads, mlib-tgt.ads,
11195         i-cstrin.ads, uintp.adb, g-catiio.adb, s-vmexta.ads,
11196         s-trafor-default.ads, s-vxwork-m68k.ads: Minor reformatting. Update
11197         comments.
11198
11199 2008-03-26  Thomas Quinot  <quinot@adacore.com>
11200
11201         PR ada/33688
11202         * g-socket.ads, g-socket.adb (Options, Set_Socket_Option,
11203         Get_Socket_Option): Add support for Receive_Packet_Info.
11204
11205         * g-soccon.ads, g-soccon-tru64.ads, g-soccon-aix.ads,
11206         g-soccon-irix.ads, g-soccon-hpux.ads, g-soccon-solaris.ads,
11207         g-soccon-vms.ads, g-soccon-mingw.ads, g-soccon-freebsd.ads,
11208         g-soccon-hpux-ia64.ads, g-soccon-solaris-64.ads, g-soccon-darwin.ads,
11209         g-soccon-lynxos.ads, g-soccon-linux-64.ads, g-soccon-linux-x86.ads: Add
11210         new constants SO_REUSEPORT and IP_PKTINFO
11211
11212 2008-03-26  Robert Dewar  <dewar@adacore.com>
11213
11214         * a-taster.adb, s-shasto.adb, s-soflin.adb, s-taasde.adb, s-taenca.adb,
11215         a-sytaco.adb, a-sytaco.ads, a-tasatt.adb, a-taside.adb,
11216         a-intnam-lynxos.ads, a-retide.adb, a-intnam-tru64.ads, a-intnam-aix.ads,
11217         a-intnam-irix.ads, a-intnam-hpux.ads, a-intnam-linux.ads,
11218         a-intnam-solaris.ads, a-caldel-vms.adb, a-intnam-vms.ads,
11219         a-excpol-abort.adb, a-intnam-mingw.ads, s-interr.adb, s-interr.ads,
11220         s-intman.ads, s-gloloc.adb, s-osinte-lynxos-3.ads,
11221         s-interr-sigaction.adb, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
11222         a-intnam-freebsd.ads, s-osinte-freebsd.ads, s-osinte-lynxos.ads,
11223         s-taspri-lynxos.ads, s-osinte-tru64.ads, s-osinte-tru64.ads,
11224         s-taspri-tru64.ads, s-osinte-aix.ads, s-osinte-irix.ads,
11225         s-osinte-hpux-dce.ads, s-taprop-hpux-dce.adb, s-taspri-hpux-dce.ads,
11226         s-osinte-linux.ads, s-osinte-dummy.ads, s-taprop-dummy.adb,
11227         s-taspri-dummy.ads, s-interr-dummy.adb, s-osinte-solaris.ads,
11228         s-osinte-mingw.ads, s-taprop-solaris.adb, s-taspri-solaris.ads,
11229         s-inmaop-vms.adb, s-interr-vms.adb, s-intman-vms.ads, s-osinte-vms.ads,
11230         s-osinte-vms.ads, s-taprop-vms.adb, s-taspri-vms.ads,
11231         s-taspri-mingw.ads, s-interr-vxworks.adb, s-inmaop-posix.adb,
11232         s-intman-vxworks.ads, s-osinte-vxworks.ads, s-osprim-vxworks.adb,
11233         s-taspri-vxworks.ads, s-taspri-posix.ads, a-caldel.adb, a-calend.adb,
11234         a-elchha.adb, a-dynpri.adb, a-except.adb, a-except.ads, a-interr.ads,
11235         a-textio.adb, a-tigeau.ads, atree.adb, s-taprob.adb, s-taprop.ads,
11236         s-tarest.adb, s-tarest.ads, s-tasini.adb, s-taskin.adb, s-taskin.ads,
11237         s-tasque.adb, s-tasren.adb, s-tasren.ads, s-tassta.adb, s-tassta.ads,
11238         s-tasuti.adb, s-tataat.adb, s-tataat.ads, s-tpoben.adb, s-tpoben.ads,
11239         s-tpobop.adb, s-tpobop.ads, s-tposen.adb, s-tposen.ads, s-valrea.adb,
11240         s-valuti.adb, a-intnam-darwin.ads, s-osinte-darwin.ads, s-solita.adb,
11241         a-ztinau.ads, s-osinte-linux-hppa.ads, a-except-2005.adb,
11242         a-except-2005.ads, a-rttiev.adb, s-osinte-vxworks6.ads, s-regexp.adb,
11243         s-tasloc.adb: Minor reformatting.
11244         Update comments.
11245         Remove "used for" sections from comments.
11246
11247 2008-03-26  Robert Dewar  <dewar@adacore.com>
11248
11249         * s-tpopsp-posix.adb, s-tpopsp-solaris.adb, s-tpopsp-posix-foreign.adb,
11250         s-tpopsp-lynxos.adb, s-tpopde-vms.ads, s-tpopde-vms.adb,
11251         s-tpopsp-vxworks.adb, s-casi16.adb, s-caun16.adb, s-inmaop.ads,
11252         s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-tpinop.adb,
11253         s-tpinop.ads, s-tporft.adb, a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb,
11254         a-crbtgk.ads, a-crbtgk.adb, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
11255         a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
11256         a-cgcaso.adb, a-cgaaso.adb, a-ciormu.adb, a-cihase.adb, a-swuwha.ads,
11257         a-rbtgso.ads, a-cgaaso.ads, a-cgaaso.ads, a-ciorma.adb, a-chtgke.ads,
11258         a-chtgke.adb, a-llfzti.ads, a-ztenau.adb, a-ztenau.ads, a-stzhas.ads,
11259         a-szbzha.ads, a-szbzha.adb, a-crdlli.ads, a-crdlli.ads, a-crdlli.adb,
11260         i-forbla-darwin.adb, i-forbla.ads, s-regexp.adb, a-nllrar.ads,
11261         a-nlrear.ads, a-nucoar.ads, a-nurear.ads, i-forlap.ads, s-gearop.adb,
11262         s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb, s-gecola.ads,
11263         s-gerebl.adb, s-gerela.ads, a-swuwha.adb, i-forbla-unimplemented.ads,
11264         double spaced if it fits on one line and otherwise single spaced.
11265
11266 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
11267
11268         * s-taprop-irix.adb, s-taprop-tru64.adb, s-taprop-lynxos.adb,
11269         s-taprop-linux.adb, s-taprop-mingw.adb, s-taprop-vxworks.adb,
11270         s-taprop-posix.adb (Create_Task): Do not attempt to set task priority
11271         or task info if the thread could not be created.
11272
11273 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
11274
11275         * gnatvsn.ads (Library_Version): Bump to 4.4.
11276         (Current_Year): Bump to 2008.
11277
11278 2008-03-26  Robert Dewar  <dewar@adacore.com>
11279
11280         * ali.ads, ali.adb (Optimize_Alignment_Setting): New field in ALI record
11281
11282         * bcheck.adb (Check_Consistent_Optimize_Alignment): New procedure
11283
11284         * debug.adb: Add debug flags d.r and d.v
11285         Add debug flag .T (Optimize_Alignment (Time))
11286         Add debug flag .S (Optimize_Alignment (Space))
11287
11288         * freeze.adb (Freeze_Record_Type): Set OK_To_Reorder_Components
11289         depending on setting of relevant debug flags.
11290         Replace use of Warnings_Off by Has_Warnings_Off
11291         (Freeze_Entity): In circuit for warning on suspicious convention
11292         actuals, do not give warning if subprogram has same entity as formal
11293         type, or if subprogram does not come from source.
11294         (Freeze_Entity): Don't reset Is_Packed for fully rep speced record
11295         if Optimize_Alignment set to Space.
11296
11297         * frontend.adb: Add call to Sem_Warn.Initialize
11298         Add call to Sem_Warn.Output_Unused_Warnings_Off_Warnings
11299         Reset Optimize_Alignment mode from debug switches .S and .T
11300
11301         * layout.adb (Layout_Composite_Object): Rewritten for
11302         Optimize_Aligment pragma.
11303
11304         * lib-writ.ads, lib-writ.adb: New Ox parameter for Optimize_Alignment
11305         mode.
11306
11307         * opt.ads, opt.adb: (Optimize_Alignment): New global switch
11308
11309         * par-prag.adb (N_Pragma): Chars field removed, use Chars
11310         (Pragma_Identifier (..  instead, adjustments throughout to accomodate
11311         this change. Add entry for pragma Optimize_Alignment
11312
11313         * sem_prag.adb (N_Pragma): Chars field removed, use Chars
11314         (Pragma_Identifier (..
11315         instead, adjustments throughout to accomodate this change.
11316         (Process_Compile_Time_Warning_Or_Error): Use !! for generated msg
11317         (Favor_Top_Level): Use new function Is_Access_Subprogram_Type
11318         Add implementation of pragma Optimize_Alignment
11319
11320 2008-03-26  Vincent Celier  <celier@adacore.com>
11321
11322         * a-szuzti.adb, a-swuwti.adb, a-suteio.adb (functions Get_Line):
11323         Improve memory usage to avoid use of stack.
11324
11325 2008-03-26  Robert Dewar  <dewar@adacore.com>
11326
11327         * a-teioed.ads: Correct value of Default_Fill
11328
11329         * a-teioed.adb (Image): Use Fill_Character instead of '*' to fill
11330
11331 2008-03-26  Robert Dewar  <dewar@adacore.com>
11332
11333         * a-ztexio.adb, a-ztexio.ads, a-witeio.ads, a-witeio.adb: Fix problem
11334         with Current_Output (introduce Self).
11335
11336 2008-03-26  Robert Dewar  <dewar@adacore.com>
11337
11338         * checks.adb (Ensure_Valid): Capture valid status if possible
11339         (eliminate checks)
11340
11341 2008-03-26  Robert Dewar  <dewar@adacore.com>
11342
11343         * stand.ads: Deal with reordering of package standard declarations
11344
11345         * cstand.adb: Put package Standard declarations in proper order
11346
11347 2008-03-26  Robert Dewar  <dewar@adacore.com>
11348
11349         * einfo.ads, einfo.adb (N_Pragma): Chars field removed, use Chars
11350         (Pragma_Identifier (.. instead.
11351         (OK_To_Reorder_Components): New flag
11352         (Has_Entries): Code cleanup.
11353         (Warnings_Off_Used): New flag
11354         (Warnings_Off_Used_Unmodified): New flag
11355         (Warnings_Off_Used_Unreferenced): New flag
11356         (Has_Warnings_Off): New function
11357         (Has_Unmodified): New function
11358         (Has_Unreferenced): New function
11359         (Is_Trivial_Subprogram): New flag
11360         (Is_Static_Dispatch_Table_Entity): New attribute.
11361         Change name Access_Subprogram_Type_Kind to Access_Subprogram_Kind
11362         (more consistent with other similar names)
11363         (Access_Subprogram_Type): New classification function
11364
11365 2008-03-26  Robert Dewar  <dewar@adacore.com>
11366
11367         * errout.ads: Document new !! insertion sequence
11368
11369         * errout.adb (N_Pragma): Chars field removed, use Chars
11370         (Pragma_Identifier (..  instead.
11371         Replace use of Warnings_Off by Has_Warnings_Off
11372         (Error_Msg_Internal): Don't delete warning ending in !!
11373
11374 2008-03-26  Robert Dewar  <dewar@adacore.com>
11375
11376         * par.adb (Check_No_Right_Paren): Removed no longer used
11377
11378         * par-ch10.adb (N_Pragma): Chars field removed, use Chars
11379         (Pragma_Identifier (..  instead.
11380
11381         * par-ch10.adb (P_Subunit): Improvement in error recovery and message
11382
11383         * par-tchk.adb, par-ch5.adb, par-ch6.adb, par-ch3.adb,
11384         par-ch4.adb: Minor improvements in error recovery and messages.
11385
11386         * erroutc.adb (Test_Style_Warning_Serious_Msg): Treat style msgs as
11387         non-serious
11388
11389         * par-ch9.adb: Minor improvements in error recovery and messages
11390         (P_Protected): Better error recovery for "protected type x;"
11391
11392         * par-util.adb: Minor improvements in error recovery and messages
11393         (Check_No_Right_Paren): Removed no longer used
11394
11395 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
11396
11397         * exp_aggr.adb (Replace_Type): When checking for self-reference, verify
11398         that the prefix of an attribute is the type of the aggregate being
11399         expanded.
11400
11401 2008-03-26  Javier Miranda  <miranda@adacore.com>
11402             Robert Dewar  <dewar@adacore.com>
11403
11404         * exp_attr.adb (N_Pragma): Chars field removed.
11405         (Expand_N_Attribute_Reference): If the designated type associated with
11406         attribute 'Unrestricted_Access is a subprogram entity then replace it
11407         by an E_Subprogram_Type itype.
11408         Implement attribute Old
11409
11410         * sem_attr.ads (Attribute_Class_Array): Move to snames.ads
11411
11412         * sem_attr.adb (Build_Access_Subprogram_Itype): Add documentation.
11413         Replace call to
11414         New_Internal_Entity by call to Create_Itype to centralize calls
11415         building itypes, ad propagate the convention of the designated
11416         subprogram. In addition, disable the machinery cleaning constant
11417         indications from all entities in current scope when 'Unrestricted_Access
11418         corresponds with a node initializing a dispatch table slot.
11419         (Analyze_Attribute): Parameterless attributes returning a string or a
11420         type will not be called with improper arguments, so we can remove junk
11421         code that was dealing with this case.
11422         Implement attribute Old
11423
11424         * snames.ads, snames.h, snames.adb: Add entries for attribute Old
11425         Add entry for pragma Optimize_Alignment
11426         New standard names Sync and Synchronize
11427
11428 2008-03-26  Robert Dewar  <dewar@adacore.com>
11429             Arnaud Charlet  <charlet@adacore.com>
11430
11431         * exp_ch11.adb (Expand_At_End_Handler): Set From_At_End flag on raise
11432         stmt.
11433         (No_Exception_Propagation_Active): New function.
11434         (Expand_Exception_Handlers): Use No_Exception_Propagation_Active.
11435         Update comments, and review all uses of No_Exception_Propagation, which
11436         are now correct and in sync with what gigi expects.
11437
11438         * restrict.ads, restrict.adb (No_Exception_Propagation_Active): New
11439         function.
11440         (Expand_Exception_Handlers): Use No_Exception_Propagation_Active.
11441         Update comments, and review all uses of No_Exception_Propagation, which
11442         are now correct and in sync with what gigi expects.
11443
11444 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
11445
11446         * sem_ch3.adb (Access_Definition): If the access type is the return
11447         result of a protected function, create an itype reference for it
11448         because usage will be in an inner scope from the point of declaration.
11449         (Build_Derived_Record_Type): Inherit Reverse_Bit_Order and
11450         OK_To_Reorder_Components.
11451         (Make_Index): If an overloaded range includes a universal integer
11452         interpretation, resolve to Standard.Integer.
11453         (Analyze_Subtype_Indication): Copy Convention to subtype
11454         (Check_Abstract_Interfaces): Complete semantic checks on the legality of
11455         limited an synchronized progenitors in type declaration and private
11456         extension declarations.
11457
11458         * exp_ch13.adb (Expand_N_Freeze_Entity): If the scope of the entity is a
11459         protected subprogram body, determine proper scope from subprogram
11460         declaration.
11461
11462 2008-03-26  Robert Dewar  <dewar@adacore.com>
11463
11464         * exp_ch4.adb (Expand_N_Op_Concat): Remove special tests for
11465         No_Run_Time_Mode
11466
11467 2008-03-26  Gary Dismukes  <dismukes@adacore.com>
11468
11469         * exp_ch5.adb (Expand_N_Extended_Return_Statement): Suppress generation
11470         of a heap allocator for a limited unconstrained function return when
11471         resstriction No_Allocators is active.
11472         (Analyze_Allocator): The restriction No_Allocators is now only checked
11473         on allocators that have Comes_From_Source set, as per RM-H.4(7).
11474
11475         * sem_ch4.adb (Expand_N_Extended_Return_Statement): Suppress generation
11476         of a heap allocator for a limited unconstrained function return when
11477         resstriction No_Allocators is active.
11478         (Analyze_Allocator): The restriction No_Allocators is now only checked
11479         on allocators that have Comes_From_Source set, as per RM-H.4(7).
11480         (Has_Fixed_Op):  If the name in a function call is Standard."*" and the
11481         operands are fixed-point types, the universal_fixed predefined operation
11482         is used, regardless of whether the operand type (s) have a primitive
11483         operation of the same name.
11484
11485 2008-03-26  Javier Miranda  <miranda@adacore.com>
11486
11487         * exp_disp.adb (Make_DT, Make_Secondary_DT): Set attribute
11488         Is_Static_Dispatch_Table
11489         (Build_Dispatch_Tables): Replace calls to Exchange_Entities() by calls
11490         to Exchange_Declarations to exchange the private and full-view. Bug
11491         found working in this issue.
11492         (Expand_Dispatching_Call): Propagate the convention of the subprogram
11493         to the subprogram pointer type.
11494         (Make_Secondary_DT): Replace generation of Prim'Address by
11495         Address (Prim'Unrestricted_Access)
11496         (Make_DT): Replace generation of Prim'Address by
11497         Address (Prim'Unrestricted_Access)
11498         (Make_Disp_*_Bodies): When compiling for a restricted profile, use
11499         simple call form for single entry.
11500         (Make_DT): Handle new contents of Access_Disp_Table (access to dispatch
11501         tables of predefined primitives).
11502         (Make_Secondary_DT): Add support to handle access to dispatch tables of
11503         predefined primitives.
11504         (Make_Tags): Add entities to Access_Dispatch_Table associated with
11505         access to dispatch tables containing predefined primitives.
11506
11507         * exp_ch6.adb (N_Pragma): Chars field removed, use Chars
11508         (Pragma_Identifier (..  instead, adjustments throughout to accomodate
11509         this change.
11510         (Register_Predefined_DT_Entry): Updated to handle the new contents
11511         of attribute Access_Disp_Table (pointers to dispatch tables containing
11512         predefined primitives).
11513
11514         * exp_util.ads, exp_util.adb (Corresponding_Runtime_Package): New
11515         subprogram.
11516         (Find_Interface_ADT): Updated to skip the new contents of attribute
11517         Access_Dispatch_Table (pointers to dispatch tables containing predefined
11518         primitives).
11519
11520         * sem_util.adb (Has_Abstract_Interfaces): Add missing support for
11521         concurrent types.
11522         (Set_Convention): Use new function Is_Access_Subprogram_Type
11523         (Collect_Interfaces_Info): Updated to skip the new contents of attribute
11524         Access_Dispatch_Table (pointers to dispatch tables containing predefined
11525         primitives).
11526
11527         * exp_atag.ads, exp_atag.adb (Build_Inherit_Predefined_Prims): Improve
11528         expanded code avoiding calls to Build_Predef_Prims.
11529         (Build_Set_Predefined_Prim_Op_Address): Improve expanded code avoiding
11530         call to Build_Get_Predefined_Prim_Op_Address.
11531
11532 2008-03-26  Javier Miranda  <miranda@adacore.com>
11533
11534         * exp_ch7.adb (Make_Clean): Code cleanup using the new centralized
11535         subprogram Corresponding_Runtime_Package to know the runtime package
11536         that will provide support to a given protected type.
11537
11538         * exp_ch9.adb (Add_Private_Declarations,
11539         Build_Protected_Subprogram_Call,
11540         Build_Protected_Entry, Build_Simple_Entry_Call,
11541         Expand_N_Protected_Body, Expand_N_Protected_Type_Declaration,
11542         Expand_N_Timed_Entry_Call, Make_Initialize_Protection): Code
11543         cleanup using the new centralized subprogram Corresponding_Runtime
11544         Package to know the runtime package that provides support to
11545         a given protected type.
11546
11547 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
11548
11549         * exp_pakd.adb (Expand_Bit_Packed_Element_Set): If the component
11550         assignment is within the initialization procedure for a packed array,
11551         and Initialize_Scalars is enabled, compile right-hand side with checks
11552         off, because the value is purposely out of range.
11553
11554 2008-03-26  Vincent Celier  <celier@adacore.com>
11555
11556         * gnatcmd.adb: Add processing for GNAT SYNC
11557
11558         * vms_conv.ads: (Command_Type): Add command Sync
11559
11560         * vms_conv.adb (Initialize): Add Command_List data for new command Sync
11561
11562         * vms_data.ads: Add entries for -gnatw.w
11563         Add qualifier for gnatstub --header-file option
11564         Add switches for GNAT SYNC
11565
11566         * prj-attr.ads, prj-attr.adb: Add new package Synchronize for GNAT SYNC
11567         (Add_Package_Name): New procedure
11568         (Package_Name_List): New function
11569         (Initialize): Add known package names to the list
11570         (Register_New_Package): Add the new package name to the list
11571
11572 2008-03-26  Robert Dewar  <dewar@adacore.com>
11573
11574         * g-pehage.adb, g-regist.adb, g-spipat.ads, g-spipat.adb,
11575         s-asthan.adb, s-parint.adb, s-rpc.adb, s-stchop.adb: Replace
11576         Raise_Exception by "raise with" construct.
11577
11578 2008-03-26  Pascal Obry  <obry@adacore.com>
11579
11580         * Makefile.in: Add proper GNAT.Serial_Communications implementation on
11581         supported platforms.
11582
11583         * Makefile.rtl: Add g-sercom.o.
11584
11585         * impunit.adb: Add g-sercom.adb.
11586
11587         * s-crtl.ads (open): New routine.
11588         (close): Likewise.
11589         (write): Likewise.
11590
11591         * s-osinte-mingw.ads (BYTE): New type.
11592         (CHAR): Likewise.
11593         (OVERLAPPED): Likewise.
11594         (GENERIC_READ): New constant.
11595         (GENERIC_WRITE): Likewise.
11596         (OPEN_EXISTING): Likewise.
11597         (PSECURITY_ATTRIBUTES): Removed this type, use anonymous access
11598         type instead.
11599         (CreateFile): New routine.
11600         (WriteFile): Likewise.
11601         (ReadFile): Likewise.
11602         (CloseHandle): Move next to the other file oriented routines.
11603
11604         * g-sercom.ads: New unit.
11605
11606         * g-sercom.adb: Default implementation, calls to this unit will raise
11607         a program error exception.
11608
11609         * g-sercom-mingw.adb, g-sercom-linux.adb: Windows and
11610         GNU/Linux implementations.
11611
11612 2008-03-26  Robert Dewar  <dewar@adacore.com>
11613
11614         * itypes.adb (Create_Itype): Use new name Access_Subprogram_Kind
11615
11616         * sem_ch13.adb (Validate_Unchecked_Conversion): Give warning for
11617         unchecked conversion for different conventions only for subprogram
11618         pointers or on VMS.
11619
11620 2008-03-26  Vincent Celier  <celier@adacore.com>
11621
11622         * osint-c.adb (Set_Library_Info_Name): Use canonical case file names
11623         to check if the specified object file is correct.
11624
11625 2008-03-26  Thomas Quinot  <quinot@adacore.com>
11626
11627         * sem_cat.adb (Validate_RACW_Primitives): Do not rely on
11628         Comes_From_Source to exclude primitives from being checked. We want to
11629         exclude predefined primitives only, so use the appropriate specific
11630         predicate. Also, flag a formal parameter of an anonymous
11631         access-to-subprogram type as illegal for a primitive operation of a
11632         remote access to class-wide type.
11633
11634 2008-03-26  Vincent Celier  <celier@adacore.com>
11635
11636         * prj-dect.adb (Parse_Package_Declaration): When a package name is not
11637         known, check if it may be a missspelling of a known package name. In
11638         not verbose, not mode, issue warnings only if the package name is a
11639         possible misspelling.
11640         In verbose mode, always issue a warning for a not known package name,
11641         plus a warning if the name is a misspelling of a known package name.
11642
11643         * prj-part.adb (Post_Parse_Context_Clause): Modify so that only non
11644         limited withs or limited withs are parse during one call.
11645         (Parse_Single_Project): Post parse context clause in two passes: non
11646         limited withs before current project and limited withs after current
11647         project.
11648
11649         * prj-proc.adb (Imported_Or_Extended_Project_From): Returns an extended
11650         project with the name With_Name, even if it is only extended indirectly.
11651         (Recursive_Process): Process projects in order: first single withs, then
11652         current project, then limited withs.
11653
11654         * prj-tree.adb (Imported_Or_Extended_Project_Of): Returns an extended
11655         project with the name With_Name, even if it is only extended indirectly.
11656
11657 2008-03-26  Robert Dewar  <dewar@adacore.com>
11658
11659         * scn.adb (Initialize_Scanner): Format messages belong on standard error
11660
11661 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
11662
11663         * sem_ch10.adb (Analyze_Compilation_Unit): if a unit in the context is
11664         a generic subprogram that is imported, do not attempt to compile
11665         non-existent body.
11666
11667         * sem_ch12.adb (Instantiate_Subprogram_Body): if the generic is
11668         imported, do not generate a raise_program_error for the non-existent
11669         body.
11670         (Pre_Analyze_Actuals): If an error is detected during pre-analysis,
11671         perform minimal name resolution on the generic to avoid spurious
11672         warnings.
11673         (Find_Actual_Type): the designated type of the actual in a child unit
11674         may be declared in a parent unit without being an actual.
11675
11676 2008-03-26  Robert Dewar  <dewar@adacore.com>
11677
11678         * sem_ch11.adb: Fix No_Exception_Restriction violation for SJLJ
11679         * sinfo.ads, sinfo.adb (From_At_End): New flag
11680
11681 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
11682
11683         * sem_ch6.adb (Analyze_Subprogram_Body): Remove spurious check on
11684         operations that have an interface parameter.
11685         (Analyze_Subprogram_Body): Set Is_Trivial_Subprogram flag
11686         Don't treat No_Return call as raise.
11687
11688         * sem_disp.adb (Check_Dispatching_Operations): apply check for
11689         non-primitive interface primitives to access parameters, not to all
11690         parameters of an access type.
11691
11692 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
11693
11694         * sem_ch7.adb (Install_Parent_Private_Declarations): If the private
11695         declarations of a parent unit are made visible when compiling a child
11696         instance, the parent is not a hidden open scope, even though it may
11697         contain other pending instance.
11698
11699         * sem_ch8.adb (Restore_Scope_Stack): If an entry on the stack is a
11700         hidden open scope for some child instance, it does affect the
11701         visibility status of other stach entries.
11702         (Analyze_Object_Renaming): Check that a class-wide object cannot be
11703         renamed as an object of a specific type.
11704
11705 2008-03-26  Robert Dewar  <dewar@adacore.com>
11706
11707         * sem_res.adb (Check_Infinite_Recursion): Diagnose definite infinite
11708         recursion and raise SE directly.
11709         (Resolve_Actuals): Reset Never_Set_In_Source if warnings off is
11710         set for formal type for IN mode parameter.
11711
11712 2008-03-26  Robert Dewar  <dewar@adacore.com>
11713
11714         * sem_warn.ads, sem_warn.adb (Warnings_Off_Pragmas): New table
11715         (Initialize): New procedure
11716         (Output_Warnings_Off_Warnings): New procedure
11717         (Check_References): Suppress certain msgs if Is_Trivial_Subprogram
11718         (Output_Non_Modifed_In_Out_Warnings): Ditto
11719         (Warn_On_Unreferenced_Entity): Ditto
11720
11721 2008-03-26  Vincent Celier  <celier@adacore.com>
11722
11723         * a-direct.adb (Start_Search): Raise Use_Error if the directory is not
11724         readable.
11725
11726 2008-03-26  Matthew Heaney  <heaney@adacore.com>
11727
11728         * a-ciorse.ads, a-cidlli.ads, a-cdlili.ads, a-cihase.ads, a-cohase.ads,
11729         a-ciorma.ads, a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-coorse.ads:
11730         Marked with clauses as private, and controlled operations as overriding
11731
11732 2008-03-26  Robert Dewar  <dewar@adacore.com>
11733
11734         * g-byorma.adb (Read_BOM): Reorder tests so that UTF_32 is recognized
11735
11736 2008-03-26  Robert Dewar  <dewar@adacore.com>
11737
11738         * back_end.adb, back_end.ads: Minor reformatting
11739
11740         * bindgen.adb: Minor clarification of comments
11741
11742         * fname.ads: Minor comment fixes
11743
11744         * g-altive.ads, g-catiio.ads, g-trasym.ads, prj.ads,
11745         prj-nmsc.adb, sem_aggr.adb: Minor reformatting
11746
11747         * xeinfo.adb, xnmake.adb, xsinfo.adb, xtreeprs.adb,
11748         xsnames.adb: Remove warnings off pragma no longer needed
11749
11750         * a-catizo.ads, a-calari.ads, a-calfor.adb,
11751         a-calfor.ads: Fix header.
11752
11753 2008-03-26  Tristan Gingold  <gingold@adacore.com>
11754
11755         * init.c: Do not adjust pc for HPARITH on alpha/vms.
11756
11757 2008-03-26  Robert Dewar  <dewar@adacore.com>
11758
11759         * lib-xref.adb: (OK_To_Set_Reference): New function
11760         (Generate_Reference): Don't set referenced from occurrence in Warnings,
11761         Unmodified, or Unreferenced pragma
11762
11763 2008-03-26  Robert Dewar  <dewar@adacore.com>
11764
11765         * alloc.ads: Add entries for Warnings_Off_Pragmas table
11766
11767 2008-03-26  GNAT Script  <nobody@adacore.com>
11768
11769         * Make-lang.in: Makefile automatically updated
11770
11771 2008-03-26  Robert Dewar  <dewar@adacore.com>
11772
11773         * tbuild.ads, tbuild.adb, trans.c, sprint.adb, exp_prag.adb, decl.c,
11774         par-ch2.adb, sem_elab.adb, sem_util.ads (N_Pragma): Chars field
11775         removed, use Chars (Pragma_Identifier (..  instead, adjustments
11776         throughout to accomodate this change.
11777
11778         * s-pooglo.ads, s-pooloc.ads: Minor comment updates
11779
11780         * exp_dbug.adb: Use Sem_Util.Set_Debug_Info_Needed (not
11781         Einfo.Set_Needs_Debug_Info)
11782
11783 2008-03-26  Robert Dewar  <dewar@adacore.com>
11784
11785         * gnat_ugn.texi: Add documentation for -gnatw.w/-gnatw.W
11786         Add description for the new gnatstub option '--header-file'
11787         clarification of -gnatwz/-gnatwZ
11788         Add a "Irix-Specific Considerations" section to document the need to
11789         set LD_LIBRARY_PATH when using the default shared runtime library.
11790         Added documentation for both gcov and gprof.
11791
11792         * gnat_rm.texi: Document that pragma Compile_Time_Warning generates
11793         messages that are not suppressed when clients are compiled.
11794         Add documentation of s-pooglo s-pooloc
11795         Document the new GNAT.Serial_Communications API.
11796         Add documentation for 'Old attribute
11797         Add description of pragma Optimize_Alignment
11798
11799         * ug_words: Add entries for -gnatw.w -gnatw.W
11800
11801         * usage.adb: Add line for -gnatw.w (warn on warnings off)
11802
11803 2008-03-25  Eric Botcazou  <ebotcazou@adacore.com>
11804
11805         Revert
11806         2008-03-05  Eric Botcazou  <ebotcazou@adacore.com>
11807         PR ada/35186
11808         * decl.c (maybe_pad_type): Avoid padding an integral type when
11809         bumping its alignment is sufficient.
11810
11811 2008-03-25  Arnaud Charlet  <charlet@adacore.com>
11812
11813         * exp_ch6.adb, exp_disp.adb: Update copyright notice.
11814         Fix wrong formatting (lines too long)
11815
11816 2008-03-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11817
11818         * 9drpc.adb, a-caldel-vms.adb, a-caldel.adb,
11819         a-calend-vms.adb, a-calend.adb, a-calend.ads,
11820         a-calfor.adb, a-chahan.ads, a-chtgke.adb,
11821         a-cihama.ads, a-ciorse.adb, a-clrefi.ads,
11822         a-cohama.ads, a-comlin.ads, a-coorse.adb,
11823         a-crbtgk.adb, a-direct.adb, a-except-2005.adb,
11824         a-except-2005.ads, a-except.adb, a-except.ads,
11825         a-exexda.adb, a-exexpr-gcc.adb, a-exexpr.adb,
11826         a-exextr.adb, a-filico.ads, a-finali.ads,
11827         a-intnam-aix.ads, a-intnam-solaris.ads, a-ngcefu.adb,
11828         a-ngelfu.adb, a-numaux-darwin.adb, a-numeri.ads,
11829         a-sequio.ads, a-strbou.ads, a-strfix.adb,
11830         checks.adb, exp_ch3.adb, exp_ch4.adb,
11831         exp_ch4.ads, exp_ch5.adb, exp_ch6.adb,
11832         exp_ch6.ads, exp_ch7.adb, exp_ch7.ads,
11833         exp_ch9.adb, exp_ch9.ads, exp_dbug.adb,
11834         exp_dbug.ads, exp_disp.adb, exp_dist.adb,
11835         exp_dist.ads, exp_fixd.adb, exp_fixd.ads: Fix comment typos.
11836
11837 2008-03-24  Robert Dewar  <dewar@adacore.com>
11838
11839         * s-tpopsp-posix.adb, s-tpopsp-solaris.adb, s-tpopsp-posix-foreign.adb,
11840         s-tpopsp-lynxos.adb, s-tpopde-vms.ads, s-tpopde-vms.adb,
11841         s-tpopsp-vxworks.adb, s-casi16.adb, s-caun16.adb, s-inmaop.ads,
11842         s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-tpinop.adb,
11843         s-tpinop.ads, s-tporft.adb, a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb,
11844         a-crbtgk.ads, a-crbtgk.adb, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
11845         a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
11846         a-cgcaso.adb, a-cgaaso.adb, a-ciormu.adb, a-cihase.adb, a-swuwha.ads,
11847         a-rbtgso.ads, a-cgaaso.ads, a-cgaaso.ads, a-ciorma.adb, a-chtgke.ads,
11848         a-chtgke.adb, a-llfzti.ads, a-ztenau.adb, a-ztenau.ads, a-stzhas.ads,
11849         a-szbzha.ads, a-szbzha.adb, a-crdlli.ads, a-crdlli.ads, a-crdlli.adb,
11850         i-forbla-darwin.adb, i-forbla.ads, s-regexp.adb, a-nllrar.ads,
11851         a-nlrear.ads, a-nucoar.ads, a-nurear.ads, i-forlap.ads, s-gearop.adb,
11852         s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb, s-gecola.ads,
11853         s-gerebl.adb, s-gerela.ads, a-swuwha.adb, i-forbla-unimplemented.ads,
11854         double spaced if it fits on one line and otherwise single spaced.
11855
11856 2008-03-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11857
11858         PR documentation/15479
11859         * Make-lang.in (doc/gnat_ugn.texi) Renamed from ...
11860         (doc/gnat_ugn_unw.texi): ... this, and adjusted.
11861         (doc/gnat_ugn.info): Renamed from ...
11862         (doc/gnat_ugn_unw.info): ... this.
11863         (doc/gnat_ugn.dvi): Renamed from ...
11864         (doc/gnat_ugn_unw.dvi): ... this.
11865         (doc/gnat_ugn.pdf): Renamed from ...
11866         (doc/gnat_ugn_unw.pdf): ... this.
11867         (ADA_INFOFILES, ADA_PDFFILES, ada.install-info, ada.dvi):
11868         Adjusted.
11869         * gnat_ugn.texi (FILE): Hard-code gnat_ugn; set filename
11870         unconditionally to gnat_ugn.info.  Fix cross references to the
11871         GNAT Reference Manual.  Convert links to the GCC, GDB, Emacs,
11872         and GNU make manuals to be proper texinfo links.
11873         * gnat_rm.texi: Fix cross references to the GNAT User's Guide.
11874
11875 2008-03-21  Olivier Hainque  <hainque@adacore.com>
11876
11877         * trans.c (Attribute_to_gnu) <'length>: Compute as (hb < lb)
11878         ? 0 : hb - lb + 1 instead of max (hb - lb + 1, 0).
11879
11880 2008-03-21  Eric Botcazou  <ebotcazou@adacore.com>
11881
11882         * trans.c (addressable_p): Add notes on addressability issues.
11883
11884 2008-03-21  Olivier Hainque  <hainque@adacore.com>
11885             Ed Schonberg  <schonberg@adacore.com>
11886
11887         * trans.c (addressable_p): Accept COND_EXPR when both arms
11888         are addressable.
11889         (gnat_gimplify_expr): Let the gimplifier handle &COND_EXPR.
11890         (call_to_gnu): Do not use name reference in the error message
11891         for a misaligned by_reference_parameter. The actual may be a
11892         general expression.
11893
11894 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
11895
11896         * misc.c (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
11897
11898 2008-03-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11899
11900         * gnat_rm.texi (Implementation Defined Characteristics)
11901         (Wide_Text_IO, Wide_Wide_Text_IO): Add @var annotations where
11902         appropriate.
11903         * gnat_ugn.texi (Wide Character Encodings, Switches for gnatbind)
11904         (Switches for gnatchop, Installing a library): Likewise.
11905
11906 2008-03-10  Eric Botcazou  <ebotcazou@adacore.com>
11907
11908         * trans.c (emit_range_check): Do not emit the check if the base type
11909         of the expression is the type against which its range must be checked.
11910
11911 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
11912
11913         * decl.c (maybe_pad_type): Use value_factor_p.
11914
11915 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
11916
11917         * lang.opt (nostdlib): Move around.
11918         * misc.c (gnat_handle_option): Fix formatting.
11919         (gnat_dwarf_name): Move around.
11920         * trans.c (Case_Statement_to_gnu): Fix formatting.
11921         (gnat_to_gnu): Likewise.
11922         * utils.c (aggregate_type_contains_array_p): Likewise.
11923         (create_subprog_decl): Likewise.
11924
11925 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
11926
11927         * decl.c (gnat_to_gnu_entity) <E_Signed_Integer_Subtype>: Do not
11928         bother propagating the TYPE_USER_ALIGN flag when creating a JM type.
11929
11930 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
11931
11932         * decl.c (gnat_to_gnu_entity) <E_Record_Type>: Do not force
11933         BIGGEST_ALIGNMENT when capping the alignment of records with
11934         strict alignment and size clause.
11935
11936 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
11937
11938         * lang-specs.h: Pass -gnatwa if -Wall is passed.
11939         * misc.c (gnat_handle_option) <OPT_Wall>: Expand into -Wunused
11940         and -Wuninitialized.
11941         (gnat_post_options): Clear warn_unused_parameter.
11942
11943 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
11944
11945         * utils.c (finish_record_type): Clear DECL_BIT_FIELD on sufficiently
11946         aligned bit-fields, bumping the alignment of the record type if deemed
11947         profitable.
11948         (value_factor_p): Return false instead of 0.
11949
11950 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
11951
11952         * decl.c (gnat_to_gnu_entity) <E_Signed_Integer_Subtype>: Add support
11953         for scalar types with small alignment.
11954
11955 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
11956
11957         * trans.c (Loop_Statement_to_gnu): Set the SLOC of the loop label
11958         from that of the front-end's end label.
11959         (gnat_gimplify_stmt) <LOOP_STMT>: Set the SLOC of the backward goto
11960         from that of the loop label.
11961
11962 2008-03-07  Eric Botcazou  <ebotcazou@adacore.com>
11963
11964         * decl.c (gnat_to_gnu_entity) <E_Modular_Integer_Subtype>: Add
11965         comment for the packed array type case.
11966         * utils.c (build_template): Use a loop to strip padding or
11967         containing records for justified modular types.
11968
11969 2008-03-07  Eric Botcazou  <ebotcazou@adacore.com>
11970
11971         * decl.c (gnat_to_gnu_entity): Issue a warning on suspiciously
11972         large alignments specified for types.
11973         (validate_alignment): Minor cleanup.
11974
11975 2008-03-07  Eric Botcazou  <ebotcazou@adacore.com>
11976
11977         * decl.c (MAX_FIXED_MODE_SIZE): Define if not already defined.
11978         (gnat_to_gnu_entity) <E_Record_Type>: Try to get a smaller form of
11979         the component for packing, if possible, as well as if a component
11980         size clause is specified.
11981         <E_Record_Subtype>: For an array type used to implement a packed
11982         array, get the component type from the original array type.
11983         Try to get a smaller form of the component for packing, if possible,
11984         as well as if a component size clause is specified.
11985         (round_up_to_align): New function.
11986         (make_packable_type): Add in_record parameter.
11987         For a padding record, preserve the size.  If not in_record and the
11988         size is too large for an integral mode, attempt to shrink the size
11989         by lowering the alignment.
11990         Ditch the padding bits of the last component.
11991         Compute sizes and mode manually, and propagate the RM size.
11992         Return a BLKmode record type if its size has shrunk.
11993         (maybe_pad_type): Use MAX_FIXED_MODE_SIZE instead of BIGGEST_ALIGNMENT.
11994         Use Original_Array_Type to retrieve the type in case of an error.
11995         Adjust call to make_packable_type.
11996         (gnat_to_gnu_field): Likewise.
11997         (concat_id_with_name): Minor tweak.
11998         * trans.c (larger_record_type_p): New predicate.
11999         (call_to_gnu): Compute the nominal type of the object only if the
12000         parameter is by-reference.  Do the conversion actual type -> nominal
12001         type if the nominal type is a larger record.
12002         (gnat_to_gnu): Do not require integral modes on the source type to
12003         avoid the conversion for types with identical names.
12004         (addressable_p): Add gnu_type parameter.  If it is specified, do not
12005         return true if the expression is not addressable in gnu_type.
12006         Adjust recursive calls.
12007         * utils.c (finish_record_type): Remove dead code.
12008
12009 2008-03-05  Eric Botcazou  <ebotcazou@adacore.com>
12010
12011         PR ada/35186
12012         * decl.c (maybe_pad_type): Avoid padding an integral type when
12013         bumping its alignment is sufficient.
12014
12015 2008-03-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12016
12017         * gnatfind.adb, gnatxref.adb: Fix argument parsing typos.
12018         * s-auxdec-empty.adb, s-auxdec.adb: Fix typos in copyright
12019         statement.
12020         * a-ngcoar.adb, a-ngrear.adb, g-awk.adb, g-debpoo.adb,
12021         gprep.adb, make.adb, makegpr.adb, par-ch6.adb, prj-nmsc.adb,
12022         sem_attr.adb, sem_ch4.adb, sem_ch8.adb: Fix typos in ada source
12023         code output strings.
12024         * sem_type.adb, system-vms-ia64.ads, system-vms.ads,
12025         system-vms_64.ads: Fix typos in ada source code comments.
12026         * sinfo-cn.adb: Remove incomplete sentence.
12027
12028         PR documentation/15479
12029         * gnat_rm.texi, gnat_ugn.texi: Avoid standalone `non' word.
12030
12031 2008-02-27  Samuel Tardieu  <sam@rfc1149.net>
12032
12033         PR ada/22255
12034         * s-fileio.adb (Reset): Do not raise Use_Error if mode isn't changed.
12035
12036 2008-02-27  Samuel Tardieu  <sam@rfc1149.net>
12037
12038         PR ada/34799
12039         * sem_ch13.adb (Analyze_Record_Representation_Clause): Check
12040         that underlying type is present.
12041
12042 2008-02-26  Tom Tromey  <tromey@redhat.com>
12043
12044         * misc.c (internal_error_function): Remove test of
12045         USE_MAPPED_LOCATION.
12046         * trans.c (gigi): Remove test of USE_MAPPED_LOCATION.
12047         (Sloc_to_locus): Remove old location code.
12048
12049 2008-02-25  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12050
12051         * gnat_rm.texi, gnat_ugn.texi: Fix spacing after `e.g.' and
12052         `i.e.' by adding comma or `@:' as appropriate.
12053         * gnat_rm.texi (Pragma Wide_Character_Encoding): Instead of
12054         plain characters `C', use `@samp{C}'.
12055         * gnat_ugn.texi (File Naming Rules, About gnatkr)
12056         (Krunching Method): Likewise.
12057
12058         * gnat_ugn.texi (Conventions): List environment variables and
12059         metasyntactic variables.
12060         (Compiling Programs): Fix notation of metasyntactic variables.
12061         Add @file where appropriate.  Use @file for file extensions,
12062         @samp for strings.
12063         * gnat_rm.texi, gnat_ugn.texi: Where appropriate, use @samp
12064         instead of @file, @env instead of @code.
12065
12066 2008-02-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12067
12068         PR documentation/15479
12069         * gnat_rm.texi, gnat_ugn.texi: Where appropriate, replace `..'
12070         and `...' with `@dots{}' or `@enddots{}'.
12071
12072         PR documentation/15479
12073         * gnat_rm.texi, gnat_ugn.texi: Where appropriate, add @command,
12074         use @command instead of @code, @option instead of @samp or @code,
12075         @code instead of @var, @samp instead of @file.
12076
12077         PR documentation/15479
12078         * gnat_ugn.texi (Using gnatmake in a Makefile): Do not ignore errors
12079         in Makefile rules, by using `&&' rather than `;'.
12080
12081 2008-02-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12082
12083         PR documentation/15479
12084         * gnat_ugn.texi: In non-code, avoid space before colon.
12085         (Regular Expressions in gnatfind and gnatxref): Fix indentation.
12086         (Examples of gnatxref Usage): Use @command{vi} instead of
12087         @file{vi}.
12088         (Character Set Control): Do not use @code for UTF-8.
12089         (Validity Checking): Fix typo "NaNs" instead of "NaN's".  Do not
12090         use @code for IEEE.
12091         * gnat_rm.texi (Aggregates with static bounds): Fix typo in code
12092         sample.
12093         * gnat_rm.texi, gnat_ugn.texi: Fix typos.  Bump copyright years.
12094
12095 2008-02-11  Joel Sherrill  <joel.sherrill@oarcorp.com>
12096
12097         PR ada/35143
12098         * env.c: Add __rtems__ to if defined.
12099         * s-osinte-rtems.adb: Add To_Target_Priority.  Fix formatting.
12100         * s-osinte-rtems.ads: Add To_Target_Priority prototype and
12101         PTHREAD_SCOPE_PROCESS/PTHREAD_SCOPE_SYSTEM constants.  Add
12102         pragma Convention as required.
12103         * gsocket.h: Make compile in and out of RTS.
12104         * Makefile.in: Add system-rtems.ads.  Build DEC extensions.
12105         Use g-soccon-rtems.ads.
12106         * g-soccon-rtems.ads, system-rtems.ads: New files.
12107
12108 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12109
12110         PR other/35107
12111         * Make-lang.in (gnat1): Add $(GMPLIBS).
12112
12113 2008-01-26  Eric Botcazou  <ebotcazou@adacore.com>
12114
12115         * decl.c (components_to_record): Improve comment.
12116
12117 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
12118
12119         * decl.c (components_to_record): Do not reuse the empty union type
12120         if there is a representation clause on the record.
12121         * trans.c (addressable_p): Return true for INTEGER_CST.
12122
12123 2008-01-21  Eric Botcazou  <ebotcazou@adacore.com>
12124
12125         * trans.c (gnat_to_gnu) <N_Free_Statement>: Use POINTER_PLUS_EXPR
12126         in pointer arithmetics.
12127         * utils2.c (build_allocator): Likewise.
12128
12129 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
12130
12131         * utils.c (build_function_stub): Properly build the call expression.
12132
12133 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
12134
12135         * decl.c (gnat_to_gnu_entity) <object>: Process renamings
12136         before converting the expression to the type of the object.
12137         * trans.c (maybe_stabilize_reference) <CONSTRUCTOR>: New case.
12138         Stabilize constructors for special wrapping types.
12139
12140 2008-01-13  Eric Botcazou  <ebotcazou@adacore.com>
12141
12142         * trans.c (call_to_gnu): Invoke the addressable_p predicate only
12143         when necessary.  Merge some conditional statements.  Update comments.
12144         Rename unchecked_convert_p local variable to suppress_type_conversion.
12145         Do not suppress conversions in the In case.
12146         (addressable_p) <VIEW_CONVERT_EXPR>: Do not take alignment issues
12147         into account on non strict-alignment platforms.
12148
12149 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
12150
12151         * utils.c (aggregate_type_contains_array_p): New predicate.
12152         (create_field_decl): In a packed record, force byte alignment
12153         for fields without specified position that contain an array.
12154
12155 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
12156
12157         * utils.c (unchecked_convert): Fold the VIEW_CONVERT_EXPR expression.
12158
12159 2008-01-10  John David Anglin  <dave.anglin.@nrc-cnrc.gc.ca>
12160
12161         PR ada/34466
12162         * s-osinte-linux-hppa.ads (SC_NPROCESSORS_ONLN): New constant for
12163         sysconf call.
12164         (bit_field): New packed boolean type used by cpu_set_t.
12165         (cpu_set_t): New type corresponding to the C type with
12166         the same name. Note that on the Ada side we use a bit
12167         field array for the affinity mask. There is not need
12168         for the C macro for setting individual bit.
12169         (pthread_setaffinity_np): New imported routine.
12170
12171 2008-01-03  Tero Koskinen  <tero.koskinen@iki.fi>
12172
12173         PR ada/34647
12174         * adaint.c (__gnat_open_new_temp, __gnat_tmp_name): Use mkstemp()
12175         on OpenBSD as is done on other BSD systems.
12176
12177         PR ada/34645
12178         * sysdep.c (__gnat_ttyname, getc_immediate_nowait,
12179         getc_immediate_common): Treat OpenBSD as FreeBSD regarding immediate
12180         I/O.
12181
12182         PR ada/34644
12183         * env.c (__gnat_clearenv): Treat OpenBSD as other BSD systems missing
12184         clearenv().
12185
12186         PR ada/34646
12187         * init.c (__gnat_error_handler, __gnat_install_handler,
12188         __gnat_init_float): Define for OpenBSD.
12189
12190         * initialize.c (__gnat_initialize): Define for OpenBSD.
12191
12192 2007-12-27  Samuel Tardieu  <sam@rfc1149.net>
12193
12194         PR ada/34553
12195         * adaint.c (__gnat_open_new_temp, __gnat_tmp_name): Use mkstemp()
12196         instead of mktemp() or tmpnam() on NetBSD.
12197
12198 2007-12-23  Eric Botcazou  <ebotcazou@adacore.com>
12199
12200         * trans.c (call_to_gnu): Make the temporary for non-addressable
12201         In parameters passed by reference.
12202         (addressable_p): Return true for STRING_CST and CALL_EXPR.
12203
12204 2007-12-19  Robert Dewar  <dewar@adacore.com>
12205
12206         * g-expect-vms.adb, g-expect.adb, s-poosiz.adb:
12207         Add pragma Warnings (Off) for unassigned IN OUT arguments
12208
12209         * sem_warn.adb (Output_Reference): Suppress messages for internal names
12210         (Check_References): Extensive changes to tune up warnings
12211         (Output_Non_Modifed_In_Out_Warnings): Changes to tune up warnings
12212         (Has_Pragma_Unmodifed_Check_Spec): New function
12213         (Check_References): Implement pragma Unmodified
12214         (Warn_On_Unassigned_Out_Parameter): Implement pragma Unmodified
12215
12216         * par-prag.adb: Dummy entry for pragma Unmodified
12217
12218         * sem_prag.adb: Implement pragma Unmodified
12219
12220         * einfo.ads, einfo.adb: (Has_Pragma_Unmodified): New flag
12221         (Proc_Next_Component_Or_Discriminant): Fix typo.
12222         Update comments.
12223
12224         * sem_util.adb (Note_Possible_Modification): Add processinng for pragma
12225         Unmodified.
12226         (Reset_Analyzed_Flags): Use Traverse_Proc instead of Traverse_Func,
12227         because the former already takes care of discarding the result.
12228         (Mark_Coextensions): Remove ununused initial value from Is_Dynamic.
12229         Add comment.
12230
12231         * snames.h, snames.ads, snames.adb: Add entry for pragma Unmodified
12232
12233 2007-12-19  Eric Botcazou  <ebotcazou@adacore.com>
12234
12235         * targparm.adb, targparm.ads, system.ads, system-darwin-ppc.ads,
12236         system-vxworks-x86.ads, system-linux-ppc.ads, system-linux-hppa.ads,
12237         system-hpux-ia64.ads, system-vxworks-arm.ads, system-darwin-x86.ads,
12238         system-vms_64.ads, system-vms-ia64.ads, system-linux-ia64.ads,
12239         system-freebsd-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
12240         system-aix.ads, system-vxworks-sparcv9.ads, system-solaris-x86.ads,
12241         system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads,
12242         system-vxworks-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
12243         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
12244         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads
12245         (Dynamic_Trampolines_Used): Delete.
12246
12247         * system-lynxos-x86.ads, system-lynxos-ppc.ads: Ditto.
12248         Turn on stack probing mechanism on LynxOS.
12249
12250 2007-12-19  Bob Duff  <duff@adacore.com>
12251
12252         * atree.ads, atree.adb (Traverse_Func): Walk Field2 last, and eliminate
12253         the resulting tail recursion by hand. This prevents running out of
12254         memory on deeply nested concatenations, since Field2 is where the left
12255         operand of concatenations is stored.
12256         Fix bug (was returning OK_Orig in some cases). Fix return subtype to
12257         clarify that it can only return OK or Abandon.
12258
12259         * sem_res.adb (Resolve_Op_Concat): Replace the recursion on the left
12260         operand by iteration, in order to avoid running out of memory on
12261         deeply-nested concatenations. Use the Parent pointer to get back up the
12262         tree.
12263         (Resolve_Op_Concat_Arg, Resolve_Op_Concat_First,
12264          Resolve_Op_Concat_Rest): New procedures split out of
12265         Resolve_Op_Concat, so the iterative algorithm in Resolve_Op_Concat is
12266         clearer.
12267
12268         * checks.adb (Remove_Checks): Use Traverse_Proc instead of
12269         Traverse_Func, because the former already takes care of discarding the
12270         result.
12271
12272         * errout.adb (First_Node): Use Traverse_Proc instead of Traverse_Func,
12273         because the former already takes care of discarding the result.
12274         (Remove_Warning_Messages): Use appropriate subtype for Status and
12275         Discard
12276
12277 2007-12-19  Ed Schonberg  <schonberg@adacore.com>
12278
12279         * exp_aggr.adb (Not_OK_For_Backend): A component of a private type with
12280         discriminants forces expansion of the aggregate into assignments.
12281         (Init_Record_Controller):  If the type of the aggregate is untagged and
12282         is not inherently limited, the record controller is not limited either.
12283
12284 2007-12-19  Robert Dewar  <dewar@adacore.com>
12285
12286         * exp_attr.adb (Expand_N_Attribute_Reference, case Size): Fix error in
12287         handling compile time known size of record or array (case of front end
12288         layout active, e.g. in GNAAMP).
12289
12290 2007-12-19  Javier Miranda  <miranda@adacore.com>
12291
12292         * exp_ch3.adb (Expand_N_Object_Declaration): Complete the circuitry
12293         that forces the construction of static dispatch tables in case of
12294         record subtypes.
12295
12296 2007-12-19  Robert Dewar  <dewar@adacore.com>
12297
12298         * exp_ch9.adb (Null_Statements): Moved to library level
12299         (Trivial_Accept_OK): New function
12300         (Expand_Accept_Declaration): Use Trivial_Accept_OK
12301         (Expand_N_Accept_Statement): Use Trivial_Accept_OK
12302
12303 2007-12-19  Robert Dewar  <dewar@adacore.com>
12304
12305         * exp_pakd.adb (Expand_Bit_Packed_Element_Set): Fix packed array type
12306         in complex case where array is Volatile.
12307
12308 2007-12-19  Ed Schonberg  <schonberg@adacore.com>
12309
12310         * freeze.adb (Freeze_Record_Type, Check_Current_Instance): Implement
12311         properly the Ada2005 rules concerning when the current instance of a
12312         record type is aliased.
12313
12314 2007-12-19  Ed Schonberg  <schonberg@adacore.com>
12315
12316         * par-ch3.adb (P_Record_Declaration): Guard against cascaded errors in
12317         mangled declaration
12318         (P_Type_Declaration): Diagnose misuse of "abstract" in untagged record
12319         declarations.
12320         (P_Variant_Part): Cleaner patch for parenthesized discriminant
12321
12322 2007-12-19  Vincent Celier  <celier@adacore.com>
12323
12324         * prj-attr.adb (Package_Node_Id_Of): Returns Unknown_Package when
12325         package is not known
12326
12327         * prj-attr.ads (Unknown_Package): New constant
12328         Do not crash when an unknown package is in several projects
12329
12330         * prj-dect.adb (Parse_Package_Declaration): Mark an unknown package as
12331         ignored
12332
12333         * prj-nmsc.adb (Check): Remove obsolete code related to no longer
12334         existing package Language_Processing.
12335
12336 2007-12-19  Ed Schonberg  <schonberg@adacore.com>
12337             Gary Dismukes  <dismukes@adacore.com>
12338             Samuel Tardieu  <sam@rfc1149.net>
12339
12340         PR ada/15803, ada/15805
12341         * sem_ch6.adb, sem_ch3.adb (Constrain_Access): In Ada2005, diagnose
12342         illegal access subtypes when there is a constrained partial view.
12343         (Check_For_Premature_Usage): New procedure inside
12344         Access_Subprogram_Declaration for checking that an access-to-subprogram
12345         type doesn't reference its own name within any formal parameters or
12346         result type (including within nested anonymous access types).
12347         (Access_Subprogram_Declaration): Add call to Check_For_Premature_Usage.
12348         (Sem_Ch3.Analyze_Object_Declaration, Sem_ch6.Process_Formals): if the
12349         context is an access_to_variable, the expression cannot be an
12350         access_to_constant.
12351
12352 2007-12-19  Bob Duff  <duff@adacore.com>
12353
12354         * sem_ch4.adb (Analyze_Concatenation_Rest): New procedure.
12355         (Analyze_Concatenation): Use iteration instead of recursion in order
12356         to avoid running out of stack space for deeply nested concatenations.
12357
12358 2007-12-19  Ed Schonberg  <schonberg@adacore.com>
12359             Gary Dismukes  <dismukes@adacore.com>
12360
12361         * sem_ch8.adb (Analyze_Subprogram_Renaming): Diagnose illegal renamings
12362         whose renamed entity is a subprogram that requires overriding.
12363         (Premature_Usage): Test for the case of N_Full_Type_Declaration when
12364         issuing an error for premature usage and issue a message that says
12365         'type' rather than 'object'.
12366
12367 2007-12-19  Gary Dismukes  <dismukes@adacore.com>
12368
12369         PR ada/34149
12370         * sem_disp.adb (Check_Dispatching_Call): Augment existing test for
12371         presence of a statically tagged operand (Present (Static_Tag)) with
12372         test for Indeterm_Ancestor_Call when determining whether to propagate
12373         the static tag to tag-indeterminate operands (which forces dispatching
12374         on such calls).
12375         (Check_Controlling_Formals): Ada2005, access parameters can have
12376         defaults.
12377         (Add_Dispatching_Operation, Check_Operation_From_Private_View): do
12378         not insert subprogram in list of primitive operations if already there.
12379
12380 2007-12-19  Tristan Gingold  <gingold@adacore.com>
12381
12382         * utils.c (create_var_decl_1): call rest_of_decl_compilation only for
12383         global variable.
12384
12385 2007-12-19  Thomas Quinot  <quinot@adacore.com>
12386
12387         Part of PR ada/33688
12388         * gen-soccon.c: Add constant IP_PKTINFO to allow getting ancillary
12389         datagram info on Linux.
12390
12391 2007-12-19  Vincent Celier  <celier@adacore.com>
12392
12393         * makegpr.adb (Check_Compilation_Needed): Normalize C_Source_Path so
12394         that the source path name is always found in the dependencies.
12395
12396 2007-12-19  Robert Dewar  <dewar@adacore.com>
12397
12398         * gnat_rm.texi, gnat_ugn.texi: Update documentation of -gnatw.o
12399         Fix name of Wide_Wide_Latin_1/9 file names
12400         Add documentation for Ada.Exceptions.Last_Chance_Handler (a-elchha.ads)
12401         Add missing documentation for Ada.Wide_[Wide_]Characters.Unicode
12402         Add missing documentation for Ada.Command_Line.Response_File
12403         Update list of warning letters for Warnings pragma
12404         Add documentation for pragma Unmodified
12405
12406 2007-12-19  Samuel Tardieu  <sam@rfc1149.net>
12407
12408         * Makefile.in: Add s-tasinf.ad[bs] substitutions for sh4-linux target.
12409
12410 2007-12-17  Arnaud Charlet  <charlet@adacore.com>
12411
12412         * s-vxwork-alpha.ads: Removed, no longer used.
12413
12414 2007-12-15  Jakub Jelinek  <jakub@redhat.com>
12415
12416         * Make-lang.in (gnat1, gnatbind): Pass ALL_CFLAGS on the link line.
12417
12418 2007-12-13  Samuel Tardieu  <sam@rfc1149.net>
12419
12420         PR ada/34360
12421         * Makefile.in: Change two occurrences of mlib-tgt.adb by correct name
12422         mlib-tgt-specific.adb.
12423
12424 2007-12-13  Bob Duff  <duff@adacore.com>
12425
12426         * trans.c (Attribute_to_gnu): Check for violations of the
12427         No_Implicit_Dynamic_Code restriction. This checking used to be done in
12428         the front end, but is moved here so we can make it more accurate.
12429
12430 2007-12-13  Pascal Obry  <obry@adacore.com>
12431
12432         * adaint.c (__gnat_pthread_setaffinity_np): New routine. A dummy
12433          version is provided for older GNU/Linux distribution not
12434          supporting thread affinity sets.
12435
12436         * s-osinte-linux.ads (SC_NPROCESSORS_ONLN): New constant for sysconf
12437         call.
12438         (bit_field): New packed boolean type used by cpu_set_t.
12439         (cpu_set_t): New type corresponding to the C type with
12440         the same name. Note that on the Ada side we use a bit
12441         field array for the affinity mask. There is not need
12442         for the C macro for setting individual bit.
12443         (pthread_setaffinity_np): New imported routine.
12444
12445         * s-taprop-linux.adb (Enter_Task): Check that the CPU affinity mask is
12446         no null.
12447         (Create_Task): Set the processor affinity mask if information
12448         is present.
12449
12450         * s-tasinf-linux.ads, s-tasinf-linux.adb: New files.
12451
12452 2007-12-13  Robert Dewar  <dewar@adacore.com>
12453
12454         * s-osinte-lynxos-3.ads, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
12455         s-osinte-freebsd.ads, s-osinte-lynxos.ads, s-osinte-tru64.ads,
12456         s-osinte-mingw.ads, s-osinte-aix.ads, s-osinte-hpux-dce.ads,
12457         s-osinte-irix.ads, s-osinte-solaris.ads, s-intman-vms.adb,
12458         s-osinte-vms.ads, s-osinte-vxworks6.ads, s-osinte-vxworks.ads,
12459         s-auxdec.ads, s-auxdec-vms_64.ads, s-osinte-darwin.ads,
12460         s-taprop-vms.adb, s-interr-sigaction.adb, s-osinte-linux-hppa.ads,
12461         i-vxwork-x86.ads, s-tpopde-vms.ads: Add missing pragma Convention C
12462         for subprogram pointers.
12463
12464         * g-ctrl_c.adb: New file.
12465
12466         * g-ctrl_c.ads (Install_Handler): New body.
12467
12468         * freeze.adb (Freeze_Subprogram): Use new flag Has_Pragma_Inline_Always
12469         instead of obsolete function Is_Always_Inlined.
12470         (Freeze_Entity): check for tagged type in imported C subprogram
12471         (Freeze_Entity): check for 8-bit boolean in imported C subprogram
12472         (Freeze_Entity): check for convention Ada subprogram pointer in
12473         imported C subprogram.
12474         (Freeze_Fixed_Point_Type): In the case of a base type where the low
12475         bound would be chopped off and go from negative to zero, force
12476         Loval_Excl_EP to be the same as Loval_Incl_EP (the included lower
12477         bound) so that the size computation for the base type will take
12478         negative values into account.
12479
12480 2007-12-13  Eric Botcazou  <ebotcazou@adacore.com>
12481             Bob Duff  <duff@adacore.com>
12482             Tristan Gingold  <gingold@adacore.com>
12483
12484         * system-linux-ia64.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads,
12485         system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
12486         system-aix.ads, system-vxworks-sparcv9.ads, system-solaris-x86.ads,
12487         system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads,
12488         system-vxworks-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
12489         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
12490         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
12491         system-vxworks-arm.ads, system-darwin-x86.ads, system.ads,
12492         system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
12493         system-linux-ppc.ads, system-linux-hppa.ads, system-hpux-ia64.ads,
12494         system-vms-ia64.ads (Stack_Check_Limits): New target parameter.
12495         (Always_Compatible_Rep): New flag to control trampolines globally.
12496         (Dynamic_Trampolines_Used): New flag for implementing the
12497         No_Implicit_Dynamic_Code restriction more correctly (not yet used,
12498         and not yet set correctly for some targets).
12499
12500         * s-taprop-vxworks.adb: Use stack limit method of stack checking.
12501         Simply indirectly call s-stchop when a task is created.
12502
12503         * ali.ads:
12504         New flag added: Stack_Check_Switch_Set which is set when '-fstack-check'
12505         appears as an argument (entries A) in an ALI file.
12506
12507         * fe.h (Stack_Check_Limits): Declare new target parameter.
12508         (Check_Implicit_Dynamic_Code_Allowed): New procedure.
12509
12510         * init.c: Declare __gnat_set_stack_limit_hook for VxWorks kernel RTS.
12511         This variable is declared in C to be sure not subject to elaboration
12512         code.
12513         (__gnat_map_signal, VxWorks): In kernel mode, map SIGILL to
12514         Storage_Error.
12515
12516         * targparm.ads, targparm.adb (Stack_Check_Limits): New parameter.
12517         (Always_Compatible_Rep, Dynamic_Trampolines_Used): New parameters.
12518
12519         * s-stchop.ads: Add comments.
12520
12521         * s-stchop-vxworks.adb: Package almost fully rewritten to use stack
12522         limit method of stack checking.
12523
12524         * s-stchop-limit.ads: New file.
12525
12526 2007-12-13  Robert Dewar  <dewar@adacore.com>
12527
12528         * sem_ch5.adb, s-taskin.adb, a-ciorma.adb, a-coorma.adb, a-cohama.adb,
12529         a-cihama.adb, g-awk.adb,
12530         s-inmaop-posix.adb: Update handling of assigned value/unreferenced
12531         warnings
12532
12533         * exp_smem.adb: Update handling of assigned value/unreferenced warnings
12534
12535         * sem.adb: Update handling of assigned value/unreferenced warnings
12536
12537         * a-exexpr-gcc.adb: Add a pragma warnings off for boolean return
12538
12539         * lib-xref.ads: Improve documentation for k xref type
12540
12541         * lib-xref.adb:
12542         Update handling of assigned value/unreferenced warnings
12543         (Generate_Reference): Warning for reference to entity for which a
12544         pragma Unreferenced has been given should be unconditional.
12545         If the entity is a discriminal, mark the original
12546         discriminant as referenced.
12547
12548         * sem_warn.ads, sem_warn.adb
12549         (Check_One_Unit): Test Renamed_In_Spec to control giving warning for
12550         no entities referenced in package
12551         (Check_One_Unit): Don't give message about no entities referenced in
12552         a package if a pragma Unreferenced has appeared.
12553         Handle new warning flag -gnatw.a/-gnatw.A
12554         Update handling of assigned value/unreferenced warnings
12555
12556         * atree.h: Add flags up to Flag247
12557         (Flag231): New macro.
12558
12559 2007-12-13  Jose Ruiz  <ruiz@adacore.com>
12560
12561         * adaint.h: (__gnat_plist_init): Not defined for RTX.
12562
12563         * initialize.c (__gnat_initialize): Do not call __gnat_plist_init for
12564         RTX systems.
12565
12566         * Makefile.in: Add new files s-tasinf-linux.ads and s-tasinf-linux.adb.
12567         (LIBGNAT_TARGET_PAIRS, MISCLIB, THREADSLIB,
12568         EXTRA_GNATRTL_NONTASKING_OBJS, EXTRA_GNATRTL_TASKING_OBJS,
12569         GNATLIB_SHARED for RTX run time): Use the versions required by RTX.
12570
12571         * mingw32.h:
12572         Do not define GNAT_UNICODE_SUPPORT for RTX since it is not supported.
12573
12574         * sysdep.c (winflush_function for RTX): Procedure that does nothing
12575         since we only have problems with Windows 95/98, which are not
12576         supported by RTX.
12577         (__gnat_ttyname): Return the empty string on Nucleus, just as
12578         done on vxworks.
12579
12580 2007-12-13  Robert Dewar  <dewar@adacore.com>
12581
12582         * a-textio.adb, a-textio.ads:
12583         Extensive changes to private part for wide character encoding
12584
12585         * a-witeio.adb, a-witeio.ads, a-ztexio.ads, a-ztexio.adb
12586         (Look_Ahead): Fix mishandling of encoded sequences
12587         Move declaration of Wch_Con to private part (should not be visible)
12588
12589         * ali.adb (Scan_ALI): Set default encoding method to brackets instead of
12590         UTF-8. Probably this is never used, but if it is, brackets is
12591         clearly correct.
12592
12593         * bindgen.adb (Get_WC_Encoding): New procedure to properly handle
12594         setting wide character encoding for no main program case and when
12595         encoding is specified using -W?
12596         Initialize stack limit of environment task if stack limit method of
12597         stack checking is enabled.
12598         (Gen_Adainit_Ada): Use Get_WC_Encoding to output encoding method
12599         (Gen_Adainit_C): Use Get_WC_Encoding to output encoding method
12600         (Get_Main_Unit_Name): New function.
12601         (Gen_Adainit_Ada): Add call to main program for .NET when needed.
12602         (Gen_Output_File): Set Bind_Main_Program to True for .NET
12603
12604         * bindusg.adb: Add line for -Wx switch
12605
12606         * s-wchcon.adb, s-wchcon.ads: (Is_Start_Of_Encoding): New function
12607         Add comments
12608         Add new useful constant WC_Longest_Sequences
12609
12610         * switch-b.adb: Clean up handling of -Wx switch
12611         For -gnatWx, set Wide_Character_Encoding_Method_Specified
12612
12613         * switch-c.adb: -gnatg activates warning on assertion errors
12614         For -gnatWx, set Wide_Character_Encoding_Method_Specified
12615
12616         * s-wchcon.adb: (Is_Start_Of_Encoding): New function
12617
12618 2007-12-13  Robert Dewar  <dewar@adacore.com>
12619             Ed Schonberg  <schonberg@adacore.com>
12620
12621         * a-ngcoty.adb: New pragma Fast_Math
12622
12623         * opt.adb: New pragma Fast_Math
12624
12625         * par-prag.adb:
12626         Add Implemented_By_Entry to the list of pragmas which do not require any
12627         special processing.
12628         (Favor_Top_Level): New pragma.
12629         New pragma Fast_Math
12630
12631         * exp_attr.adb: Move Wide_[Wide_]Image routines to Exp_Imgv
12632         (Expand_N_Attribute_Reference, Displace_Allocator_Pointer,
12633         Expand_Allocator_Expression): Take into account VM_Target
12634         (Expand_Attribute, case 'Identity):  Handle properly the case where
12635         the prefix is a task interface.
12636         New pragma Fast_Math
12637
12638         * par.adb (Next_Token_Is): New function
12639         (P_Pragma): Add Skipping parameter
12640         (U_Left_Paren): New procedure
12641         (U_Right_Paren): New procedure
12642         New pragma Fast_Math
12643
12644         * par-ch10.adb (P_Subunit): Unconditional msg for missing ) after
12645         subunit
12646         New pragma Fast_Math
12647
12648         * sem_prag.adb: Add significance value to table Sig_Flag for pragma
12649         Implemented_By_Entry.
12650         (Analyze_Pragma): Add case for Ada 2005 pragma Implemented_By_Entry.
12651         (Set_Inline_Flags): Do not try to link pragma Inline onto chain of rep
12652         items, since it can apply to more than one overloadable entity. Set
12653         new flag Has_Pragma_Inline_Always for Inline_Always case.
12654         (Analyze_Pragma, case Complex_Representation): Improve error message.
12655         (Analyze_Pragma, case Assert): When assertions are disabled build the
12656         rewritten code with Sloc of expression rather than pragma, so new
12657         warning about failing is not deleted.
12658         (Analyze_Pragma): Allow pragma Preelaborable_Initialization to apply to
12659         protected types and update error message to reflect that. Test whether
12660         the protected type is allowed for the pragma (an error is issued if the
12661         type has any entries, or components that do not have preelaborable
12662         initialization).
12663         New pragma Fast_Math
12664         (Analyze_Pragma, case No_Return): Handle generic instance
12665
12666         * snames.h, snames.ads, snames.adb:
12667         Add new predefined name for interface primitive _Disp_Requeue.
12668         New pragma Fast_Math
12669
12670         * a-tags.ads, a-tags.adb: New calling sequence for
12671         String_To_Wide_[Wide_]String
12672         (Secondary_Tag): New subprogram.
12673
12674         * exp_imgv.ads, exp_imgv.adb: Move Wide_[Wide_]Image routines here
12675         from Exp_Attr
12676         New calling sequence for String_To_Wide_[Wide_]String
12677         (Expand_Image_Attribute): Major rewrite. New calling sequence avoids
12678         the use of the secondary stack for image routines.
12679
12680         * a-except-2005.adb, s-wchstw.ads, s-wchstw.adb, s-wwdenu.adb: New
12681         calling sequence for String_To_Wide_[Wide_]String
12682
12683         * par-ch3.adb (P_Declarative_Items): Recognize use of Overriding in
12684         Ada 95 mode
12685         (P_Unknown_Discriminant_Part_Opt): Handle missing parens gracefully
12686         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
12687
12688         * par-ch6.adb (P_Subprogram): Recognize use of Overriding in Ada 95 mode
12689         (P_Formal_Part): Use Skipping parameter in P_Pragma call
12690         to improve error recovery
12691
12692         * par-util.adb (Next_Token_Is): New function
12693         (Signal_Bad_Attribute): Use new Namet.Is_Bad_Spelling_Of function
12694
12695         * par-ch2.adb (Skip_Pragma_Semicolon): Do not resynchronize to
12696         semicolon if missing
12697         (P_Pragma): Implement new Skipping parameter
12698         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
12699         Fix location of flag for unrecognized pragma message
12700
12701         * par-tchk.adb (U_Left_Paren): New procedure
12702         (U_Right_Paren): New procedure
12703
12704 2007-12-13  Geert Bosch  <bosch@adacore.com>
12705
12706         * a-tifiio.adb:
12707         (Put_Int64): Use Put_Digit to advance Pos. This fixes a case where
12708         the second or later Scaled_Divide would omit leading zeroes,
12709         resulting in too few digits produced and a Layout_Error as result.
12710         (Put): Initialize Pos.
12711
12712 2007-12-13  Robert Dewar  <dewar@adacore.com>
12713
12714         atree.ads, atree.adb (Flag231..Flag247): New functions
12715         (Set_Flag231..Set_Flag247): New procedures
12716         (Basic_Set_Convention): Rename Set_Convention to be
12717         Basic_Set_Convention
12718         (Nkind_In): New functions
12719         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
12720
12721         * exp_ch6.adb (Expand_Call): Use new flag Has_Pragma_Inline_Always
12722         instead
12723          of obsolete function Is_Always_Inlined
12724         (Register_Predefined_DT_Entry): Initialize slots of the second
12725         secondary dispatch table.
12726         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
12727         (Expand_N_Function_Call): Remove special provision for stack checking.
12728
12729         * exp_util.ads, exp_util.adb (Is_Predefined_Dispatching_Operation):
12730         Include _Disp_Requeue in the list of predefined operations.
12731         (Find_Interface_ADT): Modified to fulfill the new specification.
12732         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
12733
12734         * par-ch4.adb, nlists.ads, nlists.adb:
12735         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
12736
12737         * sinfo.ads, sinfo.adb: (Nkind_In): New functions
12738         Fix location of flag for unrecognized pragma message
12739
12740         * sem_ch7.adb: Use Nkind_In
12741
12742 2007-12-13  Vincent Celier  <celier@adacore.com>
12743
12744         * opt.ads:
12745         Indicate what flags are used by the Project Manager, gprbuild and
12746         gprclean.
12747         (Opt.Follow_Links_For_Dirs): New flag
12748         (Warn_On_Assertion_Failure): New flag
12749         (Wide_Character_Encoding_Method_Specified): New flag
12750         (Suppress_All_Inlining): New switch set by -fno-inline
12751         (Real_VMS_Target): New flag
12752         New pragma Fast_Math
12753
12754 2007-12-13  Robert Dewar  <dewar@adacore.com>
12755
12756         * back_end.adb: Recognize -fno-inline
12757
12758 2007-12-13  Robert Dewar  <dewar@adacore.com>
12759
12760         * checks.adb: Fix optimization problem with short-circuited form
12761
12762 2007-12-13  Bob Duff  <duff@adacore.com>
12763
12764         * clean.adb (Usage): Add line for -aP
12765         (Check_Version_And_Help): Change Check_Version_And_Help to be generic,
12766         with a parameter "procedure Usage", instead of passing a pointer to a
12767         procedure. This is to eliminate trampolines (since the Usage procedure
12768         is often nested in a main procedure, and it would be inconvenient to
12769         unnest it).
12770
12771         * g-comlin.adb (For_Each_Simple_Switch): Change For_Each_Simple_Switch
12772         to be generic, with a parameter "procedure Callback (...)", instead of
12773         passing a pointer to a procedure. This is to eliminate trampolines
12774         (since the Callback procedure is usually nested).
12775
12776         * gnatfind.adb, switch.adb, switch.ads, gnatlink.adb, gnatls.adb,
12777         gnatname.adb, gnatxref.adb, gnatchop.adb, gprep.adb, gnatbind.adb
12778         (Check_Version_And_Help): Change Check_Version_And_Help to be generic.
12779
12780         * g-pehage.adb (Compute_Edges_And_Vertices, Build_Identical_Key_Sets):
12781         Use the generic Heap_Sort_G instead of Heap_Sort_A.
12782
12783 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
12784
12785         * einfo.ads, einfo.adb: Flag 232 is now Implemented_By_Entry.
12786         (Implemented_By_Entry, Set_Implemented_By_Entry): New routines.
12787         (Write_Entry_Flags): Add an entry for Implemented_By_Entry.
12788         (Renamed_In_Spec): New flag
12789         (Has_Pragma_Inline_Always): New flag
12790         Add missing doc for pragma Obsolescent_Warning
12791         Add missing doc for 17 additional unused flags (230-247)
12792         (Is_Derived_Type): Remove condition "not Is_Generic_Type".
12793         Alphabetize with clauses.
12794         Separate Is_Thunk and Has_Thunks flags
12795         (Write_Entity_Flags): Add forgotten entry for Has_Thunks
12796         (Related_Interface): Renamed to Related_Type.
12797         (Has_Thunks/Set_Has_Thunks): Subprograms of new attribute.
12798         (Set_Is_Flag): Restrict the assertion.
12799
12800 2007-12-13  Vincent Celier  <celier@adacore.com>
12801
12802         * errout.adb (Output_Source_Line): Do not keep a trailing space after
12803         the source line number if the source line is empty.
12804
12805 2007-12-13  Geert Bosch  <bosch@adacore.com>
12806
12807         * eval_fat.adb (Decompose_Int): Handle argument of zero.
12808         (Compose): Remove special casing of zero.
12809         (Exponent): Likewise.
12810         (Fraction): Likewise.
12811         (Machine): Likewise.
12812         (Decompose): Update comment.
12813
12814 2007-12-13  Ed Schonberg  <schonberg@adacore.com>
12815
12816         * exp_aggr.adb (Build_Record_Aggr_Code): If there is an aggregate for a
12817         limited ancestor part, initialize controllers of enclosing record
12818         before expanding ancestor aggregate.
12819         (Gen_Assign): If a component of the aggregate is box-initialized, add
12820         code to call Initialize if the component is controlled, and explicit
12821         assignment of null if the component is an access type.
12822
12823         Handle properly aggregates for limited types that appear in object
12824         declarations when the aggregate contains controlled values such as
12825         protected types.
12826         When expanding limited aggregates into individual components, do not
12827         call Adjust on controlled components that are limited.
12828
12829 2007-12-13  Ed Schonberg  <schonberg@adacore.com>
12830
12831         * expander.adb: Take into account N_Subprogram_Renaming_Declaration
12832
12833 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
12834
12835         * exp_ch3.adb (Predefined_Primitive_Bodies): Generate the body of
12836         predefined primitive _Disp_Requeue.
12837         (Make_Predefined_Primitive_Specs): Create the spec for predefined
12838         primitive _Disp_Requeue.
12839         (Make_Predefined_Primitive_Specs/Predefined_Primitive_Bodies): Set the
12840         type of formal Renamed_Eq to Entity_Id (instead of Node_Id).
12841         (Make_Predefined_Primitive_Specs): Spec of "=" needed if the parent is
12842         an interface type. In case of limited interfaces we now declare all the
12843         predefined primitives associated with synchronized interfaces as
12844         abstract.
12845         (Predef_Spec_Or_Body): For interface types generate abstract subprogram
12846         declarations.
12847         (Predefined_Primitive_Bodies): Add body of "=" if the parent of the
12848         tagged type is an interface type and there is no user-defined equality
12849         function.
12850         Add also bodies of predefined primitives associated with synchronized
12851         interfaces.
12852         (Freeze_Record_Type): Do not build bodies of predefined primitives of
12853         interface types because they are now defined abstract.
12854         Add missing documentation.
12855         (Expand_Record_Controller): Update occurrence of Related_Interface
12856         to Related_Type.
12857         (Build_Offset_To_Top_Functions): Do nothing in case of VM.
12858         (Expand_N_Object_Declaration): Take into account VM_Target when handling
12859         class wide interface object declaration.
12860         (Expand_Previous_Access_Type): Do not create a duplicate master entity
12861         if the access type already has one.
12862         (Expand_N_Object_Declaration): Defend against attempt to validity check
12863         generic types. Noticed for -gnatVcf specified with previous errors.
12864
12865 2007-12-13  Arnaud Charlet  <charlet@adacore.com>
12866
12867         * exp_ch4.adb (Expand_N_Attribute_Reference, Displace_Allocator_Pointer,
12868         Expand_Allocator_Expression): Take into account VM_Target
12869
12870         * exp_ch5.adb (Expand_N_Extended_Return_Statement): Do not use
12871         secondary stack when VM_Target /= No_VM
12872
12873 2007-12-13  Javier Miranda  <miranda@adacore.com>
12874             Ed Schonberg  <schonberg@adacore.com>
12875
12876         * exp_ch7.adb (Expand_N_Package_Body): Replace occurrence of attribute
12877         Is_Complation_Unit by Is_Library_Level_Entity in the code
12878         that decides if the static dispatch tables need to be built.
12879         (Wrap_Transient_Declaration): Do not generate a finalization call if
12880         this is a renaming declaration and the renamed object is a component
12881         of a controlled type.
12882
12883 2007-12-13  Gary Dismukes  <dismukes@adacore.com>
12884
12885         * exp_ch8.ads, exp_ch8.adb (Expand_N_Subprogram_Renaming_Declaration):
12886         In the case where the renamed subprogram is a dereference, call
12887         Force_Evaluation on the prefix.
12888
12889 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
12890             Ed Schonberg  <schonberg@adacore.com>
12891
12892         * exp_ch9.adb (Expand_N_Asynchronous_Select,
12893         Expand_N_Conditional_Entry_Call, Expand_N_Timed_Entry_Call): Code and
12894         comment reformatting.
12895         (Set_Privals): Inherit aliased flag from formal. From code reading.
12896         (Build_Simple_Entry_Call): Out parameters of an access type are passed
12897         by copy and initialized from the actual. This includes entry parameters.
12898         (Expand_N_Requeue_Statement): Reimplement in order to handle both Ada 95
12899         and Ada 2005 models of requeue.
12900         (Null_Statements): Still connsider do-end block null if it contains
12901         Unreferenced and Warnings pragmas.
12902         (Expand_N_Accept_Statement): Do not optimize away null do end if
12903         dispatching policy is other than defaulted.
12904         (Expand_N_Timed_Entry_Call): When the triggering statement is a
12905         dispatching call, manually analyze the delay statement.
12906         (Find_Parameter_Type): Move subprogram to Sem_Util.
12907
12908 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
12909             Javier Miranda  <miranda@adacore.com>
12910
12911         * exp_disp.ads, exp_disp.adb (Default_Prim_Op_Position): Primitive
12912         _Disp_Requeue occupies dispatch table slot number 15. Move
12913         _Disp_Timed_Select to slot 16.
12914         (Make_Disp_Requeue_Body, Make_Disp_Requeue_Spec): New routines which
12915         generate the spec and body of _Disp_Reqeueue.
12916         (Make_DT): Build and initialize the second dispatch table.
12917         Handle initialization of RC_Offset when the parent
12918         is a private type with variable size components.
12919         (Make_Secondary_DT): Complete documentation. Add support to
12920         initialize the second dispatch table.
12921         (Make_Tags): Generate the tag of the second dispatch table.
12922         (Register_Primitive): Add support to register primitives in the
12923         second dispatch table.
12924
12925 2007-12-13  Pascal Obry  <obry@adacore.com>
12926
12927         * expect.c (__gnat_kill) [WIN32]: Implement the SIGINT signal on
12928         Windows. This signal is used by gnatmake to kill child processes for
12929         example.
12930
12931 2007-12-13  Javier Miranda  <miranda@adacore.com>
12932
12933         * exp_intr.adb (Expand_Dispatching_Constructor_Call): Add missing
12934         support for generic dispatching constructor calls in which we need to
12935         locate the tag of a secondary dispatch table associated with an
12936         interface type to properly dispatch the call.
12937         (Expand_N_Attribute_Reference [case Address],
12938         Expand_Dispatching_Constructor_Call, Expand_Unc_Deallocation): Fix
12939         handling of VM targets.
12940
12941 2007-12-13  Robert Dewar  <dewar@adacore.com>
12942             Ed Schonberg  <schonberg@adacore.com>
12943
12944         * exp_prag.adb (Expand_Pragma_Assert): Recognize new warning flag for
12945         assert fail
12946
12947         * ug_words: Add entries for -gnatw.a -gnatw.A
12948
12949         * sem_res.adb (Set_String_Literal_Subtype): If the context of the
12950         literal is a subtype with non-static constraints, use the base type of
12951         the context as the base of the string subtype, to prevent type
12952         mismatches in gigi.
12953         (Resolve_Actuals): If the actual is an entity name, generate a
12954         reference before the actual is resolved and expanded, to prevent
12955         spurious warnings on formals of enclosing protected operations.
12956         (Analyze_Overloaded_Selected_Component): If type of prefix if
12957         class-wide, use visible components of base type.
12958         (Resolve_Selected_Component): Ditto.
12959         (Resolve_Short_Circuit): Detect case of pragma Assert argument
12960         evaluating to False, and issue warning message.
12961
12962         * usage.adb: Add lines for -gnatw.a and -gnatw.A
12963
12964 2007-12-13  Emmanuel Briot  <briot@adacore.com>
12965
12966         * g-calend.ads (No_Time): New constant, to represent an uninitialized
12967         time value
12968
12969         * g-catiio.ads, g-catiio.adb (Value): Added support for more date
12970         formats.
12971         (Month_Name_To_Number): New subprogram
12972
12973         * g-dirope.adb (Get_Current_Dir): On windows, normalize the drive
12974         letter to upper-case.
12975
12976 2007-12-13  Robert Dewar  <dewar@adacore.com>
12977             Ed Schonberg  <schonberg@adacore.com>
12978
12979         * gnat1drv.adb (Gnat1drv): Properly set new flag Opt.Real_VMS_Target
12980
12981         * layout.adb (Resolve_Attribute, case 'Access): If designated type of
12982         context is a limited view, use non-limited view when available. If the
12983         non-limited view is an unconstrained array, this enforces consistency
12984         requirements in 3.10.2 (27).
12985         (Layout_Type): For an access type whose designated type is a limited
12986         view, examine its declaration to determine if it is an unconstrained
12987         array, and size the access type accordingly.
12988         (Layout_Type): Do not force 32-bits for convention c subprogram
12989         pointers in -gnatdm mode, only if real vms target.
12990
12991         * sem_attr.adb (Analyze_Access_Attribute): Use new flag
12992         Has_Pragma_Inline_Always instead of obsolete function Is_Always_Inlined
12993         (Analyze_Access_Attribute,Attribute_Address): Remove checks for
12994         violations of the No_Implicit_Dynamic_Code restriction.
12995         (Resolve_Attribute, case 'Access): If designated type of context is a
12996         limited view, use non-limited view when available. If the non-limited
12997         view is an unconstrained array, this enforces consistency requirements
12998         in 3.10.2 (27).
12999         (Layout_Type): For an access type whose designated type is a limited
13000         view, examine its declaration to determine if it is an unconstrained
13001         array, and size the access type accordingly.
13002
13003 2007-12-13  Vincent Celier  <celier@adacore.com>
13004
13005         * gnatcmd.adb (GNATCmd): Do not issue -d= switch to gnatmetric when
13006         object directory of main project does not exist.
13007         On VMS, correctly set then environment variable for the source
13008         directories.
13009
13010 2007-12-13  Vasiliy Fofanov  <fofanov@adacore.com>
13011
13012         * g-regist.ads, g-regist.adb (Set_Value): new parameter Expand; when
13013         set to True this procedure will create the value of type REG_EXPAND_SZ.
13014         It was only possible to create REG_SZ values before.
13015
13016 2007-12-13  Robert Dewar  <dewar@adacore.com>
13017
13018         * g-spchge.ads, g-spchge.adb, g-u3spch.adb, g-u3spch.ads,
13019         g-wispch.adb, g-wispch.ads, g-zspche.adb, g-zspche.ads,
13020         namet-sp.adb, namet-sp.ads: New files.
13021
13022         * g-speche.adb: Use generic routine in g-spchge
13023
13024         * s-wchcnv.ads, s-wchcnv.adb:
13025         Minor code cleanup (make formal type consistent with spec)
13026
13027         * namet.adb: Update comments.
13028
13029         * par-endh.adb (Evaluate_End_Entry): Use new
13030         Namet.Sp.Is_Bad_Spelling_Of function
13031
13032         * par-load.adb (Load): Use new Namet.Sp.Is_Bad_Spelling_Of function
13033
13034         * sem_aggr.adb (Resolve_Record_Aggregate): If a component of an
13035         ancestor is an access type initialized with a box, set its type
13036         explicitly, for use in subsequent expansion.
13037         (Check_Misspelled_Component): Use new Namet.Sp.Is_Bad_Spelling_Of
13038         function
13039
13040 2007-12-13  Robert Dewar  <dewar@adacore.com>
13041
13042         * g-spipat.adb (Break): Fix accessibility error (vsn taking not null
13043         access Vstring)
13044
13045 2007-12-13  Robert Dewar  <dewar@adacore.com>
13046
13047         * inline.adb (Back_End_Cannot_Inline): Use new flag
13048         Has_Pragma_Inline_Always instead of obsolete function Is_Always_Inlined
13049
13050         * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Body): Use new flag
13051         Has_Pragma_Inline_Always instead.
13052         of obsolete function Is_Always_Inlined
13053         (Build_Body_To_Inline): Same change
13054         (Cannot_Inline): Same change
13055         Do not give warning on exception raise in No_Return function
13056
13057         * sem_ch13.adb (Analyze_Record_Representation_Clause): If an inherited
13058         component has two inconsistent component clauses in the same record
13059         representation clause, favor the message that complains about
13060         duplication rather than inconsistency.
13061         Update comments.
13062         (Record_Representation_Clause): Do not warn on missing component
13063         clauses for inherited components of a type extension.
13064         (Rep_Item_Too_Late): Do not attempt to link pragma into rep chain for
13065         an overloadable item if it is a pragma that can apply to multiple
13066         overloadable entities (e.g. Inline) because a pragma cannot be on
13067         more than one chain at a time.
13068         (Validate_Unchecked_Conversion): Add code to warn on unchecked
13069         conversion where one of the operands is Ada.Calendar.Time.
13070         (Analyze_Attribute_Definition_Clause): Fix typo in error message.
13071         For now, ignore Component_Size clause on VM targets, as done for
13072         pragma Pack.
13073
13074 2007-12-13  Emmanuel Briot  <briot@adacore.com>
13075             Vincent Celier  <celier@adacore.com>
13076
13077         * prj.ads, prj.adb (Is_A_Language): Now takes a Name_Id instead of a
13078         string
13079         (Must_Check_Configuration, Default_Language_Is_Ada): new flags in
13080         prj.ads
13081         (Hash): Move instantiation of System.HTable.Hash from spec to body
13082         (prj-nmsc.adb): Optimize calls to Name_Find when on case sensitive
13083         systems, since we do not need to recompute the Name_Id for the canonical
13084         file name.
13085         (Body_Suffix_Id_Of, Spec_Suffix_Id_Of): new version that takes a name_id
13086         as a parameter. This parameter is in fact always "ada" in all calls, and
13087         we were doing 160560 extra calls to Name_Find to convert it to Name_Ada
13088         while loading a project with 40000 files
13089
13090         * prj-attr.adb: Fix name of attribute Dependency_Driver
13091         Change the kind of indexing for attribute Root
13092
13093         * prj-dect.adb (Parse_Declarative_Items): Allow redeclarations of
13094         variables already declared, in case constructions.
13095
13096         * prj-env.adb (Initialize): Reset Current_Source_Path_File and
13097         Current_Object_Path_File to No_Path.
13098
13099         * prj-ext.adb (Initialize_Project_Path): In multi language mode, use
13100         ADA_PROJECT_PATH if value of GPR_PROJECT_PATH is empty.
13101
13102         * prj-makr.adb: new parameter Current_Dir
13103
13104         * prj-nmsc.ads, prj-nmsc.adb (Find_Explicit_Sources): Do not look for
13105         Ada sources when language is not Ada.
13106         Change Opt.Follow_Links to Opt.Follow_Links_For_Files.
13107         (Find_Excluded_Sources, Find_Explicit_Sources): new subprograms
13108         (Must_Check_Configuration, Default_Language_Is_Ada): new flags.
13109         (Locate_Directory): Always resolve links when computing Canonical_Path
13110         (Look_For_Sources): Make sure that Name_Buffer contains the file name
13111         in Source_Files before checking for the presence of a directory
13112         separator.
13113         Optimize calls to Name_Find when on case sensitive systems.
13114         (Body_Suffix_Id_Of, Spec_Suffix_Id_Of): new version that takes a name_id
13115         as a parameter.
13116         (Prj.Nmsc.Check): new parameter Current_Dir
13117         (Check_Ada_Naming_Schemes): Restrictions on suffixes are relaxed. They
13118         cannot be empty and the spec suffix cannot be the same as the body or
13119         separate suffix.
13120         (Get_Unit): When a file name can be of several unit kinds (spec, body or
13121         subunit), always consider the longest suffix.
13122         (Check_Configuration): Do not issue an error if there is no compiler
13123         for a language. Just issue a warning and ignore the sources for the
13124         language.
13125         (Check_Library_Attributes): Only check Library_Dir if Library_Name is
13126         not empty.
13127         (Check_Naming_Schemes.Maked_Unit): Only output message if high verbosity
13128         (Unit_Exceptions): New hash table
13129         (Check_Naming_Schemes): Check if a file that could be a unit because of
13130         the naming scheme is not in fact a source because there is an exception
13131         for the unit.
13132         (Look_For_Sources): Put the unit exceptions in hash table
13133         Unit_Exceptions
13134         (Get_Unit_Exceptions): Give initial value No_Source to local variable
13135         Other_Part to avoid exception when code is compiled with validity
13136         checking.
13137         (Get_Sources_From_File): Check that there is no directory information
13138         in the file names.
13139         (Look_For_Sources): Check that there is no directory information in the
13140         list of file names in Source_Files.
13141         (Look_For_Sources): In multi-language mode, do not allow exception file
13142         names that are excluded.
13143         (Excluded_Sources_Htable): New hash table
13144         (Search_Directories.Check_File): New procedure to simplify
13145         Search_Directories.
13146         (Search_Directories): Do not consider excluded sources
13147         (Look_For_Sources): Populate Excluded_Sources_Htable before calling
13148         Search_Directories.
13149         (Get_Exceptions): Set component Lang_Kind of Source_Data
13150         (Get_Unit_Exceptions): Ditto
13151         (Search_Directories): Ditto
13152
13153         * prj-pars.adb: new parameter Current_Dir
13154
13155         * prj-part.ads, prj-part.adb:
13156         Change Opt.Follow_Links to Opt.Follow_Links_For_Files.
13157         (Opt.Follow_Links_For_Dirs): New flag
13158         (Project_Path_Name_Of): Cache information returned by this routine as
13159         Locate_Regular_File is a costly routine. The code to output a log
13160         information and the effective call to Locate_Regular_File is now
13161         factorized into a routine (code clean-up).
13162         (Parse, Parse_Single_Project): new parameter Current_Dir
13163         When main project file cannot be found, indicate in the error
13164         message the project path that was used to do the search.
13165
13166         * prj-proc.ads, prj-proc.adb (Opt.Follow_Links_For_Dirs): New flag
13167         (Prj.Proc.Process*): new parameter Current_Dir
13168
13169         * switch-m.adb: Change Opt.Follow_Links to Opt.Follow_Links_For_Files
13170
13171 2007-12-13  Bob Duff  <duff@adacore.com>
13172
13173         * restrict.ads, restrict.adb (Check_Implicit_Dynamic_Code_Allowed): New
13174         procedure to be called from the back end to check the
13175         No_Implicit_Dynamic_Code restriction.
13176
13177 2007-12-13  Arnaud Charlet  <charlet@adacore.com>
13178
13179         * rtsfind.adb (Check_CRT): Take into account RTE_Available_Call
13180         Fixes another case where RTE_Available_Call was ignored instead of being
13181         taken into account.
13182         (Load_Fail): Ditto.
13183
13184         * rtsfind.ads: Add new entries.
13185
13186 2007-12-13  Robert Dewar  <dewar@adacore.com>
13187
13188         * g-byorma.adb, g-byorma.ads, g-decstr.adb, g-decstr.ads,
13189         g-deutst.ads, g-encstr.adb, g-encstr.ads, g-enutst.ads: New files.
13190
13191         * scn.adb: Implement BOM recognition
13192
13193 2007-12-13  Thomas Quinot  <quinot@adacore.com>
13194             Ed Schonberg  <schonberg@adacore.com>
13195
13196         * sem_ch10.adb (Check_Private_Child_Unit): A non-private library level
13197         subprogram body that acts as its own spec may not have a non-private
13198         WITH clause on a private sibling.
13199         (Build_Unit_Name): If the parent unit in the name in a with_clause on a
13200         child unit is a renaming, create an implicit with_clause on that
13201         parent, and not on the unit it renames, to prevent visibility errors
13202         in the current unit.
13203
13204 2007-12-13  Ed Schonberg  <schonberg@adacore.com>
13205
13206         * sem_ch12.adb (Instantiate_Formal_Subprogram): In the subprogram
13207         renaming declaration, use the Slocs of the formal parameters from the
13208         declaration of the formal subprogram when creating the formal parameter
13209         entities in the renaming declaration.
13210         (Analyze_Formal_Type_Declaration): Change the placement of the error
13211         message concerning illegal known discriminants. It is now posted on the
13212         type rather than on the first discriminant. This change ensures early
13213         error report.
13214         (Freeze_Subprogram_Body): If the generic subprogram is nested within
13215         the package body that contains the instance, do not generate an
13216         out-of-place freeze node for the enclosing package.
13217         (Collect_Previous_Instantiations): Ignore internal instantiations
13218         generated for formal packages.
13219         (Validate_Derived_Type_Instance): Add a check that when a formal
13220         derived type is Known_To_Have_Preelab_Init then the actual type must
13221         have preelaborable initialization, and issue an error when this
13222         condition is violated.
13223
13224 2007-12-13  Robert Dewar  <dewar@adacore.com>
13225
13226         * s-imenne.adb, s-imenne.ads: New files.
13227
13228         * s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads, s-imgdec.adb,
13229         s-imgdec.ads, s-imgenu.ads, s-imgint.adb, s-imgint.ads, s-imglld.adb,
13230         s-imglld.ads, s-imglli.adb, s-imglli.ads, s-imgllu.adb, s-imgllu.ads,
13231         s-imgrea.adb, s-imgrea.ads, s-imguns.adb, s-imguns.ads, s-imgwch.adb,
13232         s-imgwch.ads: New calling sequence for Image routines to avoid sec
13233         stack usage.
13234
13235 2007-12-13  Javier Miranda  <miranda@adacore.com>
13236             Ed Schonberg  <schonberg@adacore.com>
13237
13238         * sem_ch3.ads, sem_ch3.adb (Check_Abstract_Overriding): Avoid
13239         generation of spurious error if parent is an interface type; caused
13240         because predefined primitive bodies will be generated later by
13241         Freeze_Record_Type.
13242         (Process_Subtype): The subtype inherits the Known_To_Have_Preelab_Init
13243         flag.
13244         (Derive_Subprograms): Handle derivations of predefined primitives
13245         after all the user-defined primitives to ensure that they are
13246         found in proper order in instantiations.
13247         (Add_Interface_Tag_Components, Inherit_Components): Update occurrences
13248         of Related_Interface to Related_Type.
13249         (Record_Type_Declaration): Minor reordering of calls to decorate the
13250         Tag component because the entity must have set its Ekind attribute
13251         before setting its Is_Tag attribute.
13252         (Analyze_Subtype_Declaration): In the case of subtypes with
13253         Private_Kind, inherit Known_To_Have_Preelab_Init from the parent.
13254
13255 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
13256             Ed Schonberg  <schonberg@adacore.com>
13257
13258         * sem_ch4.adb (Analyze_Selected_Component): Include the requeue
13259         statement to the list of contexts where a selected component with a
13260         concurrent tagged type prefix should yield a primitive operation.
13261         (Find_Primitive_Operation): Handle case of class-wide types.
13262         (Analyze_Overloaded_Selected_Component): If type of prefix is
13263         class-wide, use visible components of base type.
13264         (Resolve_Selected_Component): Ditto.
13265         (Try_Primitive_Operation, Collect_Generic_Type_Ops): If the type is a
13266         formal of a generic subprogram. find candidate interpretations by
13267         scanning the list of generic formal declarations.:
13268         (Process_Implicit_Dereference_Prefix): If the prefix has an incomplete
13269         type from a limited_with_clause, and the full view is available, use it
13270         for subsequent semantic checks.
13271         (Check_Misspelled_Selector): Use Namet.Sp.Is_Bad_Spelling_Of function
13272         (Find_Primitive_Operation): New function.
13273         (Analyze_Overloaded_Selected_Component): insert explicit dereference
13274         only once if several interpretations of the prefix yield an access type.
13275         (Try_Object_Operation): Code and comment cleanup.
13276         (Analyze_Selected_Component): Reorder local variables. Minot comment and
13277         code reformatting. When the type of the prefix is tagged concurrent, a
13278         correct interpretation might be available in the primitive and
13279         class-wide operations of the type.
13280
13281 2007-12-13  Robert Dewar  <dewar@adacore.com>
13282             Ed Schonberg  <schonberg@adacore.com>
13283
13284         * sem_ch8.adb (Analyze_Subprogram_Renaming): Special error message for
13285         renaming entry as subprogram using rename-as-body if subprogram spec
13286         frozen.
13287         (Use_One_Type): The clause is legal on an access type whose designated
13288         type has a limited view.
13289         (Find_Direct_Name): Use Namet.Sp.Is_Bad_Spelling_Of function
13290         (Find_Expanded_Name): Use Namet.Sp.Is_Bad_Spelling_Of function
13291         (Analyze_Renamed_Primitive_Operation): new procedure to determine the
13292         operation denoted by a selected component.
13293         (Analyze_Renamed_Entry): Resolve the prefix of the entry name, because
13294         it can be an expression, possibly overloaded, that returns a task or
13295         an access to one.
13296
13297 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
13298             Gary Dismukes  <dismukes@adacore.com>
13299
13300         * sem_ch9.adb (Analyze_Requeue): Add a local flag to capture whether a
13301         requeue statement is dispatching. Do not emit an error when the name is
13302         not an entry and the context is a dispatching select. Add code to
13303         perform subtype conformance between the formals of the current entry
13304         and those of the target interface primitive.
13305         (Analyze_Asynchronous_Select, Analyze_Conditional_Entry_Call, Analyze_
13306         Timed_Entry_Call): Analyze the triggering statement as the first step of
13307         the processing. If this is a dispatching select, postpone the analysis
13308         of all select statements until the Expander transforms the select. This
13309         approach avoids generating duplicate identifiers after the Expander has
13310         replicated some of the select statements. In case the Expander is
13311         disabled, perform regular analysis.
13312         (Check_Triggering_Statement): New routine.
13313         (Analyze_Requeue): Exclude any interpretations that are not entries when
13314         checking overloaded names in a requeue. Also test type conformance for
13315         matching interpretations rather than requiring subtype conformance at
13316         that point to conform with the RM's resolution rule for requeues.
13317
13318 2007-12-13  Ed Schonberg  <schonberg@adacore.com>
13319
13320         * sem_disp.adb (Check_Dispatching_Call): If an actual in a call to an
13321         inherited operation is a defaulted tag-indeterminate call, and there is
13322         a statically tagged actual, use the static tag as a controlling actual
13323         for the defaulted actual.
13324
13325 2007-12-13  Geert Bosch  <bosch@adacore.com>
13326
13327         * sem_eval.adb (Eval_Real_Literal): N_Constant_Declaration is a static
13328         context, so do not call Check_Non_Static_Context.
13329
13330 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
13331
13332         * sem_type.adb (Function_Interp_Has_Abstract_Op): Add guard to check
13333         whether formal E is an entity which may have parameters.
13334
13335 2007-12-13  Bob Duff  <duff@adacore.com>
13336             Javier Miranda  <miranda@adacore.com>
13337             Robert Dewar  <dewar@adacore.com>
13338
13339         * sem_util.ads, sem_util.adb (Is_Concurrent_Interface): New routine.
13340         (Set_Convention): New procedure to set the Convention flag, and in
13341         addition make sure the Favor_Top_Level flag is kept in sync (all
13342         foreign-language conventions require Favor_Top_Level = True).
13343         (Collect_Abstract_Interfaces): Update occurrences of Related_Interface
13344         to Related_Type.
13345         (Collect_Interfaces_Info): Minor update to handle the two secondary
13346         dispatch tables. Update occurrence of Related_Interface to Related_Type.
13347         (Generate_Parent_Ref): Add parameter to specify entity to check
13348         (Is_Preelaborable_Expression): Allow the name of a discriminant to
13349         initialize a component of a type with preelaborable initialization.
13350         This includes the case of a discriminal used in such a context.
13351         (Is_Dependent_Component_Of_Mutable_Object): Take into account the
13352         latest Ada 2005 rules about renaming and 'Access of
13353         discriminant-dependent components.
13354         (Check_Nested_Access): Add handling when there are no enclosing
13355         subprograms (e.g. case of a package body).
13356         (Find_Parameter_Type): Factor routine from several other compiler files.
13357         Remove routine from Find_Overridden_Synchronized_Primitive.
13358
13359 2007-12-13  Thomas Quinot  <quinot@adacore.com>
13360
13361         * sinput.adb (Get_Source_File_Index): Add assertion to guard against
13362         an invalid access to an uninitialized slot in the
13363         Source_File_Index_Table.
13364
13365 2007-12-13  Thomas Quinot  <quinot@adacore.com>
13366
13367         * sinput-l.adb (Load_File): Disable style checks when preprocessing.
13368
13369 2007-12-13  Bob Duff  <duff@adacore.com>
13370
13371         * s-soflin.ads: Apply new pragma Favor_Top_Level to all
13372         access-to-subprogram types in this package.
13373
13374 2007-12-13  Olivier Hainque  <hainque@adacore.com>
13375
13376         * s-stausa.ads (Stack_Analyzer): Remove First_Is_Topmost, redundant
13377         with Stack_Grows_Down in System.Parameters. Rename Array_Address into
13378         Stack_Overlay_Address and document that we are using an internal
13379         abstraction.
13380         (Byte_Size, Unsigned_32_Size): Remove, now useless.
13381         (Pattern_Type, Bytes_Per_Pattern): New subtype and constant, to be used
13382         consistently throughout the various implementation pieces.
13383
13384         * s-stausa.adb (Stack_Slots): New type, abstraction for the stack
13385         overlay we are using to fill the stack area with patterns.
13386         (Top_Slot_Index_In, Bottom_Slot_Index_In): Operations on Stack_Slots.
13387         (Push_Index_Step_For, Pop_Index_Step_For): Likewise.
13388         (Fill_Stack, Compute_Result): Use the Stack_Slots abstraction.
13389
13390 2007-12-13  Robert Dewar  <dewar@adacore.com>
13391
13392         * s-stoele.adb ("mod"): mod negative value raises Constraint_Error
13393
13394 2007-12-13  Arnaud Charlet  <charlet@adacore.com>
13395
13396         * s-tassta.adb:
13397         (Create_Task): Take into account tasks created by foreign threads.
13398         Code clean up: use constants instead of hard coded values.
13399
13400 2007-12-13  Robert Dewar  <dewar@adacore.com>
13401
13402         * styleg.adb (Check_Comment): More liberal rules for comment placement
13403
13404 2007-12-13  Olivier Hainque  <hainque@adacore.com>
13405
13406         * tb-alvms.c (struct tb_entry_t, __gnat_backtrace): Revert back to use
13407         of Procedure Value instead of Frame Pointer as the invocation
13408         identifier associated with the instruction pointer in each traceback
13409         entry.
13410
13411         * g-trasym-vms-alpha.adb (Traceback_Entry, PV_For, FP_For,
13412         TB_Entry_For): Revert back to use of Procedure Value instead of Frame
13413         Pointer as the invocation identifier passed to tbk$symbolize.
13414
13415         * s-traent-vms.ads, s-traent-vms.adb
13416         (Traceback_Entry, PV_For, FP_For, TB_Entry_For): Revert back to use of
13417         Procedure Value instead of Frame Pointer as the invocation identifier
13418         passed to tbk$symbolize.
13419
13420 2007-12-13  Robert Dewar  <dewar@adacore.com>
13421
13422         * tbuild.ads, tbuild.adb:
13423         Fix location of flag for unrecognized pragma message
13424
13425 2007-12-13  Robert Dewar  <dewar@adacore.com>
13426
13427         * treepr.ads, treepr.adb: (pl): implement use of positive value
13428         shorthands
13429
13430 2007-12-13  Robert Dewar  <dewar@adacore.com>
13431
13432         * xeinfo.adb: Remove warnings
13433         * xnmake.adb: Remove warnings
13434         * xsinfo.adb: Remove warnings
13435         * xtreeprs.adb: Remove warnings
13436         * xsnames.adb: Remove warnings
13437
13438         * a-ngcoar.adb: Fix typo.
13439         * s-interr.adb: Minor reformatting
13440         * env.c: Minor reformatting.
13441         * g-bytswa.adb: Minor reformatting.
13442         * g-rannum.ads: Minor documentation improvements
13443         * s-tasinf-mingw.adb: Minor header fix
13444         * a-clrefi.adb: Minor reformatting
13445         * g-sttsne.ads: Minor documentation improvement
13446         * g-sttsne-locking.ads: Minor documentation improvement
13447         * g-soliop-solaris.ads: Minor documentation improvement
13448         * g-soliop-mingw.ads: Minor documentation improvement
13449         * g-soliop.ads: Minor documentation improvement
13450         * exp_aggr.ads: Minor reformatting
13451         * debug.adb: Add documentation for the gprbuild debug flags
13452         * exp_ch2.adb: Use Nkind_In to simplify code throughout
13453         * exp_pakd.adb: Minor reformatting
13454
13455         * g-altive.ads, g-alleve.adb: Remove assertions.
13456         Add comment about minor differences between targets regarding
13457         floating-point operations.
13458
13459         * g-thread.adb: Remove pragma unreferenced.
13460         * lib.ads: Minor reformatting
13461         * par-ch9.adb: Minor reformatting of error messages
13462         * sem_case.adb: Minor reformatting
13463         * s-fileio.adb: Minor reformattinng
13464         * s-vmexta.ads: Minor typo
13465         * vxaddr2line.adb:
13466         Take into account 'Success' value as per new GNAT warning.
13467
13468 2007-12-13  Vincent Celier  <celier@adacore.com>
13469
13470         * a-direct.adb (Create_Path): Always take '/' as a directory separator,
13471         even on Windows
13472
13473 2007-12-13  Robert Dewar  <dewar@adacore.com>
13474             Bob Duff  <duff@adacore.com>
13475
13476         * gnat_ugn.texi: Dcoument new rules for style check comment alignment
13477         Document that suffixes may be terminations of each others
13478         Add doc for -gnatw.a and -gnatw.A
13479         Document gnatbind -Wx switch
13480         Document BOM recognition
13481         Document pragma Implemented_By_Entry.
13482         Document new units.
13483
13484         * gnat_rm.texi: (Favor_Top_Level): Document new pragma.
13485         Add doc for pragma Unreferenced suppressing no entities referenced msg
13486         Add documentation of GNAT.Directory_Operations.Iteration
13487         Add documentation of GNAT.Random_Numbers
13488         Add documentation for pragma Shared.
13489         Correct documentation for Bit_Order
13490         Add documentation for the Pool_Address attribute.
13491         Fix and improve documentation of pragma machine_attribute.
13492         New pragma Fast_Math
13493         Document BOM recognition
13494
13495         * vms_data.ads: Add entries for -gnatw.a -gnatw.A
13496         Add /Wide_Character_Encoding for binder
13497         Add qualifier for the new gnatpp option --no-separate-loop-then
13498
13499 2007-12-13  Matthew Heaney  <heaney@adacore.com>
13500
13501         * a-cohase.ads, a-cihama.ads, a-cihase.ads, a-cohama.ads: Document
13502         which generic formal operations are called for each operation.
13503
13504 2007-12-13  Olivier Hainque  <hainque@adacore.com>
13505
13506         * tb-gcc.c (uw_data_t, trace_callback): Only define if not GCC-SJLJ eh.
13507         (__gnat_backtrace): Early return 0 if using GCC-SJLJ eh.
13508
13509 2007-12-13  Emmanuel Briot  <briot@adacore.com>
13510
13511         * s-os_lib.ads, s-os_lib.adb (Normalize_Pathname): Do not compute
13512         Reference_Dir unless we actually need it.
13513
13514 2007-12-13  Vasiliy Fofanov  <fofanov@adacore.com>
13515             Tristan Gingold  <gingold@adacore.com>
13516
13517         * g-socthi-vms.ads (Fd_Set_Access): make it 32-bit.
13518
13519         * s-osprim-vms.adb,
13520         a-calend-vms.adb: Remove pragma warning off and add pragma
13521         unreferenced.
13522
13523 2007-12-13  Robert Dewar  <dewar@adacore.com>
13524
13525         * impunit.adb: Add entries for missing units
13526
13527         * Makefile.rtl: Add new run-time units.
13528
13529         * Make-lang.in:  Update dependencies.
13530
13531 2007-12-13  Bob Duff  <duff@adacore.com>
13532
13533         * itypes.ads, itypes.adb (Create_Itype): For access-to-subprogram
13534         types, set Can_Use_Internal_Rep appropriately, based on
13535         Always_Compatible_Rep_On_Target.
13536
13537 2007-12-13  Gary Dismukes  <dismukes@adacore.com>
13538             Arnaud Charlet  <charlet@adacore.com>
13539
13540         * make.adb (Scan_Make_Arg): Add test for -aamp_target switch, passing
13541         it to the front end and setting the aamp_target environment variable
13542         to the switch's argument to ensure that gnaampbind and gnaamplink will
13543         take the specified library into account.
13544         (Make): Only set Check_Object_Consistency to False for JVM, not for CIL
13545         target, since the CIL compiler supports an "object" file (.il files).
13546
13547 2007-12-13  Vincent Celier  <celier@adacore.com>
13548
13549         * symbols-processing-vms-ia64.adb (Process.Skip_Half): New procedure
13550         (Process.H): Remove variable. Replace Read_Half (H) with Skip_Half.
13551
13552 2007-12-13  Geert Bosch  <bosch@adacore.com>
13553
13554         * s-parame-vxworks.adb:
13555         Update comments to reflect usage of this package by Nucleus.
13556
13557 2007-12-13  Arnaud Charlet  <charlet@adacore.com>
13558
13559         * i-vxwork.ads: Kill new warning on Convention C, since changing the
13560         spec would break code.
13561
13562         * i-forbla-unimplemented.ads, vx_stack_info.c: New files.
13563
13564         * system-vxworks-alpha.ads: Removed.
13565
13566 2007-12-10  Eric Botcazou  <ebotcazou@adacore.com>
13567
13568         * ada-tree.h (TYPE_RETURNS_BY_TARGET_PTR_P): Move around.
13569
13570 2007-12-09  Samuel Tardieu  <sam@rfc1149.net>
13571
13572         PR ada/34366
13573         * sem_ch3.adb (Designates_T): New function.
13574         (Mentions_T): Factor reusable part of the logic into Designates_T.
13575         Consider non-access parameters and access and non-access result.
13576         (Check_Anonymous_Access_Components): Set ekind of anonymous access to
13577         E_Subprogram_Type to E_Anonymous_Access_Subprogram_Type.
13578
13579         * einfo.ads: Update comment for E_Anonymous_Access_Subprogram_Type.
13580
13581 2007-12-07  Ludovic Brenta  <ludovic@ludovic-brenta.org>
13582
13583         PR ada/34361
13584         * mlib-tgt.adb, mlib-tgt.ads: Fix comments at the top to reflect
13585         the new implementation of target-specific calls.
13586
13587 2007-12-07  Olivier Hainque  <hainque@adacore.com>
13588
13589         * decl.c (gnat_to_gnu_entity) <case E_Access_Type>: When computing
13590         the designated full view, only follow a second level Full_View link
13591         for Non_Limited_Views of from_limited_with references.
13592
13593 2007-12-07  Samuel Tardieu  <sam@rfc1149.net>
13594
13595         PR ada/15805
13596         * sem_ch6.adb (Process_Formals): Prevent an access type formal
13597         to be initialized with an access to constant object.
13598
13599         * sem_ch3.adb (Analyze_Object_Declaration): Signal an error
13600         when an access to constant is used to initialize an access
13601         value.
13602
13603         PR ada/21346
13604         * a-direct.adb (Compose): Containing_Directory can be an empty string.
13605
13606 2007-12-07  Olivier Hainque  <hainque@adacore.com>
13607
13608         PR ada/34173
13609         * decl.c (gnat_to_gnu_entity) <case E_Array_Type>: When setting
13610         the alignment on the GCC XUA array type, set TYPE_USER_ALIGN if
13611         this is from an alignment clause on the GNAT entity.
13612         * utils.c (create_field_decl): Rewrite the computation of DECL_ALIGN
13613         to distinguish the case where we set it from the type's alignment.
13614         When so, propagate TYPE_USER_ALIGN into DECL_USER_ALIGN to indicate
13615         whether this alignment was set from an explicit alignment clause.
13616
13617 2007-12-06  Eric Botcazou  <ebotcazou@adacore.com>
13618
13619         * decl.c (make_packable_type): Revert last change.
13620         (gnat_to_gnu_field): Avoid setting size and position multiple times.
13621         * utils.c (finish_record_type): Retrieve the real name of the type.
13622
13623 2007-12-05  Eric Botcazou  <ebotcazou@adacore.com>
13624
13625         * trans.c (lvalue_required_p): Take base node directly instead
13626         of its parent.  Rename second parameter to 'gnu_type'.
13627         <N_Indexed_Component>: Return 0 if the node isn't the prefix.
13628         <N_Slice>: Likewise.
13629         (Identifier_to_gnu): Rename parent_requires_lvalue to require_lvalue.
13630         Adjust calls to lvalue_required_p.
13631
13632 2007-12-05  Samuel Tardieu  <sam@rfc1149.net>
13633
13634         PR ada/21489
13635         * exp_ch9.adb (Build_Simple_Entry_Call): Initialize OUT access type
13636         parameters of an entry call.
13637
13638 2007-12-03  Robert Dewar  <dewar@adacore.com>
13639             Samuel Tardieu  <sam@rfc1149.net>
13640
13641         PR ada/34287
13642         * sem_util.adb (Safe_To_Capture_Value): Do not capture values
13643         of variables declared in a library-level package.
13644
13645 2007-12-02  Samuel Tardieu  <sam@rfc1149.net>
13646
13647         * clean.adb (Clean_Library_Directory): Use Empty_String'Access intead
13648         of Empty_String'Unchecked_Access.
13649
13650         * Makefile.in: Add support for sh4-linux.
13651
13652         * system-linux-sh4.ads: New file.
13653
13654 2007-12-01  Kostik Belousov  <kostikbel@ukr.net>
13655
13656         PR ada/33722
13657         * env.c (__gnat_setenv): FreeBSD 7 has a POSIX conformant putenv()
13658         and its argument must not be free()ed.
13659
13660 2007-11-29  Eric Botcazou  <ebotcazou@adacore.com>
13661
13662         * decl.c (make_packable_type): Retrieve the real name of the type.
13663         (maybe_pad_type): Simplify similar code.
13664
13665 2007-11-28  Samuel Tardieu  <sam@rfc1149.net>
13666
13667         PR ada/15804
13668         * par-ch3.adb (P_Variant_Part): Signal an error when anything other
13669         than an identifier is used after "case" in a variant_part.
13670
13671         PR ada/17318
13672         * par-ch4.adb (Is_Parameterless_Attribute): New map.
13673         (P_Name, Scan_Apostrophe block): Parse left parenthesis following
13674         attribute name or not depending on the new map.
13675
13676         * sem-attr.adb (Analyze_Attribute): Parameterless attributes
13677         returning a string or a type will not be called with improper
13678         arguments.
13679
13680         * sem-attr.ads (Attribute_Class_Array): Move to snames.ads.
13681
13682         * snames.ads (Attribute_Class_Array): Moved from sem-attr.ads.
13683
13684         PR ada/32792
13685         * sem_attr.adb (Analyze_Attribute, Attribute_Integer_Value clause):
13686         Signal an error when attribute argument is a fixed-point value of
13687         an unknown type.
13688
13689         PR ada/22559
13690         * sem_ch3.adb (Build_Derived_Numeric_Type): Do not set RM_Size on
13691         a derived ordinary fixed point type.
13692
13693         * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Recompute
13694         RM_Size when a Small clause is found.
13695
13696 2007-11-26  Andreas Krebbel  <krebbel1@de.ibm.com>
13697
13698         PR 34081/C++
13699         * trans.c (Subprogram_Body_to_gnu, Compilation_Unit_to_gnu):
13700         Pass 'false' for the new allocate_struct_function parameter.
13701         * utils.c (build_function_stub): Likewise.
13702
13703 2007-11-25  Richard Guenther  <rguenther@suse.de>
13704
13705         * utils.c (gnat_pushlevel): Use BLOCK_CHAIN.
13706         (gnat_poplevel): Likewise.
13707
13708 2007-11-25  Eric Botcazou  <ebotcazou@adacore.com>
13709
13710         * decl.c (gnat_to_gnu_entity) <E_Record_Type>: If the type has
13711         strict alignment, no alignment clause and a known static size, cap
13712         the type alignment to the greatest power of 2 factor of the size.
13713         (gnat_to_gnu_field): If the field has a component clause, is aliased
13714         or of a type with strict alignment, require that its size be equal to
13715         that of the type.
13716         (validate_size): Use the type size as the minimum size for a type with
13717         strict alignment.
13718
13719 2007-11-23  Samuel Tardieu  <sam@rfc1149.net>
13720
13721         * s-inmaop-posix.adb, s-intman-vxworks.adb, s-taprop-hpux-dce.adb,
13722         s-taprop-irix.adb, s-taprop-linux.adb, s-taprop-lynxos.adb,
13723         s-taprop-posix.adb, s-taprop-tru64.adb, s-taprop-vxworks.adb:
13724         Use 'Access instead of 'Unchecked_Access in second and third
13725         arguments of pthread_sigmask.
13726
13727 2007-11-23  Eric Botcazou  <ebotcazou@adacore.com>
13728
13729         * decl.c (ceil_alignment): New function.
13730         (gnat_to_gnu_entity): Use it to set the alignment on atomic types.
13731         (make_packable_type): Likewise.
13732
13733 2007-11-22  Olivier Hainque  <hainque@adacore.com>
13734
13735         * trans.c (gnat_to_gnu) <case N_Free_Statement>: Reformat lines
13736         to fit in 80 columns.
13737
13738 2007-11-21  Aurelien Jarno  <aurelien@aurel32.net>
13739
13740         * s-osinte-kfreebsd-gnu.ads (To_Target_Priority): New function.
13741         * Makefile.in: Add EH_MECHANISM=-gcc to kfreebsd-gnu. Remove SYMLIB.
13742
13743 2007-11-19  Eric Botcazou  <ebotcazou@adacore.com>
13744
13745         PR ada/34098
13746         * misc.c (gnat_adjust_rli): Delete.
13747         (gnat_init): Do not initialize the translation code here.
13748         Do not call set_lang_adjust_rli.
13749         * trans.c (init_code_table): Make static.
13750         (gnat_init_stmt_group): Delete.
13751         (gigi): Initialize the translation code entirely here.
13752         Emit debug info for the common types here instead of...
13753         * utils.c (gnat_init_decl_processing): ...here.
13754         * gigi.h (init_code_table): Delete.
13755         (gnat_init_stmt_group): Likewise.
13756
13757 2007-11-16  Olivier Hainque  <hainque@adacore.com>
13758
13759         * utils2.c (build_call_alloc_dealloc) <if gnu_obj>: Move the code
13760         retrieving an allocator return value from a super-aligned address from
13761         here to ...
13762         * trans.c (gnat_to_gnu) <case N_Free_Statement>: ... here, and don't
13763         expect a super-aligned address for a fat or thin pointer.
13764
13765 2007-11-14  Eric Botcazou  <ebotcazou@adacore.com>
13766
13767         * trans.c (call_to_gnu): Always set the source location on the call
13768         expression.  If the function returns-by-target, also set it on the
13769         address expression.
13770
13771 2007-11-14  Samuel Tardieu  <sam@rfc1149.net>
13772
13773         * adaint.c, init.c, initialize.c, link.c: Remove system-specific
13774         sections of non-supported Interix target.
13775
13776         * s-osinte-interix.ads: Removed.
13777
13778         * i-cstrin.ads (chars_ptr): Make it a C convention type.
13779
13780 2007-11-13  Samuel Tardieu  <sam@rfc1149.net>
13781
13782         * a-tasatt.adb: Add a comment at the beginning of the package
13783         explaining why in general 'Unchecked_Access must be used instead
13784         of 'Access.
13785
13786         * sem_prag.adb (Process_Convention): Move the test for the
13787         entity on which the Convention pragma applies down to also
13788         forbid pragma Convention on enumeration literals reached
13789         through renamings.
13790
13791 2007-11-10  Samuel Tardieu  <sam@rfc1149.net>
13792
13793         * a-tasatt.adb: Revert previous change for this file as it will
13794         generate an error when this package is instantiated from a
13795         local context.
13796
13797 2007-11-07  Samuel Tardieu  <sam@rfc1149.net>
13798
13799         * a-tasatt.adb: Type Wrapper should be declared in comment instead
13800         of already declared type Node_Access.
13801         Use 'Access instead of 'Unchecked_Access when applicable. Local
13802         lifetime is the one of the package.
13803         (Set_Value): W is allocated on the heap.
13804
13805         * g-socket.adb: Use 'Access instead of 'Unchecked_Access when
13806         applicable.
13807         (Get_Socket_Option): Optlen formal of C_Getsockopt is of an anonymous
13808         access type.
13809         (Receive_Socket): Fromlen formal of C_Recvfrom is of an anonymous
13810         access type.
13811
13812         * s-taasde.adb: Use 'Access instead of 'Unchecked_Access when
13813         applicable.
13814         (elaboration code): Timer_Queue lifetime is the one of the
13815         package.
13816
13817         * tracebak.c (i386 alternative): Remove useless comparaison
13818         which is always false; LOWEST_ADDRESS is 0 and is never greater
13819         than an unsigned integer.
13820
13821         * sem_attr.adb (Analyze_Attribute): Remove duplicate identical
13822         embedded check for "Ada_Version >= Ada_05".
13823
13824 2007-11-07  Olivier Hainque  <hainque@adacore.com>
13825
13826         * decl.c (make_aligning_type): Set the mode of the RECORD_TYPE we
13827         craft and expand comment.
13828
13829 2007-11-01  Eric Botcazou  <ebotcazou@adacore.com>
13830
13831         * lang-specs.h: Move translation of -fRTS= after -gnatez switch.
13832
13833 2007-10-23  Eric Botcazou  <ebotcazou@adacore.com>
13834
13835         * misc.c (gnat_handle_option): Replace call to abort with
13836         call to gcc_unreachable.
13837         (gnat_init): Likewise.
13838         (gnat_expand_expr): Likewise.
13839         (fp_prec_to_size): Likewise.
13840         (fp_size_to_prec): Likewise.
13841
13842 2007-10-23  Richard Guenther  <rguenther@suse.de>
13843
13844         PR bootstrap/33608
13845         * tracebak.c: #undef abort after including system.h.
13846
13847 2007-10-20  Danny Smith  <dannysmith@users.sourceforge.net>
13848
13849         * Makefile.in (LIBGNAT_TARGET_PAIRS) Add s-tasinf-mingw.adb,
13850         s-tasinf-mingw.ads, a-exetim-mingw.adb, a-exetim-mingw.ads
13851         for win32 targets.
13852         (EXTRA_GNATRTL_TASKING_OBJS): Add a-exetim.o for win32 targets.
13853
13854 2007-10-15  Eric Botcazou  <ebotcazou@adacore.com>
13855
13856         * s-osinte-tru64.adb: (Hide_Yellow_Zone): Add On parameter.
13857         Set the protection status of the guard page based on the value of On.
13858
13859         * s-osinte-tru64.ads: (Hide_Yellow_Zone): Add On parameter.
13860
13861         * s-taprop-tru64.adb: (Enter_Task): Pass True to Hide_Yellow_Zone.
13862         (Exit_Task): Pass False to Hide_Yellow_Zone.
13863
13864 2007-10-15  Robert Dewar  <dewar@adacore.com>
13865
13866         * s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb,
13867         s-taprop-vxworks.adb, s-taprop-posix.adb, a-calend-vms.adb,
13868         a-calend.adb, a-nuflra.adb, a-tigeau.adb, a-wtgeau.adb,
13869         checks.adb, bindgen.adb, eval_fat.adb, exp_fixd.adb, fmap.adb,
13870         freeze.adb, g-awk.adb, g-calend.adb, g-diopit.adb, g-expect.adb,
13871         gnatchop.adb, gnatlink.adb, g-spipat.adb, g-thread.adb, make.adb,
13872         mdll.adb, mlib.adb, mlib-prj.adb, osint.adb, par-ch3.adb, prj.adb,
13873         prj-makr.adb, sem_prag.adb, sem_type.adb, s-fatgen.adb, s-fileio.adb,
13874         sinfo.ads, sinput-d.adb, s-taasde.adb, s-tasdeb.ads, s-tasren.adb,
13875         s-tassta.adb, s-tpobop.adb, s-tposen.adb, stylesw.adb, types.ads,
13876         uintp.adb, validsw.adb, makegpr.adb, a-rbtgso.adb, a-crbtgo.adb,
13877         a-coorse.adb, a-convec.adb, a-coinve.adb, a-cohama.adb, a-ciorse.adb,
13878         a-cihama.adb, a-cidlli.adb, a-chtgop.adb, a-cdlili.adb, a-cdlili.adb,
13879         a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cohase.adb, a-ciorma.adb,
13880         a-coorma.adb, a-ztgeau.adb, symbols-vms.adb, a-crdlli.adb,
13881         a-calari.adb, a-calfor.adb, s-os_lib.adb, s-regpat.adb, a-ngrear.adb:
13882         Minor reformatting.
13883         Add Unreferenced and Warnings (Off) pragmas for cases of
13884         variables modified calls where they are IN OUT or OUT parameters and
13885         the resulting values are not subsequently referenced. In a few cases,
13886         we also remove redundant code found by the new warnings.
13887
13888         * ug_words, vms_data.ads, usage.adb, sem_util.adb, sem_util.ads,
13889         sem_warn.adb, sem_warn.ads, sem_res.adb, sem_ch7.adb, sem_ch8.adb,
13890         sem_ch5.adb, opt.ads, lib-xref.adb, lib-xref.ads, exp_smem.adb,
13891         sem_ch11.adb, exp_ch6.adb, einfo.ads, einfo.adb: implement a new
13892         warning controlled by -gnatw.o that warns on cases of out parameter
13893         values being ignored.
13894
13895 2007-10-15  Geert Bosch  <bosch@adacore.com>
13896
13897         * adaint.c, socket.c, cal.c: Initial port to arm-mentor-nucleus.
13898
13899         * expect.c: Initial port to arm-mentor-nucleus.
13900         Use kill for __gnat_kill() on VMS.
13901
13902 2007-10-15  Emmanuel Briot  <briot@adacore.com>
13903
13904         * ali.ads, ali.adb (Scan_ALI): Initialize XE.Tref to a known default
13905         value.
13906         (Xref_Record): Change type for Line, since in the case of a reference to
13907         a predefined entity (as happens for array index types), the line is set
13908         to 0.
13909         Add support for parsing multiple array index types info, or
13910         multiple inherited interfaces info. This information cannot be stored
13911         in Xref_Entity_Record, which only supports a single instance of Tref_*,
13912         and is therefore stored in the list of references instead. It has a
13913         special treatement later on in tools that use this information.
13914
13915 2007-10-15  Tristan Gingold  <gingold@adacore.com>
13916
13917         * debug.adb: Document use of -gnatd.a and -gnatd.I
13918
13919         * layout.adb: On OpenVMS -gnatd.a disables alignment optimization.
13920
13921 2007-10-15  Javier Miranda  <miranda@adacore.com>
13922
13923         * exp_attr.adb (Expand_N_Attribute_Reference): Case Access,
13924         Unchecked_Access, and Unrestricted_Access. Cleanup code that takes
13925         care of access to class-wide interface types plus removal of bizarre
13926         conversion of tagged object to access type (reported by Gary
13927         Dismukes). After this patch there is no need to perform any
13928         additional management on these nodes in Expand_Interface_Actuals.
13929
13930         * exp_disp.adb (Expand_Interface_Actuals): Code cleanup. Remove code
13931         that handles use of 'Access and 'Unchecked_Access applied to
13932         actuals covering interface types. Such code is now
13933         centralized in Expand_N_Attribute_Reference.
13934
13935 2007-10-15  Ed Schonberg  <schonberg@adacore.com>
13936
13937         * exp_ch3.adb (Build_Init_Procedure): Keep separate the initialization
13938         of tagged types whose ultimate ancestor is a CPP type.
13939         (Freeze_Array_Type): For a packed array type, generate an initialization
13940         procedure if the type is public, to handle properly a client that
13941         specifies Normalize_Scalars.
13942
13943 2007-10-15  Hristian Kirtchev  <kirtchev@adacore.com>
13944
13945         * exp_ch9.adb (Actual_Index_Expression): When the expansion occurs
13946         inside a generic body, retrieve the full view of the entry family
13947         discrete subtype if available.
13948
13949 2007-10-15  Thomas Quinot  <quinot@adacore.com>
13950
13951         * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): Do not
13952         attempt to generate stubs for hidden primitive operations.
13953
13954 2007-10-15  Vincent Celier  <celier@adacore.com>
13955
13956         * mlib-tgt-specific.adb (Support_For_Libraries): New function,
13957         returning None, used when there is no platform specific body for
13958         MLib.Tgt.Specific.
13959
13960 2007-10-15  Bob Duff  <duff@adacore.com>
13961
13962         * sem_case.adb, sem_ch13.adb, lib-sort.adb: Replace use of Heap_Sort_A
13963         (passing'Unrestricted_Access of nested subprograms to Sort) with use of
13964         the generic Heap_Sort_G, in order to avoid trampolines.
13965
13966 2007-10-15  Vasiliy Fofanov  <fofanov@adacore.com>
13967             Jose Ruiz  <ruiz@adacore.com>
13968
13969         * vx_stack_info.c: New file.
13970
13971         * i-forbla-unimplemented.ads: New file.
13972
13973         * Makefile.in: i-forbla-unimplemented.ads: a variant of i-forbla.ads
13974         for unsupported configurations; use it on VMS targets instead of the
13975         real one.
13976         (EXTRA_LIBGNAT_SRCS,EXTRA_LIBGNAT_OBJS for VxWorks): Include
13977         vx_stack_info.{c,o} that contains the routine __gnat_get_stack_info
13978         used by VxWorks targets to have access to task-specific data and be
13979         able to extract the stack boundaries for stack checking.
13980         Use system-vms-ia64.ads on ivms.
13981
13982         * Make-lang.in: Update dependencies.
13983
13984         * sysdep.c (__gnat_get_stack_info): Move to a standalone file
13985         (vx_stack_info.c).
13986
13987 2007-10-15  Vincent Celier  <celier@adacore.com>
13988
13989         * snames.adb, snames.ads: Add new standard name runtime_library_dir
13990
13991         * prj.ads (Language_Config): Add new component Runtime_Library_Dir
13992
13993         * prj-attr.adb: Add project level attribute Runtime_Library_Dir
13994
13995         * prj-env.adb (Create_Mapping_File): Do not put an entry if the path of
13996         the source is unknown.
13997
13998         * prj-ext.adb: Spelling error fix
13999
14000         * prj-nmsc.adb (Check_Ada_Name): Reject any unit that includes an Ada
14001         95 reserved word in its name.
14002         (Process_Project_Level_Array_Attributes): Process new attribute
14003         Runtime_Library_Dir.
14004
14005         * prj-part.adb (Parse_Single_Project): Do not check the name of the
14006         config project against the user project names.
14007
14008         * prj-proc.adb (Expression): In multi-language mode, indexes that do
14009         not include a dot are always case insensitive.
14010         (Process_Declarative_Items): Ditto
14011         (Process_Project_Tree_Phase_1): Set Success to False in case an error is
14012         detected.
14013
14014         * prj-util.adb (Value_Of (In_Array)): When Force_Lower_Case_Index is
14015         True, compare both indexes in lower case.
14016
14017 2007-10-15  Robert Dewar  <dewar@adacore.com>
14018
14019         * rtsfind.adb: (Load_RTU): Turn off style checks for Load call
14020
14021 2007-10-15  Gary Dismukes  <dismukes@adacore.com>
14022
14023         * sem_aggr.adb (Resolve_Record_Aggregate): In the case of a box
14024         association for an access component, add an association with null as
14025         the expression. Remove testing for array subtypes and the setting in
14026         that case of Ctyp to the array component type, which prevented proper
14027         inclusion of an association for null-initialized arrays. Collapse
14028         condition that tests for array subtypes into just a test of
14029         Is_Partially_Initialized_Type (which already covers arrays anyway).
14030
14031 2007-10-15  Hristian Kirtchev  <kirtchev@adacore.com>
14032
14033         * sem_ch12.adb: Minor code reformatting.
14034         (Check_Generic_Child_Unit): Iterate over the homonym chain in order to
14035         find the parent package which may have been hidden by local
14036         declarations.
14037
14038 2007-10-15  Gary Dismukes  <dismukes@adacore.com>
14039
14040         * sem_ch3.adb (Build_Derived_Concurrent_Type): Set the Is_Constrained
14041         flag of derived concurrent types, taking into account the flag setting
14042         on the parent subtype and any new set of discriminants.
14043
14044 2007-10-15  Hristian Kirtchev  <kirtchev@adacore.com>
14045
14046         * sem_ch4.adb: Minor code and comment reformatting.
14047         (Analyze_Allocator): When the designated type of an unconstrained
14048         allocator is a record with unknown discriminants or an array with
14049         unknown range bounds, emit a detailed error message depending on the
14050         compilation mode and whether the designated type is limited.
14051
14052 2007-10-15  Tristan Gingold  <gingold@adacore.com>
14053
14054         * system-vms-ia64.ads: New file.
14055
14056         * system-vms_64.ads: Minor comment fix.
14057
14058 2007-10-15  Ed Schonberg  <schonberg@adacore.com>
14059
14060         * sem_ch6.adb (Find_Corresponding_Spec): If the previous entity is a
14061         body generated for a function with a controlling result that is a null
14062         extension, discard the generated body in favor of the current explicit
14063         one.
14064
14065 2007-10-15  Ed Schonberg  <schonberg@adacore.com>
14066
14067         * sem_disp.adb (Find_Controlling_Arg): Examine the call node before
14068         examining its original form, to handle properly operator calls that
14069         have been rewritten.
14070
14071 2007-10-15  Olivier Hainque  <hainque@adacore.com>
14072
14073         * tb-alvms.c (tb_entry_t, __gnat_backtrace): Store a frame pointer
14074         instead of a procedure value in each traceback entry.
14075
14076         * g-trasym-vms-alpha.adb (Symbolic_Traceback): Pass frame pointer
14077         instead of procedure value to TBK$SYMBOLIZE.
14078
14079         * s-traent-vms.adb (PV_For): Rename as FP_For and access the proper
14080         field.
14081         (TB_Entry_For): Account for the PV/FP renaming.
14082
14083         * s-traent-vms.ads (Traceback_Entry): Rename PV component into FP and
14084         add comment.
14085         (Null_TB_Entry): Account for change of component name.
14086         (PV_For): Rename as FP_For.
14087
14088 2007-10-15  Tristan Gingold  <gingold@adacore.com>
14089
14090         * trans.c (gnat_to_gnu): Remove the padding structure more often.
14091         This optimize assignment to over-aligned record.
14092
14093 2007-10-15  Emmanuel Briot  <briot@adacore.com>
14094
14095         * xref_lib.adb (Get_Full_Type): Add support for the 'h' entity type, ie
14096         interfaces.
14097
14098         * xr_tabls.adb (Add_Reference): Add support for the new 'R' reference
14099         type, for dispatching calls.
14100
14101 2007-10-15  Vincent Celier  <celier@adacore.com>
14102             Robert Dewar  <dewar@adacore.com>
14103
14104         * gnat_ugn.texi: Add documentation for switches --version and --help
14105         for the GNAT tools gnatbind, gnatlink, gnatmake, gnatchop, gnatname,
14106         gnatxref, gnatfind, gnatls, and gnatclean.
14107         Document -gnatw.o.
14108         Mention attribute Excluded_Source_Dirs
14109         Replace obsolescent attribute Locally_Removed_Files with attribute
14110         Excluded_Source_Files.
14111         Improve documentation of -u (gnatbind)
14112         Document how to do reliable stack checking for the environmental task
14113         on iVMS.
14114
14115         * gnat_rm.texi: Rewrite section about No_Implicit_Dynamic_Code.
14116         Document attribute Excluded_Source_Files and indicate that attribute
14117         Locally_Removed_Files is obsolescent.
14118
14119 2007-10-15  Thomas Quinot  <quinot@adacore.com>
14120
14121         * g-soccon-vms.ads: Fix value of MSG_WAITALL.
14122
14123         * gen-soccon.c:
14124         Update documentation to note that OpenVMS 8.3 or later must be used
14125         to generate g-soccon-vms.ads.
14126
14127         * atree.adb: Add ??? comment
14128
14129         * exp_util.adb: Minor reformatting.
14130         Add ??? comment in Kill_Dead_Code.
14131
14132 2007-10-15  Robert Dewar  <dewar@adacore.com>
14133
14134         * errout.ads: Comment clarification
14135
14136         * exp_ch4.adb (Expand_N_Allocator): Code cleanup.
14137         (Expand_N_Op_Eq): Improve handling of array equality with -gnatVa
14138
14139         * lib.ads: Comment update
14140
14141         * init.c: Minor reformatting.
14142
14143         * sem_attr.adb: Minor formatting
14144
14145         * osint-b.ads: Minor reformatting
14146
14147         * sem_ch9.adb: Implement -gnatd.I switch
14148
14149         * g-comlin.adb: (Start): Fix handling of empty command line.
14150
14151         * gnatcmd.adb (GNATCmd): Do not put the -rules in the -cargs section,
14152         even when -rules follows the -cargs section.
14153
14154 2007-10-08  Ollie Wild  <aaw@google.com>
14155
14156         * misc.c (LANG_HOOKS_PUSHDECL): Replaced lhd_return_tree with
14157         gnat_return_tree.
14158         (gnat_init_gcc_eh): Replaced gnat_eh_runtime_type with
14159         gnat_return_tree.
14160         (gnat_eh_runtime_type): Removed.
14161         (gnat_return_tree): New function.
14162
14163 2007-10-08  Ben Elliston  <bje@au.ibm.com>
14164
14165         PR ada/33454
14166         Revert:
14167         2007-08-31  Ben Elliston  <bje@au.ibm.com>
14168
14169         * Makefile.in (LIBGNAT_TARGET_PAIRS): Use system-linux-ppc64.ads
14170         when compiling for powerpc64-*-linux.
14171         * system-linux-ppc64.ads: New file.
14172
14173 2007-09-27  Eric Botcazou  <ebotcazou@adacore.com>
14174
14175         Mapped location support
14176         * back_end.adb (Call_Back_End): Pass information about source
14177         files instead of units to gigi.
14178         * gigi.h (struct File_Info_Type): New.
14179         (gigi): Rename and change type of number_units parameter, change
14180         type of file_info_ptr parameter.
14181         * trans.c (number_files): New global variable.
14182         (gigi): Rename and change type of number_units parameter, change
14183         type of file_info_ptr parameter.
14184         If mapped location support is enabled, create the isomorphic mapping
14185         between source files and line maps.
14186         (Sloc_to_locus): If mapped location support is enabled, translate
14187         source location into mapped location.
14188         (annotate_with_node): Rename into set_expr_location_from_node.
14189         Call set_expr_location instead of annotate_with_locus.
14190         (Pragma_to_gnu): Adjust for above change.
14191         (Loop_Statement_to_gnu): Likewise.
14192         (call_to_gnu): Likewise.
14193         (Handled_Sequence_Of_Statements_to_gnu): Likewise.
14194         (gnat_to_gnu): Likewise.
14195         (add_stmt_with_node): Likewise.
14196         (add_cleanup): Likewise.
14197         * utils.c (gnat_init_decl_processing): Do not set input_line.
14198
14199 2007-09-26  Hristian Kirtchev  <kirtchev@adacore.com>
14200
14201         * sem_ch8.adb (Analyze_Use_Type): Code cleanup.
14202         (Applicable_Use): Emit a warning when a package tries to use itself.
14203         (Use_One_Type): Add variable Is_Known_Used. Emit a warning when a type
14204         is already in use or the package where it is declared is in use or is
14205         declared in the current package.
14206         (Spec_Reloaded_For_Body): New subsidiary routine for Use_One_Type.
14207
14208         * a-tasatt.adb, s-osprim-vxworks.adb, g-socthi-mingw.adb,
14209         s-intman-vms.adb, g-socket.adb, g-thread.adb, s-tarest.adb,
14210         s-tassta.adb, s-tporft.adb: Remove redundant 'use type' clause.
14211
14212 2007-09-26  Hristian Kirtchev  <kirtchev@adacore.com>
14213
14214         * a-calend-vms.adb, a-calend.adb:
14215         Add a section on leap seconds control along with two entities used to
14216         enable and disable leap seconds support. The array Leap_Second_Times is
14217         now constant and contains hard time values pre-generated. Remove
14218         all elaboration code used to populate the table of leap seconds.
14219
14220         * bindgen.adb:
14221         Add entity Leap_Seconds_Support to the list of global run-time variables
14222         along with a comment on its usage and values.
14223         (Gen_Adainit_Ada): Add code to generate the declaration and import of
14224         Integer variable Leap_Seconds_Support. Set its value to zero (disabled)
14225         or one (enabled) depending on the presence of binder switch "-y".
14226         (Gen_Adainit_C): Add code to generate the declaration of external int
14227         __gl_leap_seconds_support. Set is value to zero (disabled) or one
14228         (enabled) depending on the presence of binder switch "-y".
14229
14230         * init.c: Add __gl_leap_seconds_support to the list of global values
14231         computed by the binder.
14232
14233 2007-09-26  Jerome Guitton  <guitton@adacore.com>
14234
14235         * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
14236         s-taprop-hpux-dce.adb, s-taprop-linux.adb, s-taprop-dummy.adb,
14237          s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb,
14238         s-taprop-posix.adb (Stop_Task): New function, dummy implementation.
14239
14240         * s-taprop.ads, s-taprop-vxworks.adb (Stop_Task): New function.
14241
14242         * s-tasdeb.adb (Stop_All_Tasks): New function, implementing a run-time
14243         function which can be called by the debugger to interrupt the tasks of
14244         an Ada application asynchronously, as needed on VxWorks.
14245         (Stop_All_Tasks_Handler): Renamed from Stop_All_Tasks.
14246
14247         * s-tasdeb.ads (Stop_All_Tasks_Handler): New function declaration,
14248         renamed from Stop_All_Tasks. Update comments.
14249         (Stop_All_tasks): New function declaration.
14250
14251 2007-09-26  Olivier Hainque  <hainque@adacore.com>
14252
14253         * adaint.c (if defined (__Lynx__)): Wrap #def/#undef VMOS_DEV around
14254         #include <utime.h> and #define GCC_RESOURCE_H before
14255         #include <sys/wait.h>.
14256         Add more protections in __gnat_translate_vms.
14257
14258         * expect.c (if defined (__Lynx__)): #define GCC_RESOURCE_H before
14259         #include <sys/wait.h>.
14260
14261 2007-09-26  Thomas Quinot  <quinot@adacore.com>
14262             Sergey Rybin  <rybin@adacore.com>
14263
14264         * gnatvsn.ads (PCS_Version_Number, ASIS_Version_Number): Removed.
14265
14266         * exp_dist.ads (PCS_Version_Number): Move from Gnatvsn to Exp_Dist,
14267         where it belongs.
14268
14269         * opt.ads: Move ASIS_Version_Number from Gnatvsn into Tree_IO.
14270
14271         * rtsfind.adb (PCS_Version_Number): Move from Gnatvsn to Exp_Dist,
14272         where it belongs.
14273
14274         * sem_dist.ads: Minor comment fix
14275
14276         * tree_io.ads: Move ASIS_Version_Number from Gnatvsn into Tree_IO.
14277
14278 2007-09-26  Javier Miranda  <miranda@adacore.com>
14279             Eric Botcazou  <ebotcazou@adacore.com>
14280
14281         * a-tags.adb:
14282         (Get_HT_Link/Set_HT_Link): Updated to handle the additional level of
14283          indirection added to the HT_Link component of the TSD. This is required
14284          to statically allocate the TSD.
14285
14286         * a-tags.ads:
14287         Minor reordering of the declarations in the private part. Required to
14288         add a level of indirection to the contents of the TSD component HT_Link.
14289         This is required to statically allocate the TSD.
14290
14291         * decl.c (gnat_to_gnu_entity) <object>: Do not exclude objects with
14292         Is_Statically_Allocated set from constant objects.
14293         Do not make exported constants created by the compiler volatile.
14294         (gnat_to_gnu_param): Do not treat an IN parameter whose address is taken
14295         as read-only.
14296
14297         * trans.c (Identifier_to_gnu): For constants, unshare initializers
14298         before returning them.
14299
14300         * exp_disp.ads, exp_disp.adb (Building_Static_DT): Spec moved to the
14301         public part of the package.
14302         (Make_DT): Move HT_Link component out of the TSD record. For this
14303         purpose Make_DT now declares a separate object that stores the
14304         HT_Link value, and initializes the TSD component with the address
14305         of this new object. The addition of this level of indirection is
14306         required to statically allocate the TSD because the TSD cannot
14307         have variable components.
14308         (Expand_Interface_Conversion): Improve the expanded code.
14309         (Expand_Interface_Thunk): Set Is_Thunk in the thunk entity.
14310
14311         * sem_disp.adb (Check_Dispatching_Operation): In case of a body
14312         declaring a primitive operation ---allowed by RM 3.9.2 (13.e/2)---,
14313         if we are building static dispatch tables then we must not generate
14314         extra code to register the primitive because the dispatch table will
14315         be built at the end of the library package; otherwise we notify that
14316         we cannot build the static dispatch table.
14317
14318 2007-09-26  Robert Dewar  <dewar@adacore.com>
14319
14320         * checks.adb, gnat1drv.adb, sem_util.ads: Improve warnings for address
14321         overlays.
14322
14323         * sem_ch13.ads, sem_ch13.adb: Improve warnings for address overlays
14324         (Analyze_Record_Representation_Clause): Suppress junk warning for
14325         missing component clause.
14326         (Analyze_Attribute_Definition_Clause, case Address): Apply the special
14327         tests for controlled type overlay to composites with controlled
14328         components.
14329         (Analyze_Record_Representation_Clause): Add reference for component name
14330
14331 2007-09-26  Javier Miranda  <miranda@adacore.com>
14332             Gary Dismukes  <dismukes@adacore.com>
14333
14334         * einfo.adb (Is_Thunk): New attribute applicable to subprograms. True
14335         for thunks associated with interface types.
14336
14337         * einfo.ads: Improve documentatation of Is_Internal
14338         (Is_Thunk): New attribute applicable to subprograms. True for thunks
14339         associated with interface types.
14340         Extensive comment fixes regarding flags that appear in all entities. The
14341         documentation is now consistent for all such flags (there were a number
14342         of errors in the documentation in this regard).
14343
14344         * exp_attr.adb (Expand_N_Attribute_Reference): Minor code cleanup.
14345
14346         * exp_ch6.adb (Make_Build_In_Place_Call_*): Return immediately if any
14347         of these procedures are passed a function call that already has
14348         build-in-place actuals (testing new flag
14349         Is_Expanded_Build_In_Place_Call). Set the flag on the function call in
14350         the case where processing continues.
14351         (Expand_Call): If the call is generated from a thunk body then we
14352         propagate the extra actuals associated with the accessibility
14353         level of the access type actuals.
14354
14355         * sem_ch6.adb (Analyze_Subprogram_Body): Set the Protected_Formal field
14356         of each extra formal of a protected operation to reference the
14357         corresponding extra formal of the subprogram denoted by the
14358         operation's Protected_Body_Subprogram.
14359
14360         * sinfo.ads, sinfo.adb (Is_Expanded_Build_In_Place_Call): New flag on
14361         N_Function_Call nodes.
14362
14363 2007-09-26  Robert Dewar  <dewar@adacore.com>
14364
14365         * exp_ch5.adb: Activate memmove type processing if debug flag d.s is set
14366
14367         * debug.adb: Add d.s flag.
14368
14369 2007-09-26  Gary Dismukes  <dismukes@adacore.com>
14370
14371         * exp_dbug.adb (Debug_Renaming_Declaration): Set Is_Internal on the
14372         debug variable so that it won't be initialized when pragma
14373         Initialize_Scalars is in effect.
14374
14375 2007-09-26  Gary Dismukes  <dismukes@adacore.com>
14376
14377         * freeze.adb (Freeze_Entity): Remove check for preelaborable
14378         initialization of a full view. This is moved to
14379         Analyze_Package_Specification.
14380
14381         * sem_ch7.adb (Analyze_Package_Specification): Add check for
14382         preelaborable initialization of a full view in entity loop.
14383         (Uninstall_Declarations): If entity is a use-visible compilation unit,
14384         its child units are use-visible only if they are visible child units.
14385
14386         * sem_util.adb (Is_Preelaborable_Expression): New function to determine
14387         whether an expression can be used within a type declaration that
14388         requires preelaborable init.
14389         (Check_Components): Replace inline code that does partial checking for
14390         preelaborable default expressions with call to
14391         Is_Preelaborable_Expression.
14392         (Has_Preelaborable_Initialization): In the case of a generic actual
14393         subtype, (that is, Is_Generic_Actual is True), return the result of
14394         applying Has_Preelaborable_Initialization to the generic actual's base
14395         type.
14396
14397 2007-09-26  Hristian Kirtchev  <kirtchev@adacore.com>
14398
14399         * g-calend.adb (Has_53_Weeks): Rename to Last_Year_Has_53_Weeks. Add a
14400         call to Jan_1_Day _Of_Week to optimize its performance.
14401         (Is_Leap): Move the routine to the scope of Week_In_Year.
14402         (Jan_1_Day_Of_Week): New routine in Week_In_Year which calculates the
14403         weekday on which January 1 falls of Year - 1 and Year + 1. This function
14404         avoids calling Time_Of and Split, thus making it more efficent.
14405         (Week_In_Year): Reimplemented in oder to follow ISO 8601.
14406
14407         * g-calend.ads (Week_In_Year): Change comment to reflect new
14408         implementation.
14409
14410 2007-09-26  Emmanuel Briot  <briot@adacore.com>
14411
14412         * g-comlin.ads, g-comlin.adb (Command_Line_Configuration,
14413         Command_Line): New types
14414         (Define_Alias, Define_Prefix, Free): New subprograms. These provide
14415         support for defining how switches can be grouped on a command line (as
14416         is the case for -gnatw... for GNAT), and how simple switches can be
14417         used as aliases for more complex switches (-gnatwa is same as
14418         -gnatwbcef...)
14419         (Set_Command_Line, Add_Switch, Remove_Switch): New subprogram
14420         (Start, Current_*): New subprograms
14421         Added support for parsing an array of strings in addition to the real
14422         command line.
14423         (Opt_Parser, Opt_Parser_Data): New type. As a result, some types had to
14424          be moved from the body to the private part of the spec.
14425         (*): All subprograms now have an extra parameter with default value to
14426         specify which parser should be used. For backward compatibility, it
14427         defaults to parsing the command line of the application. They were also
14428         modified to properly handle cases where each of the argument does not
14429         start at index 1 (which is always true for Ada.Command_Line, but not
14430         when processing any Argument_List).
14431         (Free): New subprogram
14432         (Internal_Initialize_Option_Scan, Find_Longuest_Matching_Switch,
14433         Argument): New subprograms
14434         (Switch_Parameter_Type): New enum, which clarifies the code. The extra
14435         special characters like ':', '=',... are now handled in a single place,
14436         which makes the code more extensible eventually.
14437         (Getopt, Full_Switch): When the switch was returned as part of the
14438         special character '*', make sure it is prepended by the switch character
14439         ('-' in general), so that the application knows whether "foo" or "-foo"
14440         was specified on the command line.
14441
14442 2007-09-26  Florian Villoing  <villoing@adacore.com>
14443
14444         * g-dirope.adb (Remove_Dir): In case we are removing directories
14445         recursively, make sure that if an exception is raised during the
14446         processing, the current working directory is reset to its initial
14447         value before propagating the exception.
14448
14449 2007-09-26  Vincent Celier  <celier@adacore.com>
14450
14451         * gnatbind.adb: If there are several ALI files specified and there is
14452         a main program to bind, the first ALI is expected to contain the main
14453         subprogram and the names of the binder generated files will be derived
14454         from the first ALI file name.
14455         (Gnatbind): Fix insertion character in invocation of Error_Msg
14456
14457 2007-09-26  Vincent Celier  <celier@adacore.com>
14458
14459         * gnatcmd.adb (Check_Files): Do not include sources that have been
14460         removed by attributes Exclude_Source_Files or Locally_Removed_Files.
14461
14462 2007-09-26  Ed Schonberg  <schonberg@adacore.com>
14463
14464         * lib-xref.ads, lib-xref.adb: The entry for array types now carries
14465         information about each of its index types, following the type
14466         reference for its component type.
14467
14468 2007-09-26  Vincent Celier  <celier@adacore.com>
14469
14470         * make.adb: (Kill): New procedure (__gnat_kill imported)
14471         (Running_Compile, Outstanding_Compiles): Global variables that
14472         were previously local to procedure Compile_Sources.
14473         (Sigint_Intercepted): Send signal SIGINT to all outstanding
14474         compilation processes.
14475
14476         (Gnatmake): If project files are used, create the mapping of all the
14477         sources, so that the correct paths will be found.
14478
14479         * prj-env.ads, prj-env.adb (Create_Mapping): New procedure
14480
14481 2007-09-26  Vincent Celier  <celier@adacore.com>
14482
14483         * makeutl.ads (Main_Config_Project): Moved to gpr_util.ads
14484
14485         * prj.ads, prj.adb (Default_Language): Remove function, no longer used
14486         Replace components Compiler_Min_Options and Binder_Min_Options with
14487         Compiler_Required_Switches and Binder_Required_Switches in record
14488         Language_Config.
14489         Remove components Default_Language and Config in Project_Tree_Data,
14490         no longer used.
14491
14492         * prj-attr.adb: New attributes Required_Switches (<language>) in
14493         packages Compiler and Binder.
14494
14495         * prj-nmsc.adb: Major rewrite of the processing of configuration
14496         attributes for gprbuild. No impact on GNAT tools.
14497
14498         * prj-proc.ads, prj-proc.adb (Process_Project_Tree_Phase_2): No longer
14499         process configuration attributes: this is done in Prj.Nmsc.Check.
14500         (Recursive_Process): Make a full copy of packages inherited from project
14501         being extended, instead of a shallow copy.
14502         (Process_Project_Tree_Phase_1): New procedure
14503         (Process_Project_Tree_Phase_1): New procedure
14504         (Process): Implementation now uses the two new procedures
14505
14506         * prj-util.adb (Executable_Of): Get the suffix and the default suffix
14507         from the project config, not the tree config that no longer exists.
14508
14509 2007-09-26  Vincent Celier  <celier@adacore.com>
14510
14511         * Make-lang.in: Update dependencies..
14512
14513 2007-09-26  Vincent Celier  <celier@adacore.com>
14514
14515         * osint.adb, osint.ads: Minor reformatting
14516
14517         * osint-b.adb, osint-b.ads (Set_Current_File_Name_Index): New procedure
14518
14519 2007-09-26  Gary Dismukes  <dismukes@adacore.com>
14520
14521         * par-ch4.adb (P_Record_Or_Array_Component_Association): Change Ada 95
14522         message to cite use of <> in aggregate component associations rather
14523         than wrongly indicating use of limited aggregates.
14524
14525 2007-09-26  Robert Dewar  <dewar@adacore.com>
14526
14527         * sem_attr.adb (Analyze_Access_Attribute): Fix missing set of
14528         Address_Taken.
14529
14530 2007-09-26  Ed Schonberg  <schonberg@adacore.com>
14531
14532         * sem_ch3.adb (Derive_Subprograms): If the interface parent is a direct
14533         ancestor of the derived type, the operations are inherited from the
14534         primary dispatch table of the parent.
14535         (OK_For_Limited_Init_In_05): Remove old comment. Reject in-place calls
14536         when the context is an explicit type conversion.
14537
14538 2007-09-26  Ed Schonberg  <schonberg@adacore.com>
14539
14540         * sem_ch4.adb (Analyze_Qualified_Expression): Apply name resolution
14541         rule for qualified expressions properly, to detect improper conversions
14542         and resolve some cases of overloading.
14543
14544 2007-09-26  Ed Schonberg  <schonberg@adacore.com>
14545
14546         * sem_res.adb (Resolve_Call): If the call is dispatching, generate the
14547         proper kind of reference to the primitive operation, for better source
14548         navigation.
14549         (Valid_Conversion): A tagged conversion is legal if both operands are
14550         tagged.
14551
14552 2007-09-26  Robert Dewar  <dewar@adacore.com>
14553
14554         * sem_warn.adb (Check_References): Catch more cases of unreferenced
14555         packages.
14556
14557 2007-09-26  Vincent Celier  <celier@adacore.com>
14558
14559         * snames.adb, snames.ads: Change Include_Option to Include_Switches
14560
14561 2007-09-26  Robert Dewar  <dewar@adacore.com>
14562
14563         * s-wchstw.adb: provide messages for run time unit exceptions
14564
14565         * a-witeio.adb: Minor reformatting
14566
14567         * exp_ch13.adb: Minor reformatting
14568
14569 2007-09-26  Sergey Rybin  <rybin@adacore.com>
14570
14571         * vms_data.ads: Revise gnatmetric qualifiers.
14572         Add qualified for the new gnatbind option '-y'
14573
14574         * gnat_ugn.texi: Revise the gnatmetric section.
14575         Add entry for new gnatbind option '-y'.
14576
14577         * gnat_rm.texi: Minor spelling correction.
14578         Document restriction on overlaying controlled types
14579
14580 2007-09-26  Vincent Celier  <celier@adacore.com>
14581
14582         * makegpr.adb (Link_Executables): Do not fail when the root project has
14583         no sources, but is an extending project.
14584
14585 2007-09-25  Eric Botcazou  <ebotcazou@adacore.com>
14586
14587         * trans.c: Fix misplaced #define.
14588
14589 2007-09-22  Eric Botcazou  <ebotcazou@adacore.com>
14590
14591         * utils2.c (build_unary_op) <ADDR_EXPR> [INDIRECT_REF]: Propagate
14592         the TYPE_REF_CAN_ALIAS_ALL flag to the result.
14593
14594 2007-09-21  Olivier Hainque  <hainque@adacore.com>
14595
14596         * utils.c (type_for_nonaliased_component_p): Return false for
14597         all AGGREGATE_TYPEs.
14598
14599 2007-09-17  Eric Botcazou  <ebotcazou@adacore.com>
14600
14601         * decl.c (gnat_to_gnu_entity) <object>: Make again the type of an
14602         object covered by 13.3(19) volatile.
14603
14604 2007-09-12  Eric Botcazou  <ebotcazou@adacore.com>
14605
14606         PR ada/26797
14607         PR ada/32407
14608         * utils.c (unchecked_convert): Use a subtype as the intermediate type
14609         in the special VIEW_CONVERT_EXPR case.
14610
14611 2007-09-12  Robert Dewar  <dewar@adacore.com>
14612
14613         * types.ads, a-charac.ads, freeze.adb: Minor reformatting.
14614
14615         * a-except.adb, g-hesora.adb, g-speche.adb, lib.adb, lib.ads,
14616         lib-load.adb, lib-writ.adb, s-assert.adb, s-carun8.adb,
14617         s-casuti.adb, s-crc32.adb, s-exctab.adb, s-htable.adb, s-imgenu.adb,
14618         s-mastop.adb, s-memory.adb, s-memory.ads, s-secsta.adb, s-soflin.adb,
14619         s-sopco3.adb, s-sopco4.adb, s-sopco5.adb, s-stache.adb, s-stalib.adb,
14620         s-stoele.adb, s-strcom.adb, s-strops.adb, s-traceb.adb, s-traent.adb,
14621         s-wchcnv.adb, s-wchcon.adb, s-wchjis.adb, s-addope.adb, s-except.adb,
14622         s-os_lib.adb, s-string.adb, s-utf_32.adb, a-elchha.adb,
14623         a-chlat1.ads, a-elchha.ads, a-except.ads, g-hesora.ads, g-htable.ads,
14624         g-speche.ads, par-prag.adb, restrict.adb, restrict.ads, s-assert.ads,
14625         s-carun8.ads, s-casuti.ads, s-crc32.ads, sem_ch11.adb, sem_prag.adb,
14626         s-exctab.ads, s-htable.ads, s-imgenu.ads, s-mastop.ads, snames.adb,
14627         snames.ads, snames.h, s-purexc.ads, s-secsta.ads, s-soflin.ads,
14628         s-sopco3.ads, s-sopco4.ads, s-sopco5.ads, s-stache.ads, s-stalib.ads,
14629         s-stoele.ads, s-strcom.ads, s-strops.ads, s-traceb.ads, s-traent.ads,
14630         s-unstyp.ads, s-wchcnv.ads, s-wchcon.ads, s-wchjis.ads, s-addope.ads,
14631         s-except.ads, s-os_lib.ads, s-string.ads, s-utf_32.ads: Implement
14632         pragma Compiler_Unit and adds it to relevant library units.
14633
14634 2007-09-12  Ed Schonberg  <schonberg@adacore.com>
14635
14636         * sem_aggr.adb (Resolve_Record_Aggregate): An others association with
14637         a box need not correspond to any component.
14638
14639 2007-09-12  Robert Dewar  <dewar@adacore.com>
14640
14641         * g-thread.ads: Document use of "with GNAT.Threads" to ensure loading
14642         the tasking version of the Ada run time when foreign threads are
14643         present and there are no explicit Ada tasks or tasking constructs.
14644
14645         * gnat_rm.texi: Clarify documentation of GNAT.Threads.
14646
14647 2007-09-12  Hristian Kirtchev  <kirtchev@adacore.com>
14648
14649         * bindusg.adb (Display): Correct comment for switch -X. Add a line for
14650         the usage of switch -y.
14651
14652         * switch-b.adb (Scan_Binder_Switches): Set flag Leap_Seconds_Support
14653         when switch -y is present.
14654
14655         * opt.ads: Add binder flag Leap_Seconds_Support used to enable/disable
14656         leap seconds in Ada.Calendar and its children.
14657
14658 2007-09-12  Jose Ruiz  <ruiz@adacore.com>
14659
14660         * a-extiti.ads (Timer): The discriminant is a "not null access
14661         constant" in the Reference Manual.
14662         (Cancel_Handler): Cancelled is an out parameter in the Reference Manual.
14663
14664 2007-09-12  Robert Dewar  <dewar@adacore.com>
14665
14666         * a-swuwha.adb: Remove junk RM header
14667
14668 2007-09-12  Vincent Celier  <celier@adacore.com>
14669
14670         * g-bytswa-x86.adb (Swap2, Swap4, Swap8): Remove explicit "in" mode
14671         indicator
14672
14673         * g-bytswa.ads: Minor reformatting
14674
14675 2007-09-12  Thomas Quinot  <quinot@adacore.com>
14676
14677         * g-soccon-solaris-64.ads, g-soccon-hpux-ia64.ads:
14678         Add new constant Thread_Blocking_IO, always True by default, set False
14679         on a per-runtime basis.
14680         (Need_Netdb_Buffer): New constant.
14681
14682 2007-09-12  Arnaud Charlet  <charlet@adacore.com>
14683
14684         * s-dsaser.ads (Get_Local_Partition_Id, Get_Passive_Partition_Id):
14685         Added renames for corresponding functions in System.Partition_Interface.
14686
14687 2007-09-12  Doug Rupp  <rupp@adacore.com>
14688
14689         * Makefile.in: Remove VMS specific System.CRTL packages which are no
14690         longer needed.
14691
14692         * s-crtl-vms64.ads: Removed.
14693
14694 2007-09-12  Olivier Hainque  <hainque@adacore.com>
14695
14696         * decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: For a subtype
14697         with discriminant constraints, generalize the code for BIT_FIELDs
14698         to PACKED fields of constant size and propagate DECL_PACKED.
14699
14700 2007-09-11  Eric Botcazou  <ebotcazou@adacore.com>
14701
14702         * decl.c (array_type_has_nonaliased_component): New predicate.
14703         (gnat_to_gnu_field) <E_Array_Type>: Invoke the above predicate to
14704         set the TYPE_NONALIASED_COMPONENT flag on the type.
14705         <E_Array_Subtype>: Likewise.
14706         * gigi.h (type_for_nonaliased_component_p): Declare.
14707         * utils.c (type_for_nonaliased_component_p): New predicate.
14708         (create_field_decl): Invoke the above predicate to set the
14709         DECL_NONADDRESSABLE_P flag on the field.
14710
14711 2007-09-11  Javier Miranda  <miranda@adacore.com>
14712
14713         * einfo.ads, einfo.adb (Dispatch_Table_Wrapper): New attribute. Present
14714         in library level record type entities if we are generating statically
14715         allocated dispatch tables.
14716
14717         * exp_disp.adb (Make_Tags/Make_DT): Replace previous code
14718         importing/exporting the _tag declaration by new code
14719         importing/exporting the dispatch table wrapper. This change allows us
14720         to statically allocate of the TSD.
14721         (Make_DT.Export_DT): New procedure.
14722         (Build_Static_DT): New function.
14723         (Has_DT): New function.
14724
14725         * freeze.adb (Freeze_Static_Object): Code cleanup: Do not reset flags
14726         True_Constant and Current_Value. Required to statically
14727         allocate the dispatch tables.
14728         (Check_Allocator): Make function iterative instead of recursive.
14729         Also return inner allocator node, when present, so that we do not have
14730         to look for that node again in the caller.
14731
14732 2007-09-11  Jan Hubicka  <jh@suse.cz>
14733
14734         * misc.c (gnat_expand_body): Kill.
14735         (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Kill.
14736
14737 2007-09-10  Robert Dewar  <dewar@adacore.com>
14738
14739         * exp_atag.ads, exp_atag.adb, mlib-tgt-tru64.adb, mlib-tgt-aix.adb,
14740         mlib-tgt-irix.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
14741         mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
14742         mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, ali.adb, ali.ads,
14743         ali-util.adb, ali-util.ads, atree.h, back_end.adb, back_end.ads,
14744         bcheck.adb, bcheck.ads, binde.adb, binde.ads, binderr.adb, binderr.ads,
14745         bindgen.adb, bindgen.ads, bindusg.adb, bindusg.ads, butil.adb,
14746         butil.ads, checks.adb, checks.ads, clean.adb, clean.ads, comperr.adb,
14747         comperr.ads, cstand.adb, cstand.ads, debug_a.adb, debug_a.ads,
14748         elists.h, errout.adb, erroutc.ads, errutil.adb, errutil.ads,
14749         err_vars.ads, eval_fat.adb, eval_fat.ads, exp_sel.ads, exp_sel.adb,
14750         exp_aggr.adb, exp_aggr.ads, expander.adb, expander.ads, exp_attr.ads,
14751         exp_ch10.ads, exp_ch11.adb, exp_ch12.adb, exp_ch12.ads, exp_ch13.adb,
14752         exp_ch13.ads, exp_ch2.adb, exp_ch2.ads, exp_ch3.ads, exp_ch4.adb,
14753         exp_ch4.ads, exp_ch5.adb, exp_ch5.ads, exp_ch6.adb, exp_ch6.ads,
14754         exp_ch7.adb, exp_ch7.ads, exp_ch8.adb, exp_ch8.ads, exp_ch9.adb,
14755         exp_ch9.ads, exp_code.adb, exp_code.ads, exp_dbug.adb, exp_dbug.ads,
14756         exp_disp.ads, exp_dist.adb, exp_dist.ads, exp_fixd.adb, exp_fixd.ads,
14757         exp_imgv.adb, exp_imgv.ads, exp_intr.adb, exp_intr.ads, exp_pakd.adb,
14758         exp_pakd.ads, exp_prag.adb, exp_prag.ads, exp_smem.adb, exp_strm.adb,
14759         exp_strm.ads, exp_tss.adb, exp_tss.ads, exp_util.adb, exp_util.ads,
14760         exp_vfpt.adb, exp_vfpt.ads, fmap.adb, fmap.ads, fname-sf.adb,
14761         fname-sf.ads, fname-uf.adb, fname-uf.ads, frontend.adb, frontend.ads,
14762         get_targ.adb, get_targ.ads, gnat1drv.adb, gnat1drv.ads, gnatbind.adb,
14763         gnatbind.ads, gnatbl.c, gnatchop.adb, gnatclean.adb, gnatcmd.adb,
14764         gnatcmd.ads, gnatdll.adb, gnatfind.adb, gnatkr.adb, gnatkr.ads,
14765         gnatlbr.adb, gnatlink.adb, gnatlink.ads, gnatls.adb, gnatls.ads,
14766         gnatmake.adb, gnatmake.ads, gnatmem.adb, gnatname.adb, gnatname.ads,
14767         gnatprep.adb, gnatprep.ads, gnatsym.adb, gnatxref.adb,
14768         gprep.adb, gprep.ads, hlo.adb, hlo.ads, impunit.adb, impunit.ads,
14769         inline.adb, inline.ads, itypes.adb, itypes.ads, layout.adb, layout.ads,
14770         lib-load.adb, lib-load.ads, lib-util.adb, lib-util.ads, lib-writ.adb,
14771         lib-writ.ads, lib-xref.adb, lib-xref.ads, live.adb, live.ads,
14772         make.adb, make.ads, makeutl.ads, makeutl.adb, makeusg.adb, makeusg.ads,
14773         mdll.adb, mdll.ads, mdll-fil.adb, mdll-fil.ads, mdll-utl.adb,
14774         mdll-utl.ads, memroot.adb, memroot.ads, mlib.adb, mlib.ads,
14775         mlib-fil.adb, mlib-fil.ads, mlib-prj.adb, mlib-prj.ads, mlib-tgt.adb,
14776         mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads, namet.h, nmake.adt,
14777         osint.adb, osint.ads, osint-b.adb, osint-b.ads, osint-c.adb,
14778         osint-c.ads, osint-l.adb, osint-l.ads, osint-m.adb, osint-m.ads,
14779         par.adb, par.ads, par-ch10.adb, par-ch11.adb, par-ch12.adb,
14780         par-ch13.adb, par-ch2.adb, par-ch3.adb, par-ch4.adb, par-ch5.adb,
14781         par-ch6.adb, par-ch7.adb, par-ch8.adb, par-ch9.adb, par-endh.adb,
14782         par-labl.adb, par-load.adb, par-prag.adb, par-sync.adb, par-tchk.adb,
14783         par-util.adb, prep.adb, prep.ads, prepcomp.adb, prepcomp.ads,
14784         prj.adb, prj.ads, prj-attr.adb, prj-attr.ads, prj-com.ads,
14785         prj-dect.adb, prj-dect.ads, prj-err.adb, prj-err.ads, prj-ext.adb,
14786         prj-ext.ads, prj-makr.adb, prj-makr.ads, prj-nmsc.adb, prj-nmsc.ads,
14787         prj-pars.adb, prj-pars.ads, prj-part.adb, prj-part.ads,
14788         prj-pp.adb, prj-pp.ads, prj-proc.adb, prj-proc.ads,
14789         prj-strt.adb, prj-strt.ads, prj-tree.adb, prj-tree.ads,
14790         prj-util.adb, prj-util.ads, restrict.adb, restrict.ads,
14791         rtsfind.adb, rtsfind.ads, scn.adb, scn.ads,
14792         scng.adb, scng.ads, sdefault.ads, sem.ads, sem_aggr.ads, sem_attr.adb,
14793         sem_case.adb, sem_case.ads, sem_cat.adb, sem_cat.ads, sem_ch10.adb,
14794         sem_ch10.ads, sem_ch11.adb, sem_ch11.ads, sem_ch12.ads, sem_ch13.adb,
14795         sem_ch13.ads, sem_ch2.adb, sem_ch2.ads, sem_ch3.adb, sem_ch3.ads,
14796         sem_ch4.ads, sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
14797         sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads, sem_ch9.adb,
14798         sem_ch9.ads, sem_disp.adb, sem_disp.ads, sem_dist.adb, sem_dist.ads,
14799         sem_elab.adb, sem_elab.ads, sem_elim.adb, sem_elim.ads, sem_eval.adb,
14800         sem_eval.ads, sem_intr.adb, sem_intr.ads, sem_maps.adb, sem_maps.ads,
14801         sem_mech.adb, sem_mech.ads, sem_prag.adb, sem_prag.ads, sem_res.adb,
14802         sem_res.ads, sem_smem.adb, sem_smem.ads, sem_type.adb, sem_type.ads,
14803         sem_util.adb, sem_util.ads, sem_vfpt.adb, sem_vfpt.ads, sem_warn.adb,
14804         sem_warn.ads, sfn_scan.ads, sinfo-cn.adb, sinfo-cn.ads, sinput-c.adb,
14805         sinput-c.ads, sinput-d.adb, sinput-d.ads, sinput-l.adb, sinput-l.ads,
14806         sinput-p.adb, sinput-p.ads, snames.h, sprint.adb, sprint.ads,
14807         stringt.h, style.ads, styleg.adb, styleg.ads, styleg-c.adb,
14808         styleg-c.ads, stylesw.adb, stylesw.ads, switch.adb, switch.ads,
14809         switch-b.adb, switch-b.ads, switch-c.adb, switch-c.ads, switch-m.adb,
14810         switch-m.ads, symbols.adb, symbols.ads, targparm.adb, tbuild.adb,
14811         tbuild.ads, tempdir.adb, tempdir.ads, tree_gen.adb, tree_gen.ads,
14812         treepr.adb, treepr.ads, treeprs.adt, ttypef.ads, ttypes.ads,
14813         types.h, uintp.h, urealp.h, usage.adb, usage.ads,
14814         validsw.adb, validsw.ads, vxaddr2line.adb, xeinfo.adb, xnmake.adb,
14815         xref_lib.adb, xref_lib.ads, xr_tabls.adb, xr_tabls.ads, xsinfo.adb,
14816         xtreeprs.adb, xsnames.adb, vms_conv.ads, vms_conv.adb, xgnatugn.adb,
14817         gprmake.adb, makegpr.ads, makegpr.adb, prj-attr-pm.ads, prj-attr-pm.adb,
14818         mlib-tgt-lynxos.adb, mlib-tgt-darwin.adb, symbols-vms.adb,
14819         symbols-processing-vms-alpha.adb, symbols-processing-vms-ia64.adb,
14820         mlib-tgt-specific.adb, mlib-tgt-specific.ads, mlib-tgt-vms.adb,
14821         mlib-tgt-vms.ads: Replace headers with GPL v3 headers.
14822
14823 2007-09-10  Emmanuel Briot  <briot@adacore.com>
14824
14825         * s-regpat.adb (Parse_Character_Class): Fix handling of empty character
14826         classes ("[]").
14827
14828 2007-09-10  Vasiliy Fofanov  <fofanov@adacore.com>
14829
14830         * adaint.c (__gnat_translate_vms): new function.
14831
14832 2007-09-10  Gary Dismukes  <dismukes@adacore.com>
14833             Thomas Quinot  <quinot@adacore.com>
14834
14835         * exp_ch3.adb (Predef_Spec_Or_Body): When the type is abstract, only
14836         create an abstract subprogram in the case of 'Input. For 'Output we now
14837         create a real spec/body when the type is abstract, since it can
14838         potentially be called.
14839         (Predefined_Primitive_Bodies): Now allow the creation of a predefined
14840         body for 'Output when the type is abstract (only the creation of the
14841         body for 'Input is excluded when the type is abstract).
14842         (Stream_Operation_OK): Add an additional condition in the return
14843         statement, so that False will be returned for TTS_Stream_Input if the
14844         associated tagged type is an abstract extension. Add comments for
14845         return statement.
14846         (Expand_N_Object_Declaration): For the case of a shared passive
14847         variable, insert init proc call only after the shared variable
14848         procedures have been processed, because the IP call needs to undergo
14849         shared passive variable reference expansion, which requires these
14850         procedures to be available (and elaborated).
14851
14852 2007-09-10  Vincent Celier  <celier@adacore.com>
14853
14854         * prj-env.ads, prj-env.adb (Create_Mapping_File (Language)): Remove
14855         parameter Runtime_Project.
14856
14857 2007-09-10  Ed Schonberg  <schonberg@adacore.com>
14858
14859         * sem_aggr.adb (Build_Record_Aggr_Code): If an aggregate component is
14860         given a box association, the type of the component is discriminated,
14861         and the value of the discriminant is the discriminant of the enclosing
14862         type, retrieve its value from the aggregate itself, where it must have
14863         been supplied.
14864
14865         * sem_ch4.adb (Analyze_One_Call): Further refinement to previous fix,
14866         to remove other spurious ambiguities on arithmetic operations involving
14867         literals and addresses, on systems where Address is a visible integer
14868         type, when the operator is called in functional notation.
14869         (Try_Primitive_Operation): Within an instance, a call in prefixed form
14870         is legal when the types match, even if the operation is currently
14871         hidden.
14872
14873 2007-09-10  Ed Schonberg  <schonberg@adacore.com>
14874
14875         * sem_ch12.adb (Build_Local_Package): A formal package with no
14876         associations is legal if all formals have defaults. It is not
14877         equivalent to a formal declared with a box.
14878
14879 2007-09-10  Sergey Rybin  <rybin@adacore.com>
14880
14881         * vms_data.ads: Add qualifier for the new gnatmetric '-lratio' option
14882
14883 2007-09-10  Sergey Rybin  <rybin@adacore.com>
14884
14885         * gnat_ugn.texi: Add description of the new '-lratio' option
14886         Update 7.3.1 section about availability of the feature.
14887
14888 2007-09-10  Thomas Quinot  <quinot@adacore.com>
14889
14890         * exp_smem.ads, exp_smem.adb (Make_Shared_Var_Procs): Return last
14891         inserted node.
14892
14893 2007-09-10  Olivier Hainque  <hainque@adacore.com>
14894
14895         * Makefile.in: (mips-irix section): Activate build of libgmem.
14896
14897 2007-09-10  Eric Botcazou  <ebotcazou@adacore.com>
14898
14899         * a-numaux-x86.adb (Logarithmic_Pow): Do not silently clobber
14900         x87 registers.
14901
14902 2007-09-10  Eric Botcazou  <ebotcazou@adacore.com>
14903
14904         * decl.c (gnat_to_gnu_entity) <object>: Deal with variable built for
14905         a debug renaming declaration specially.
14906
14907 2007-09-08  Eric Botcazou  <ebotcazou@adacore.com>
14908
14909         * decl.c (gnat_to_gnu_entity) <Object>: Simplify the condition under
14910         which a constant renaming is treated as a normal object declaration.
14911         * trans.c (lvalue_required_p) <N_Slice>: New case, extracted from
14912         the N_Indexed_Component case.
14913         <N_Indexed_Component>: Fall through to above case.
14914         <N_Object_Renaming_Declaration>: Return true for all composite types.
14915
14916 2007-09-08  Eric Botcazou  <ebotcazou@adacore.com>
14917
14918         * decl.c (make_packable_type): If the new type has been given BLKmode,
14919         try again to get an integral mode for it.
14920
14921 2007-09-07  Eric Botcazou  <ebotcazou@adacore.com>
14922
14923         Re-apply accidentally reverted change:
14924
14925         2007-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
14926
14927         * raise-gcc.c (get_region_description_for, get_call_site_action_for,
14928         get_action_description_for): Replace _Unwind_Word with _uleb128_t
14929         and _Unwind_SWord with _sleb128_t.
14930
14931 2007-09-06  Eric Botcazou  <ebotcazou@adacore.com>
14932
14933         * trans.c (convert_with_check): Update call to real_2expN.
14934
14935 2007-09-05  Sandra Loosemore  <sandra@codesourcery.com>
14936
14937         * trans.c (Compilation_unit_to_gnu): Use set_cfun.
14938         * utils.c (end_subprog_body): Likewise.
14939
14940 2007-09-03  Nick Clifton  <nickc@redhat.com>
14941
14942         * Make-lang.in: Change copyright header to refer to version 3 of
14943         the GNU General Public License and to point readers at the
14944         COPYING3 file and the FSF's license web page.
14945         * ada-tree.def, nmake.adt, nlists.h, snames.h, utils.c,
14946         Makefile.rtl, Makefile.in, config-lang.in, uintp.h, urealp.h,
14947         namet.h, decl.c, utils2.c, lang.opt, elists.h, atree.h, types.h,
14948         treeprs.adt, lang-specs.h, cuintp.c, stringt.h, gnatbl.c:
14949         Likewise.
14950
14951 2007-08-31  Vincent Celier  <celier@adacore.com>
14952
14953         PR ada/4720
14954
14955         * gnatchop.adb, gnatfind.adb, gnatlink.adb, gnatls.adb,
14956         gnatname.adb, gnatxref.adb, gprep.adb, clean.adb gnatbind.adb
14957         (Check_Version_And_Help): New procedure in package Switch to process
14958         switches --version and --help.
14959         Use Check_Version_And_Help in GNAT tools
14960
14961         * make.adb:  Ditto.
14962         (Compile_Sources): Make sure that sources that are "excluded" are not
14963         compiled.
14964         (Gnatmake): Do not issue -aO. to gnatbind and only issue -I- if a
14965         project file is used.
14966         (Version_Switch): Remove, moved to Switch
14967         (Help_Switch): Remove, moved to Switch
14968         (Display_Version): Remove, moved to Switch
14969
14970         * switch.ads, switch.adb (Check_Version_And_Help): New procedure in
14971         package Switch to process switches --version and --help.
14972         (Display_Version): New procedure
14973
14974         * gnatvsn.ads, gnatvsn.adb (Copyright_Holder): New function.
14975
14976 2007-08-31  Javier Miranda  <miranda@adacore.com>
14977
14978         * a-tags.adb (Internal_Tag): Protect the run-time against wrong
14979         internal tags.
14980
14981 2007-08-31  Hristian Kirtchev  <kirtchev@adacore.com>
14982
14983         * checks.adb (In_Declarative_Region_Of_Subprogram_Body): New routine.
14984         (Mark_Non_Null): If the node for which we just generated an access check
14985         is a reference to an *in* parameter and the reference appears in the
14986         declarative part of a subprogram body, mark the node as known non null.
14987
14988 2007-08-31  Hristian Kirtchev  <kirtchev@adacore.com>
14989
14990         * einfo.ads, einfo.adb: New flag Is_Raised (Flag224). Update the
14991         structure of E_Exception to reflect the new flag.
14992         (Is_Raised, Set_Is_Raised): New inlined routines.
14993         Update the usage of available flag to reflect the addition of Is_Raised.
14994         (Is_Raised, Set_Is_Raised): Bodies of new routines.
14995         (Write_Entity_Flags): Write the status of flag Is_Raised.
14996         (Is_Descendent_Of_Address): New entity flag, to simplify handling of
14997         spurious ambiguities when integer literals appear in the context of an
14998         address type that is a visible integer type.
14999
15000         * sem_ch11.adb (Analyze_Exception_Handler): Add code to warn on local
15001         exceptions never being raised.
15002         (Analyze_Raise_Statement): When analyzing an exception, mark it as being
15003         explicitly raised.
15004
15005 2007-08-31  Javier Miranda  <miranda@adacore.com>
15006
15007         * exp_ch11.adb (Expand_At_End_Handler): Avoid generation of raise
15008         statement when compiling under restriction No_Exceptions_Proparation.
15009
15010 2007-08-31  Ed Schonberg  <schonberg@adacore.com>
15011
15012         * exp_ch3.adb (Build_Record_Init_Proc): If there is a static
15013         initialization aggregate for the type, generate itype references for
15014         thetypes of its (sub)components, to prevent out-of-scope errors in gigi.
15015
15016 2007-08-31  Gary Dismukes  <dismukes@adacore.com>
15017
15018         * exp_ch8.adb (Expand_N_Package_Renaming_Declaration): In the case of a
15019         library-level package renaming, pass the declaration associated with
15020         the renaming's special debug variable to Qualify_Entity_Names to ensure
15021         that its encoded name is properly qualified.
15022
15023         * exp_dbug.adb (Qualify_All_Entity_Names): Check for a variable entity
15024         occurring in the list of entities to qualify, and do not attempt to
15025         traverse an entity list in that case. Variables associated with
15026 `       library-level package renamings can now occur in the table.
15027
15028         * exp_dbug.ads: Revise documentation of the encoding for renaming
15029         declarations.
15030
15031 2007-08-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15032
15033         * layout.adb (Layout_Type): Use Underlying_Type to determine whether an
15034         access type points to an unconstrained array.
15035
15036 2007-08-31  Hristian Kirtchev  <kirtchev@adacore.com>
15037
15038         * restrict.adb, namet.adb, par-util.adb: Remove redundant type
15039         conversion.
15040
15041         * sem_res.adb (Resolve_Qualified_Expression): Add machinery to detect
15042         simple redundant qualifications. The check is performed whenever the
15043         expression is a non-overloaded identifier.
15044         (Resolve_Type_Conversion): Enchance the redundant type conversion check
15045         to include loop parameters.
15046         (Valid_Conversion): Avoid generation of spurious error message.
15047
15048 2007-08-31  Bob Duff  <duff@adacore.com>
15049
15050         * par-ch4.adb (P_Simple_Expression): Fold long sequences of
15051         concatenations of string literals into a single literal, in order to
15052         avoid very deep recursion in the front end, which was causing stack
15053         overflow.
15054
15055         * sem_eval.adb (Eval_Concatenation): If the left operand is the empty
15056         string, and the right operand is a string literal (the case of "" &
15057         "..."), optimize by avoiding copying the right operand -- just use the
15058         value of the right operand directly.
15059
15060         * stringt.adb (Store_String_Chars): Optimize by growing the
15061         String_Chars table all at once, rather than appending characters one by
15062         one.
15063         (Write_String_Table_Entry): If the string to be printed is very long,
15064         just print the first few characters, followed by the length. Otherwise,
15065         doing "pn(n)" in the debugger can take an extremely long time.
15066
15067         * sem_prag.adb (Process_Interface_Name): Replace loop doing
15068         Store_String_Char with Store_String_Chars.
15069
15070 2007-08-31  Vincent Celier  <celier@adacore.com>
15071
15072         * prj-attr.adb: Add new attribute Excluded_Source_Files
15073
15074         * prj-nmsc.adb: Use attribute Excluded_Source_Files before
15075         Locally_Removed_Files.
15076
15077         * snames.ads, snames.adb: New standard name Excluded_Source_Files
15078
15079 2007-08-31  Ed Schonberg  <schonberg@adacore.com>
15080
15081         * sem_ch10.adb (Analyze_Subunit_Context): When analyzing context
15082         clauses of subunits, ignore limited_with_clauses that are illegal and
15083         have not been fully analyzed.
15084
15085 2007-08-31  Ed Schonberg  <schonberg@adacore.com>
15086
15087         * sem_ch3.adb: The predicate Is_Descendent_Of_Address is now an entity
15088         flag, for effiency. It is called when analyzing arithmetic operators
15089         and also for actuals in calls that are universal_integers. The flag is
15090         set for the predefined type address, and for any type or subtype
15091         derived from it.
15092
15093         * sem_ch4.adb (Analyze_One_Call): Reject an actual that is a
15094         Universal_Integer, when the formal is a descendent of address and the
15095         call appears in user code.
15096         (Analyze_Selected_Component): if the prefix is a private extension, the
15097         tag component is visible.
15098
15099         * sem_util.ads, sem_util.adb: Remove Is_Descendent_Of_Address, now an
15100         entity flag.
15101
15102 2007-08-31  Robert Dewar  <dewar@adacore.com>
15103
15104         * s-fileio.adb (Open): Normalize file name to lower case in non-case
15105         sensitive file name systems to avoid unexpected mismatch in Vista.
15106
15107 2007-08-31  Vincent Celier  <celier@adacore.com>
15108
15109         * tempdir.adb: On VMS, take into account GNUTMPDIR before TMPDIR
15110
15111 2007-08-31  Vincent Celier  <celier@adacore.com>
15112
15113         * symbols-vms.adb (Initialize): Read symbol files with continuation
15114         lines
15115         (Finalize): If symbol is long, split the line
15116
15117 2007-08-31  Vincent Celier  <celier@adacore.com>
15118
15119         * fmap.ads: Minor comment updates
15120
15121 2007-08-31  GNAT Script  <nobody@adacore.com>
15122
15123         * Make-lang.in: Makefile automatically updated
15124
15125 2007-08-31  Bob Duff  <duff@adacore.com>
15126
15127         * sinfo.ads: Minor comment fix.
15128
15129 2007-08-31  Thomas Quinot  <quinot@adacore.com>
15130
15131         * stand.ads: (Standard_Debug_Renaming_Type): Make comment consistent
15132         with implementation.
15133         Documentation cleanup only.
15134
15135 2007-08-31  Sergey Rybin  <rybin@adacore.com>
15136
15137         * vms_data.ads: Add new qualifier /STMT_NAME_ON_NEW_LINE for the new
15138         gnatpp '--separate-stmt-name' option.
15139         Add new qualifier /USE_ON_NEW_LIN for the new gnatpp '--use-on-new-line'
15140         option.
15141
15142         * gnat_ugn.texi: Add description for the new gnatpp
15143         '--separate-stmt-name' and '--use-on-new-line' options.
15144
15145 2007-08-31  Ben Elliston  <bje@au.ibm.com>
15146
15147         * Makefile.in (LIBGNAT_TARGET_PAIRS): Use system-linux-ppc64.ads
15148         when compiling for powerpc64-*-linux.
15149         * system-linux-ppc64.ads: New file.
15150
15151 2007-08-22  Krister Walfridsson  <cato@df.lth.se>
15152
15153         * env.c ( __gnat_clearenv): Use the __gnat_unsetenv mechanism for
15154         NetBSD.
15155
15156 2007-08-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15157
15158         * misc.c (gnat_type_max_size): Constify.
15159
15160 2007-08-16  Gary Dismukes  <dismukes@adacore.com>
15161
15162         * cstand.adb (Create_Standard): Create an entity for a zero-sized type
15163         associated with Standard_Debug_Renaming_Type, to be used as the type of
15164         the special variables whose names provide debugger encodings for
15165         renaming declarations.
15166
15167         * einfo.ads, einfo.adb (Debug_Renaming_Link): Change to return Node25.
15168         (Set_Debug_Renaming_Link): Change to set Node25.
15169         (Write_Field13_Name): Remove case for E_Enumeration_Literal.
15170         (Write_Field25_Name): Add case for E_Variable to output
15171         "Debug_Renaming_Link".
15172         (Write_Field23_Name): Correct the output string for "Limited_View".
15173
15174         * exp_dbug.adb: Add with and use of Tbuild.
15175         (Debug_Renaming_Declaration): Replace creation of an enumeration type
15176         and literal with creation of a variable of type
15177         Standard_Debug_Renaming_Type whose name encodes both the renamed object
15178         and the entity of the renaming declaration.
15179         (Qualify_Entity_Name): Add the delayed qualification of the entity name
15180         part of the name of a variable that has a Debug_Renaming_Link.
15181
15182         * stand.ads (Standard_Debug_Renaming_Type): New Entity_Id denoting a
15183         special type to be associated with variables that provide debugger
15184         encodings for renaming declarations.
15185
15186 2007-08-16  Gary Dismukes  <dismukes@adacore.com>
15187             Ed Schonberg  <schonberg@adacore.com>
15188             Javier Miranda  <miranda@adacore.com>
15189
15190         * exp_aggr.adb (Build_Record_Aggr_Code): Extend the test for an
15191         ancestor part given by an aggregate to test for an unchecked conversion,
15192         since this can occur in some cases when the ancestor part is a function
15193         call, and we don't want to fall into the recursive call to this
15194         procedure in that case.
15195
15196         * exp_ch3.adb (Stream_Operation_OK): Revise tests for availability of
15197         stream attributes on limited types to account for user-specified
15198         attributes as well as whether Input (resp. Output) becomes available
15199         due to Read (resp. Write) being available for the type. Change Boolean
15200         variable to the more accurate name
15201         Has_Predefined_Or_Specified_Stream_Attribute. Change convoluted
15202         double-"not" predicate at beginning of return statement to more
15203         understandable form.
15204
15205         * exp_ch5.adb (Expand_N_Extended_Return_Statement): If the extended
15206         return has an associated N_Handled_Sequence_Of_Statements, then wrap it
15207         in a block statement and use that as the first statement of the
15208         expanded return rather than incorrectly using the handled sequence as
15209         the first statement.
15210
15211         * exp_ch6.adb (Expand_N_Subprogram_Declaration): If this is a protected
15212         operation, generate an explicit freeze node for it rather than
15213         generating extra formals, to ensure that gigi has the proper order of
15214         elaboration for anonymous subtypes in the signature of the subprograms.
15215         (Build_In_Place_Formal): Move assertion to beginning of loop.
15216         (Is_Build_In_Place_Function_Call): Allow for an unchecked conversion
15217         applied to a function call (occurs for some cases of 'Input).
15218         (Make_Build_In_Place_Call_In_*): Allow for an unchecked conversion
15219         applied to a function call (occurs for some cases of 'Input).
15220
15221         * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): For Ada
15222         2005, generate an extended return statement enclosing the result object
15223         and 'Read call.
15224
15225         * freeze.adb (Freeze_Record_Type): Extend the current management of
15226         components that are access type with an allocator as default value: add
15227         missing support to the use of qualified expressions of the
15228         allocator (which also cause freezing of the designated type!)
15229         (Freeze_Entity): Call Freeze_Subprogram in the case of a predefined
15230         dispatching operation, since extra formals may be needed by calls to
15231         build-in-place functions (such as stream 'Input).
15232
15233         * sem_ch6.adb (Create_Extra_Formals): Skip creation of the extra
15234         formals for 'Constrained and accessibility level in the case of a
15235         predefined dispatching operation.
15236
15237         * exp_util.adb (Insert_Actions): A protected body is a valid insertion
15238         point, no need to find the parent node.
15239
15240 2007-08-16  Javier Miranda  <miranda@adacore.com>
15241
15242         * exp_attr.adb (Attribute_Priority): Add missing support for entries
15243         and entry barriers.
15244
15245 2007-08-16  Javier Miranda  <miranda@adacore.com>
15246
15247         * exp_ch9.adb (Build_Protected_Entry): Undo previous change because it
15248         is not really required and can introduce regression with the debugger.
15249         The original problem is fixed with the patch written for checks.adb.
15250
15251 2007-08-16  Thomas Quinot  <quinot@adacore.com>
15252
15253         * g-dyntab.adb, g-table.adb, table.adb: (Set_Item): Suppress
15254         Range_Check on Allocated_Table.
15255
15256 2007-08-16  Vincent Celier  <celier@adacore.com>
15257
15258         * make.adb (Collect_Arguments): Call Test_If_Relative_Path with
15259         Including_Non_Switch set to False.
15260         (Gnatmake): For the compiler, call Test_If_Relative_Path with
15261         Including_Non_Switch set to False.
15262
15263         * makeutl.adb, makeutl.ads (Test_If_Relative_Path): New Boolean
15264         parameter Including_Non_Switch, defaulted to True. When
15265         Including_Non_Switch is False, options that are not switches and
15266         appear as relative path are not converted to absolute paths.
15267
15268 2007-08-16  Nicolas Roche  <roche@adacore.com>
15269
15270         * Makefile.in (gnatlib): Propagate FORCE_DEBUG_ADAFLAGS value to sub
15271         makefiles
15272
15273         * Make-lang.in: Update dependencies
15274
15275 2007-08-16  Hristian Kirtchev  <kirtchev@adacore.com>
15276
15277         * sem_ch10.adb (Has_With_Clause): If the name of the with clause
15278         currently inspected is a selected component, retrieve the entity of
15279         its selector.
15280         (Install_Limited_Withed_Unit): Call Has_Limited_With_Clause starting
15281         from the immediate ancestor of Main_Unit_Entity.
15282         (Install_Limited_Withed_Unit): Do not install the limited view of
15283         package P if P is reachable through an ancestor chain from package C
15284         and C also has a with clause for P in its body.
15285         (Has_Limited_With_Clause): New routine.
15286         (Has_With_Clause): New routine.
15287
15288 2007-08-16  Ed Schonberg  <schonberg@adacore.com>
15289
15290         * sem_ch12.adb (Copy_Generic_Node): A reference to a child unit of the
15291         generic for an enclosing instance is a global reference, even though
15292         its scope is the enclosing instance.
15293
15294 2007-08-16  Gary Dismukes  <dismukes@adacore.com>
15295             Javier Miranda  <miranda@adacore.com>
15296
15297         * sem_ch3.adb (OK_For_Limited_Init_In_05): Allow calls to 'Input to
15298         initialize a limited object.
15299         (Build_Derived_Record_Type): Add missing check of rules ARM 3.9.4
15300         13/2 and 14/2.
15301         Make sure Has_Complex_Representation is inherited by derived type.
15302
15303 2007-08-16  Robert Dewar  <dewar@adacore.com>
15304
15305         * sem_ch5.adb (Analyze_Assignment): Make sure we still note update in
15306         exception case
15307
15308 2007-08-16  Ed Schonberg  <schonberg@adacore.com>
15309
15310         * sem_disp.adb (Check_Dispatching_Operation): If the operation
15311         implements an operation inherited from a progenitor interface, verify
15312         that they are subtype-conformant.
15313
15314 2007-08-16  Hristian Kirtchev  <kirtchev@adacore.com>
15315             Bob Duff  <duff@adacore.com>
15316             Nicolas Setton  <setton@adacore.com>
15317
15318         * sem_res.adb (Comes_From_Predefined_Lib_Unit): New.
15319         (Resolve): Alphabetize local variables. Add new variable From_Lib. When
15320         the statement which is being resolved comes from a predefined library
15321         unit, all non-predefined library interpretations are skipped.
15322         (Resolve_Op_Concat): If string concatenation was folded in the parser,
15323         but the "&" is user defined, give an error, because the folding would
15324         be wrong.
15325
15326         * sinfo.ads, sinfo.adb (Is_Folded_In_Parser): New flag to indicate that
15327         the parser has folded a long sequence of concatenations of string
15328         literals.
15329
15330         * trans.c (Handled_Sequence_Of_Statements_to_gnu): Mark "JMPBUF_SAVE"
15331         and "JMP_BUF" variables as artificial.
15332         (N_String_Literal): Do not use alloca for very long string literals. Use
15333         xmalloc/free instead. Otherwise the stack might overflow.
15334
15335         * utils.c (init_gigi_decls): Mark "JMPBUF_T" type as created by the
15336         compiler.
15337
15338 2007-08-16  Vincent Celier  <celier@adacore.com>
15339
15340         * vms_conv.adb (Process_Argument): Ensure that project related options
15341         are not put in the -cargs section when using GNAT COMPILE.
15342
15343 2007-08-16  Robert Dewar  <dewar@adacore.com>
15344
15345         * gnat_ugn.texi: Add note on preprocessing (output file not written)
15346
15347 2007-08-16  Thomas Quinot  <quinot@adacore.com>
15348
15349         * a-tags.adb: Minor reformatting.
15350
15351 2007-08-16  Bob Duff  <duff@adacore.com>
15352
15353         * sem_type.ads, sem_ch4.adb: Minor reformatting.
15354
15355 2007-08-14  Thomas Quinot  <quinot@adacore.com>
15356
15357         * g-soccon-interix.ads, a-excpol-interix.adb, a-intnam-interix.ads,
15358         s-osinte-interix.ads, system-interix.ads: Removed.
15359
15360 2007-08-14  Hristian Kirtchev  <kirtchev@adacore.com>
15361
15362         * a-calend-vms.adb, a-calend.adb ("+", "-", Add, Subtract): Remove
15363         calls to Check_Within_Time_Bounds.
15364         ("+", "-", Add, Subtract): Remove calls to Check_Within_Time_Bounds.
15365         (Difference): Account for possible rounding of the resulting difference
15366
15367 2007-08-14  Robert Dewar  <dewar@adacore.com>
15368
15369         * uintp.adb, a-ztedit.adb, s-wchcon.adb, xnmake.adb, s-wchcon.adb,
15370         par-ch5.adb, par-ch10.adb, get_targ.adb, a-wtedit.adb, a-teioed.adb,
15371         s-osinte-solaris.adb, s-osinte-solaris.ads,
15372         s-osinte-freebsd.ads, s-osinte-freebsd.adb: Minor reformatting.
15373
15374         * styleg.adb, styleg.ads, stylesw.adb, stylesw.ads: implement style
15375         switch -gnatyS. Enable -gnatyS in GNAT style check mode
15376
15377 2007-08-14  Robert Dewar  <dewar@adacore.com>
15378             Ed Schonberg  <schonberg@adacore.com>
15379
15380         * inline.adb, types.ads, inline.ads, frontend.adb, alloc.ads:
15381         Suppress unmodified in-out parameter warning in some cases
15382         This patch is a also fairly significant change to the way suppressible
15383         checks are handled.
15384
15385         * checks.ads, checks.adb (Install_Null_Excluding_Check): No check
15386         needed for access to concurrent record types generated by the expander.
15387         (Generate_Range_Check): When generating a temporary to capture the
15388         value of a conversion that requires a range check, set the type of the
15389         temporary before rewriting the node, so that the type is always
15390         properly placed for back-end use.
15391         (Apply_Float_Conversion_Check): Handle case where the conversion is
15392         truncating.
15393         (Get_Discriminal): Code reformatting. Climb the scope stack looking
15394         for a protected type in order to examine its discriminants.
15395
15396 2007-08-14  Robert Dewar  <dewar@adacore.com>
15397             Gary Dismukes  <dismukes@adacore.com>
15398             Ed Schonberg  <schonberg@adacore.com>
15399             Thomas Quinot  <quinot@adacore.com>
15400
15401         * a-stzsup.adb, nlists.adb, lib-util.adb, treepr.adb,
15402         a-stwisu.adb, a-strsup.adb: Fix warnings for range
15403         tests optimized out.
15404
15405         * exp_ch4.adb (Expand_N_In): Add warnings for range tests optimized out.
15406         (Get_Allocator_Final_List): For the case of an anonymous access type
15407         that has a specified Associated_Final_Chain, do not go up to the
15408         enclosing scope.
15409         (Expand_N_Type_Conversion): Test for the case of renamings of access
15410         parameters when deciding whether to apply a run-time accessibility
15411         check.
15412         (Convert_Aggr_In_Allocator): Use Insert_Actions to place expanded
15413         aggregate code before allocator, and ahead of declaration for
15414         temporary, to prevent access before elaboration when the allocator is
15415         an actual for an access parameter.
15416         (Expand_N_Type_Conversion): On an access type conversion involving an
15417         access parameter, do not apply an accessibility check when the
15418         operand's original node was an attribute other than 'Access. We now
15419         create access conversions for the expansion of 'Unchecked_Access and
15420         'Unrestricted_Access in certain cases and clearly accessibility should
15421         not be checked for those.
15422
15423         * exp_ch6.ads, exp_ch6.adb (Add_Call_By_Copy_Code): For an actual that
15424         includes a type conversion of a packed component that has been expanded,
15425         recover the original expression for the object, and use this expression
15426         in the post-call assignment statement, so that the assignment is made
15427         to the object and not to a back-end temporary.
15428         (Freeze_Subprogram): In case of primitives of tagged types not defined
15429         at the library level force generation of code to register the primitive
15430         in the dispatch table. In addition some code reorganization has been
15431         done to leave the implementation clear.
15432         (Expand_Call): When expanding an inherited implicit conversion,
15433         preserve the type of the inherited function after the intrinsic
15434         operation has been expanded.
15435
15436         * exp_ch2.ads, exp_ch2.adb
15437         (Expand_Entry_Parameter.In_Assignment_Context): An implicit dereference
15438         of an entry formal appearing in an assignment statement does not assign
15439         to the formal.
15440         (Expand_Current_Value): Instead of calling a routine to determine
15441         whether the prefix of an attribute reference should be optimized or
15442         not, prevent the optimization of such prefixes all together.
15443
15444         * lib-xref.adb (Generate_Reference.Is_On_LHS): An indexed or selected
15445         component whose prefix is known to be of an access type is an implicit
15446         dereference and does not assign to the prefix.
15447
15448 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
15449             Robert Dewar  <dewar@adacore.com>
15450
15451         * atree.ads, atree.adb (New_Copy_Tree): If hash table is being used and
15452         itype is visited, make an entry into table to link associated node and
15453         new itype.
15454         Add comments and correct harmless error in Build_NCT_Hash_Tables
15455         (Array_Aggr_Subtype): Associate each itype created for an index type to
15456         the corresponding range construct, and not to the aggregate itself. to
15457         maintain a one-to-one correspondence between itype and its associated
15458         node, to prevent errors when complex expression is copied.
15459         Fix mishandling of multiple levels of parens
15460
15461         * sem_aggr.adb: Create a limited view of an incomplete type, to make
15462         treatment of limited views uniform for all visible declarations in a
15463         limited_withed package.
15464         (New_Copy_Tree): If hash table is being used and itype is visited,
15465         make an entry into table to link associated node and new itype.
15466         (Resolve_Record_Aggregate): Do not add an others box association for a
15467         discriminated record component that has only discriminants, when there
15468         is a box association for the component itself.
15469
15470         * par-ch4.adb: Fix mishandling of multiple levels of parens
15471
15472 2007-08-14  Robert Dewar  <dewar@adacore.com>
15473
15474         * comperr.adb: Fix problem with suppressing warning messages from gigi
15475
15476         * erroutc.ads, erroutc.adb, errout.ads,
15477         errout.adb (Write_Eol): Remove trailing spaces before writing the line
15478         (Write_Eol_Keep_Blanks): New procedure to write a line, including
15479         possible trailing spaces.
15480         (Output_Source_Line): Call Write_Eol_Keep_Blanks to output a source line
15481         Fix problem with suppressing warning messages from back end
15482         Improve handling of deleted warnings
15483
15484         * gnat1drv.adb:
15485         Fix problem with suppressing warning messages from back end
15486         Handle setting of Static_Dispatch_Tables flag.
15487
15488         * prepcomp.adb:
15489         Fix problem with suppressing warning messages from back end
15490
15491         * exp_intr.adb: Improve handling of deleted warnings
15492
15493 2007-08-14  Robert Dewar  <dewar@adacore.com>
15494
15495         * debug.adb: Improve -gnatdI to cover all cases of serialization
15496         Add documentation of dZ, d.t
15497
15498         * sprint.ads, sprint.adb: Improve -gnatdI to cover all cases of
15499         serialization.
15500         (Sprint_Node_Actual): Generate new output associated with implicit
15501         importation and implicit exportation of object declarations.
15502
15503 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
15504             Robert Dewar  <dewar@adacore.com>
15505             Javier Miranda  <miranda@adacore.com>
15506             Gary Dismukes  <dismukes@adacore.com>
15507
15508         * einfo.ads, einfo.adb: Create a limited view of an incomplete type,
15509         to make treatment of limited views uniform for all visible declarations
15510         in a limited_withed package.
15511         Improve warnings for in out parameters
15512         (Set_Related_Interaface/Related_Interface): Allow the use of this
15513         attribute with constants.
15514         (Write_Field26_Name): Handle attribute Related_Interface in constants.
15515         Warn on duplicate pragma Preelaborable_Initialialization
15516
15517         * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Body): Force the
15518         generation of a freezing node to ensure proper management of null
15519         excluding access types in the backend.
15520         (Create_Extra_Formals): Test base type of the formal when checking for
15521         the need to add an extra accessibility-level formal. Pass the entity E
15522         on all calls to Add_Extra_Formal (rather than Scope (Formal) as was
15523         originally being done in a couple of cases), to ensure that the
15524         Extra_Formals list gets set on the entity E when the first entity is
15525         added.
15526         (Conforming_Types): Add missing calls to Base_Type to the code that
15527         handles anonymous access types. This is required to handle the
15528         general case because Process_Formals builds internal subtype entities
15529         to handle null-excluding access types.
15530         (Make_Controlling_Function_Wrappers): Create wrappers for constructor
15531         functions that need it, even when not marked Requires_Overriding.
15532         Improve warnings for in out parameters
15533         (Analyze_Function_Return): Warn for disallowed null return
15534         Warn on return from procedure with unset out parameter
15535         Ensure consistent use of # in error messages
15536         (Check_Overriding_Indicator): Add in parameter Is_Primitive.
15537         (Analyze_Function_Return): Move call to Apply_Constraint_Check before
15538         the implicit conversion of the expression done for anonymous access
15539         types. This is required to generate the code of the null excluding
15540         check (if required).
15541
15542         * sem_warn.ads, sem_warn.adb (Check_References.Publicly_Referenceable):
15543         A formal parameter is never publicly referenceable outside of its body.
15544         (Check_References): For an unreferenced formal parameter in an accept
15545         statement, use the same warning circuitry as for subprogram formal
15546         parameters.
15547         (Warn_On_Unreferenced_Entity): New subprogram, taken from
15548         Output_Unreferenced_Messages, containing the part of that routine that
15549         is now reused for entry formals as described above.
15550         (Goto_Spec_Entity): New function
15551         (Check_References): Do not give IN OUT warning for dispatching operation
15552         Improve warnings for in out parameters
15553         (Test_Ref): Check that the entity is not undefinite before calling
15554         Scope_Within, in order to avoid infinite loops.
15555         Warn on return from procedure with unset out parameter
15556         Improved warnings for unused variables
15557
15558 2007-08-14  Robert Dewar  <dewar@adacore.com>
15559             Javier Miranda  <miranda@adacore.com>
15560             Gary Dismukes  <dismukes@adacore.com>
15561
15562         * exp_attr.adb (Expand_N_Attribute_Reference): Handle case of child unit
15563         (Expand_N_Attribute_Reference): Further unify the handling of the
15564         three forms of access attributes, using common code now for all three
15565         cases. Add a test for the case of applying an access attribute to
15566         an explicit dereference when the context is an access-to-interface
15567         type. In that case we need to apply the conversion to the prefix
15568         of the explicit dereference rather than the prefix of the attribute.
15569         (Attribute_Version, UET_Address): Set entity as internal to ensure
15570         proper dg output of implicit importation.
15571         (Expand_Access_To_Type): Removed.
15572         (Expand_N_Attribute_Reference): Merge the code from the three cases
15573         of access attributes, since the processing is largely identical for
15574         these cases. The substantive fix here is to process the case of a
15575         type name prefix (current instance case) before handling the case
15576         of interface prefixes.
15577
15578 2007-08-14  Thomas Quinot  <quinot@adacore.com>
15579             Ed Schonberg  <schonberg@adacore.com>
15580             Javier Miranda  <miranda@adacore.com>
15581             Robert Dewar  <dewar@adacore.com>
15582
15583         * exp_ch3.ads, exp_ch3.adb (Add_Final_Chain): New subprogram.
15584         (Freeze_Array_Type, Freeze_Record_Type): For the case of a component
15585         type that is an anonymous access to controlled object, establish
15586         an associated finalization chain to avoid corrupting the global
15587         finalization list when a dynamically allocated object designated
15588         by such a component is deallocated.
15589         (Make_Controlling_Function_Wrappers): Create wrappers for constructor
15590         functions that need it, even when not marked Requires_Overriding.
15591         (Initialize_Tag): Replace call to has_discriminants by call to
15592         Is_Variable_Size_Record in the circuitry that handles the
15593         initialization of secondary tags.
15594         (Is_Variable_Size_Record): New implementation.
15595         (Expand_N_Object_Declaration): Suppress call to init proc if there is a
15596         Suppress_Initialization pragma for a derived type.
15597         (Is_Variable_Size_Record): New subprogram.
15598         (Build_Offset_To_Top_Functions): New implementation that simplifies the
15599         initial version of this routine and also fixes problems causing
15600         incomplete initialization of the table of interfaces.
15601         (Build_Init_Procedure): Improve the generation of code to initialize the
15602         the tag components of secondary dispatch tables.
15603         (Init_Secondary_Tags): New implementation that simplifies the previous
15604         version of this routine.
15605         (Make_DT): Add parameter to indicate when type has been frozen by an
15606         object declaration, for diagnostic purposes.
15607         (Check_Premature_Freezing): New subsidiary procedure of Make_DT, to
15608         diagnose attemps to freeze a subprogram when some untagged type of its
15609         profile is a private type whose full view has not been analyzed yet.
15610         (Freeze_Array_Type): Generate init proc for packed array if either
15611         Initialize or Normalize_Scalars is set.
15612         (Make_Controlling_Function_Wrappers, Make_Null_Procedure_Specs): when
15613         constructing the new profile, copy the null_exclusion indicator for each
15614         parameter, to ensure full conformance of the new body with the spec.
15615
15616         * sem_type.ads, sem_type.adb (Make_Controlling_Function_Wrappers):
15617         Create wrappers for constructor functions that need it, even when not
15618         marked Requires_Overriding.
15619         (Covers): Handle properly designated types of anonymous access types,
15620         whose non-limited views are themselves incomplete types.
15621         (Add_Entry): Use an entity to store the abstract operation which hides
15622         an interpretation.
15623         (Binary_Op_May_Be_Hidden): Rename to Binary_Op_Interp_Has_Abstract_Op.
15624         (Collect_Interps): Use Empty as an actual for Abstract_Op in the
15625         initialization aggregate.
15626         (Function_Interp_May_Be_Hidden): Rename to
15627         Function_Interp_Has_Abstract_Op.
15628         (Has_Compatible_Type): Remove machinery that skips interpretations if
15629         they are labeled as potentially hidden by an abstract operator.
15630         (Has_Hidden_Interp): Rename to Has_Abstract_Op.
15631         (Set_May_Be_Hidden): Rename to Set_Abstract_Op.
15632         (Write_Overloads): Output the abstract operator if present.
15633         (Add_Entry): Before inserting a new entry into the interpretation table
15634         for a node, determine whether the entry will be disabled by an abstract
15635         operator.
15636         (Binary_Op_Interp_May_Be_Hidden): New routine.
15637         (Collect_Interps): Add value for flag May_Be_Hidden in initialization
15638         aggregate.
15639         (Function_Interp_May_Be_Hidden): New routine.
15640         (Has_Compatible_Type): Do not consider interpretations hidden by
15641         abstract operators when trying to determine whether two types are
15642         compatible.
15643         (Has_Hidden_Interp): New routine.
15644         (Set_May_Be_Hidden_Interp): New routine.
15645         (Write_Overloads): Write the status of flag May_Be_Hidden.
15646
15647 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
15648             Javier Miranda  <miranda@adacore.com>
15649
15650         * exp_disp.ads, exp_disp.adb (Build_Dispatch_Tables): Handle tagged
15651         types declared in the declarative part of a nested package body or in
15652         the proper body of a stub.
15653         (Set_All_DT_Position): Add missing check to avoid wrong assignation
15654         of the same dispatch table slot to renamed primitives.
15655         (Make_Select_Specific_Data_Table): Handle private types.
15656         (Tagged_Kind): Handle private types.
15657         (Make_Tags, Make_DT): Set tag entity as internal to ensure proper dg
15658         output of implicit importation and exportation.
15659         (Expand_Interface_Thunk): Fix bug in the expansion assuming that the
15660         first formal of the thunk is always associated with the controlling
15661         type. In addition perform the following code cleanup: remove formal
15662         Thunk_Alias which is no longer required, cleanup evaluation of the
15663         the controlling type, and update the documentation.
15664         Replace occurrence of Default_Prim_Op_Count by
15665         Max_Predef_Prims. Addition of compile-time check to verify
15666         that the value of Max_Predef_Prims is correct.
15667         (Check_Premature_Freezing): Apply check in Ada95 mode as well.
15668         (Make_DT): Add parameter to indicate when type has been frozen by an
15669         object declaration, for diagnostic purposes.
15670         (Build_Static_Dispatch_Tables): New subprogram that takes care of the
15671         construction of statically allocated dispatch tables.
15672         (Make_DT): In case of library-level tagged types export the declaration
15673         of the primary tag. Remove generation of tags (now done by Make_Tags).
15674         Additional modifications to handle non-static generation of dispatch
15675         tables. Take care of building tables for asynchronous interface types
15676         (Make_Tags): New subprogram that generates the entities associated with
15677         the primary and secondary tags of Typ and fills the contents of Access_
15678         Disp_Table. In case of library-level tagged types imports the forward
15679         declaration of the primary tag that will be declared later by Make_DT.
15680         (Expand_Interface_Conversion): In case of access types to interfaces
15681         replace an itype declaration by an explicit type declaration to avoid
15682         problems associated with the scope of such itype in transient blocks.
15683
15684 2007-08-14  Robert Dewar  <dewar@adacore.com>
15685             Ed Schonberg  <schonberg@adacore.com>
15686             Javier Miranda  <miranda@adacore.com>
15687
15688         * exp_util.ads, exp_util.adb:
15689         This patch replaces a number of occurrences of explicit tests for N_Null
15690         with calls to Known_Null. This improves tracking of null values, since
15691         Known_Null also catches null constants, and variables currently known to
15692         be null, so we get better tracking.
15693         (Ensure_Defined): create an itype reference only in the scope of the
15694         itype.
15695         (Side_Effect_Free): A selected component of an access type that
15696         denotes a component with a rep clause must be treated as not
15697         side-effect free, because if it is part of a linked structure its
15698         value may be affected by a renaming.
15699         (Expand_Subtype_From_Expr): For limited objects initialized with build
15700         in place function calls, do nothing; otherwise we prematurely introduce
15701         an N_Reference node in the expression initializing the object, which
15702         breaks the circuitry that detects and adds the additional arguments to
15703         the called function. Bug found working in the new patch for statically
15704         allocated dispatch tables.
15705         (Is_Library_Level_Tagged_Type): New subprogram.
15706         (Remove_Side_Effects): If the expression of an elementary type is an
15707         operator treat as a function call.
15708         (Make_Literal_Range): If the index type of the array is not integer, use
15709         attributes properly to compute the constraint on the resulting aggregate
15710         which is a string.
15711
15712         * freeze.ads, freeze.adb (Freeze_Entity): If the entity is a
15713         class-wide type whose base type is an incomplete private type, leave
15714         class-wide type unfrozen so that freeze nodes can be generated
15715         properly at a later point.
15716         (Freeze_Entity, array case): Handle case of pragma Pack and component
15717         size attributre clause for same array.
15718
15719 2007-08-14  Vincent Celier  <celier@adacore.com>
15720
15721         * prj.ads, prj.adb: Update Project Manager to new attribute names for
15722         gprbuild.
15723         Allow all valid declarations in configuration project files
15724         (Reset): Initialize all tables and hash tables in the project tree data
15725         Major update of the Project Manager and of the project aware tools,
15726         including gprmake, so that the same sources in the GNAT repository
15727         can be used by gprbuild.
15728         (Slash_Id): Change type to be Path_Name_Type
15729         (Slash): Return a Path_Name_Type instead of a File_Name_Type
15730
15731         * prj-attr.ads, prj-attr.adb: Remove attributes no longer used by
15732         gprbuild.
15733         Update Project Manager to new attribute names for ghprbuild
15734         Allow all valid declarations in configuration project files
15735         Major update of the Project Manager and of the project aware tools,
15736         including gprmake, so that the same sources in the GNAT repository
15737         can be used by gprbuild.
15738
15739         * prj-com.ads:
15740         Major update of the Project Manager and of the project aware tools,
15741         including gprmake, so that the same sources in the GNAT repository
15742         can be used by gprbuild.
15743
15744         * prj-dect.adb (Prj.Strt.Attribute_Reference): Set correctly the case
15745         insensitive flag for attributes with optional index.
15746         (Prj.Dect.Parse_Attribute_Declaration): For case insensitive associative
15747         array attribute, put the index in lower case.
15748         Update Project Manager to new attribute names for ghprbuild
15749         Allow all valid declarations in configuration project files
15750         Major update of the Project Manager and of the project aware tools,
15751         including gprmake, so that the same sources in the GNAT repository
15752         can be used by gprbuild.
15753
15754         * prj-env.ads, prj-env.adb:
15755         Major update of the Project Manager and of the project aware tools,
15756         including gprmake, so that the same sources in the GNAT repository
15757         can be used by gprbuild.
15758         (Get_Reference): Change type of parameter Path to Path_Name_Type
15759
15760         * prj-ext.ads, prj-ext.adb (Initialize_Project_Path): Make sure, after
15761         removing '-' from the path to start with the first character of the
15762         next directory.
15763         Major update of the Project Manager and of the project aware tools,
15764         including gprmake, so that the same sources in the GNAT repository
15765         can be used by gprbuild.
15766         Major update of the Project Manager and of the project aware tools,
15767         including gprmake, so that the same sources in the GNAT repository
15768         can be used by gprbuild.
15769
15770         * prj-nmsc.ads, prj-nmsc.adb:
15771         Update Project Manager to new attribute names for ghprbuild
15772         Allow all valid declarations in configuration project files
15773         (Search_Directories): Detect subunits that are specified with an
15774         attribute Body in package Naming. Do not replace a source/unit in the
15775         same project when the order of the source dirs are known. Detect
15776         duplicate sources/units in the same project when the order of the
15777         source dirs are not known.
15778         (Check_Ada_Name): Allow all identifiers that are not reserved words
15779         in Ada 95.
15780         Major update of the Project Manager and of the project aware tools,
15781         including gprmake, so that the same sources in the GNAT repository
15782         can be used by gprbuild.
15783         (Look_For_Sources): If the list of sources is empty, set the object
15784         directory of non extending project to nil.
15785         Change type of path name variables to be Path_Name_Type
15786         (Locate_Directory): Make sure that on Windows '/' is converted to '\',
15787         otherwise creating missing directories will fail.
15788
15789         * prj-attr-pm.adb, prj-tree.ads, prj-proc.ads, prj-proc.adb,
15790         prj-part.ads, prj-part.adb:
15791         Major update of the Project Manager and of the project aware tools,
15792         including gprmake, so that the same sources in the GNAT repository
15793         can be used by gprbuild.
15794
15795         * prj-strt.adb (Prj.Strt.Attribute_Reference): Set correctly the case
15796         insensitive flag for attributes with optional index.
15797         (Prj.Dect.Parse_Attribute_Declaration): For case insensitive associative
15798         array attribute, put the index in lower case.
15799         (Parse_Variable_Reference): Allow the current project name to be used in
15800         the prefix of an attribute reference.
15801
15802         * prj-util.ads, prj-util.adb
15803         (Value_Of (for arrays)): New Boolean parameter Force_Lower_Case_Index,
15804         defaulted to False. When True, always check against indexes in lower
15805         case.
15806
15807         * snames.ads, snames.h, snames.adb:
15808         Update Project Manager to new attribute names for gprbuild
15809         Allow all valid declarations in configuration project files
15810
15811 2007-08-14  Robert Dewar  <dewar@adacore.com>
15812             Ed Schonberg  <schonberg@adacore.com>
15813
15814         * opt.ads: Warning for non-local exception propagation now off by
15815         default
15816         New switch -gnatI to disable representation clauses
15817         Implement new pragma Implicit_Packing
15818
15819         * usage.adb:
15820         Warning for non-local exception propagation now off by default
15821         Add warning for unchecked conversion of pointers wi different
15822         conventions.
15823         New switch -gnatI to disable representation clauses
15824
15825         * usage.adb: new switch -gnatyS
15826
15827         * gnat_ugn.texi: For the gnatcheck Non_Qualified_Aggregates rule add a
15828         note that aggregates of anonymous array types are not flagged.
15829         -gnatwc now includes membership tests optimized away
15830         -gnatw.x warnings are now off by default
15831         Added conditional compilation Appendix
15832         Add documentation of -gnatI
15833         Add documentation for new -gnatyS style check
15834         Update documentation about SAL and auto-init on Windows.
15835
15836         * gnat_rm.texi:
15837         Add documentation for pragma Check_Name and 'Enabled attribute
15838         Document that Eliminate on dispatching operation is ignored
15839         Document IDE attributes VCS_Repository_Root and VCS_Patch_Root.
15840         Document pragma Main
15841         Document pragma Implicit_Packing
15842
15843         * sem_ch13.adb: Add warning for unchecked conversion of pointers wi
15844         different conventions
15845         New switch -gnatI to disable representation clauses
15846
15847         * switch-c.adb (Scan_Front_End_Switches): When a -gnat switch is not
15848         recognized, report the invalid characters including "-gnat" instead of
15849         just the first character in the switch.
15850         New switch -gnatI to disable representation clauses
15851         Set Warn_On_Object_Renames_Function true for -gnatg
15852
15853         * vms_data.ads: Add doc for /IGNORE_REP_CLAUSES
15854         Add STATEMENTS_AFTER_THEN_ELSE as synonym for -gnatyS
15855         Add qualifier /ADD_PROJECT_SEARCH_DIR= for different tools, equivalent
15856         to switch -aP (add directory to project search dir).
15857
15858         * par-prag.adb: Implement new pragma Implicit_Packing
15859
15860         * sem_prag.adb (Analyze_Pragma, case Complex_Representation): Mark the
15861         type as having a non-standard representation, to force expansion on
15862         conversion to related types.
15863         (Analyze_Pragma): Warn on misspelled pragma
15864         (Analyze_Pragma, case Convention_Identifier): Fix checking of second arg
15865         Ensure consistent use of # in error messages
15866         Implement pragma Implicit_Packing
15867
15868 2007-08-14  Olivier Hainque  <hainque@adacore.com>
15869             Eric Botcazou  <ebotcazou@adacore.com>
15870
15871         * targtyps.c (get_target_maximum_default_alignment): New function.
15872         Maximum alignment
15873         that the compiler might choose by default for a type or object.
15874         (get_target_default_allocator_alignment): New function. Alignment known
15875         to be honored by the target default allocator.
15876         (get_target_maximum_allowed_alignment): New function. Maximum alignment
15877         we might accept for any type or object on the target.
15878         (get_target_maximum_alignment): Now synonym of maximum_default_alignment
15879
15880         * gigi.h (get_target_maximum_default_alignment): Declare new function.
15881         (get_target_default_allocator_alignment): Likewise.
15882         (get_target_maximum_allowed_alignment): Likewise.
15883
15884         PR ada/19037
15885         * decl.c (gnat_to_gnu_entity) <object>: Except for the renaming of the
15886         result of a function call, first try to use a stabilized reference for
15887         a constant renaming too.
15888         (validate_alignment): Use target_maximum_allowed_alignment instead of
15889         MAX_OFILE_ALIGNMENT as the upper bound to what we accept.
15890         (gnat_to_gnu_entity): Use common nodes directly.
15891         (gnat_to_gnu_entity) <object>: Pick the values of the type to annotate
15892         alignment and size for the object.
15893         (lvalue_required_p): Handle N_Parameter_Association like N_Function_Call
15894         and N_Procedure_Call_Statement.
15895         (takes_address): Rename to lvalue_required_p, add third parameter
15896         'aliased' and adjust recursive calls.
15897         <N_Indexed_Component>: Update 'aliased' from the array type.
15898         <N_Selected_Component>: New case.
15899         <N_Object_Renaming_Declaration>: New Likewise.
15900         (Identifier_to_gnu): Adjust for above changes.
15901         (maybe_stabilize_reference) <CONST_DECL>: New case.
15902
15903         * utils2.c (build_binary_op) <ARRAY_RANGE_REF>: Look through conversion
15904         between type variants.
15905         (build_simple_component_ref): Likewise.
15906         (build_call_alloc_dealloc): Use target_default_allocator_alignment
15907         instead of BIGGEST_ALIGNMENT as the threshold to trigger the super
15908         aligning type circuitry for allocations from the default storage pool.
15909         (build_allocator): Likewise.
15910         (build_simple_component_ref): Manually fold the reference for a
15911         constructor if the record type contains a template.
15912
15913         * utils.c (value_zerop): Delete.
15914         (gnat_init_decl_processing): Emit debug info for common types.
15915         (rest_of_record_type_compilation): If a union contains a field
15916         with a non-constant qualifier, treat it as variable-sized.
15917         (finish_record_type): Give the stub TYPE_DECL a name.
15918         (rest_of_record_type_compilation): Likewise.
15919         (convert) <CONSTRUCTOR>: New case.  Build a new constructor if
15920         types are equivalent array types.
15921         (create_field_decl): Claim fields of any ARRAY_TYPE are addressable,
15922         even if the type is not passed by reference.
15923         (static_ctors, static_dtors): Delete.
15924         (end_subprog_body): Do not record constructors and destructors.
15925         (build_global_cdtor): Delete.
15926         (gnat_write_global_declarations): Do not call build_global_cdtor.
15927
15928         * lang-spARGET_VXWORKS_RTP is defined, append -mrtp when
15929         -fRTS=rtp is specified.
15930         If CONFIG_DUAL_EXCEPTIONS is 1, append -fsjlj when -fRTS=sjlj is
15931         specified.
15932
15933         * misc.c (gnat_init_gcc_eh): Use __gnat_eh_personality_sj for the name
15934         of the personality function with SJLJ exceptions.
15935
15936         * raise-gcc.c (PERSONALITY_FUNCTION): Use __gnat_eh_personality_sj for
15937         the name of the personality function with SJLJ exceptions.
15938
15939 2007-08-14  Robert Dewar  <dewar@adacore.com>
15940             Ed Schonberg  <schonberg@adacore.com>
15941
15942         * par.ads, par.adb: Improve handling of extra right parens.
15943         (Par): Remove flag From_Limited_With_Clause.
15944
15945         * par-util.adb, par-ch3.adb: Improve error recovery for bad constraint
15946         Improve handling of extra right parens.
15947
15948 2007-08-14  Robert Dewar  <dewar@adacore.com>
15949
15950         * par-tchk.adb (TF_Semicolon): Improve error recovery
15951
15952 2007-08-14  Robert Dewar  <dewar@adacore.com>
15953             Ed Schonberg  <schonberg@adacore.com>
15954
15955         * sem_attr.ads, sem_attr.adb (Analyze_Attribute, case Value): For
15956         enumeration type, mark all literals as referenced.
15957         (Eval_Attribute, case 'Image): If the argument is an enumeration
15958         literal and names are available, constant-fold but mark nevertheless as
15959         non-static.
15960         Clean up function names.
15961         (Name_Modifies_Prefix): Rename to Name_Implies_Lvalue_Prefix. Clarify
15962         comment.
15963         (Requires_Simple_Name_Prefix): Removed.
15964
15965 2007-08-14  Robert Dewar  <dewar@adacore.com>
15966             Ed Schonberg  <schonberg@adacore.com>
15967
15968         * sem_ch11.adb: Improved warnings for unused variables
15969
15970         * sem_ch3.ads, sem_ch3.adb (Build_Derived_Record_Type): If the ancestor
15971         is a synchronized interface, the derived type is limited.
15972         (Analyze_Object_Declaration): Mark the potential coextensions in the
15973         definition and expression of an object declaration node.
15974         (Build_Derived_Type): For the completion of a private type declaration
15975         with a derived type declaration, chain the parent type's representation
15976         items to the last representation item of the derived type (not the
15977         first one) if they are not present already.
15978         (Analyze_Object_Declaration, Constant_Redeclaration): Allow incomplete
15979         object declaration of forward references to tags.
15980         (Access_Subprogram_Declaration): In Ada2005, anonymous access to
15981         subprogram types can appear as access discriminants of synchronized
15982         types.
15983         (OK_For_Limited_Init_In_05): The initialization is legal is it is a call
15984         given in prefixed form as a selected component.
15985         (Process_Discriminants): If not all discriminants have defaults, place
15986         error message on a default that is present.
15987         (Analyze_Private_Extension_Declaration): Diagnose properly an attempt to
15988         extend a synchronized tagged type.
15989         Improved warnings for unused variables
15990         (Is_Visible_Component): Fix a visibility hole on a component inherited
15991         by a private extension when parent is itself declared as a private
15992         extension, and the derivation is in a child unit.
15993         (Find_Hidden_Interface): Move spec from the package body.
15994
15995 2007-08-14  Robert Dewar  <dewar@adacore.com>
15996             Ed Schonberg  <schonberg@adacore.com>
15997
15998         * sem_ch5.adb: Improve warnings on redundant assignments
15999
16000         * sem_util.ads, sem_util.adb: (Is_Variable): Add defense against junk
16001         parameter
16002         (Is_Synchronized_Tagged_Type): New subprogram that returns true
16003         in case of synchronized tagged types (AARM 3.9.4 (6/2)).
16004         (Safe_To_Capture_Value): Can now return True for constants, even if Cond
16005         is set to False. Improves handling of Known_[Not_]Null.
16006         (Wrong_Type): Special case address arithmetic attempt
16007         (Collect_Abstract_Interfaces): Add new formal to allow collecting
16008         abstract interfaces just using the partial view of private types.
16009         (Has_Abstract_Interfaces): Add new formal to allow checking types
16010         covering interfaces using the partial view of private types.
16011         (Is_Fully_Initialized_Type): Special VM case for uTag component. This
16012         component still needs to be defined in this case, but is never
16013         initialized as VMs are using other dispatching mechanisms.
16014         (Abstract_Interface_List): For a protected type, use base type to get
16015         proper declaration.
16016         Improve warnings on redundant assignments
16017         (Is_Variable): Handle properly an implicit dereference of a prefixed
16018         function call.
16019         (Build_Actual_Subtype): If this is an actual subtype for an
16020         unconstrained formal parameter, use the sloc of the body for the new
16021         declaration, to prevent anomalises in the debugger.
16022
16023 2007-08-14  Robert Dewar  <dewar@adacore.com>
16024
16025         * sem_elim.adb (Set_Eliminated): Ignore pragma Eliminate for
16026         dispatching operation
16027
16028 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
16029             Gary Dismukes  <dismukes@adacore.com>
16030
16031         * exp_aggr.ads,
16032         exp_aggr.adb (Convert_Aggr_In_Allocator): Use Insert_Actions to place
16033         expanded aggregate code before allocator, and ahead of declaration for
16034         temporary, to prevent access before elaboration when the allocator is
16035         an actual for an access parameter.
16036         (Is_Static_Dispatch_Table_Aggregate): Handle aggregates initializing
16037         the TSD and the table of interfaces.
16038         (Convert_To_Assignments): Augment the test for delaying aggregate
16039         expansion for limited return statements to include the case of extended
16040         returns, to prevent creation of an unwanted transient scope.
16041         (Is_Static_Dispatch_Table_Aggregate): New subprogram.
16042         (Expand_Array_Aggregate): Handle aggregates associated with
16043         statically allocated dispatch tables.
16044         (Expand_Record_Aggregate): Handle aggregates associated with
16045         statically allocated dispatch tables.
16046         (Gen_Ctrl_Actions_For_Aggr): Generate a finalization list for allocators
16047         of anonymous access type.
16048
16049 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
16050
16051         * exp_ch5.adb (Expand_Assign_Array): If source or target of assignment
16052         is a variable that renames a slice, use the variable itself in the
16053         expannsion when the renamed expression itself may be modified between
16054         the declaration of the renaming and the array assignment.
16055
16056 2007-08-14  Jerome Guitton  <guitton@adacore.com>
16057
16058         * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
16059         s-taprop-hpux-dce.adb, s-taprop-dummy.adb, s-taprop-solaris.adb,
16060         s-taprop-vms.adb, s-taprop-posix.adb (Continue_Task, Stop_All_Tasks):
16061         New functions; dummy implementations.
16062
16063         * s-osinte-vxworks.ads (Task_Stop, Task_Cont, Int_Lock, Int_Unlock): New
16064         functions, used to implement the multi-tasks mode routines on VxWorks.
16065
16066         * s-osinte-vxworks.adb, s-osinte-vxworks6.adb (Task_Cont, Task_Stop):
16067         New functions, thin
16068         binding to the VxWorks routines which have changed between VxWorks 5
16069         and 6.
16070         (Int_Lock, Int_Unlock): New function, thin binding to kernel routines
16071         which are not callable from a RTP.
16072
16073         * s-taprop-vxworks.adb (Stop_All_Tasks, Continue_Task): New functions,
16074         implemented for the multi-tasks mode on VxWorks 5 and 6.
16075
16076         * s-taprop.ads (Stop_All_Tasks, Continue_Task): New functions.
16077
16078         * s-tasdeb.ads, s-tasdeb.adb (Continue_All_Tasks, Stop_All_Tasks): New
16079         functions.
16080
16081 2007-08-14  Vincent Celier  <celier@adacore.com>
16082
16083         * clean.adb, fmap.adb, sinput-p.adb, sinput-p.ads, gnatcmd.adb,
16084         gnatname.adb, makeutl.ads, makeutl.adb, makegpr.adb, mlib-tgt-vms.adb
16085         mlib-tgt-darwin.adb, mlib-tgt-lynxos.adb, mlib-prj.adb, mlib-tgt.adb,
16086         mlib-tgt.ads, mlib-tgt-irix.adb mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
16087         mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
16088         mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, mlib-tgt-aix.adb,
16089         mlib-tgt-tru64.adb, mlib.ads, mlib.adb (Create_Sym_Links): New
16090         procedure.
16091         (Major_Id_Name): New function.
16092         mlib-tgt.ads/mlib.tgt.adb:
16093         (Library_Major_Minor_Id_Supported): New function, default returns True
16094         Most mlib-tgt-*.adb that support shared libraries and symbolic links:
16095         (Build_Dynamic_Library): Add support for major/minor ids for shared libs
16096         Other mlib-tgt-*.adb (aix, mingw, vms, vxworks, xi):
16097         Implementation of Library_Major_Minor_Id_Supported returns False
16098         clean.adb:
16099         (Clean_Library_Directory): If major/minor ids are supported, clean all
16100         library files.
16101         Major update of the Project Manager and of the project aware tools,
16102         including gprmake, so that the same sources in the GNAT repository
16103         can be used by gprbuild.
16104
16105 2007-08-14  Olivier Hainque  <hainque@adacore.com>
16106
16107         * system-solaris-x86.ads (ZCX_By_Default): Switch to True.
16108         (GCC_ZCX_Support): Switch to True.
16109
16110         * s-intman-solaris.adb (Notify_Exception): Call
16111         Adjust_Context_For_Raise before raising, as expected for signal
16112         handlers in general.
16113
16114         * s-intman-posix.adb (Notify_Exception): Remove declaration of
16115         Adjust_Context_For_Raise, moved to the spec of this unit to be visible
16116         to other implementation bodies.
16117
16118         * s-intman.ads (Adjust_Context_For_Raise): Declare and import here, to
16119         be visible by multiple implementation bodies.
16120
16121         * init.c [VMS section] (__gnat_handle_vms_condition): Adjust context
16122         only for conditions coming from hardware.
16123         [alpha-tru64 section] (__gnat_adjust_context_for_raise): Implement,
16124         adjustments to signal context prior to exception raise from signal
16125         handler.
16126         (__gnat_map_signal for VxWorks): Map SIGSEGV to Storage_Error in RTP
16127         mode.
16128         Solaris section: (__gnat_adjust_context_for_raise): New function.
16129         Implementation of the machine context adjustments to perform prior to
16130         raise from a signal handler. Version for both sparc and x86.
16131         (HAVE_GNAT_ADJUST_CONTEXT_FOR_RAISE): Define.
16132         (__gnat_error_handler): Expect a third argument, ucontext_t *. Adjust it
16133         prior to raising as expected for any handler, before possible nested
16134         faults to make sure all the contexts in a chain have been adjusted by
16135         the time we propagate.
16136
16137 2007-08-14  Pascal Obry  <obry@adacore.com>
16138
16139         * s-osinte-mingw.ads: Add support for Ada.Execution_Time on Windows.
16140         (SYSTEM_INFO): New record.
16141         (SetThreadIdealProcessor): New imported routine needed for supporting
16142         task_info pragma on Windows.
16143
16144         * s-taprop-mingw.adb (Enter_Task): Check if CPU number given in task
16145         info can be applied to the current host.
16146         (Create_Task): Set the ideal processor if information is present.
16147
16148         * s-tasinf-mingw.adb, s-tasinf-mingw.ads,
16149         a-exetim-mingw.adb, a-exetim-mingw.ads: New files.
16150
16151 2007-08-14  Olivier Hainque  <hainque@adacore.com>
16152
16153         * s-taprop-linux.adb (Get_Stack_Attributes): New subprogram. Fetch the
16154         stack size and initial stack pointer value for a given task.
16155         (Enter_Task): Get the stack attributes of the task we are entering and
16156         let the stack checking engine know about them.
16157
16158         * s-stchop.adb, s-stchop.ads (Notify_Stack_Attributes): New subprogram.
16159         Let the stack-checking engine know about the initial sp value and stack
16160         size associated with the current task.
16161         (Set_Stack_Info): If a stack base has been notified for the current
16162         task, honor it. Fallback to the previous less accurate method otherwise.
16163
16164         * s-stchop-vxworks.adb (Notify_Stack_Attributes): Dummy body.
16165
16166 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
16167
16168         * sem_ch10.adb: Create a limited view of an incomplete type, to make
16169         treatment of limited views uniform for all visible declarations in a
16170         limited_withed package.
16171         Set flag indicating that a subprogram body for a child unit has a
16172         generated spec.
16173         (Analyze_Compilation_Unit): If unit is a subprogram body that has no
16174         separate declaration, remove the unit name from visibility after
16175         compilation, so that environment is clean for subsequent compilations.
16176         (Install_Limited_Context_Clauses): Do not install a
16177         limited_private_with_clause unless the current unit is a body or a
16178         private child unit.
16179         (Analyze_Subunit, Install_Parents): Treat generic and non-generic units
16180         in the same fashion.
16181         (Install_Limited_Withed_Unit): Do not install a limited with clause if
16182         it applies to the declaration of the current package body.
16183         (Remove_Private_With_Clauses): If there is a regular with_clause for
16184         the unit, delete Private_With_Clause from context, to prevent improper
16185         hiding when processing subsequent nested packages and instantiations.
16186
16187 2007-08-14  Jose Ruiz  <ruiz@adacore.com>
16188
16189         * adaint.c (__gnat_is_absolute_path): For VxWorks systems we accept
16190         dir/file, device:/dir/file, and device:drive_letter:/dir/file as
16191         representing absolute path names.
16192         __gnat_set_file_time_name [VMS]: Fix some 64/32 bit issues.
16193
16194         * cstreams.c (__gnat_full_name for VxWorks): Use
16195         __gnat_is_absolute_path to detect whether we need to add the current
16196         directory to normalize the path.
16197
16198 2007-08-14  Javier Miranda  <miranda@adacore.com>
16199
16200         * a-tags.ads,
16201         a-tags.adb (Displace): Associate a message with the raised CE
16202         exception.
16203         (To_Addr_Ptr, To_Address, To_Dispatch_Table_Ptr,
16204         To_Object_Specific_Data_Ptr To_Predef_Prims_Ptr,
16205         To_Tag_Ptr, To_Type_Specific_Data_Ptr): Moved here from the package
16206         spec.
16207         (Default_Prim_Op_Count): Removed.
16208         (IW_Membership, Get_Entry_Index, Get_Offset_Index, Get_Prim_Op_Kind,
16209         Register_Tag, Set_Entry_Index, Set_Offset_To_Top, Set_Prim_Op_Kind):
16210         Remove pragma Inline_Always.
16211
16212         * rtsfind.ads (Default_Prim_Op_Count): Removed
16213         (Max_Predef_Prims): New entity
16214         (RE_Expanded_Name): Removed
16215         (RE_HT_Link): Removed
16216         (RE_Iface_Tag): Remmoved
16217         (RE_Ifaces_Table): Removed
16218         (RE_Interfaces_Array): Removed
16219         (RE_Interface_Data_Element): Removed
16220         (RE_Nb_Ifaces): Removed
16221         (RE_RC_Offset): Removed
16222         (RE_Static_Offset_To_Top): Removed
16223
16224         * exp_atag.ads, exp_atag.adb (Build_Inherit_Prims): Addition of a new
16225         formal.
16226         (Build_Inherit_Predefined_Prims): Replace occurrences of Default_
16227         Prim_Op_Count by Max_Predef_Prims.
16228
16229 2007-08-14  Thomas Quinot  <quinot@adacore.com>
16230             Vincent Celier  <celier@adacore.com>
16231
16232         * binde.adb (Elab_All_Links): Remove unnecessary call to
16233         Generic_Separately_Compiled (if a unit satisfies this predicate, there
16234         won't be an associated Afile).
16235         (Elab_All_Links): Fail if a referenced unit cannot be found
16236
16237         * bindgen.adb:
16238         Fix comments in bindgen regarding consistency checks done in Bcheck:
16239         the checks are made across units within a partition, not across several
16240         partitions.
16241         Fix generation of C binder file for VxWorks.
16242
16243         * lib.ads, lib.adb (Generic_Separately_Compiled): Rename to
16244         Generic_May_Lack_ALI, more descriptive of the current use of the
16245         predicate, and update documentation.
16246
16247         * lib-writ.ads, lib-writ.adb (Write_With_Lines): Minor code
16248         reorganization and documentation update for the case of predefined
16249         library generics (for which we do not reference an Afile).
16250
16251 2007-08-14  Robert Dewar  <dewar@adacore.com>
16252
16253         * s-intman-irix.adb, s-osinte-irix.adb, s-osinte-irix.ads,
16254         s-proinf-irix-athread.ads, s-osinte-hpux-dce.adb, s-osinte-hpux-dce.ads,
16255         s-parame-hpux.ads, s-intman-dummy.adb, s-tasinf-solaris.adb,
16256         s-tasinf-solaris.ads, s-asthan-vms-alpha.adb, s-inmaop-vms.adb,
16257         s-intman-vms.adb, s-intman-vms.ads, s-osprim-mingw.adb,
16258         s-parame-vms-restrict.ads, s-parame-ae653.ads, s-intman-vxworks.ads,
16259         s-intman-vxworks.ads, s-intman-vxworks.adb, s-parame-vxworks.ads,
16260         s-tfsetr-vxworks.adb, s-interr.adb, s-interr.ads, a-tasatt.adb,
16261         exp_ch13.adb, s-htable.ads, s-imgboo.ads, s-imglli.ads, s-imgllu.ads,
16262         s-imguns.ads, g-eacodu.adb, par-ch12.adb, s-stache.ads, s-stausa.adb,
16263         s-poosiz.adb, s-parame.ads, s-mastop.ads, s-osinte-darwin.ads,
16264         a-chtgke.adb, s-asthan-vms-alpha.adb, s-parame-vms-alpha.ads,
16265         s-parame-vms-ia64.ads, s-parame-vxworks.adb, s-except.ads,
16266         g-altcon.adb: Minor reformatting
16267
16268         ada-tree.h: Delete empty line.
16269
16270         ali.ads: Minor reformatting
16271         Clarification of comments.
16272         Minor spelling correction
16273
16274         * exp_dbug.adb: Add Warnings Off to suppress new warning
16275
16276         * a-witeio.adb (Write): Add Warnings (Off) for unneeded IN OUT mode
16277         formal
16278
16279         * a-strunb.adb (Set_Unbounded_String): Avoid memory leak by freeing old
16280         value
16281
16282         * a-textio.adb (Write): Remove an unnecessary IN OUT mode from
16283
16284         * a-textio.ads: Reorder the standard input/output/error declarations
16285         for consistency.
16286
16287         * g-dirope.adb, g-dirope.ads: Change Dir to mode IN for Open call
16288
16289         * par-ch2.adb: Recognize RM specially in errout
16290         Change 'R'M to RM in all error messages
16291
16292         * scng.adb: Recognize RM specially in errout
16293
16294         * sem.ads, sem.adb, exp_strm.adb, exp_ch5.ads, expander.adb: Rename
16295         N_Return node to be N_Simple_Return, to reflect Ada 2005 terminology.
16296
16297         * s-direio.adb: Add missing routine header box.
16298
16299         * sem_attr.ads: Add ??? comments
16300
16301         * sem_eval.adb: Recognize RM specially in errout
16302         Change 'R'M to RM in all error messages
16303
16304         * sem_maps.adb, sem_maps.ads: Remove some unnecessary IN OUT modes
16305
16306         * s-tasinf.ads: Fix minor comment typo.
16307
16308         * a-cihama.adb: Minor comment addition
16309
16310         * a-ztexio.adb (Write): Add Warnings (Off) for unneeded IN OUT mode
16311         formal
16312
16313         * s-tasinf-tru64.ads: Fix minor comment typo.
16314
16315         * itypes.ads: Comment update.
16316
16317         * ali-util.adb: Remove Generic_Separately_Compiled guard, not needed
16318         anymore.
16319
16320         * argv.c: Added protection against null gnat_argv and gnat_envp.
16321
16322         * bcheck.adb (Check_Consistency): Use correct markup character ({) in
16323         warning message when Tolerate_Consistency_Errors is True.
16324
16325         * cstand.adb (Create_Standard): Do not call Init_Size_Alignment for
16326         Any_Id, as this subprogram is only applicable to *type* entities (it
16327         sets RM_Size). Instead initialize just Esize and Alignment.
16328
16329 2007-08-14  Bob Duff  <duff@adacore.com>
16330
16331         * a-cihama.ads, a-cidlli.ads, a-chtgop.ads, a-chtgop.adb, a-cdlili.ads,
16332         a-cihase.adb, a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads,
16333         a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-ciorse.ads, a-cohama.ads,
16334         a-cohata.ads, a-convec.adb, a-coinve.ads, a-coinve.adb, a-convec.ads,
16335         a-coorse.ads (Next): Applied pragma Inline.
16336         Make all Containers packages Remote_Types (unless they are already
16337         Pure).
16338         (Previous): applied pragma Inline
16339         (Elements_Type): is now a record instead of an array
16340
16341 2007-08-14  Thomas Quinot  <quinot@adacore.com>
16342
16343         * table.adb, g-table.adb, g-dyntab.adb (Append): Reimplement in terms
16344         of Set_Item.
16345         (Set_Item): When the new item is an element of the currently allocated
16346         table passed by reference, save a copy on the stack if we're going
16347         to reallocate. Also, in Table.Set_Item, make sure we test the proper
16348         variable to determine whether to call Set_Last.
16349
16350         * sinput-d.adb, sinput-l.adb, stringt.adb, switch-m.adb,
16351         symbols-vms.adb, symbols-processing-vms-alpha.adb,
16352         symbols-processing-vms-ia64.adb, sem_elab.adb, repinfo.adb: Replace
16353         some occurrences of the pattern
16354            T.Increment_Last;
16355            T.Table (T.Last) := Value;
16356         with a cleaner call to
16357            T.Append (Value);
16358
16359 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
16360             Gary Dismukes  <dismukes@adacore.com>
16361             Thomas Quinot  <quinot@adacore.com>
16362
16363         * sem_ch12.ads, sem_ch12.adb (Instantiate_Type): If the formal is a
16364         derived type with interface progenitors use the analyzed formal as the
16365         parent of the actual, to create renamings for all the inherited
16366         operations in Derive_Subprograms.
16367         (Collect_Previous_Instances): new procedure within of
16368         Load_Parent_Of_Generic, to instantiate all bodies in the compilation
16369         unit being loaded, to ensure that the generation of global symbols is
16370         consistent in different compilation modes.
16371         (Is_Tagged_Ancestor): New function testing the ancestor relation that
16372         takes progenitor types into account.
16373         (Validate_Derived_Type_Instance): Enforce the rule of 3.9.3(9) by
16374         traversing over the primitives of the formal and actual types to locate
16375         any abstract subprograms of the actual type that correspond to a
16376         nonabstract subprogram of the formal type's ancestor type(s), and issue
16377         an error if such is found.
16378         (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation,
16379         Instantiate_Package_Body, Instantiate_Subprogram_Body):
16380         Remove bogus guard around calls to Inherit_Context.
16381         (Reset_Entity): If the entity is the selector of a selected component
16382         that denotes a named number, propagate constant-folding to the generic
16383         template only if the named number is global to the generic unit.
16384         (Set_Instance_Env): Only reset the compilation switches when compiling
16385         a predefined or internal unit.
16386
16387 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
16388
16389         * sem_ch4.adb (Try_Class_Wide_Operation): use base type of first
16390         parameter to determine whether operation applies to the prefix.
16391         (Complete_Object_Operation): If actual has an access type and
16392         controlling formal is not an in_parameter, reject the actual if it is
16393         an access_to_constant type.
16394         (Try_Primitive_Operation): If the type of the prefix is a formal tagged
16395         type, the candidate operations are found in the scope of declaration of
16396         the type, because the type has no primitive subprograms.
16397         (Analyze_Selected_Component): If prefix is class-wide, and root type is
16398         a private extension, only examine visible components before trying to
16399         analyze as a prefixed call.
16400         Change Entity_List to Type_To_Use, for better readability.
16401         (Has_Fixed_Op): Use base type when checking whether the type of an
16402         operator has a user-defined multiplication/division
16403         (Check_Arithmetic_Pair): Use Ada 2005 rules to remove ambiguities when
16404         user-defined operators are available for fixed-point types.
16405
16406 2007-08-14  Thomas Quinot  <quinot@adacore.com>
16407             Ed Schonberg  <schonberg@adacore.com>
16408
16409         * sem_cat.ads, sem_cat.adb (Has_Stream_Attribute_Definition): New
16410         formal At_Any_Place indicating, when True, that we want to test for
16411         availability of the stream attribute at any place (as opposed to the
16412         current visibility context only).
16413         (Missing_Read_Write_Attributes): A stream attribute is missing for the
16414         purpose of enforcing E.2.2(8) only if it is not available at any place.
16415         Take into account the Ada2005 pragma Has_Preelaborable_Initialization
16416         when checking the legality of an extension aggregate in a preelaborable
16417         package. Treat the literal null as a valid default expression in a
16418         component declaration for a type with preelaborable initialization.
16419         A limited interface is a legal progenitor for the designated type of a
16420         remote access to class-wide type.
16421
16422 2007-08-14  Thomas Quinot  <quinot@adacore.com>
16423             Ed Schonberg  <schonberg@adacore.com>
16424
16425         * sem_ch8.ads, sem_ch8.adb (Find_Type, case of a 'Base attribute
16426         reference): Use correct entity as denoted entity for the selector of
16427         the rewritten node.
16428         (Find_Direct_Name): Add comment about Generate_Reference incorrectly
16429         setting the Referenced_As_LHS flag for entities that are implicitly
16430         dereferenced.
16431         (Find_Type): If the type is an internally generated incomplete type,
16432         mark the full view as referenced, to prevent spurious warnings.
16433         (Find_Selected_Component, Has_Components): Handle properly non-limited
16434         views that are themselves incomplete types.
16435         Handle interfaces visible through limited-with clauses.
16436         (Analyze_Subprogram_Renaming): Disambiguate and set the entity of a
16437         subprogram generic actual for which we have generated a renaming.
16438         Warn when the renaming introduces a homonym of
16439         the renamed entity, and the renamed entity is directly visible.
16440
16441 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
16442             Hristian Kirtchev  <kirtchev@adacore.com>
16443
16444         * sem_res.adb (Resolve_Allocator): Propagate any coextensions that
16445         appear in the subtree to the current allocator if it is not a static
16446         coextension.
16447         (Resolve_Allocator): Perform cleanup if resolution has determined that
16448         the allocator is not a coextension.
16449         (Resolve): Skip an interpretation hidden by an abstract operator only
16450         when the type of the interpretation matches that of the context.
16451         (Resolve): When looping through all possible interpretations of a node,
16452         do not consider those that are hidden by abstract operators.
16453         (Resolve_Actuals): When verifying that an access to class-wide object
16454         is an actual  for a controlling formal, ignore anonymous access to
16455         subprograms whose return type is an access to class_wide type.
16456         (Resolve_Slice): If the prefix of the slice is a selected component
16457         whose type depends on discriminants, build its actual subtype before
16458         applying range checks on the bounds of the slice.
16459         (Valid_Conversion): In an instance or inlined body, compare root types,
16460         to prevent anomalies between private and public views.
16461         (Resolve): Improve error message for ambiguous fixed multiplication
16462         expressions that involve universal_fixed multiplying operations.
16463
16464 2007-08-14  Javier Miranda  <miranda@adacore.com>
16465             Hristian Kirtchev  <kirtchev@adacore.com>
16466
16467         * exp_ch9.adb (Build_Protected_Entry): Propagate the original source
16468         location to allow the correct generation of errors in case of
16469         restrictions applied to the expanded code.
16470         (Expand_Entry_Barrier): Remove all generated renamings for a barrier
16471         function if the condition does not reference them.
16472         (Expand_Entry_Body_Declarations): Mark the index constant as having a
16473         valid value.
16474
16475 2007-08-14  Thomas Quinot  <quinot@adacore.com>
16476             Pablo Oliveira  <oliveira@adacore.com>
16477
16478         * exp_dist.adb (PolyORB_Support.Build_TypeCode_Function): When creating
16479         typecode parameters for a union (in a variant record), remove
16480         extraneous layer of Any wrapping for member label.
16481         (Expand_Receiving_Stubs_Bodies): For an RCI package body that has
16482         elabration statements, register the package with the name server
16483         at the beginning, not at the end, of the elaboration statements so
16484         that they can create remote access to subprogram values that designate
16485         remote subprograms from the package.
16486
16487 2007-08-14  Hristian Kirtchev  <kirtchev@adacore.com>
16488
16489         * g-catiio.adb (Image): For the case of %s, use Ada.Calendar.Time
16490         values to compute the number of seconds since the Unix Epoc in order to
16491         account for Daylight Savings Time. Perform special processing for dates
16492         that are earlier than the Unix Epoc to obtain a negative number.
16493
16494 2007-08-14  Emmanuel Briot  <briot@adacore.com>
16495
16496         * g-comlin.adb (Getopt): Fix handling of "*" switch when not collapsing
16497         switches.
16498
16499 2007-08-14  Eric Botcazou  <ebotcazou@adacore.com>
16500
16501         * gnatlink.adb (Gnatlink): Pass switches to the linker even if the
16502         binder-generated file is not in Ada.
16503         Pass -mrtp to the linker if it is GCC and --RTS=rtp has been
16504         recorded in the ALI file.
16505         Pass -fsjlj to the linker if it is GCC and --RTS=sjlj has been recorded.
16506
16507 2007-08-14  Vincent Celier  <celier@adacore.com>
16508
16509         * gnatls.adb: (Corresponding_Sdep_Entry): Always return a value
16510         (Output_Source): Do nothing if parameter is No_Sdep_Id
16511
16512         * make.adb (Gnatmake): Do not rebuild an archive simply because a
16513         shared library it imports has a later time stamp.
16514         (Check): Resolve the symbolic links in the path name of the object
16515         directory.
16516         Check that the ALI file is in the correct object directory
16517         Check if a file name does not correspond to the mapping of units
16518         to file names.
16519         (Display_Version): New procedure
16520         (Initialize): Process switches --version and --help
16521         Use type Path_Name_Type for path name
16522
16523 2007-08-14  Paul Hilfinger  <hilfinger@adacore.com>
16524
16525         * impunit.adb: Re-organize System.Random_Numbers and
16526         GNAT.Random_Numbers and add to builds.
16527
16528         * Makefile.rtl: Add s-rannum.ad* and g-rannum.ad*, a-assert*
16529
16530         * s-rannum.ads, s-rannum.adb, g-rannum.ads, g-rannum.adb: New files.
16531
16532         * a-assert.ads, a-assert.adb: New files.
16533
16534 2007-08-14  Gary Dismukes  <dismukes@adacore.com>
16535
16536         * layout.adb (Layout_Type): In the case of access-to-subprogram types,
16537         if AAMP_On_Target is True, then the size of the type encompasses two
16538         addresses (a static link and a subprogram address), except in the case
16539         of library-level access types.
16540
16541 2007-08-14  Vincent Celier  <celier@adacore.com>
16542
16543         * output.ads, output.adb (Write_Eol): Remove trailing spaces before
16544         writing the line.
16545         (Write_Eol_Keep_Blanks): New procedure to write a line, including
16546         possible trailing spaces.
16547         (Output_Source_Line): Call Write_Eol_Keep_Blanks to output a source line
16548
16549 2007-08-14  Javier Miranda  <miranda@adacore.com>
16550
16551         * par-ch6.adb (P_Formal_Part): Fix wrong error message associated with
16552         null-excluding access types.
16553
16554 2007-08-14  Javier Miranda  <miranda@adacore.com>
16555
16556         * sem_ch9.adb (Check_Interfaces): New subprogram that factorizes code
16557         that is common to Analyze_Protected_Type and Analyze_Task_Type. In case
16558         of private types add missing check on matching interfaces in the
16559         partial and full declarations.
16560         (Analyze_Protected_Type): Code cleanup.
16561         (Analyze_Task_Type): Code cleanup.
16562
16563 2007-08-14  Javier Miranda  <miranda@adacore.com>
16564
16565         * sem_disp.adb (Check_Dispatching_Operation): Do not emit warning on a
16566         generated interface thunk.
16567
16568 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
16569
16570         * s-ficobl.ads: Declare AFCB as a tagged incomplete type, to prevent
16571         obsolescent warning on application of 'Class to an incomplete type.
16572
16573         * s-finroo.ads: Declare Root_Controlled as a tagged incomplete type, to
16574         prevent obsolescent warning on application of 'Class to an incomplete
16575         type.
16576
16577 2007-08-14  Pascal Obry  <obry@adacore.com>
16578
16579         * s-fileio.adb (Is_Open): Add check for usability of the underlying
16580         file stream.
16581
16582 2007-08-14  Cyrille Comar  <comar@adacore.com>
16583
16584         * s-finimp.adb (Detach_From_Final_List): make this procedure idempotent
16585         since it is potentially used in cases implying double finalization of
16586         the same object.
16587
16588 2007-08-14  Jose Ruiz  <ruiz@adacore.com>
16589
16590         * s-tasini.adb (Get_Stack_Info): Move this function to
16591         System.Soft_Links.Tasking because it is common to the full and the
16592         restricted run times.
16593         (Init_RTS): Do not set the Get_Stack_Info soft link because it is done
16594         in SSL.Tasking.Init_Tasking_Soft_Links.
16595
16596         * s-solita.adb (Get_Stack_Info): Function moved from
16597         System.Tasking.Initialization because it is common to the full and the
16598         restricted run times.
16599         (Init_Tasking_Soft_Links): Set the tasking soft link for Get_Stack_Info.
16600
16601 2007-08-14  Arnaud Charlet  <charlet@adacore.com>
16602
16603         * s-tpobop.ads, s-tpobop.adb, s-tasren.ads, s-tasren.adb,
16604         s-taskin.ads (Requeue_With_Abort): Rename field With_Abort.
16605         (PO_Do_Or_Queue, Task_Do_Or_Queue, Requeue_Call): Remove With_Abort
16606         parameter.
16607
16608         * s-tassta.adb (Task_Wrapper): Increased value of the small overflow
16609         guard to 12K.
16610
16611 2007-08-14  Gary Dismukes  <dismukes@adacore.com>
16612
16613         * s-veboop.adb (SU): New named number initialized to
16614         System.Storage_Unit.
16615         (True_Val): The initialization expression is revised to use SU (=
16616         Storage_Unit) rather than assuming 8 for the component size of an
16617         unpacked Boolean array.
16618
16619 2007-08-14  Tristan Gingold  <gingold@adacore.com>
16620
16621         * tracebak.c: Use tb-ivms.c on OpenVMS Itanium.
16622
16623         * tb-ivms.c: New file.
16624
16625         * g-trasym-vms-ia64.adb: Fixed for OpenVMS version 8.2
16626
16627 2007-08-14  Geert Bosch  <bosch@adacore.com>
16628
16629         * i-forbla.ads, i-forbla.adb, a-ngcoar.adb, a-ngcoar.ads, i-forlap.ads,
16630         s-gearop.adb, s-gecobl.adb, s-gecobl.ads, s-gerela.adb, s-gerela.ads:
16631         Add required linker pragmas for automatically linking with the gnalasup
16632         linear algebra support library, and the systems math library.
16633         Rename cdot to cdotu and zdot to zdotu.
16634         Update header comment to describe purpose of package.
16635
16636 2007-08-14  Thomas Quinot  <quinot@adacore.com>
16637
16638         * exp_ch7.adb (Find_Final_List): For an anonymous access type that has
16639         an explicitly specified Associated_Final_Chain, use that list.
16640         (Expand_N_Package_Body): Build dispatch tables of library level tagged
16641         types.
16642         (Expand_N_Package_Declaration): Build dispatch tables of library level
16643         tagged types. Minor code cleanup.
16644
16645 2007-08-14  Vincent Celier  <celier@adacore.com>
16646
16647         * gnatchop.adb (Terminate_Program): Remove exception and use
16648         Types.Terminate_Program instead.
16649
16650         * osint.ads, osint.adb (Current_Exit_Status): New global variable
16651         (Find_Program_Name): Added protection against empty name.
16652         (OS_Exit_Through_Exception): New procedure
16653
16654         * s-os_lib.ads, s-os_lib.adb (OS_Exit): New procedure body
16655         (OS_Exit_Default): New procedure that contains the previous
16656         implementation of procedure OS_Exit.
16657         (Final_Value): Remove obsolete Interix stuff.
16658
16659 2007-08-14  Thomas Quinot  <quinot@adacore.com>
16660
16661         * g-socket.ads: Reorganize example code so that it also works on
16662         Windows XP.
16663
16664 2007-08-14  Tristan Gingold  <gingold@adacore.com>
16665
16666         * g-trasym.ads: AIX now supports symbolic backtraces.
16667
16668 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
16669
16670         * lib-load.adb (From_Limited_With_Chain): Always scan the stack of
16671         units being loaded to detect circularities. A circularity may be
16672         present even if the current chain of pending units to load starts from
16673         a limited_with_clause.
16674
16675         * lib-load.ads: Change profile of Load_Unit to use a with_clause
16676         rather than a boolean flag, in order to detect circularities in
16677         with_clauses.
16678
16679         * par-load.adb: Use current with_clause in calls to Load_Unit, rather
16680         than propagating the From_Limited_With flag, in order to handle
16681         properly circularities involving with_clauses.
16682
16683 2007-08-14  Nicolas Setton  <setton@adacore.com>
16684
16685         * link.c (FreeBSD): Add "const" keyword where needed, to eliminate
16686         warnings.
16687
16688 2007-08-14  Arnaud Charlet  <charlet@adacore.com>
16689
16690         * Makefile.in: GNATRTL_LINEARALGEBRA_OBJS: New variable holding objects
16691         to build for libgnala.
16692         libgnat: Add rules to build libgnala.a
16693         (LIBGNAT_TARGET_PAIRS for VxWorks): Remove s-osinte-vxworks.adb from
16694         target pairs of the VxWorks 6 kernel runtime, use it only for VxWorks 5.
16695         Add s-osinte-vxworks-kernel.adb to the target pairs of the
16696         kernel run-time lib for VxWorks 6, which would provide a different
16697         implementation for Task_Cont and Task_Stop than the VxWorks 5 version.
16698         x86-solaris section (EH_MECHANISM): Set to -gcc, as this port is now
16699         running ZCX by default.
16700         Add g-sttsne-locking to LynxOS version.
16701         Remove g-sttsne-vxworks.ads; use g-sttsne-locking.ads instead.
16702         On x86/darwin, use a-numaux-x86.ad? and system-darwin-x86.ads.
16703
16704         * system-darwin-x86.ads: New file.
16705
16706         * Make-lang.in: Delete files before copying onto them, so if they are
16707         read-only, the copy won't fail.
16708         Update dependencies
16709
16710 2007-08-14  Pascal Obry  <obry@adacore.com>
16711
16712         * mdll-fil.adb, * mdll.adb: Implement a more consistent libraries
16713         naming scheme.
16714
16715 2007-08-14  Vincent Celier  <celier@adacore.com>
16716
16717         * mlib-utl.adb (Gcc_Name): Change from constant String to String_Access
16718         (Gcc): Initialize Gcc_Name at the first call
16719
16720 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
16721
16722         * sem_ch7.adb (Analyze_Package_Specification): Do not install private
16723         with_clauses of the enclosing unit when analyzing the package
16724         specification of a nested instance.
16725
16726 2007-08-14  Hristian Kirtchev  <kirtchev@adacore.com>
16727
16728         * sinfo.ads, sinfo.adb (Is_Coextension, Set_Is_Coextension): Removed.
16729         (Is_Dynamic_Coextension, Set_Is_Dynamic_Coextension): New routines.
16730         Remove flag Is_Coextension. Add flag Is_Dynamic_Coextension. Update the
16731         layout of N_Allocator.
16732
16733 2007-08-14  Thomas Quinot  <quinot@adacore.com>
16734
16735         * rtsfind.adb (Check_RPC): Add PCS version check.
16736
16737         * gnatvsn.ads, gnatvsn.adb: Add PCS version.
16738         (Gnat_Free_Software): New function.
16739
16740         * sem_dist.ads, sem_dist.adb (Get_PCS_Version): New subprogram. Returns
16741         the PCS_Version value from s-parint, used to check that it is consistent
16742         with what exp_dist expects.
16743
16744         * s-parint.ads (PCS_Version): New entity for checking consistency
16745         between exp_dist and PCS.
16746
16747         * gen-soccon.c: (SO_REUSEPORT): New constant.
16748
16749 2007-08-14  Hristian Kirtchev  <kirtchev@adacore.com>
16750
16751         * a-calfor.adb (Image (Duration; Boolean)): Change type of local
16752         variable Sub_Second to Duration in order to accomodate a larger range
16753         of arithmetic operations.
16754
16755 2007-08-14  Bob Duff  <duff@adacore.com>
16756
16757         * g-sttsne-locking.ads: Move comments from spec to body.
16758         * g-sttsne-locking.adb: Move comments from spec to body.
16759         * g-sttsne-vxworks.ads: Removed.
16760         * g-sttsne-vxworks.adb: Removed.
16761
16762 2007-08-11  Ian Lance Taylor  <iant@google.com>
16763
16764         * misc.c (gnat_get_alias_set): Change return type to
16765         alias_set_type.
16766
16767 2007-08-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16768
16769         * decl.c, utils2.c: Fix whitespace in last change.
16770
16771 2007-08-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16772
16773         * decl.c (compare_field_bitpos): Constify.
16774         * utils2.c (compare_elmt_bitpos): Likewise.
16775
16776 2007-07-27  Aurelien Jarno  <aurelien@aurel32.net>
16777
16778         * s-osinte-kfreebsd-gnu.ads ((sigset_t_ptr): Removed, replaced by
16779         anonymous access type.
16780         (pthread_sigmask): Now take an access sigset_t.
16781
16782 2007-07-05  Joel Sherrill  <joel.sherrill@oarcorp.com>
16783
16784         * s-osinte-rtems.ads: Correct prototype of pthread_sigmask.
16785
16786 2007-06-21  Eric Botcazou  <ebotcazou@adacore.com>
16787
16788         PR tree-optimization/25737
16789         * misc.c (gnat_post_options): Do not force flag_tree_salias to 0.
16790
16791 2007-06-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
16792
16793         * trans.c (Attribute_to_gnu): When subtracting an
16794         offset from a pointer, use POINTER_PLUS_EXPR with
16795         NEGATE_EXPR instead of MINUS_EXPR.
16796         (gnat_to_gnu): Likewise.
16797         * utils.c (convert): When converting between
16798         thin pointers, use POINTER_PLUS_EXPR and sizetype
16799         for the offset.
16800         * utils2.c (known_alignment): POINTER_PLUS_EXPR
16801         have the same semantics as PLUS_EXPR for alignment.
16802         (build_binary_op): Add support for the semantics of
16803         POINTER_PLUS_EXPR's operands.
16804         When adding an offset to a pointer, use POINTER_PLUS_EXPR.
16805
16806 2007-06-11  Rafael Ávila de Espíndola  <espindola@google.com>
16807
16808         * trans.c (Attribute_to_gnu): Use signed_or_unsigned_type_for instead
16809         of get_signed_or_unsigned_type.
16810         * misc.c (LANG_HOOKS_SIGNED_TYPE): Remove.
16811
16812 2007-06-11  Bob Duff  <duff@adacore.com>
16813             Thomas Quinot  <quinot@adacore.com>
16814
16815         * g-stsifd-sockets.adb (Create): Work around strange behavior of
16816         'bind' on windows that causes 'connect' to fail intermittently, by
16817         retrying the 'bind'.
16818         (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
16819
16820 2007-06-10  Duncan Sands  <baldrick@free.fr>
16821
16822         * decl.c (gnat_to_gnu_entity): Use pointers to dummy nodes, rather
16823         than to void, for the fields when making a new fat pointer type.
16824         (gnat_substitute_in_type): Now substitute_in_type.
16825         * gigi.h (gnat_substitute_in_type): Likewise.  Adjust recursive calls.
16826         * trans.c (gnat_gimplify_expr): Remove COMPONENT_REF kludge.
16827         * utils.c (update_pointer_to): Update fat pointers by updating the
16828         dummy node pointers used for the fields.
16829
16830 2007-06-06  Thomas Quinot  <quinot@adacore.com>
16831             Bob Duff  <duff@adacore.com>
16832
16833         * g-soccon-freebsd.ads, g-soccon-vxworks.ads:,
16834         g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
16835         g-soccon-solaris.ads, g-soccon-vms.ads, g-soccon-tru64.ads:  Add new
16836         constant Thread_Blocking_IO, always True by default, set False
16837         on a per-runtime basis.
16838         (Need_Netdb_Buffer): New constant.
16839
16840         * g-stheme.adb, g-sttsne.ads, g-sttsne-locking.ads,
16841         g-sttsne-locking.adb, g-sttsne-vxworks.ads, g-sttsne-vxworks.adb: New
16842         files.
16843
16844         * g-socthi-vxworks.ads, g-socthi-vxworks.adb,
16845         g-socthi-vms.ads, g-socthi-vms.adb (Safe_Gethostbyname,
16846         Safe_Gethostbyaddr, Safe_Getservbyname, Safe_Getservbyport): Use new
16847         child package Task_Safe_NetDB
16848         (Host_Error_Messages): Add stub body.
16849         (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
16850
16851         * g-soccon-mingw.ads: Add Windows-specific constants.
16852         (Need_Netdb_Buffer): New constant.
16853         (GNAT.Sockets.Thin.C_Inet_Addr, Windows version): Remove useless Ada
16854         wrapper and import inet_addr(3) from the standard sockets library
16855         directly instead.
16856         (In_Addr): Add alignment clause.
16857         (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
16858
16859 2007-06-06  Robert Dewar  <dewar@adacore.com>
16860
16861         * a-taster.adb, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
16862         s-osinte-irix.ads, s-interr-sigaction.adb, s-mastop-irix.adb,
16863         s-osinte-hpux-dce.ads, s-osinte-interix.ads, s-osinte-solaris.ads,
16864         s-taspri-solaris.ads, s-inmaop-vms.adb, s-interr-vms.adb,
16865         s-mastop-vms.adb, s-osinte-vms.ads, s-tpopde-vms.adb,
16866         s-osinte-mingw.ads, s-interr-vxworks.adb, i-cstrea-vms.adb,
16867         a-diocst.adb, a-direio.adb, a-interr.adb, a-sequio.adb, a-siocst.adb,
16868         a-ssicst.adb, a-storio.adb, a-ststio.adb, a-stwima.adb, a-tasatt.adb,
16869         a-taside.adb, a-tiocst.adb, a-witeio.adb, a-wtcstr.adb, g-crc32.adb,
16870         g-dirope.adb, g-dyntab.adb, g-memdum.adb, g-regexp.adb, g-spipat.adb,
16871         g-spitbo.adb, g-string.adb, g-string.ads, g-table.adb, g-thread.adb,
16872         i-cobol.adb, i-cpoint.adb, i-cstrea.adb, i-cstrin.adb, i-pacdec.adb,
16873         s-addima.adb, s-arit64.adb, s-auxdec.adb, s-auxdec.ads,
16874         s-auxdec-vms_64.ads, s-carsi8.adb, s-carun8.adb, s-casi16.adb,
16875         s-casi32.adb, s-casi64.adb, s-caun16.adb, s-caun32.adb, s-caun64.adb,
16876         s-direio.adb, s-fileio.adb, s-finimp.ads, s-geveop.adb, s-imgenu.adb,
16877         s-pack03.adb, s-pack05.adb, s-pack06.adb, s-pack07.adb, s-pack09.adb,
16878         s-pack10.adb, s-pack11.adb, s-pack12.adb, s-pack13.adb, s-pack14.adb,
16879         s-pack15.adb, s-pack17.adb, s-pack18.adb, s-pack19.adb, s-pack20.adb,
16880         s-pack21.adb, s-pack22.adb, s-pack23.adb, s-pack24.adb, s-pack25.adb,
16881         s-pack26.adb, s-pack27.adb, s-pack28.adb, s-pack29.adb, s-pack30.adb,
16882         s-pack31.adb, s-pack33.adb, s-pack34.adb, s-pack35.adb, s-pack36.adb,
16883         s-pack37.adb, s-pack38.adb, s-pack39.adb, s-pack40.adb, s-pack41.adb,
16884         s-pack42.adb, s-pack43.adb, s-pack44.adb, s-pack45.adb, s-pack46.adb,
16885         s-pack47.adb, s-pack48.adb, s-pack49.adb, s-pack50.adb, s-pack51.adb,
16886         s-pack52.adb, s-pack53.adb, s-pack54.adb, s-pack55.adb, s-pack56.adb,
16887         s-pack57.adb, s-pack58.adb, s-pack59.adb, s-pack60.adb, s-pack61.adb,
16888         s-pack62.adb, s-pack63.adb, s-pooloc.adb, s-poosiz.adb, s-scaval.adb,
16889         s-sequio.adb, s-shasto.adb, s-stalib.ads, s-stratt.adb, s-strcom.adb,
16890         s-taasde.adb, s-tasdeb.adb, s-tasuti.ads, s-tataat.ads, s-tpoben.ads,
16891         s-valenu.adb, s-widenu.adb, s-wwdenu.adb, s-addope.adb, a-stzmap.adb,
16892         a-ztcstr.adb, a-ztexio.adb, s-osinte-linux-hppa.ads: Replace
16893         Unchecked_* by Ada.Unchecked_*
16894
16895 2007-06-06  Robert Dewar  <dewar@adacore.com>
16896
16897         * g-string.adb, s-proinf-irix-athread.adb, s-gloloc-mingw.adb,
16898         s-tfsetr-default.adb, gnatfind.adb, gnatxref.adb, gprep.adb,
16899         g-regexp.adb, g-regexp.ads, g-regpat.ads, g-tasloc.adb, g-tasloc.ads,
16900         output.adb, switch-m.ads, tree_in.ads, tree_io.ads, indepsw.ads,
16901         g-utf_32.adb, g-utf_32.ads, a-wichun.adb, a-wichun.ads, a-zchuni.adb,
16902         a-zchuni.ads: Replace GNAT.xxx by System.xxx when appropriate.
16903
16904         * s-utf_32.adb, s-utf_32.ads, s-os_lib.adb, s-os_lib.ads, s-regexp.adb,
16905         s-regexp.ads, s-regpat.adb, s-regpat.ads, s-string.adb, s-string.ads,
16906         s-tasloc.adb, s-tasloc.ads: New files.
16907
16908 2007-06-06  Bob Duff  <duff@adacore.com>
16909
16910         * g-expect-vms.adb:
16911         (Send_Signal, Close): Raise Invalid_Process if the process id is invalid.
16912         * g-expect.ads, g-expect.adb (Send): Avoid useless copy of the string.
16913         (Send_Signal, Close): Raise Invalid_Process if the process id is
16914         invalid.
16915         (Pattern_Matcher_Access): Is now a general access type to be able to
16916         use aliased string.
16917
16918 2007-06-06  Thomas Quinot  <quinot@adacore.com>
16919             Arnaud Charlet  <charlet@adacore.com>
16920
16921         * a-intnam-aix.ads: Adjust comment to account for SIGADAABORT change
16922         (SIGEMT is now used instead of SIGTERM on AIX).
16923
16924         * s-osinte-aix.ads (Linker_Options): Use -pthread instead of -lpthreads.
16925         (Time_Slice_Supported): Set to True.
16926         Use SIGEMT instead of SIGTERM as SIGADAABORT.
16927
16928 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
16929
16930         * a-calend.ads, a-calend.adb, a-calend-vms.ads, a-calend-vms.adb ("-"
16931         (Time, Time)): Use To_Relative_Time rather than manual calculation to
16932         express the bounds of Duration as Time. Raise Time_Error when the
16933         result is greater or equal to the higher bound of Duration (on the
16934         margin case).
16935         ("+" (Time, Duration)): Reorder code. Remove the declaration of constant
16936         Ada_High_And_Leaps.
16937         ("-" (Time, Duration)): Reorder code. Remove the declaration of constant
16938         Ada_High_And_Leaps.
16939         ("-" (Time, Time)): Reorder code.
16940         (All_Leap_Seconds): Removed.
16941         (Arithmetic_Operations.Add): Remove sign related kludge.
16942         (Arithmetic_Operations.Difference): Control the leaps seconds processing
16943         with flag Leap_Support.
16944         (Arithmetic_Operations.Subtract): Remove sign related kludge.
16945         (Check_Within_Time_Bounds): New procedure.
16946         (Clock): Control the leap seconds processing with flag Leap_Support.
16947         (Cumulative_Leap_Seconds): Assert that the target supports leap seconds.
16948         (Formatting_Operations.Split): Control the leap seconds processing with
16949         flag Leap_Support.
16950         (Formatting_Operations.Time_Of): Control the leaps seconds processing
16951         with flag Leap_Support. Adjust the year, month and day (if applicable)
16952         when the value of day seconds designates a new day.
16953         (Split): Use parameter associations for better readability. Integrate
16954         flag Is_Ada_05.
16955         (Time_Of): Use parameter associations for better readability. Integrate
16956         flag Is_Ada_05.
16957
16958         * a-calfor.adb (Split): Use parameter associations for better
16959         readability. Integrate flag Is_Ada_05.
16960         (Time_Of): Remove flag Leap_Checks. Use parameter associations for
16961         better readability. Integrate flag Is_Ada_05.
16962
16963 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
16964
16965         * s-taprop-vms.adb, s-taprop-hpux-dce.adb, s-taprop-vxworks.adb,
16966         s-osprim-posix.adb, s-taprop-posix.adb, s-osprim-vxworks.adb,
16967         s-taprop-solaris.adb, s-osprim-solaris.adb, s-taprop-dummy.adb,
16968         s-osprim-unix.adb, s-osinte-freebsd.adb, s-osinte-freebsd.ads,
16969         s-osinte-lynxos.adb, s-osinte-lynxos.ads, s-taprop-tru64.adb,
16970         s-taprop-lynxos.adb, s-taprop-irix.adb, s-osinte-tru64.adb,
16971         s-osinte-tru64.ads, s-taprop-linux.adb, s-parame.ads,
16972         s-parame-vms-alpha.ads, s-parame-vms-ia64.ads, s-parame-hpux.ads,
16973         s-parame-vms-restrict.ads, s-parame-ae653.ads, s-parame-vxworks.ads,
16974         s-taprop-mingw.adb, s-osinte-lynxos-3.ads, s-osinte-lynxos-3.adb,
16975         s-osprim-mingw.adb (Timed_Delay, Timed_Sleep): Register the base
16976         time when entering this routine to detect a backward clock setting
16977         (manual setting or DST adjustment), to avoid waiting for a longer delay
16978         than needed.
16979         (Time_Duration, To_Timeval, struct_timeval): Removed when not relevant.
16980         Remove handling of deferred priority change, and replace by setting the
16981         task priority directly, as required by AI-188.
16982         Update comments.
16983         (Max_Task_Image_Length): New constant.
16984         Replace Warnings (Off) by Unreferenced pragma, cleaner.
16985         (Dynamic_Priority_Support): Removed, no longer needed.
16986         (Poll_Base_Priority_Change): Ditto.
16987         (Set_Ceiling): Add this procedure to change the ceiling priority
16988         associated to a lock. This is a dummy implementation because dynamic
16989         priority ceilings are not supported by the underlying system.
16990
16991         * a-dynpri.adb (Set_Priority): Take into account case where Target is
16992         accepting a RV with its priority boosted.
16993         Remove handling of deferred priority change, and replace by setting the
16994         task priority directly, as required by AI-188.
16995
16996         * s-taenca.adb (Try_To_Cancel_Entry_Call): Remove special case for
16997         Succeeded = True.
16998         Remove handling of deferred priority change, and replace by setting the
16999         task priority directly, as required by AI-188.
17000         (Wait_For_Completion, Wait_For_Call, Timed_Selective_Wait): Change state
17001         of Self_Id earlier.
17002
17003         * s-tasini.ads, s-tasini.adb (Wakeup_Entry_Caller): Relax assertion.
17004         (Poll_Base_Priority_Change): Removed.
17005         Code clean up: use SSL.Current_Target_Exception.
17006
17007         * s-tasren.adb (Task_Count): Call Yield to let a chance to other tasks
17008         to run as this is a potentially dispatching point.
17009         (Call_Synchronous): Use Local_Defer_Abort.
17010         (Callable): Relax assertion.
17011         (Selective_Wait): Relax assertion in case abort is not allowed.
17012         Remove handling of deferred priority change, and replace by setting the
17013         task priority directly, as required by AI-188.
17014
17015         * s-tasuti.adb (Make_Passive): Adjust assertions.
17016         Remove handling of deferred priority change, and replace by setting the
17017         task priority directly, as required by AI-188.
17018
17019 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
17020
17021         * system-vxworks-sparcv9.ads, system-solaris-x86.ads,
17022         system-irix-o32.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads,
17023         system-lynxos-x86.ads, system-vxworks-m68k.ads, system-linux-x86.ads,
17024         system-vxworks-mips.ads, system-vxworks-alpha.ads,
17025         system-vxworks-x86.ads, system-linux-ppc.ads, system-mingw.ads,
17026         system-vms-zcx.ads, system-darwin-ppc.ads, system-vxworks-ppc.ads,
17027         system-interix.ads, system-linux-hppa.ads, system-tru64.ads,
17028         system-hpux.ads, system-irix-n32.ads, system-solaris-sparc.ads,
17029         system-solaris-sparcv9.ads, system-vms.ads, system.ads,
17030         system-vms_64.ads, system-hpux-ia64.ads, system-linux-x86_64.ads,
17031         system-linux-ia64.ads: Document mapping between Ada and OS priorities.
17032         This patch changes the largest non-binary modulus from 2**31-1 to
17033         2**32-1.
17034         (Compiler_System_Version): Removed, no longer used.
17035         Clean up system files by removing flags only used on a single target.
17036         Also remove obsolete flags, only used during bootstrap from system.ads
17037         (Address): Add a pragma Preelaborable_Initialization.
17038
17039         * system-aix.ads:  Ditto.
17040         (GCC_ZCX_Support): Set to true.
17041         Update priority range on AIX and map Ada priorities to target
17042         priorities appropriately for different scheduling policies.
17043
17044         * ttypes.ads: set largest non-binary modulus from 2**31-1 to 2**32-1
17045
17046 2007-06-06  Vincent Celier  <celier@adacore.com>
17047
17048         * mlib-tgt-specific.adb, mlib-tgt-specific.ads,
17049         mlib-tgt-vms.adb, mlib-tgt-vms.ads: New files.
17050
17051         * mlib-tgt.adb, mlib-tgt.ads, mlib-tgt-darwin.adb,
17052         mlib-tgt-vxworks.adb, mlib-tgt-mingw.adb, mlib-tgt-lynxos.adb,
17053         mlib-tgt-linux.adb, mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb,
17054         mlib-tgt-vms-ia64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
17055         mlib-tgt-hpux.adb, mlib-tgt-tru64.adb: Make a common body for package
17056         MLib.Tgt, containing the default versions of the exported subprograms.
17057         For each platform, create a specific version of the body of new child
17058         package MLib.Tgt.Specific that contains only the body of subprograms
17059         that are different from the default.
17060         (Archive_Builder_Append_Options): New function.
17061
17062 2007-06-06  Matthew Gingell  <gingell@adacore.com>
17063
17064         * s-osinte-aix.adb: Map Ada priorities to target priorities
17065         appropriately for different scheduling policies.
17066
17067 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
17068
17069         * s-osinte-linux.ads (sigset_t): Bump alignment to match more closely
17070         its C counterpart.
17071         Remove references to Unchecked_Conversion, and use Ada.xxx instead.
17072         Replace Unchecked_Conversion by Ada.Unchecked_Conversion.
17073
17074 2007-06-06  Vasiliy Fofanov  <fofanov@adacore.com>
17075
17076         * s-osprim-vms.ads, s-osprim-vms.adb (Initialize): New procedure.
17077         Noop on VMS, added for interface commonality.
17078
17079 2007-06-06  Eric Botcazou  <ebotcazou@adacore.com>
17080             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17081             Olivier Hainque  <hainque@adacore.com>
17082
17083         * decl.c (gnat_to_gnu_entity) <object>: Manually mark the top of the
17084         renamed expression of a full renaming at toplevel.
17085         (gnat_to_gnu_entity, case object): If not defining, do not look inside
17086         the values the constant is initialized to if it is an N_Allocator.
17087         (gnat_to_gnu_entity) <E_Array_Subtype>: Manually mark the top of the
17088         TYPE_SIZE_UNIT of inner types after the stride is elaborated.
17089         (make_aligning_type): Accept an extra ROOM argument for storage to be
17090         made available before the aligned field, and an extra BASE_ALIGN
17091         argument for callers to pass the alignment guaranteed to be honored for
17092         the whole aligning object. Avoid call to finish_record_type, which only
17093         interferes with the sizes we want to set.
17094         (gnat_to_gnu_entity) <E_Variable>: Pass the required extra arguments to
17095         make_aligning_type for super-aligned objects on stack.
17096         (components_to_record): Pass the adjusted size of the type when creating
17097         fields in the qualified union for the variant part.
17098         (gnat_substitute_in_type): Copy TYPE_USER_ALIGN.
17099         (gnat_to_gnu_entity, case E_Signed_Integer_Subtype): Likewise for
17100         packed array type.
17101         (maybe_pad_type): Set TYPE_USER_ALIGN.
17102         (make_aligning_type): Likewise.
17103         ALIGN argument is unsigned int.
17104         (gnat_to_gnu_entity, case E_Function): Back annotate return mechanism.
17105         (gnat_to_gnu_param): Likewise, for parameters.
17106         (gnat_to_gnu_entity) <object>: Always instantiate the renaming object
17107         if it is constant and stems from a function call.
17108         (gnat_to_gnu_entity) <E_Record_Type>: Set packed to -2 if the alignment
17109         of the record is specified.  Adjust accordingly.
17110         (adjust_packed): New static function.
17111         (gnat_to_gnu_field): Use it to adjust the packedness setting.
17112         (components_to_record): Likewise.
17113         (gnat_to_gnu_entity) <object>: Do not test the renamed expression for
17114         side-effects if the object is deemed constant.
17115         (gnat_to_gnu_entity) <E_Array_Type>: Create a name for the fat pointer
17116         type instead of merely finalizing it.  Tidy.
17117         <E_Access_Subprogram_Type>: Retrieve the type from the TYPE_DECL.
17118         <E_Access_Type>: Likewise.
17119         (defer_debug_incomplete_list): Rename to defer_finalize_list.
17120         (defer_debug_level): Delete.
17121         (gnat_to_gnu_entity) <debug_deferred>: Likewise
17122         <E_Array_Type>: Call rest_of_record_type_compilation on the fat pointer
17123         type.
17124         <E_Record_Type>: Do not explicitly defer finalizing the type.
17125         Adjust for write_record_type_debug_info renaming.
17126         <E_Subprogram_Type>: Likewise.
17127         Finalize deferred types right after deferred incomplete types are
17128         expanded.
17129         (rest_of_type_decl_compilation): New global function.
17130         (components_to_record): Rename defer_debug parameter to do_not_finalize.
17131         (components_to_record): Propagate the packedness to the fields of the
17132         qualified union type if there is a variant part.
17133         (gnat_to_gnu_entity) <E_Array_Type>: Use new function
17134         instead of inline code to adjust the XUT field offsets.
17135         (gnat_to_gnu_entity): Adjust for new prototype of finish_record_type.
17136         <E_Record_Subtype>: Do not let finish_record_type compute the sizes
17137         and write the debug info if the type derives from a discriminated one.
17138         (gnat_to_gnu_entity) <E_Array_Type>: Adjust call to create_index_type.
17139         <E_Array_Subtype>: Likewise.
17140         <E_String_Literal_Subtype>: Likewise.
17141         (gnat_to_gnu_entity): Set TYPE_USER_ALIGN on types only if they have
17142         an alignment clause.
17143         (maybe_pad_type): Update ORIG_SIZE to the minimum required to meet ALIGN
17144         before giving warning.
17145         (prepend_one_attribute_to): New function, helper to prepend an attribute
17146         to an attribute list.
17147         (gnat_to_gnu_entity) <E_Procedure>: Use it.
17148         (prepend_attributes): Likewise.
17149         (gnat_to_gnu_entity) <E_Variable>: Use constants of the proper type.
17150         <E_Array_Type>: Declare the padding type for the element type, if any.
17151         <E_Array_Subtype>: Likewise.
17152         (defer_limited_with): New variable.
17153         (Gigi_Equivalent_Type): New function.
17154         (gnat_to_gnu_entity): Use it at start and use result throughout.
17155         (gnat_to_gnu_entity, case E_Access_Type): Rework to use
17156         Gigi_Equivalent_Type, support Limited_With, allow two levels of
17157         indirection, precompute if unconstrained array to simplify logic, and
17158         use defer_limited_with to defer elaboration of some types from limited
17159         with.
17160         (finalize_from_with_types): New function.
17161
17162 2007-06-06  Gary Dismukes  <dismukes@adacore.com>
17163             Eric Botcazou  <ebotcazou@adacore.com>
17164             Tristan Gingold  <gingold@adacore.com>
17165             Olivier Hainque  <hainque@adacore.com>
17166
17167         * trans.c (Identifier_to_gnu): Change test for deferred constant by
17168         adding guard that the entity is an E_Constant before testing presence
17169         of Full_view (and remove unnecessary test that entity is not a type).
17170         For a CONST_DECL used by reference, manually retrieve
17171         the DECL_INITIAL.  Do not invoke fold in the other DECL_P cases either.
17172         (struct language_function): Move from utils.c to here.
17173         (struct parm_attr): New structure.
17174         (parm_attr, parm_attr vector, parm_attr GC vector): New types.
17175         (f_parm_attr_cache): New macro.
17176         (Attribute_to_gnu) <Attr_Length>: When not optimizing, cache the
17177         expressions for the 'First, 'Last and 'Length attributes of the
17178         unconstrained array IN parameters.
17179         (Subprogram_Body_to_gnu): Use gnu_subprog_decl throughout.
17180         Allocate the information structure for the function earlier, as well
17181         as the language-specific part.
17182         If the parameter attributes cache has been populated, evaluate the
17183         cached expressions on entry.
17184         (takes_address): Add OPERAND_TYPE parameter.  Handle N_Function_Call,
17185         N_Procedure_Call_Statement and N_Indexed_Component.
17186         (Pragma_to_gnu): Translate inspection_point to an asm statement
17187         containaing a comment and a reference to the object (either its address
17188         for BLKmode or its value).
17189         (Identifier_to_gnu): Use TREE_CONSTANT instead of CONST_DECL to decide
17190         to go to DECL_INITIAL. Together with the size constraint relaxation
17191         in create_var_decl, enlarges the set of situations in which an
17192         identifier may be used as an initializer without implying elaboration
17193         code.
17194         (Subprogram_Body_to_gnu): Do not fiddle with the debug interface but set
17195         DECL_IGNORED_P on the function if Needs_Debug_Info is not set on the
17196         node.
17197         (maybe_stabilize_reference): Remove lvalues_only parameter.
17198         (gnat_stabilize_reference): Adjust for above change.
17199         (gnat_to_gnu): Do not set location information on the result
17200         if it is a reference.
17201         (add_cleanup): Add gnat_node parameter and set the location of the
17202         cleanup to it.
17203         (Handled_Sequence_Of_Statements_to_gnu): Adjust calls to add_cleanup.
17204         (Exception_Handler_to_gnu_zcx): Likewise.
17205         (gigi): Remove the cgraph node if the elaboration procedure is empty.
17206         (Subprogram_Body_to_gnu): If a stub is attached to the subprogram, emit
17207         the former right after the latter.
17208         (start_stmt_group): Make global.
17209         (end_stmt_group): Likewise.
17210         (gnu_constraint_error_label_stack, gnu_storage_error_label_stack): New
17211         vars.
17212         (gnu_program_error_label_stack): Likewise.
17213         (gigi): Initialize them.
17214         (call_to_gnu, gnat_to_gnu, emit_check): Add new arg to build_call_raise.
17215         (gnat_to_gnu, N_{Push,Pop}_{Constraint,Storage,Program}_Error_Label):
17216         New cases.
17217         (push_exception_label_stack): New function.
17218         (takes_address): New function.
17219
17220         * utils.c (struct language_function): Move to trans.c from here.
17221         (unchecked_convert): Do not wrap up integer constants in
17222         VIEW_CONVERT_EXPRs.
17223         (create_var_decl_1): Decouple TREE_CONSTANT from CONST_DECL. Prevent
17224         the latter for aggregate types, unexpected by later passes, and relax an
17225         arbitrary size constraint on the former.
17226         (create_field_decl): Use tree_int_cst_equal instead of operand_equal_p
17227         to compare the sizes.
17228         (convert_vms_descriptor): When converting to a fat pointer type, be
17229         prepared for a S descriptor at runtime in spite of a SB specification.
17230         (shift_unc_components_for_thin_pointers): New function.
17231         (write_record_type_debug_info): For variable-sized fields, cap the
17232         alignment of the pointer to the computed alignment.
17233         (finish_record_type): Change HAS_REP parameter into REP_LEVEL.
17234         If REP_LEVEL is 2, do not compute the sizes.
17235         (build_vms_descriptor): Adjust for new prototype of finish_record_type.
17236         (build_unc_object_type): Likewise.
17237         (declare_debug_type): New function.
17238
17239         * ada-tree.def: USE_STMT: removed (not emitted anymore).
17240
17241         * misc.c (gnat_expand_expr): Call to gnat_expand_stmt removed because
17242         no statement is expandable anymore.
17243         (gnat_init_gcc_eh): Do not initialize the DWARF-2 CFI machinery twice.
17244         (gnat_handle_option): Only allow flag_eliminate_debug_types to be set
17245         when the user requested it explicitely.
17246         (gnat_post_options): By default, set flag_eliminate_unused_debug_types
17247         to 0 for Ada.
17248         (get_alias_set): Return alias set 0 for a type if
17249         TYPE_UNIVERSAL_ALIASING_P is set on its main variant.
17250
17251         * ada-tree.h: (TYPE_UNIVERSAL_ALIASING_P): New macro.
17252         (DECL_FUNCTION_STUB): New accessor macro.
17253         (SET_DECL_FUNCTION_STUB): New setter macro.
17254
17255         * lang.opt (feliminate-unused-debug-types): Intercept this flag for Ada.
17256
17257         * fe.h (Get_Local_Raise_Call_Entity, Get_RT_Exception_Entity): New
17258         declarations.
17259
17260 2007-06-06  Jose Ruiz  <ruiz@adacore.com>
17261
17262         * s-intman-vxworks.ads, s-intman-vxworks.adb (Abort_Task_Signal):
17263         Rename to Abort_Task_Interrupt to be able to keep the same interface
17264         as the rest of the targets.
17265
17266         * s-osinte-vxworks.ads s-osinte-vxworks.adb
17267         (To_VxWorks_Priority): Remove explicit "in" mode indicator
17268
17269         * s-osinte-vxworks6.ads, s-vxwork-arm.ads, system-vxworks-arm.ads:
17270         New files.
17271
17272 2007-06-06  Robert Dewar  <dewar@adacore.com>
17273
17274         * a-chahan.ads: Remove obsolescent pragmas
17275
17276         * a-chlat1.ads: Minor reformatting
17277
17278 2007-06-06  Robert Dewar  <dewar@adacore.com>
17279
17280         * comperr.adb (Compiler_Abort): New Finalize/Output_Messages interface
17281         for Errout
17282
17283         * errout.adb: New Finalize/Compilation_Errors/Output_Messages
17284         implementation
17285
17286         * errout.ads (Finalize): Changed interface
17287         (Output_Messages): New procedure
17288         (Compilation_Errors): New Interface
17289
17290         * prepcomp.ads, prepcomp.adb (Parse_Preprocessing_Data_File): New
17291         Finalize/Output_Messages interface for Errout
17292         (Prepare_To_Preprocess): New Finalize/Output_Messages interface for
17293         Errout.
17294
17295 2007-06-06  Thomas Quinot  <quinot@adacore.com>
17296             Olivier Hainque  <hainque@adacore.com>
17297             Robert Dewar  <dewar@adacore.com>
17298
17299         * a-except.ads, a-except.adb: (Rmsg_28): Fix description for E.4(18)
17300         check.
17301         (Raise_Current_Excep): Call Debug_Raise_Exception just before
17302         propagation starts, to let debuggers know about the event in a reliable
17303         fashion.
17304         (Local_Raise): Moved to System.Exceptions
17305         More convenient to have this as a separate unit
17306
17307         * s-except.adb, s-except.ads: New files.
17308
17309         * a-exextr.adb (Unhandled_Exception): Delete - replaced by
17310         Debug_Unhandled_Exception in System.Exceptions where it belongs
17311         together with a couple of other debug helpers.
17312         (Notify_Unhandled_Exception): Use Debug_Unhandled_Exception instead of
17313         the former Unhandled_Exception.
17314
17315         * exp_ch11.ads, exp_ch11.adb: (Possible_Local_Raise): New procedure
17316         (Warn_No_Exception_Propagation): New procedure
17317         (Warn_If_No_Propagation): Rewritten for new warning generation
17318         (Expand_Exception_Handlers): New warning generation
17319         (Expand_N_Raise_xxx_Error): Rewritten for new warnings
17320         (Add_Exception_Label): Use Special_Exception_Package_Used for test
17321         instead of Most_Recent_Exception_Used (accomodates Exception_Traces)
17322         (Expand_Local_Exception_Handlers): Unconditionally add extra block wrap
17323         even if restriction is set (makes life easier in Check_Returns)
17324         (Expand_Local_Exception_Handlers): Follow renamed entity chain when
17325         checking exception identities.
17326         (Expand_Local_Exception_Handlers): Do not optimize when all others case
17327         (Expand_Local_Exception_Handlers): Set Exception_Junk flag on generated
17328         block for handler (used by Check_Returns)
17329         (Expand_Local_Exception_Handlers): Local_Raise now takes an address
17330         (Expand_N_Handled_Sequence_Of_Statements): Properly handle -gnatd.x to
17331         remove all exception handlers when optimizing local raise statements.
17332         (Find_Local_Handler): Use Get_Renamed_Entity
17333         (Expand_N_Handled_Sequence_Of_Statements): If the handled sequence is
17334         marked analyzed after expanding exception handlers, do not generate
17335         redundant cleanup actions, because they have been constructed already.
17336
17337 2007-06-06  Thomas Quinot  <quinot@adacore.com>
17338
17339         * a-finali.ads (Ada.Finalization): Add missing pragma Remote_Types. The
17340         presence of this categorization pragma is mandated by the language.
17341         (Limited_Controlled): Add missing pragma Preelaborable_Initialization
17342         for this type.
17343
17344 2007-06-06  Vincent Celier  <celier@adacore.com>
17345             Robert Dewar  <dewar@adacore.com>
17346
17347         * bcheck.adb, binde.adb, binderr.adb, binderr.ads, butil.adb,
17348         butil.ads, erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
17349         err_vars.ads, exp_tss.adb, exp_tss.ads, fmap.adb, fmap.ads,
17350         fname.adb, fname.ads, fname-sf.adb, fname-uf.adb, fname-uf.ads,
17351         lib-sort.adb, lib-util.adb, lib-util.ads, lib-xref.adb, makeutl.ads,
17352         makeutl.adb, nmake.adt, osint.adb, osint.ads, osint-b.adb,
17353         par-load.adb, prj-attr.adb, prj-dect.adb, prj-err.adb, prj-makr.adb,
17354         prj-part.adb, prj-pp.adb, prj-proc.adb, prj-tree.adb, prj-tree.ads,
17355         prj-util.adb, prj-util.ads, scans.adb, scans.ads, sem_ch2.adb,
17356         sinput-c.adb, styleg-c.adb, tempdir.adb, tempdir.ads, uname.adb,
17357         uname.ads, atree.h, atree.ads, atree.adb, ali-util.ads, ali-util.adb,
17358         ali.ads, ali.adb:
17359         Move Name_Id, File_Name_Type and Unit_Name_Type from package Types to
17360         package Namet. Make File_Name_Type and Unit_Name_Type types derived from
17361         Mame_Id. Add new type Path_Name_Type, also derived from Name_Id.
17362         Use variables of types File_Name_Type and Unit_Name_Type in error
17363         messages.
17364         (Get_Name): Add parameter Ignore_Special, and set it reading file name
17365         (New_Copy): When debugging the compiler, call New_Node_Debugging_Output
17366         here.
17367         Define flags Flag217-Flag230 with associated subprograms
17368         (Flag_Word5): New record type.
17369         (Flag_Word5_Ptr): New access type.
17370         (To_Flag_Word5): New unchecked conversion.
17371         (To_Flag_Word5_Ptr): Likewise.
17372         (Flag216): New function.
17373         (Set_Flag216): New procedure.
17374
17375 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
17376
17377         * a-stzunb.adb, a-stwiun.adb, a-strunb.adb: (Insert): Use 'Length
17378         instead of 'Size.
17379
17380         * a-stwifi.ads, a-stzfix.ads: Minor reformatting
17381
17382 2007-06-06  Javier Miranda  <miranda@adacore.com>
17383
17384         * a-tags.ads, a-tags.adb (Tag_Size): This constant is now internal to
17385         the package.
17386         (Object_Specific_Data_Array): This is now internal to the package.
17387         (Object_Specific_Data): This is now internal to the package.
17388         (Select_Specific_Data_Element): This is now internal to the package.
17389         (Select_Specific_Data_Array): This is now internal to the package.
17390         (Select_Specific_Data): This is now internal to the package.
17391         (Offset_To_Top_Function_Ptr): This is now public.
17392         (To_Offset_To_Top_Function_Ptr): Removed.
17393         (Storage_Offset_Ptr,To_Storage_Offset_Ptr): These declarations are now
17394          local to subprogram Offset_To_Top.
17395         (Predefined_DT): Removed.
17396         (Typeinfo_Ptr): Removed.
17397         (OSD): This function is now internal to this package.
17398         (SSD): This function is now internal to this package.
17399         (DT): New function that displaces the pointer to the table of primitives
17400          to get access to the enclosing wrapper record.
17401         (IW_Membership): Code cleanup.
17402         (Offset_To_Top): Code cleanup.
17403         (Predefined_DT): Removed.
17404         (Register_Interface_Tag): Removed.
17405         (Set_Interface_Table): Removed.
17406         (Set_Offset_Index): Removed.
17407         (Set_Offset_To_Top): Code cleanup.
17408         (Set_OSD): Removed.
17409         (Set_Signature): Removed.
17410         (Set_SSD): Removed.
17411         (Set_Tagged_Kind): Removed.
17412         (Typeinfo_Ptr): Removed.
17413         (TSD): Removed.
17414         (Displace): Add missing check on null actual.
17415
17416         * exp_disp.ads, exp_disp.adb
17417         (Select_Expansion_Utilities): Removed.
17418         (Build_Common_Dispatching_Select_Statements): Moved to exp_atags.
17419         (Expand_Dispatching_Call): Update calls to Get_Prim_Op_Address because
17420         the interface requires a new parameter.
17421         (Make_Disp_Asynchronous_Select_Spec, Make_Disp_Conditional_Select_Spec,
17422         Make_Disp_Get_Prim_Op_Kind_Spec, Make_Disp_Timed_Select_Spec): Replace
17423         calls to subprograms Build_T, Build_S, etc. by the corresponding code.
17424         Done to remove package Select_Expansion_Utilities.
17425         (Make_DT): New implementation for statically allocated dispatch tables.
17426         (Make_Secondary_DT): Moved to the scope of Make_DT.
17427         (Register_Primitive): Code cleanup plus incoporate the use of the new
17428         function DT_Address_Attribute.
17429         (Expand_Interface_Thunk): The profile of this subprogram has been
17430         changed to return the Thunk_Id and the corresponding code.
17431         (Fill_DT_Entry): Removed. Its functionality is now provided by
17432         subprogram Register_Primitive.
17433         (Fill_Secondary_DT_Entry): Removed. Its functionality is now provided by
17434         subprogram Register_Primitive.
17435         (Register_Primitive): New subprogram that incorporates the previous
17436         functionalities of Fill_DT_Entry and Fill_Secondary_DT_Entry.
17437         (Build_Common_Dispatching_Select_Statements): Remove formal Typ. This
17438         was only required to call Make_DT_Access_Action, which is now removed.
17439         (Ada_Actions): Removed
17440         (Action_Is_Proc): Removed
17441         (Action_Nb_Arg): Removed
17442         Replace all the calls to Make_DT_Access_Action by direct calls to
17443         Make_Procedure_Call_Statement or Make_Function_Call.
17444         (Set_DTC_Entity_Value): New subprogram.
17445         (Set_All_DT_Position): Add call to new subprogram Set_DTC_Entity_Value.
17446         (Expand_Interface_Thunk): Add missing support for primitives that are
17447         functions with a controlling result (case in which there is no need
17448         to generate the thunk).
17449
17450         * exp_atag.ads, exp_atag.adb
17451         (Build_DT): New subprogram that displaces the pointer to reference the
17452         base of the wrapper record.
17453         (Build_Typeinfo_Offset): Removed.
17454         (RTE_Tag_Node): Removed.
17455         (Build_Common_Dispatching_Select_Statements): Moved here from exp_disp
17456         (Build_Get_RC_Offset): Removed.
17457         (Build_Inherit_Predefined_Prims): Removed.
17458         (Build_Inherit_TSD: Removed.
17459         (Build_New_TSD): Removed.
17460         (Build_Set_External_Tag): Removed.
17461         (Build_Set_Predefined_Prim_Op_Address): Add documentation.
17462         (Build_Set_Prim_Op_Address): Add documentation.
17463         (Build_Set_TSD): Removed.
17464
17465         * rtsfind.ads, rtsfind.adb
17466         (Load_Fail): If load fails and we are not in configurable run-time
17467         mode, then raise Unrecoverable_Error.
17468         (Text_IO_Kludge): Generate an error message if a run-time library is
17469         not available in a given run-time (ie. zfp run-time).
17470         (RTE_Record_Component): Add code to check that the component we search
17471         for is not found in two records in the given run-time package.
17472         (RE_DT_Offset_To_Top_Size, RE_DT_Predef_Prims_Size): Removed
17473         (RE_DT_Predef_Prims_Offset): New entity
17474         (RE_Static_Offset_To_Top): New entity
17475         (RE_HT_Link): New entity.
17476         (System_Address_Image): Addition of this run-time package.
17477         (RE_Address_Image): New entity.
17478         (RE_Abstract_Interface): Removed.
17479         (RE_Default_Prim_Op_Count): Removed.
17480         (RE_DT_Entry_Size): Removed.
17481         (RE_DT_Min_Prologue_Size): Removed.
17482         (RE_DT_Prologue_Size): Removed.
17483         (RE_Ifaces_Table_Ptr): Removed.
17484         (RE_Interface_Data_Ptr): Removed.
17485         (RE_Type_Specific_Data): Removed.
17486         (RE_Primary_DT): Removed.
17487         (RE_Register_Interface_Tag): Removed.
17488         (RE_Set_Offset_Index): Removed.
17489         (RE_Set_OSD): Removed.
17490         (RE_Set_SSD): Removed.
17491         (RE_Set_Signature): Removed.
17492         (RE_Set_Tagged_Kind): Removed.
17493         (RE_Address_Array): New entity.
17494         (RE_DT): New entity.
17495         (RE_Iface_Tag): New entity.
17496         (RE_Interfaces_Table): New entity.
17497         (RE_No_Dispatch_Table): New entity.
17498         (RE_NDT_Prims_Ptr): New entity.
17499         (RE_NDT_TSD): New entity.
17500         (RE_Num_Prims): New entity.
17501         (RE_Offset_To_Top_Function_Ptr): New entity.
17502         (RE_OSD_Table): New entity.
17503         (RE_OSD_Num_Prims): New entity.
17504         (RE_Predef_Prims): New entity
17505         (RE_Predef_Prims_Table_Ptr): New entity.
17506         (RE_Primary_DT): New entity.
17507         (RE_Signature): New entity.
17508         (RE_SSD): New entity.
17509         (RE_TSD): New entity.
17510         (RE_Type_Specific_Data): New entity.
17511         (RE_Tag_Kind): New entity.
17512
17513 2007-06-06  Thomas Quinot  <quinot@adacore.com>
17514
17515         * a-textio.ads, a-textio.adb (Write): Add explicit size clause for the
17516         C imported variable.
17517         (Skip_Line): Do not reset Before_LM_PM immediately when Before_LM is set
17518         on entry.
17519
17520 2007-06-06  Robert Dewar  <dewar@adacore.com>
17521
17522         * a-tienio.adb (Get): Adjust buffer size to accomodate one extra
17523         character
17524
17525 2007-06-06  Vincent Celier  <celier@adacore.com>
17526
17527         * a-tifiio.adb (Put, internal): For negative numbers, check that there
17528         is room for at least one digit and the minus sign.
17529         (Put.Put_Character): Never put a character outside of the range of
17530         string To.
17531
17532 2007-06-06  Olivier Hainque  <hainque@adacore.com>
17533             Eric Botcazou  <ebotcazou@adacore.com>
17534
17535         * utils2.c (build_allocator): Provide the extra arguments to
17536         make_aligning_type for super-aligned objects allocated from the default
17537         pool. Leave enough room for a pointer before the aligning field, and
17538         store the system's allocator return value there.
17539         (build_call_alloc_dealloc): When releasing a super-aligned object,
17540         retrieve the system's allocator return value from where build_allocator
17541         has stored it, just ahead of the adjusted address we are passed.
17542         (build_call_raise): Handle properly the generation of line numbers when
17543         the node is marked No_Location.
17544         (compare_elmt_bitpos): Use tree_int_cst_compare.  Stabilize the sort
17545         by using DECL_UID on ties.
17546         (build_binary_op) <EQ_EXPR>: Accept fat pointer types with the same
17547         main variant.
17548         (build_call_raise): Handle converting exception into goto; support new
17549         argument KIND.
17550         (build_component_ref): Add new arg to build_call_raise.
17551
17552 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
17553
17554         * a-ztflau.adb, a-wtflau.adb, a-tiflau.adb (Load_Real): Do not parse
17555         "." in the case of nnn.xxx when nnn terminates with an underscore.
17556         Parse the remaining "#" or ":" in the case of nnn#.xxx#
17557
17558 2007-06-06  Robert Dewar  <dewar@adacore.com>
17559
17560         * a-tigeau.ads, a-tigeau.adb: (Store_Char): Change Buf to IN OUT
17561
17562 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
17563             Vincent Celier  <celier@adacore.com>
17564             Robert Dewar  <dewar@adacore.com>
17565
17566         * bindgen.adb (Gen_Output_File_Ada): Generate pragma No_Run_Time when
17567         needed.
17568         (Gen_Output_File_Ada, Gen_Output_File_C): Never use __attribute
17569         ((destructor)) for adafinal, even when switch -a is used.
17570         Do not issue pragma Linker_Destructor for adafinal when switch -a is
17571         used.
17572         (Gen_Object_Files_Options): Add formatting of Linker Options, when
17573         Output_Linker_Option_List is set. Suppress this formatting when
17574         Zero_Formatting is set.
17575         Add case for CLI_Target.
17576         (System_Restrictions_Used): New flag, used to avoid generating with of
17577         System_Restrictions and initialization of the data unless there is
17578         some use of System.Restrictions in the partition.
17579         (Check_System_Restrictions_Used): New procedure
17580
17581         * s-stalib.adb: Remove with of System.Restrictions. No longer needed
17582         since we only with this unit in the binder file if it is used elsewhere
17583         in the partition.
17584
17585 2007-06-06  Vincent Celier  <celier@adacore.com>
17586
17587         * bindusg.adb: Add line for @<response file>
17588         Add lines for new switches -R and -Z
17589
17590         * gnatbind.adb (Gnatbind): Do not include sources from the GNAT
17591         hierarchy in the list of files of the closure when -R is used
17592         (Gnatbind): Accept arguments starting with '@' to indicate response
17593         files and take the arguments from the response files.
17594         If List_Closure is set, display the referenced files
17595
17596 2007-06-06  Javier Miranda  <miranda@adacore.com>
17597             Robert Dewar  <dewar@adacore.com>
17598             Ed Schonberg  <schonberg@adacore.com>
17599
17600         * checks.ads, checks.adb (Apply_Address_Clause_Check): Handle case in
17601         which the address-clause is applied to in-mode actuals (allowed by
17602         13.1(22)).
17603         (Apply_Discriminant_Check): Do not generate a check if the type is
17604         constrained by a current instance.
17605         (Activate_Division_Check): New procedure
17606         (Activate_Overflow_Check): New procedure
17607         (Activate_Range_Check): New procedure
17608         Call these new Activate procedures instead of setting flags directly
17609         (Apply_Array_Size_Check): Removed, no longer needed.
17610         Code clean up: remove obsolete code related to GCC 2.
17611         (Get_E_Length): Protect against bomb in case scope is standard
17612         (Selected_Range_Checks): If the node to be checked is a conversion to
17613         an unconstrained array type, and the expression is a slice, use the
17614         bounds of the slice to construct the required constraint checks.
17615         Improve NOT NULL error messages
17616         (Apply_Constraint_Check): If the context is a null-excluding access
17617         type, diagnose properly the literal null.
17618
17619 2007-06-06  Pascal Obry  <obry@adacore.com>
17620
17621         * clean.adb (Clean_Archive): Use untouched casing for the archive name
17622         and the corresponding .deps file.
17623         (Clean_Interface_Copy_Directory): Use untouched casing for the library
17624         src directory. Minor code-clean-up. Use untouched casing for files
17625         read into the library src dir.
17626         (Clean_Library_Directory): Idem.
17627         (Parse_Cmd_Line): Accept new switch -aP
17628
17629 2007-06-06  Javier Miranda  <miranda@adacore.com>
17630             Ed Schonberg  <schonberg@adacore.com>
17631             Robert Dewar  <dewar@adacore.com>
17632             Eric Botcazou  <ebotcazou@adacore.com>
17633             Arnaud Charlet  <charlet@adacore.com>
17634
17635         * einfo.ads, einfo.adb (Available_View): New synthesized attribute
17636         applicable to types that have the With_Type flag set. Returns the
17637         non-limited view of the type, if available, otherwise the type itself.
17638         For class-wide types, there is no direct link in the tree, so we have
17639         to retrieve the class-wide type of the non-limited view of the Etype.
17640         New attributes Static_Initialization and Static_Elaboration_Desired.
17641         Remove the pragma Thread_Body, and the associated flag
17642         Is_Thread_Body in entities, and all related code.
17643         (Suppress_Value_Tracking_On_Call): New flag
17644         E_Exception has Esize and Alignment fields
17645         (Universal_Aliasing): New function.
17646         (Set_Universal_Aliasing): New procedure.
17647         (Write_Entity_Flags): Deal with Universal_Aliasing flag.
17648         (Check_Nested_Access): New procedure.
17649         (Has_Up_Level_Access, Set_Has_Up_Level_Access): New procedures.
17650         (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
17651         (Related_Interface): New attribute. Present in dispatch table pointer
17652         components of records. Set to point to the entity of the corresponding
17653         interface type.
17654         (Is_By_Reference_Type): Recurse on the full view of an incomplete type.
17655         (Original_Access_Type): Remove, not needed.
17656         (Root_Type): Handle properly subtypes of class-wide-types.
17657         Update comments.
17658
17659         * sem_ch4.adb (Analyze_Explicit_Dereference): Add support for
17660         class-wide types visible through limited-with clauses.
17661         (Try_Primitive_Operation): When examining all primitive operations of a
17662         tagged type, do not consider subprograms labeled as hidden unless they
17663         belong to a private generic type with a tagged parent.
17664         (Try_Object_Operation): Extensive rewriting, to handle properly various
17665         overloading cases, when several ancestors may have class-wide operations
17666         that are possible candidates, and when the overloaded functions return
17667         array types and have defaulted parameters so that the call may be
17668         interpreted as an indexing.
17669         (Analyze_Allocator): Remove Mark_Allocator and its invocation.
17670         (Process_Function_Call): use Next, rather than Next_Actual, to analyze
17671         successive actuals before analyzing the call itself.
17672         (Try_Primitive_Operation): A primitive operation is compatible with the
17673         prefix if the prefix has a synchronized type and the type of the formal
17674         is its corresponding record, as can be the case when the primitive
17675         operation is declared outside of the body of the type.
17676         (Traverse_Homonyms): New subprocedure of Try_Class_Wide_Operation, to
17677         perform homonym traversal, looking for class-wide operation matches
17678         (formerly done in statements of Try_Class_Wide_Operation). Matches on
17679         access parameters are now restricted to anonymous access types.
17680         (Mark_Allocator): An allocator with a discriminant association parent is
17681         a coextension.
17682         (Try_One_Prefix_Interpretation): If the type of the object is
17683         incomplete, as can be happen when it is a limited view obtained through
17684         a limited_with_clause, the selected component is not part of a prefixed
17685         call.
17686         (Complete_Object_Operation): Diagnose properly an object that is not
17687         aliased when the corresponding controlling formal is an access
17688         parameter.
17689         (Try_Primitive_Operation, Try_Class_Wide_Operation): Diagnose properly
17690         ambiguous calls in prefixed notation, where two primitives differ only
17691         in that the controlling argument of one is an access parameter.
17692
17693         * sem_ch6.adb (Has_Single_Return): Add guard in code that determines
17694         whether a function that returns an unconstrained type can be inlined.
17695         (Process_Formals): Diagnose properly the illegal use of an incomplete
17696         type in the profile of an access_to_subprogram declaration.
17697         (Check_Synchronized_Overriding): Nothing check for concurrent types, the
17698         operations are attached to the corresponding record.
17699         (Analyze_Subprogram_Specification): Add variables Formal and Formal_Typ.
17700         When processing a primitive of a concurrent type which implements an
17701         interface change the type of all controlling formals to that of the
17702         corresponding record type.
17703         (Check_Synchronized_Overriding): Relax the conditional logic when trying
17704         to determine the tagged type to which a primitive belongs.
17705         (Check_Conventions): Capture condition to ignore a primitive operation
17706         (which is shared between the loop in Check_Conventions and the one in
17707         Check_Convention) in a new local function Skip_Check.
17708         (Check_Convention): Rename Prim_Op to Second_Prim_Op to avoid possible
17709         confusion with Check_Conventions' own Prim_Op local variable.
17710         (Create_Extra_Formals): Test for a tagged result type rather than a
17711         controlling result when determining whether to add a BIP_Alloc_Form
17712         formal and a BIP_Final_List formal to the function.
17713         (Check_Conformance); For parameters that are anonymous access types,
17714         subtype conformance requires that the not null and the constant
17715         indicators must match
17716         (Check_Synchronized_Overriding): New parameter Formal_Typ. Add machinery
17717         to retrieve the appropriate type when processing a concurrent type
17718         declared within a generic. Minor comment reformatting. Change invocation
17719         of Overrides_Synchronized_Primitive to Find_Overridden_Synchronized_Pri-
17720         mitive.
17721         (Analyze_Subprogram_Body): If the return type of a function is an
17722         anonymous access to the limited view of a class-wide type, and the
17723         non-limited view of the type is available, update the type of the
17724         function so that code can be generated.
17725         (Process_Formals): In case of access-subtype itype whose designated
17726         type is also an itype (situation that happens now with access to
17727         subprograms) we mark the access-type itype with the Has_Delayed_Freeze
17728         attribute to avoid backend problems.
17729         (Check_Return_Subtype_Indication): Replace R_Type with R_Stm_Type in
17730         init of R_Stm_Type_Is_Anon_Access. Also check that base types of the
17731         anonymous types' designated types are same before testing
17732         Subtypes_Statically_Match.
17733         (Create_Extra_Formals): Test for a named access parameter that is a
17734         controlling formal as an additional condition for adding an
17735         accessibility level formal. This can occur in the subp type created for
17736         dispatching calls in Expand_Dispatching_Call, and allows calling
17737         Create_Extra_Formals from that procedure rather than special-casing the
17738         extra formals there.
17739         (Create_Extra_Formals): Add BIP_Alloc_Form and BIP_Final_List formals
17740         when the function has a controlling result.
17741         (Check_Returns): Add much more knowledge of the optimization of local
17742         raise statements to gotos, to retain proper warnings in this case.
17743         (Check_Statement_Sequence): Ignore N_Push_xxx_Label and N_Pop_xxx_Label
17744         nodes when looking for last statement.
17745
17746         * sem_type.ads, sem_type.adb (Specific_Type): Add support for
17747         class-wide types visible through limited with clauses.
17748         (Add_One_Interp): If the operands are anonymous access types, the
17749         predefined operator on universal_access is immediately visibles
17750         (Find_Unique_Type): Handle anonymous access to subprogram types just as
17751         other anonymous access types.
17752         (Disambiguate): Take into account CIL convention.
17753         (Interface_Present_In_Ancestor): Add support for class-wide interfaces.
17754
17755 2007-06-06  Robert Dewar  <dewar@adacore.com>
17756
17757         * sinput.ads, sinput.adb, uintp.ads, urealp.adb, stringt.adb,
17758         sem_elim.adb, prj-strt.adb, repinfo.ads, repinfo.adb, namet.ads,
17759         elists.ads, elists.adb, lib.ads, lib.adb (Unlock): New procedure.
17760         Fix lower bound of tables.
17761         Add rep clauses.
17762
17763         * nlists.adb: Ditto.
17764         (Prev_Node, Next_Node): Change index type to Int so that it properly
17765         covers the range First_Node_Id - 1 up.
17766
17767 2007-06-06  Javier Miranda  <miranda@adacore.com>
17768             Ed Schonberg  <schonberg@adacore.com>
17769             Bob Duff  <duff@adacore.com>
17770             Hristian Kirtchev  <kirtchev@adacore.com>
17771
17772         * exp_aggr.ads, exp_aggr.adb:
17773         (Build_Record_Aggr_Code): Add missing initialization of secondary tags
17774         in extension aggregates.
17775         (Flatten): Other conditions being met, an aggregate is static if the
17776         low bound given by component associations is different from the low
17777         bound of the base index type.
17778         (Packed_Array_Aggregate_Handled): If the component type is itself a
17779         packed array or record, the front-end must expand into assignments.
17780         (Gen_Ctrl_Actions_For_Aggr): In call to Init_Controller, pass False to
17781         Init_Pr, instead of Ancestor_Is_Expression.
17782         (Gen_Ctrl_Actions_For_Aggr): When processing an aggregate of a
17783         coextension chain root, either generate a list controller or use the
17784         already existing one.
17785         (Static_Array_Aggregate): New procedure to construct a positional
17786         aggregate that can be handled by the backend, when all bounds and
17787         components are compile-time known constants.
17788         (Expand_Record_Aggregate): Force conversion of aggregates of tagged
17789         types covering interface types into assignments.
17790         (Replace_Type): move to Build_Record_Aggr_Code.
17791         (Expand_Record_Aggr_Code): if the target of the aggregate is an
17792         interface type, convert to the definite type of the aggregate itself,
17793         so that needed components are visible.
17794         (Convert_Aggr_In_Object_Decl): If the aggregate has controlled
17795         components and the context is an extended return statement do not
17796         create a transient block for it, to prevent premature finalization
17797         before the return is executed.
17798         (Gen_Assign): Do not generate a call to deep adjust routine if the
17799         component type is itself an array of controlled (sub)-components
17800         initialized with an inner aggregate.
17801         (Component_Check): New name for Static_Check. This name is now more
17802         appropriate, and documentation is added which was missing.
17803         (Component_Check): Add test for bit aligned component value
17804         (Component_Not_OK_For_Backend): Renames Has_Delayed_Nested_Aggregate_Or_
17805         Tagged_Comps, name is more appropriate given added function below.
17806         (Component_Not_OK_For_Backend): Check for bit aligned component ref.
17807
17808 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
17809             Javier Miranda  <miranda@adacore.com>
17810             Robert Dewar  <dewar@adacore.com>
17811
17812         * exp_attr.adb (Expand_N_Attribute_Reference): Case Callable and
17813         Terminated: Add unchecked type conversion from System.Address to
17814         System.Tasking.Task_Id when calling the predefined primitive
17815         _disp_get_task_id.
17816         Disable new Ada 05 accessibility check for JVM.NET targets, which
17817         cannot be implemented in a practical way.
17818         (Expand_N_Attribute_Reference: case Attribute_Tag): The use of 'Tag in
17819         the sources always references the tag of the actual object. Therefore,
17820         if 'Tag is applied in the sources to class-wide interface objects we
17821         generate code that displaces "this" to reference the base of the object.
17822         (Expand_N_Attribute_Reference, case Size): Return specified size if
17823         known to front end.
17824         (Expand_N_Attribute_Reference): The expansion of the 'Address attribute
17825         has code that displaces the pointer of the object to manage interface
17826         types. However this code must not be executed when the prefix is a
17827         subprogram. This bug caused the wrong expansion of the internally
17828         generated assignment that fills the dispatch table when the primitive
17829         is a function returning a class-wide interface type.
17830         (Expand_N_Attribute_Reference:Attribute_Valid): Remove incorrect call to
17831         Set_Attribute_Name for Name_Unaligned_Valid.
17832
17833 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
17834             Gary Dismukes  <dismukes@adacore.com>
17835
17836         * exp_ch13.adb (Expand_N_Attribute_Definition_Clause, case 'Address):
17837         If the initialization is the equivalent aggregate of the initialization
17838         procedure of the type, do not remove it.
17839         (Expand_N_Attribute_Definition_Clause): Exclude access variables
17840         initialized to null from having their expression reset to empty and
17841         note this exception in the comment.
17842
17843 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
17844             Robert Dewar  <dewar@adacore.com>
17845             Ed Schonberg  <schonberg@adacore.com>
17846             Gary Dismukes  <dismukes@adacore.com>
17847
17848         * exp_ch2.adb: Remove "with" and "use" clauses for Namet and Snames.
17849         Add "with" and "use" clauses for Sem_Attr.
17850         (Expand_Current_Value): Do not replace occurences of attribute
17851         references where the prefix must be a simple name.
17852
17853         * sem_attr.ads, sem_attr.adb: Remove "with" and "use" clauses for
17854         Namet. Add new arrays Attribute_Name_Modifies_Prefix and
17855         Attribute_Requires_Simple_Name_Prefix.
17856         (Name_Modifies_Prefix): Body of new function.
17857         (Requires_Simple_Name_Prefix): Body of new function.
17858         (Resolve_Attribute, case Access): Improve error message for case of
17859         mismatched conventions.
17860         (Analyze_Attribute, case 'Tag): The prefix the attribute cannot be of an
17861         incomplete type.
17862         (Analyze_Attribute, case 'Access): If the type of the prefix is a
17863         constrained subtype for a nominal unconstrained type, use its base type
17864         to check for conformance with the context.
17865         (Resolve_Attribute): Remove test of the access type being associated
17866         with a return statement from condition for performing accessibility
17867         checks on access attributes, since this case is now captured by
17868         Is_Local_Anonymous_Access.
17869         (Analyze_Access_Attribute): Set Address_Taken on entity
17870         (Analyze_Attribute, case Address): Set Address_Taken on entity
17871         (OK_Self_Reference): Traverse tree to locate enclosing aggregate when
17872         validating an access attribute whose prefix is a current instance.
17873         (Resolve_Attribute): In case of attributes 'Code_Address and 'Address
17874         applied to dispatching operations, if freezing is required then we set
17875         the attribute Has_Delayed_Freeze in the prefix's entity.
17876         (Check_Local_Access): Set flag Suppress_Value_Tracking_On_Call in
17877         current scope if access of local subprogram taken
17878         (Analyze_Access_Attribute): Check legality of self-reference even if the
17879         expression comes from source, as when a single component association in
17880         an aggregate has a box association.
17881         (Resolve_Attribute, case 'Access): Do not apply accessibility checks to
17882         the prefix if it is a protected operation and the attribute is
17883         Unrestricted_Access.
17884         (Resolve_Attribute, case 'Access): Set the Etype of the attribute
17885         reference to the base type of the context, to force a constraint check
17886         when the context is an access subtype with an explicit constraint.
17887         (Analyze_Attribute, case 'Class): If the prefix is an interface and the
17888         node is rewritten as an interface conversion. leave unanalyzed after
17889         resolution, to ensure that type checking against the context will take
17890         place.
17891
17892 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
17893             Javier Miranda  <miranda@adacore.com>
17894             Robert Dewar  <dewar@adacore.com>
17895
17896         * exp_ch3.adb (Make_Controlling_Function_Wrappers): generate wrapper a
17897         wrapper when the full view of the controlling type of an inherited
17898         function that dispatches on result implements interfaces.
17899         (Expand_N_Object_Declaration): In cases where the type of the
17900         declaration is anonymous access, create finalization list for it.
17901         (Expand_N_Object_Declaration): Generate a persistent_bss directive only
17902         if the object has no explicit initialization, to match description of
17903         functionality of pragam Persistent_BSS.
17904         (Build_Equivalent_Array_Aggregate, Build_Equivalent_Record_Aggregate):
17905         new function to build static aggregates, to replace initialization call
17906         when static initialization is desired.
17907         (Freeze_Type): Generate a list controller for an access type whenever
17908         its designated type has controlled anonymous access discriminants.
17909         (Build_Equivalent_Aggregate): New procedure to compute a static
17910         aggregate to be used as default initialization for composite types,
17911         instead of a generating a call to the initialization procedure for the
17912         type.
17913         (Build_Initialization_Call): When available, replace a call to the
17914         initialization procedure with a copy of the equivalent static aggregate
17915         for the type.
17916         (Expand_N_Object_Declaration):  Use New_Occurrence_Of in generated
17917         declarations for objects of a class-wide interface type, rather than
17918         just identifiers, to prevent visibility problems.
17919         (Expand_N_Object_Declaration): When expanding the declaration for an
17920         object of a class-wide interface type, preserve the homonym chain of
17921         the original entity before exchanging it with that of the generated
17922         renaming declaration.
17923         (Freeze_Enumeration_Type): Don't raise CE if No_Exception_Propagation
17924         active, because there is no way to handle the exception.
17925         (Freeze_Record_Type): In case of CPP_Class types add a call to Make_DT
17926         to do a minimum decoration of the Access_Disp_Table list.
17927         (Expand_Record_Controller): Avoid the addition of the controller between
17928         the component containing the tag of a secondary dispatch table and its
17929         adjacent component that stores the offset to the base of the object.
17930         This latter component is only generated when the parent type has
17931         discriminants ---documented in Add_Interface_Tag_Components).
17932         (Apply_Array_Size_Check): Removed, no longer needed.
17933         (Expand_N_Full_Type_Declaration): If the type has anonymous access
17934         components, create a Master_Entity for it only if it contains tasks.
17935         (Build_Init_Procedure): Suppress the tag assignment compiling under
17936         no run-time mode.
17937         (Freeze_Record_Type): Remove code associated with creation of dispatch
17938         table.
17939         (Init_Secondary_Tags): Update type of actuals when generating calls to
17940         Ada.Tags.Set_Offset_To_Top
17941         (Stream_Operation_OK): Disable use of streams compiling under no
17942         run-time mode
17943         (Expand_N_Object_Declaration): Don't do Initialize_Scalars initalization
17944         if Has_Init_Expression set.
17945         (Build_Init_Procedure): Replace call to Fill_DT_Entry by call to
17946         Register_Primitive, which provides the same functionality.
17947         (Requires_Init_Proc): Return false in case of interface types.
17948         (Add_Secondary_Tables): Use the new attribute Related_Interface to
17949         cleanup the code.
17950         (Predefined_Primitive_Freeze): Do not assume that an internal entity
17951         is always associated with a predefined primitive because the internal
17952         entities associated with interface types are not predefined primitives.
17953         Therefore, the call to Is_Internal is replaced by a call to the
17954         function Is_Predefined_Dispatching_Operation.
17955         (Make_Eq_If): When generating the list of comparisons for the
17956         components of a given variant, omit the controller component that is
17957         present if the variant has controlled components.
17958
17959 2007-06-06  Javier Miranda  <miranda@adacore.com>
17960             Hristian Kirtchev  <kirtchev@adacore.com>
17961             Bob Duff  <duff@adacore.com>
17962
17963         * exp_ch4.adb (Complete_Coextension_Finalization): Add machinery to
17964         handle the creation of finalization lists and calls for nested
17965         coextensions when the root of the chains is part of a return statement.
17966         (Inside_A_Return_Statement): New function inside Complete_Coextension_
17967         Finalization.
17968         (Expand_Record_Equality): Skip components that are interface types.
17969         (Displace_Allocator_Pointer): Add missing support for interface subtypes
17970         (Expand_N_Allocator): Replace invocation of Is_Local_Access_Discriminant
17971         with Rewrite_Coextension. Change the condition for detecting coextension
17972         root nodes.
17973         (Is_Local_Access_Discriminant): Removed.
17974         (Rewrite_Coextension): New routine which rewrites a static coextension
17975         as a temporary and uses its unrestricted access in the construction of
17976         the outer object.
17977         (Complete_Coextension_Finalization): New routine. Generate finalization
17978         attachment calls to all delayed coextensions.
17979         (Expand_N_Allocator): Call Complete_Coextension_Finalization whenever
17980         the allocator is not a coextension itself and has delayed coextensions.
17981         If the current allocator is controlled, but also a coextension, delay
17982         the generation of the finalization attachment call.
17983         Rename local variable "Node" to "Nod" in order to avoid confusion with
17984         "Elists.Node".
17985         (Expand_Allocator_Expression): Call Adjust for initialized allocators of
17986         limited types that are not inherently limited. Such an allocator is
17987         illegal, but is generated by the expander for a return statement, to
17988         copy the result onto the secondary stack. This is the only case where a
17989         limited object can be copied. Generate code to displace the pointer
17990         to the object if the qualified expression is a class-wide interface
17991         object. Such displacement was missing and hence the copy of the object
17992         was wrong.
17993         (Apply_Accessibility_Check): Handle allocated objects initialized in
17994         place.
17995         (Displace_Allocator_Pointer): Subsidiary procedure to Expand_N_Allocator
17996         and Expand_Allocator_Expression. Allocating class-wide interface objects
17997         this routine displaces the pointer to the allocated object to reference
17998         the component referencing the corresponding secondary dispatch table.
17999         Expand_Allocator_Expression): Add missing support to allocate class-wide
18000         interface objects initialized with a qualified expression.
18001         (Get_Allocator_Final_List): Test for an anonymous access type that is a
18002         function result type, and use the finalization list associated with the
18003         function scope in that case (such an anonymous type should not be
18004         treated like an access parameter's type).
18005
18006 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
18007             Gary Dismukes  <dismukes@adacore.com>
18008             Javier Miranda  <miranda@adacore.com>
18009
18010         * exp_ch5.adb (Expand_N_Assignment_Statement): For the assignment of a
18011         controlled type, use Make_Handler_For_Ctrl_Operation to construct the
18012         required exception handler.
18013         (Expand_Simple_Function_Return, Expand_N_Return_Statement): Handle
18014         properly the case of a function whose return type is a limited
18015         class-wide interface type. Modify the code of the accessibility
18016         check to handle class-wide interface objects. In this case we need to
18017         displace "this" to reference the primary dispatch table to get access
18018         to the TSD of the object (to evaluate its accessibility level).
18019         (Expand_N_Extended_Return_Statement): Test for a tagged result type
18020         rather than a controlling result as one of the conditions for
18021         generating tests of the implicit BIP_Alloc_Form formal. The
18022         initialization assignment is also handled according to whether the
18023         result is tagged instead of controlling.
18024         In the case where the init assignment is inserted in the "then" part of
18025         the allocation conditional, rewrite the target to be a dereference of
18026         the implicit BIP_Object_Access formal.
18027         If the returned value is unconstrained and created on the secondary
18028         stack, mark the enclosing block and function so that the secondary
18029         stack is not reclaimed on return.
18030         Treat returns from functions with controlling results similarly to
18031         returns from functions with unconstrained result subtypes.
18032         If the object returned is unconstrained, and an allocator must be
18033         created for it, analyze the allocator once the block for the extended
18034         return is installed, to ensure that finalizable components
18035         of the expression use the proper finalization list. Guard the call to
18036         Move_Final_List with a check that there is something to finalize.
18037         (Make_Tag_Ctrl_Assignment): Use "old" handling
18038         of controlled type assignment for virtual machines, since new code uses
18039         unsupported features (such as direct access to bytes in memory).
18040
18041 2007-06-06  Gary Dismukes  <dismukes@adacore.com>
18042             Ed Schonberg  <schonberg@adacore.com>
18043
18044         * exp_ch6.ads, exp_ch6.adb (Expand_Call): When adding an extra
18045         accessibility actual, check for the case of an aliased object that has
18046         been rewritten as an Access attribute, and assign Prev to Prev_Orig so
18047         we fall into processing for the attribute rather than the name of the
18048         object.
18049         (Expand_Inline_Call): If an actual is a literal, and the corresponding
18050         formal has its address taken in the body, create a temporary to capture
18051         value.  If the return type is a limited interface, do not treat the
18052         return value as Controlled.
18053         (Is_In_Place_Function):  If the return type is a limited interface,
18054         treat as returning in place. The actual returned object may not always
18055         be limited, but the caller has to assume that it is returned in place.
18056         (Add_Final_List_Actual_To_Build_In_Place_Call): If the call is the
18057         context of an allocator, use the correct finalization chain (that is,
18058         the chain belonging to the access type, rather than the chain belonging
18059         to the current scope).
18060         (Add_Alloc_Form_Actual_To_Build_In_Place_Call): Test for a tagged
18061         result type rather than a controlling result as a precondition for
18062         adding an allocation form actual to a build-in-place call.
18063         (Add_Final_List_Actual_To_Build_In_Place_Call): Ditto.
18064         (Freeze_Subprogram): Code cleanup. Remove all the code that register the
18065         primitive in the dispatch tables. This work is now done by Make_DT when
18066         the type is frozen.
18067         (Register_Predefined_DT_Entry): Removed.
18068         (Add_Return): If end label is not present, use sloc of last statement
18069         for generated return statement in procedure, for better gdb behavior
18070         on expanded code.
18071         (Add_Access_Actual_To_Build_In_Place_Call): Set parent fields of the
18072         object address nodes to ensure proper processing by routines like
18073         Insert_After*.
18074         (Expand_Call): Fix generation of validity check for parameter
18075         (Add_Alloc_Form_Actual_To_Build_In_Place_Call): Return without passing
18076         the allocation form parameter if the result subtype is constrained,
18077         except when the function has a controlling result.
18078         (Add_Final_List_Actual_To_Build_In_Place_Call): Test Controlled_Type
18079         rather than Is_Controlled and Has_Controlled_Component, since we want to
18080         include class-wide result types in this treatment. Also test for a
18081         controlling result, since that also requires passing a finalization
18082         list.
18083         (Make_Build_In_Place_Call_In_Allocator): Call Add_Alloc_Form_Actual_*
18084         even when the result subtype is constrained, to handle calls involving
18085         controlling results.
18086         (Make_Build_In_Place_Call_In_Anonymous_Context): Add_Alloc_Form_Actual_*
18087         is now called even when the result subtype is constrained, to handle
18088         calls involving controlling results.
18089         (Make_Build_In_Place_Call_In_Assignment): Remove test for Is_Constrained
18090         on call to Add_Alloc_Form_Actual_To_Build_In_Place_Call (that procedure
18091         now performs the test).
18092         (Make_Build_In_Place_Call_In_Object_Declaration):
18093         Add_Alloc_Form_Actual_* is now called even when the result subtype is
18094         constrained, to handle calls involving controlling results.
18095         (Add_Return): Accomodate rewritten pattern from local raise to goto
18096         transformation, so that we still recognize an transfer statement
18097         and do the right thing here in that case.
18098         (Expand_N_Subprogram_Body): Add dummy Push/Pop_xxx_Label nodes at start
18099         and end of subprogram code.
18100         (Register_Interface_DT_Entry, Register_Predefined_DT_Entry): Add missing
18101         support for primitives that are functions (without formals) with a
18102         controlling result.
18103         (Inherited_From_Formal): If the actual subtype has not generic parent
18104         type, it is not an actual for a formal derived type, and there is no
18105         operation to inherit from the formal.
18106
18107 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
18108             Thomas Quinot  <quinot@adacore.com>
18109
18110         * exp_ch7.ads, exp_ch7.adb (Expand_Cleanup_Actions): Set Sloc of
18111         inserted cleanup code appropriately for GDB use.
18112         (Make_Deep_Proc): Use Make_Handler_For_Ctrl_Operation to create
18113         exception handler for Deep_Adjust or Deep_Finalize.
18114         (Make_Handler_For_Ctrl_Operation): New subprogram. When runtime entity
18115         Raise_From_Controlled_Operation is available, use a call to that
18116         subprogram instead of a plain "raise Program_Error" node to raise
18117         Program_Error if an exception is propagated from an Adjust or Finalize
18118         operation.
18119         (Insert_Actions_In_Scope_Around): If the statement to be wrapped
18120         appears in the optional statement list of a triggering alternative, the
18121         scope actions can be inserted directly there, and not in the list that
18122         includes the asynchronous select itself.
18123
18124 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
18125             Robert Dewar  <dewar@adacore.com>
18126             Hristian Kirtchev  <kirtchev@adacore.com>
18127
18128         * exp_ch9.ads, exp_ch9.adb (Build_Protected_Entry): Set sloc of
18129         generated exception handler appropriately when debugging generated code.
18130         Deal properly with No_Exception_Propagation restriction mode.
18131         (Expand_N_Abort_Statement): Add an unchecked type conversion from
18132         System.Address to System.Tasking.Task_Id when processing the result of
18133         the predefined primitive _disp_get_task_id.
18134         (Expand_N_Asynchronous_Select): Clarify comment.
18135         (Expand_N_Protected_Type_Declaration): Minor code cleanup.
18136         (Find_Parameter_Type): New routine inside Type_Conformant_Parameters.
18137         (Type_Conformant_Parameters): New parameter Prim_Op_Typ. Code cleanup.
18138         (Add_Private_Declarations, Build_Protected_Body): Use proper slocs for
18139         privals and for generated call to Complete_Entry_Body, for better gdb
18140         behavior.
18141         (Copy_Result_Type): Utility to construct a parameter and result profile
18142         for protected functions whose return type is an anonymous access to
18143         subprogram.
18144         (Build_Protected_Sub_Spec and Expand_Access_Protected_Subprogram_Type):
18145         call the above.
18146         (Build_Task_Activation_Call): Insert Activate_Tasks call at proper
18147         point when the local-raise-to-goto transformation has taken place.
18148
18149 2007-06-06  Javier Miranda  <miranda@adacore.com>
18150             Nicolas Setton  <setton@adacore.com>
18151
18152         * exp_dbug.adb (Get_Encoded_Name): Modified to continue providing its
18153         functionality when the backend is generating code.
18154         Otherwise any serious error
18155         reported by the backend calling the frontend routine Error_Msg
18156         changes the Compilation_Mode to Check_Semantics, disables the
18157         functionality of this routine and causes the generation of
18158         spureous additional errors.
18159
18160         * exp_dbug.ads (Pointers to Unconstrained Arrays): Document the
18161         debugging information now generated by the compiler for fat-pointer
18162         types.
18163         Document the contents of DW_AT_producer in the GNAT Vendor extensions to
18164         DWARF2/3.
18165         Document GNAT Vendor extensions to DWARF 2/3 and the "-gdwarf+" switch.
18166
18167 2007-06-06  Thomas Quinot  <quinot@adacore.com>
18168
18169         * exp_dist.ads, exp_dist.adb (Make_Transportable_Check): New subprogram
18170         (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
18171         PolyORB_Support.Build_Subprogram_Receiving_Stubs):
18172         For a remote call to a function with a classwide return type, apply an
18173         E.4(18) check to the returned value.
18174         (Add_RACW_Primitive_Declarations_And_Bodies): Do not generate stubs for
18175         stream attributes of the designated type of an RACW, as they are not
18176         dispatching primitive operations.
18177
18178 2007-06-06  Geert Bosch  <bosch@adacore.com>
18179
18180         * exp_fixd.adb (Integer_Literal): Add optional argument to construct a
18181         negative literal
18182         (Do_Divide_Fixed_Fixed): Add comments to indicate Frac is always
18183         positive
18184         (Do_Divide_Fixed_Universal): Handle case of negative Frac.
18185         (Do_Multiply_Fixed_Fixed): Add coments to indicate Frac is always
18186         positive
18187         (Do_Multiply_Fixed_Universal): Handle case of negative Frac.
18188
18189 2007-06-06  Javier Miranda  <miranda@adacore.com>
18190
18191         * exp_imgv.adb (Expand_Value_Attribute): Disable compilation of this
18192         attribute compiling package Ada.Tags under No_Run_Time_Mode.
18193
18194 2007-06-06  Javier Miranda  <miranda@adacore.com>
18195
18196         * exp_intr.adb (Expand_Unc_Deallocation): Add missing support for
18197         deallocation of class-wide interface objects.
18198         (Expand_Dispatching_Constructor_Call): Take into account that if the
18199         result of the dispatching constructor is an interface type, the
18200         function returns a class-wide interface type; otherwise the returned
18201         object would be actual. The frontend previously accepted returning
18202         interface types because Expand_Interface_Actuals silently performed
18203         the management of the returned type "as if" it were a class-wide
18204         interface type.
18205         (Expand_Dispatching_Constructor_Call): Replace call to
18206         Make_DT_Access_Action by direct call to Make_Function_Call.
18207
18208 2007-06-06  Robert Dewar  <dewar@adacore.com>
18209             Ed Schonberg  <schonberg@adacore.com>
18210
18211         * exp_pakd.adb (Expand_Packed_Not): Use RM_Size rather than ESize to
18212         compute masking constant, since we now set Esize properly to the
18213         underlying size.
18214         (Create_Packed_Array_Type): Set proper Esize value adjusted as required
18215         to match the alignment.
18216         (Create_Packed_Array_Type): Use Short_Short_Unsigned as base type for
18217         packed arrays of 8 bits or less.
18218
18219         * freeze.adb (Freeze_Entity): When freezing the formals of a
18220         subprogram, freeze the designated type of a parameter of an access type
18221         only if it is an access parameter.
18222         Increase size of C convention enumeration object
18223         (Freeze_Entity, array type case): Make sure Esize value is properly
18224         adjusted for the alignment if it is known.
18225         (Freeze_Entity, array type case): When checking bit packed arrays for
18226         the size being incorrect, check RM_Size, not Esize.
18227         (Freeze_Record_Type): Check for bad discriminated record convention
18228         (In_Exp_Body): Return true if the body is generated for a subprogram
18229         renaming, either an attribute renaming or a renaming as body.
18230         (Check_Itype): If the designated type of an anonymous access component
18231         is a non-protected subprogram type, indicate that it is frozen, to
18232         prevent out-of-scope freeze node at some subsequent call.
18233         (Freeze_Subprogram): On OpenVMS, reject descriptor passing mechanism
18234         only if the subprogram is neither imported nor exported, as well as the
18235         NCA descriptor class if the subprogram is exported.
18236
18237 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
18238             Arnaud Charlet  <charlet@adacore.com>
18239             Robert Dewar  <dewar@adacore.com>
18240             Gary Dismukes  <dismukes@adacore.com>
18241
18242         * exp_prag.adb (Expand_Pragma_Import_Or_Interface): Remove properly a
18243         default initialization on an imported object, when there is no
18244         initialization call generated for it.
18245         (Expand_Pragma_Assert): Add handling of No_Exception_Propagation
18246         restriction
18247
18248         * snames.h, snames.ads, snames.adb, par-prag.adb: New pragma
18249         Static_Elaboration_Desired.
18250         Remove pragma Thread_Body.
18251         Implement a new pragma No_Body
18252         Removes the Explicit_Overriding pragma
18253         Remove Optional_Overriding pragma
18254         (Prag): Deal with Universal_Aliasing.
18255         (Name_CIL, Name_CIL_Constructor, Convention_CIL,
18256         Pragma_CIL_Constructor): New names.
18257
18258         * sem_cat.adb (Validate_Object_Declaration): An initialization that
18259         uses the equivalent aggregate of a type must be treated as an implicit
18260         initialization.
18261         (Get_Categorization): Check a unit for pragma Preelaborate only if it
18262         has none of the other categories.
18263         (Process_Import_Or_Interface_Pragma): Report an error for an attempt
18264         to apply Import to an object renaming declaration.
18265
18266         * sem_prag.adb (Process_Import_Or_Interface): Warn that a type imported
18267         from a C++ class should be declared as limited and that it will be
18268         considererd limited.
18269         (Analyze_Pragma): Warn that a type specified with pragma CPP_Class
18270         should be declared as limited and that it will be considererd limited.
18271         (Ada_2005_Pragma): New procedure, used to deal with Ada 2005 pragmas
18272         (Analyze_Pragma, case Export): Diagnose export of enumeration literal
18273         (Analyze_Pragma): Deal with Universal_Aliasing.
18274         (Sig_Flags): Likewise.
18275         (Set_Encoded_Interface_Name): Suppress encoding when compiling for AAMP.
18276         (Overflow_Checks_Unsuppressed): New flag.
18277         (Process_Suppress_Unsuppress): Set Overflow_Checks_Unsuppressed.
18278         (Analyze_Pragma [case Pack]): Ignore pragma Pack and post warning in
18279         case of JVM or .NET targets, and compiling user code.
18280         Add debugging convenience routine rv
18281
18282 2007-06-06  Robert Dewar  <dewar@adacore.com>
18283
18284         * exp_strm.adb (Make_Field_Attributes): Avoid _Parent components that
18285         are interface type.
18286         (Build_Elementary_Input_Call): For floating-point use right type in the
18287         absence of strange size or stream size clauses.
18288         (Build_Elementary_Write_Call): Same fix
18289         (Has_Stream_Standard_Rep): Returns False if Stream_Size attribute
18290         set to value that does not match base type size.
18291
18292 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
18293
18294         * exp_util.ads, exp_util.adb (Expand_Subtype_From_Expr): In Ada2005, an
18295         object of a limited type can be initialized with a call to a function
18296         that returns in place. If the limited type has unknown discriminants,
18297         and the underlying type is a constrained composite type, build an actual
18298         subtype from the function call, as is done for private types.
18299         (Side_Effect_Free): An expression that is the renaming of an object or
18300         whose prefix is the renaming of a object, is not side-effect free
18301         because it may be assigned through the renaming and its value must be
18302         captured in a temporary.
18303         (Has_Controlled_Coextensions): New routine.
18304         (Expand_Subtype_From_Expr): Do nothing if type is a limited interface,
18305         as is done for other limited types.
18306         (Non_Limited_Designated_Type): new predicate.
18307         (Make_CW_Equivalent_Type): Modified to handle class-wide interface
18308         objects.
18309         Remove all handling of with_type clauses.
18310
18311         * par-ch10.adb: Remove all handling of with_type clauses.
18312
18313         * lib-load.ads, lib-load.adb (Load_Main_Source): Do not get the
18314         checksum if the main source could not be parsed.
18315         (Loat_Unit): When processing a child unit, determine properly whether
18316         the parent unit is a renaming when the parent is itself a child unit.
18317         Remove handling of with_type clauses.
18318
18319         * sinfo.ads, sinfo.adb (Is_Static_Coextension): New function.
18320         (Set_Is_Static_Coextension): New procedure.
18321         (Has_Local_Raise): New function
18322         (Set_Has_Local_Raise): New procedure
18323         (Renaming_Exception): New field
18324         (Has_Init_Expression): New flag
18325         (Delay_Finalize_Attach): Remove because flag is obsolete.
18326         (Set_Delay_Finalize_Attach): Remove because flag is obsolete.
18327         Remove all handling of with_type clauses.
18328         (Exception_Junk): Can now be set in N_Block_Statement
18329
18330 2007-06-06  Vincent Celier  <celier@adacore.com>
18331             Robert Dewar  <dewar@adacore.com>
18332
18333         * frontend.adb (Frontend): Return immediately if the main source could
18334         not be parsed, because of preprocessing errors.
18335
18336         * gnat1drv.adb (gnat1drv): Handle RE_Not_Available gracefully.
18337         (Gnat1drv): Exit with errors if the main source could not be parsed,
18338         because of preprocessing errors.
18339         (Check_Rep_Info): New procedure
18340
18341 2007-06-06  Robert Dewar  <dewar@adacore.com>
18342
18343         * g-hesorg.ads, g-heasor.ads,
18344         g-busorg.ads, g-bubsor.ads: Update documentation
18345         GNAT.Heap/Bubble_Sort_G is now pure
18346
18347 2007-06-06  Robert Dewar  <dewar@adacore.com>
18348
18349         * g-catiio.ads, g-catiio.adb (Image): Check for null picture string
18350
18351 2007-06-06  Robert Dewar  <dewar@adacore.com>
18352             Ed Schonberg  <schonberg@adacore.com>
18353
18354         * g-comlin.ads, g-comlin.adb:
18355         Add new warning for renaming of function return objects
18356
18357         * opt.adb (Tree_Write, Tree_Read): Use proper expressions for size
18358         (Tree_Read): Use size of object instead of type'object_size, since the
18359         latter is incorrect for packed array types.
18360         (Tree_Write): Same fix
18361
18362         * opt.ads: Add new warning for renaming of function return objects
18363         (Generating_Code): New boolean variable used to indicate that the
18364         frontend as finished its work and has called the backend to process
18365         the tree and generate the object file.
18366         (GCC_Version): Is now private
18367         (Static_Dispatch_Tables): New constant declaration.
18368         (Overflow_Checks_Unsuppressed): New flag.
18369         (Process_Suppress_Unsuppress): Set Overflow_Checks_Unsuppressed.
18370         (List_Closure): New flag for gnatbind (-R)
18371         Zero_Formatting: New flag for gnatbind (-Z)
18372         (Special_Exception_Package_Used): New flag.
18373         (Warn_On_Unrepped_Components): New flag.
18374
18375         * sem_ch8.adb (Check_Library_Unit_Renaming): Check that the renamed
18376         unit is a compilation unit, rather than relying on its scope, so that
18377         Standard can be renamed.
18378         (Analyze_Object_Renaming): Add new warning for renaming of function
18379         return objects.
18380         Also reject attempt to rename function return object in Ada 83 mode.
18381         (Attribute_Renaming): In case of tagged types, add the body of the
18382         generated function to the freezing actions of the type.
18383         (Find_Type): A protected type is visible right after the reserved word
18384         "is" is encountered in its type declaration. Set the entity and type
18385         rather than emitting an error message.
18386         (New_Scope): Properly propagate Discard_Names to inner scopes
18387         (Check_Nested_Access): New procedure.
18388         (Has_Nested_Access, Set_Has_Nested_Access): New procedures.
18389         (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
18390
18391         * sem_warn.ads, sem_warn.adb: Improvements to infinite loop warning
18392         Add new warning for renaming of function return objects
18393         (Check_References): Suppress warnings for objects whose type or
18394         base type has Warnings suppressed.
18395         (Set_Dot_Warning_Switch): Add processing for -gnatw.c/C
18396         (Set_Warning_Switch): Include new -gnatwc in -gnatwa
18397
18398 2007-06-06  Vincent Celier  <celier@adacore.com>
18399             Emmanuel Briot  <briot@adacore.com>
18400             Olivier Hainque  <hainque@adacore.com>
18401
18402         * g-debpoo.ads, g-debpoo.adb (Free_Physically.Free_Blocks): Use the
18403         absolute value of Header.Block_Size when displaying the freed physical
18404         memory in traces.
18405         (Allocate): Compute Storage_Address using Integer_Address, not
18406         Storage_Offset, because the range of Storage_Offset may not be large
18407         enough.
18408         (Configure): New parameter Low_Level_Traces
18409         (Allocate, Deallocation, Free_Physically): Added low-level traces
18410         (Configure): new parameter Errors_To_Stdout.
18411         (Output_File): new subprogram
18412         (Deallocate, Dereference): Send error messages to the proper stream
18413         (Print_Pool, Print_Info_Stdout): Make sure the output goes to stdout, as
18414         documented. Previous code would send it to the current output file
18415         defined in GNAT.IO, which might not be stdout
18416         (Is_Valid): Adjust comment to mention that a positive reply means that
18417         Header_Of may be used to retrieve the allocation header associated with
18418         the subprogram Storage address argument. Return False early if this
18419         address argument is misaligned.
18420
18421 2007-06-06  Vincent Celier  <celier@adacore.com>
18422
18423         * gnatcmd.adb (GNATCmd): Accept switch -aP for commands that accept
18424         switch -P
18425         (ASIS_Main): New global variable
18426         (Get_Closure): New procedure
18427         (GNATCmd): Set ASIS_Main when -P and -U with a main is used for gnat
18428         check, metric or pretty. Call Get_Closure in this case.
18429         (Check_Files): For GNAT LIST, check all sources of all projects when
18430         All_Projects is True.
18431         (GNATCmd): Accept -U for GNAT LIST
18432
18433 2007-06-06  Vincent Celier  <celier@adacore.com>
18434
18435         * gnatlink.adb (Gnatlink): Do not specify -static-libgcc when --LINK=
18436         has been specified
18437         Correct error message when invocation of the linker fails
18438         Add explicit size clause for the C imported variables
18439         Object_List_File_Supported and Using_GNU_Linker to emphasize that
18440         we expect char size.
18441         Read target parameters earlier, since this is needed to set
18442         Target_VM properly. Also do not use -static/shared-libgcc for non GCC
18443         targets.
18444
18445 2007-06-06  Vincent Celier  <celier@adacore.com>
18446
18447         * gnatls.adb:
18448         Add 3 spaces before the default project directory when displaying
18449         the project search path.
18450         Add new command line switch '-l' to display license information.
18451
18452 2007-06-06  Vasiliy Fofanov  <fofanov@adacore.com>
18453
18454         * gmem.c: Add support for timestamps on memory operations.
18455
18456         * memtrack.adb, gnatmem.adb: Add support for timestamps on memory
18457         operations (not used currently, just foundation for future
18458         enhancements). Add possibility to perform full dump of gmem.out file.
18459         (Print_Back_Traces): Declare accesses to root arrays constants since
18460         they aren't modified.
18461         (Print_Back_Traces): allocate root arrays on the heap rather than stack.
18462
18463 2007-06-06  Vincent Celier  <celier@adacore.com>
18464
18465         * gnatsym.adb: Update Copyright notice
18466         (Parse_Cmd_Line): Accept new switch -D
18467         (Gnatsym): In Direct policy (switch -D) copy reference file to symbol
18468          file.
18469
18470         * prj.ads (Policy): New policy Direct
18471         (Yes_No_Unknown): New enumeration type
18472         (Project_Data): New component Libgnarl_Needed
18473
18474         * prj-nmsc.adb (Check_For_Source): When recording a source file make
18475         use the untouched pathname casing.
18476         (Get_Directories): Ensure that the Display_Exec_Directory is using the
18477         proper casing on non case-sensitive platforms like Windows.
18478         (Get_Unit): Accept file names x__... and x~... (where x = a, g, i or s)
18479         on all platforms, as it is not possible to know which one is allowed
18480         before processing the project files.
18481         (Check_Stand_Alone_Library): Check that Library_Reference_Symbol_File is
18482         specified when symbol policy is Direct. Check that when there is a
18483         symbol file defined (either by default or with attribute
18484         Library_Symbol_File) it is not the same as the reference symbol file.
18485         (Check_Stand_Alone_Library): Recognize new symbol policy Direct.
18486         (Look_For_Sources): Allow Locally_Removed_Files to be declare in non
18487         extending projects.
18488         (Record_Ada_Source): Record a source that has been locally removed in an
18489         imported project.
18490
18491         * symbols.ads (Policy): New policy Direct
18492
18493         * symbols-vms.adb (Initialize): Take new policy Direct in case
18494         statement
18495
18496 2007-06-06  Vincent Celier  <celier@adacore.com>
18497
18498         * g-os_lib.ads, g-os_lib.adb (Normalize_Pathname.Get_Directory):
18499         Correct obvious bug (return Dir; instead of return Directory;).
18500         (Normalize_Pathname): Use Reference_Dir'Length, not Reference_Dir'Last
18501
18502 2007-06-06  Thomas Quinot  <quinot@adacore.com>
18503
18504         * g-pehage.adb (Produce): Open output files in Binary mode, so that
18505         they have UNIX line endings (LF only) even on Windows, and thus pass
18506         all GNAT style checks.
18507
18508 2007-06-06  Emmanuel Briot  <briot@adacore.com>
18509
18510         * g-regpat.adb (Quote): Fix improper quoting of '.'
18511
18512 2007-06-06  Thomas Quinot  <quinot@adacore.com>
18513
18514         * g-soccon.ads: Add new constant Thread_Blocking_IO, always True by
18515         default, set False on a per-runtime basis.
18516         (Need_Netdb_Buffer): New constant.
18517
18518         * g-socket.ads, g-socket.adb: Import new package
18519         GNAT.Sockets.Thin.Task_Safe_NetDB.
18520         (Raise_Host_Error): Use Host_Error_Message from platform-specific thin
18521         binding to obtain proper message.
18522         (Close_Selector): Use GNAT.Sockets.Thin.Signalling_Fds.Close.
18523         Replace various occurrences of Arry (Arry'First)'Address with the
18524         equivalent Arry'Address (GNAT always follows implementation advice from
18525         13.3(14)).
18526         (Get_Host_By_Address, Get_Host_By_Name,
18527         Get_Service_By_Name, Get_Service_By_Port): Do not use GNAT.Task_Lock;
18528         instead, rely on platform-specific task safe netdb operations provided
18529         by g-socthi.
18530
18531         * g-socthi.ads, g-socthi.adb (Initialize): Remove obsolete formal
18532         parameter Process_Blocking_IO.
18533         (Host_Error_Messages): Add stub body.
18534         (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
18535         (Safe_Gethostbyname, Safe_Gethostbyaddr, Safe_Getservbyname,
18536         Safe_Getservbyport): Move functions into new child package
18537         Task_Safe_NetDB.
18538         (Nonreentrant_Gethostbyname, Nonreentrant_Gethostbyaddr,
18539         Nonreentrant_Getservbyname, Nonreentrant_Getservbyport): New routines.
18540         (In_Addr): Add alignment clause.
18541
18542 2007-06-06  Robert Dewar  <dewar@adacore.com>
18543
18544         * g-trasym.ads, g-traceb.ads: Update list of supported targets
18545         Add note about symbolic traceback
18546
18547 2007-06-06  Pascal Obry  <obry@adacore.com>
18548
18549         * hostparm.ads (Normalized_CWD): Use the host directory separator
18550         instead of the hardcoded forward slash which is not the proper
18551         character on Windows for example.
18552         (Java_VM): Removed.
18553
18554 2007-06-06  Vincent Celier  <celier@adacore.com>
18555             Arnaud Charlet  <charlet@adacore.com>
18556
18557         * a-clrefi.adb, a-clrefi.ads: New files
18558
18559         * impunit.adb: Add s-os_lib in the list of user visible units.
18560         (Non_Imp_File_Names_95): Add a-clrefi to this list
18561         Remove obsolete run-time entries.
18562         (Non_Imp_File_Names_05): Add Ada 2005 entries for:
18563          "a-exetim" -- Ada.Execution_Time
18564          "a-extiti" -- Ada.Execution_Time.Timers
18565
18566         * mlib-prj.ads, mlib-prj.adb
18567         (Build_Library): Use untouched object dir and library dir. At the
18568         same time makes sure that the checks are done using the canonical
18569         form. Removes hard-coded directory separator and use the proper host
18570         one instead.
18571         (Process_Project): Do not look in object directory to check if libgnarl
18572         is needed for a library, if there is no object directory.
18573         (Build_Library): Scan the ALI files to decide if libgnarl is needed for
18574         linking.
18575         (Build_Library): When invoking gnatbind, use a response file if the
18576         total size of the arguments is too large.
18577
18578         * Makefile.rtl: (g-sttsne): New object file.
18579         Add entry for a-clrefi, s-utf_32, System.Exceptions
18580
18581         * Make-lang.in: Remove bogus dependency of s-memory.o on memtrack.o.
18582         (GNAT_ADA_OBJS, GNATBIND_OBJS): Add s-except.o.
18583         (GNATBIND_OBJS): Add new objects a-clrefi.o and a-comlin.o
18584         Change g-string to s-string, g-os_lib to s-os_lib
18585         Change all g-utf_32 references to s-utf_32
18586
18587 2007-06-06  Tristan Gingold  <gingold@adacore.com>
18588             Olivier Hainque  <hainque@adacore.com>
18589
18590         * init.c: Do not adjust IP of an imported VMS exception of ia64.
18591         LIB$STOP is called to raise an exception and the IP of the exception
18592         is the instruction right after the call.
18593         (__gnat_adjust_context_for_raise, AIX): Implement.
18594         (__gnat_error_handler, AIX): Accept SIGINFO related arguments and call
18595          adjust_context_for_raise before Raise_From_Signal_Hanler.
18596         (__gnat_install_handler, AIX): Add SA_SIGINFO to the sa_flags, to ensure
18597         siginfo is passed to the handler, necessary to let the zcx propagation
18598         engine unwind past it.
18599
18600 2007-06-06  Olivier Hainque  <hainque@adacore.com>
18601
18602         * initialize.c (__gnat_initialize for vxworks):  Update documentation
18603         on the ZCX support, using different sets of crtstuff objects than with
18604         GCC 3.4.
18605
18606 2007-06-06  Robert Dewar  <dewar@adacore.com>
18607
18608         * layout.ads, layout.adb (Adjust_Esize_Alignment): Move spec to package
18609         spec from body
18610         (Layout_Type): Fix recomputation of size from alignment.
18611
18612 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
18613             Javier Miranda  <miranda@adacore.com>
18614
18615         * sem_ch12.adb (Analyze_Associations): Diagnose use of an others
18616         association in an instance.
18617         (Copy_Generic_Node): If the node is a string literal, no need to copy
18618         its descendants.
18619         (Is_Generic_Formal): For a formal subprogram, the declaration is the
18620         grandparent of the entity.
18621         (Analyze_Formal_Interface_Type): Transform into a full type declaration,
18622         to simplify handling of formal interfaces that derive from other formal
18623         interfaces.
18624         (Instantiate_Subprogram_Body): The defining unit name of the body of
18625         the instance should be a defining identifier.
18626         (Install_Formal_Packages): make global to the package, for use in
18627         instantiations of child units.
18628         (Analyze_Package_Instantiation): Do not attempt to set information on an
18629         enclosing master of an entry when expansion is disabled.
18630         (Instantiate_Type): If the actual is a tagged synchronized type and the
18631         generic ancestor is an interface, create a generic actual for the
18632         corresponding record.
18633         (Analyze_Formal_Derived_Interface_Type): Rewrite as a derived type
18634         declaration, to ensure that the interface list is processed correctly.
18635         (Inline_Instance_Body): If enclosing scope is an instance body, remove
18636         its entities from visibiility as well.
18637         (Pre_Analyze_Actuals): if the actual is an allocator with  constraints
18638         given with a named association, analyze the expression only, not the
18639         discriminant association itself.
18640         (Reset_Entity): If the analysis of a selected component is transformed
18641         into an expanded name in the prefix of a call with parameters, do not
18642         transform the original node into an expanded name, to prevent visibility
18643         errors in the case of nested generics.
18644         (Check_Private_View): For an array type, check whether the index types
18645         may need exchanging.
18646
18647 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
18648             Vincent Celier  <celier@adacore.com>
18649
18650         * lib-writ.adb: Handle Convention_CIL in addition to Convention_Java,
18651         since both are separated.
18652         Add support for imported CIL packages.
18653         Add further special handling of "value_type" for CIL.
18654         Add special handling of pragma Import for CIL.
18655
18656         * make.ads, make.adb: When switch -eS is used, direct all outputs to
18657         standard output instead of standard error, except errors.
18658         (Absolute_Path): Use untouched casing for the parent directory.
18659         (Add_Library_Search_Dir): Use the untouched directory name.
18660         (Add_Source_Search_Dir): Idem.
18661         (Change_To_Object_Directory): Update output to use proper casing.
18662         (Create_Binder_Mapping_File): Use the untouched filename to set
18663         ALI_Name.
18664         (Gnatmake): Use untouched library and executable directory names.
18665         (Insert_Project_Sources): Use untouched filename for spec and body.
18666         (Is_In_Object_Directory): Use untouched object directory.
18667         (Mark_Directory): Idem.
18668         (Collect_Arguments_And_Compile): Ensure that Full_Source_File always
18669         contains the non-canonical filename in all cases.
18670         (Change_To_Object_Directory): In verbose mode, display the name of the
18671         object directory we're changing to.
18672         (Compile_Sources): Make sure, when a project file is used, to compile
18673         the body of the unit, when there is one, even when only the spec is
18674         recorded in an ALI file.
18675         (Gcc_Switches, Binder_Switches, Linker_Switches): Tables moved from the
18676         spec to the body.
18677         (Report_Compilation_Failed): New procedure
18678         (Bind, Display_Commands, Compile_Sources, Initialize, Scan_Make_Arg):
18679         procedures moved from the spec to the body.
18680         (Extract_Failure): Removed, not used
18681         Replace explicit raises of exception Bind_Failed and Link_Failed with
18682         calls to Make_Failed with the proper message.
18683         Replace explicit raises of exception Compilation_Failed with calls to
18684         procedure Report_Compilation_Failed.
18685         (Initialize): Create mapping files unconditionally when using project
18686         files.
18687
18688         * sem_mech.adb: (Name_CIL, Name_CIL_Constructor, Convention_CIL,
18689         Pragma_CIL_Constructor): New names.
18690
18691         * targparm.ads, targparm.adb
18692         (Compiler_System_Version): Removed, no longer used.
18693         (Get_Target_Parameters): Relax checks on system.ads validity. Add
18694         handling of two new system flags: JVM and CLI.
18695
18696 2007-06-06  Jose Ruiz  <ruiz@adacore.com>
18697             Arnaud Charlet  <charlet@adacore.com>
18698
18699         * Makefile.in (LIBGNAT_TARGET_PAIRS for VxWorks 6): For the RTP run
18700         time, use the default s-interr body that provides interrupt support
18701         based on signals.
18702         (LIBGNAT_TARGET_PAIRS for x86-linux): Use specialized versions of
18703         a-exetim.ad{s,b}, a-extiti.ad{s,b}, a-rttiev.ad{s,b}, s-osinte.ad{s,b},
18704         g-soccon.ads, and s-taprop.adb for the marte run time.
18705         (EXTRA_GNATRTL_TASKING_OBJS for x86-linux): Execution time clocks and
18706         timers are supported on marte.
18707         (EH_MECHANISM for marte): Do not use ZCX.
18708         (THREADSLIB for marte): Use -lmarte.
18709         Add mlib-tgt-vms.o to the list of objects for gnatmake for VMS
18710         Add mlib-tgt-specific.o to gnatmake objects
18711         mlib-tgt-<platforms>.adb is now the body of MLib.Tgt.Specific, no
18712         longer of MLib.Tgt.
18713         (LIBGNAT_TARGET_PAIRS for vxworks): When building a run time for VxWorks
18714         6, either kernel or rtp, use a specialized version of s-osinte.ads.
18715
18716 2007-06-06  Pascal Obry  <obry@adacore.com>
18717
18718         * mkdir.c (__gnat_mkdir): Add support for UTF-8.
18719
18720 2007-06-06  Vincent Celier  <celier@adacore.com>
18721
18722         * mlib.ads, mlib.adb (Build_Library): Do not use hard-coded directory
18723         separator, use instead the proper host directory separator.
18724         (Copy_ALI_Files): Make sure that an already existing ALI file in the
18725         ALI copy dir is writable, before doing the copy.
18726
18727         * mlib-utl.ads, mlib-utl.adb:
18728         (Gcc): If length of command line is too long, put the list of object
18729         files in a response file, if this is supported by the platform.
18730         (Ar): If invocation of the archive builder is allowed to be done in
18731         chunks and building it in one shot would go above an OS dependent
18732         limit on the number of characters on the command line, build the archive
18733         in chunks.
18734
18735 2007-06-06  Vincent Celier  <celier@adacore.com>
18736
18737         * osinte-c.ads, osint-c.adb (Set_Library_Info_Name): Fail if base name
18738         of specified object file is not equal to base name of source.
18739
18740 2007-06-06  Javier Miranda  <miranda@adacore.com>
18741             Hristian Kirtchev  <kirtchev@adacore.com>
18742             Ed Schonberg  <schonberg@adacore.com>
18743
18744         * sem_ch3.adb (Process_Full_View): Propagate the CPP_Class attribute to
18745         the full type declaration.
18746         (Analyze_Component_Declaration): Add local variable E to capture the
18747         initialization expression of the declaration. Replace the occurences of
18748         Expression (N) with E.
18749         (OK_For_Limited_Init_In_05): Allow initialization of class-wide
18750         limited interface object with a function call.
18751         (Array_Type_Declaration): If the declaration lacks subtype marks for
18752         indices, create a simple index list to prevent cascaded errors.
18753         (Is_Null_Extension): Ignore internal components created for secondary
18754         tags when checking whether a record extension is a null extension.
18755         (Check_Abstract_Interfaces): Add missing support for interface subtypes
18756         and generic formals.
18757         (Derived_Type_Declaration): Add missing support for interface subtypes
18758         and generic formals.
18759         (Analyze_Object_Declaration): If an initialization expression is
18760         present, traverse its subtree and mark all allocators as static
18761         coextensions.
18762         (Add_Interface_Tag_Component): When looking for components that may be
18763         secondary tags, ignore pragmas that can appear within a record
18764         declaration.
18765         (Check_Abstract_Overriding): an inherited function that dispatches on
18766         result does not need to be overriden if the controlling type is a null
18767         extension.
18768         (Mentions_T): Handle properly a 'class attribute in an anonymous access
18769         component declaration, when the prefix is an expanded name.
18770         (Inherit_Component): If the derivation is for a private extension,
18771         inherited components remain visible and their ekind should not be set
18772         to Void.
18773         (Find_Type_Of_Object): In the case of an access definition, always set
18774         Is_Local_Anonymous_Access. We were previously not marking the anonymous
18775         access type of a return object as a local anonymous type.
18776         (Make_Index): Use Ambiguous_Character to report ambiguity on a discrete
18777         range with character literal bounds.
18778         (Constrain_Array): Initialize the Packed_Array_Type field to Empty.
18779         (Access_Subprogram_Declaration): Indicate that the type declaration
18780         depends on an incomplete type only if the incomplete type is declared
18781         in an open scope.
18782         (Analyze_Subtype_Declaration): Handle properly subtypes of
18783         synchronized types that are tagged, and that may appear as generic
18784         actuals.
18785         (Access_Subprogram_Declaration): An anonymous access to subprogram can
18786         appear as an access discriminant in a private type declaration.
18787         (Add_Interface_Tag_Components): Complete decoration of the component
18788         containing the tag of a secondary dispatch table and the component
18789         containing the offset to the base of the object (this latter component
18790         is only generated when the parent type has discriminants --as documented
18791         in this routine).
18792         (Inherit_Components): Use the new decoration of the tag components to
18793         improve the condition that avoids inheriting the components associated
18794         with secondary tags of the parent.
18795         (Build_Discriminanted_Subtype): Indicate to the backend that the
18796         size of record types associated with dispatch tables is known at
18797         compile time.
18798         (Analyze_Subtype_Declaration): Propagate Is_Interface flag when needed.
18799         (Analyze_Interface_Declaration): Change setting of Is_Limited_Interface
18800         to include task, protected, and synchronized interfaces as limited
18801         interfaces.
18802         (Process_Discriminants): Remove the setting of
18803         Is_Local_Anonymous_Access on the type of (anonymous) access
18804         discriminants of nonlimited types.
18805         (Analyze_Interface_Type_Declaration): Complete the decoration of the
18806         class-wide entity it is is already present. This situation occurs if
18807         the limited-view has been previously built.
18808         (Enumeration_Type_Declaration): Initialize properly the Enum_Pos_To_Rep
18809         field.
18810         (Add_Interface_Tag_Components.Add_Tag): Set the value of the attribute
18811         Related_Interface.
18812
18813 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
18814
18815         * sem_aggr.adb (Resolve_Record_Aggregate): Ignore internal components
18816         of the type that specify the position of interface tags when the type
18817         inherits discriminated array components from the parent type.
18818         If a component is initialized with a box, check for the presence of a
18819         default expression in its declaration before using its default
18820         initialization procedure.
18821         (Resolve_Record_Aggregate): If a component is box-initialized, and the
18822         component type has a discriminants, create a partial aggregate for it
18823         by copying the discriminants of the component subtype.
18824         Reject attempt to initialize a discriminant with a box.
18825         (Array_Aggr_Subtype): Indicate to the backend that the size of arrays
18826         associated with dispatch tables is known at compile time.
18827         (Get_Value): If an association in a record aggregate has a box
18828         association, and the corresponding record component has a default
18829         expression, always copy the default expression, even when the
18830         association has a single choice, in order to create a proper
18831         association for the expanded aggregate.
18832
18833 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
18834             Robert Dewar  <dewar@adacore.com>
18835
18836         * par-ch12.adb (P_Generic_Associations): The source position of an
18837         Others association is that of the others keyword, not that of the token
18838         that follows the box.
18839         (P_Formal_Type_Definition): Handle formal access types that carry a
18840         not null indicator.
18841
18842         * par-ch3.adb (P_Known_Discriminant_Part_Opt, P_Component_Items): If
18843         multiple identifier are present, save Scan_State before scanning the
18844         colon, to ensure that separate trees are constructed for each
18845         declaration.
18846         (P_Identifier_Declarations): For object declaration, set new flag
18847         Has_Init_Expression if initialization expression present.
18848         (P_Null_Exclusion): Properly diagnose NOT NULL coming before NULL
18849         Improve NOT NULL error messages
18850
18851 2007-06-06  Robert Dewar  <dewar@adacore.com>
18852
18853         * par-ch4.adb: (P_Name): Recover from literal used as name
18854
18855 2007-06-06  Vincent Celier  <celier@adacore.com>
18856
18857         * prep.ads, prep.adb (Expression): New Boolean parameter Complemented,
18858         defaulted to False.
18859         In the "not" case, recursive call with Complemented set to True.
18860         Do not allow "or" or "and" operators when Complemented is True.
18861
18862 2007-06-06  Vincent Celier  <celier@adacore.com>
18863
18864         * prj.adb (Project_Empty): Gives default value for new component
18865         Libgnarl_Needed
18866
18867         * prj-attr.ads: Minor reformatting
18868
18869         * prj-env.ads, prj-env.adb (For_All_Object_Dirs): Register object
18870         directory using the untouched casing.
18871         (For_All_Source_Dirs): Idem.
18872
18873         * prj-ext.ads, prj-ext.adb (Search_Directories): New table to record
18874         directories specified with switches -aP.
18875         (Add_Search_Project_Directory): New procedure
18876         (Initialize_Project_Path): Put the directories in table
18877         Search_Directories in the project search path.
18878         (Initialize_Project_Path): For VMS, transform into canonical form the
18879         project path.
18880
18881 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
18882
18883         * restrict.ads, restrict.adb (No_Exception_Handlers_Set): Only return
18884         true if configurable run-time or No_Run_Time is set.
18885         (Set_Restriction): Avoid setting restriction No_Elaboration_Code when
18886         processing an unit which is not the one being compiled.
18887
18888 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
18889
18890         * s-arit64.adb: Replace System.Pure_Exceptions by Ada 05 syntax.
18891         Replace UC by Ada.UC
18892
18893         * s-bitops.adb: Get rid of System.Pure_Exceptions.
18894         Replace UC by Ada.UC
18895
18896 2007-06-06  Robert Dewar  <dewar@adacore.com>
18897
18898         * scng.adb: (Check_End_Of_Line): Deal with very long lines
18899
18900 2007-06-06  Robert Dewar  <dewar@adacore.com>
18901
18902         * sem.ads, sem.adb (Semantics): Save and restore Global_Discard_Names
18903         Remove no longer used nodes.
18904
18905 2007-06-06  Javier Miranda  <miranda@adacore.com>
18906             Ed Schonberg  <schonberg@adacore.com>
18907             Robert Dewar  <dewar@adacore.com>
18908
18909         * sem_ch10.ads, sem_ch10.adb (Analyze_Compilation_Unit): Disable check
18910         on obsolescent withed unit in case of limited-withed units.
18911         (Analyze_Compilation_Unit): Add guard to code that removed an
18912         instantiation from visibility, to prevent compiler aborts when
18913         instantiation is abandoned early on.
18914         (Install_Limited_Withed_Unit): Recognize a limited-with clause on the
18915         current unit being analyzed, and Distinguish local incomplete types
18916         from limited views of types declared elsewhere.
18917         (Build_Limited_Views.Decorate_Tagged_Type): Add documentation
18918         to state that the class-wide entity is shared by the limited-view
18919         and the full-view.
18920         (Analyze_With_Clause): Improve placement of flag for case of
18921         unimplemented unit.
18922         (Analyze_With_Clause): Recognize use of GNAT.Exception_Traces in a
18923         manner similar to GNAT.Current_Exception. This is a violation of
18924         restriction (No_Exception_Propagation), and also inhibits the
18925         optimization of local raise to goto.
18926         (Analyze_With_Clause): Check for Most_Recent_Exception being with'ed,
18927         and if so set Most_Recent_Exception_Used flag in Opt, and also check
18928         for violation of restriction No_Exception_Propagation.
18929
18930 2007-06-06  Javier Miranda  <miranda@adacore.com>
18931             Hristian Kirtchev  <kirtchev@adacore.com>
18932             Gary Dismukes  <dismukes@adacore.com>
18933
18934         * sem_ch11.adb (Analyze_Exception_Handlers): Add barrier to avoid the
18935         use of entity Exception_Occurrence if it is not available in the
18936         target run-time.
18937
18938         * sem_ch9.adb (Analyze_Protected_Type, Analyze_Task_Type): When
18939         concurrent types are declared within an Ada 2005 generic, build their
18940         corresponding record types since they are needed for overriding-related
18941         semantic checks.
18942         (Analyze_Protected_Type): Rearrange and simplify code for testing that a
18943         protected type does not implement a task interface or a nonlimited
18944         interface.
18945         (Analyze_Task_Type): Rearrange and simplify code for testing that a task
18946         type does not implement a protected interface or a nonlimited interface.
18947         (Single_Task_Declaration, Single_Protected_Declaration): use original
18948         entity for variable declaration, to ensure that debugging information
18949         is correcty generated.
18950         (Analyze_Protected_Type, Analyze_Task_Type): Do not call expander
18951         routines if the expander is not active.
18952         (Analyze_Task_Body): Mark all handlers to stop optimization of local
18953         raise, since special things happen for task exception handlers.
18954
18955         * sem_disp.adb (Check_Controlling_Formals): Add type retrieval for
18956         concurrent types declared within a generic.
18957         (Check_Dispatching_Operation): Do not emit warning about late interface
18958         operations in the context of an instance.
18959         (Check_Dispatching_Call): Remove restriction against calling a
18960         dispatching operation with a limited controlling result.
18961         (Check_Dispatching_Operation): Replace calls to Fill_DT_Entry and
18962         Register_Interface_DT_Entry by calls to Register_Primitive.
18963         (Check_Dispatching_Formals): Handle properly a function with a
18964         controlling access result.
18965
18966 2007-06-06  Robert Dewar  <dewar@adacore.com>
18967             Arnaud Charlet  <charlet@adacore.com>
18968
18969         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Stream_Size):
18970         Check for restriction No_Implementation_Attributes if in Ada 95 mode.
18971         (Storage_Pool): Do not crash when RE_Stack_Bounded_Pool is not available
18972         (Analyze_Attribute_Definition_Clause [External_Tag]): Generate error
18973         message when using a VM, since this attribute is not supported.
18974         (Analyze_Record_Representation_Clause): Give unrepped component warnings
18975
18976         * usage.adb: Add new warning for renaming of function return objects
18977         Indicate that -gnatwp and -gnatwP concern front-end inlining
18978         Add line for -gnatyg
18979         Add usage information for -gnatw.c/C
18980
18981 2007-06-06  Robert Dewar  <dewar@adacore.com>
18982             Ed Schonberg  <schonberg@adacore.com>
18983
18984         * sem_ch5.adb
18985         (Find_Var): Do not consider function call in test for infinite loop
18986         warning if warnings set off for function entity.
18987         (One_Bound): Do not create a temporary for a loop bound if it is a
18988         character literal.
18989         (Analyze_Assignment): Traverse the right hand side of an assignment and
18990         mark all allocators as static coextensions.
18991         (Analyze_Assignment): Exempt assignments involving a dispatching call
18992         to a function with a controlling access result from the check requiring
18993         the target to be class-wide.
18994
18995 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
18996             Ed Schonberg  <schonberg@adacore.com>
18997             Robert Dewar  <dewar@adacore.com>
18998             Javier Miranda  <miranda@adacore.com>
18999
19000         * sem_res.ads, sem_res.adb (Process_Allocator): Do not propagate the
19001         chain of coextensions when an allocator serves as the root of such a
19002         chain.
19003         (Propagate_Coextensions): Remove the test for the root being an
19004         allocator.
19005         (Resolve_Allocator): Add condition to ensure that all future decoration
19006         occurs on an allocator node. Add processing and cleanup for static
19007         coextensions.
19008         (Valid_Conversion): If the operand type is the limited view of a
19009         class-wide type, use the non-limited view is available to determine
19010         legality of operation.
19011         (Ambiguous_Character): move to spec, for use elsewhere.
19012         (Ambiguous_Character): Handle Wide_Wide_Character in Ada 2005 mode
19013         (Resolve_Range): Diagnose properly an ambiguous range whose bounds are
19014         character literals.
19015         (Resolve_Arithmetic_Op): Call Activate_Division_Check instead of setting
19016         Do_Division_Check flag explicitly.
19017         (Resolve_Actuals): If the actual is of a synchronized type, and the
19018         formal is of the corresponding record type, this is a call to a
19019         primitive operation of the type, that is declared outside of the type;
19020         the actual must be unchecked-converted to the type of the actual
19021         (Resolve_Call): Kill all current values for any subprogram call if
19022         flag Suppress_Value_Tracking_On_Call is set.
19023         (Resolve_Type_Conversion): Generate error message the the operand
19024         or target of interface conversions come from a limited view.
19025         (Check_Infinite_Recursion): Ignore generated calls
19026         (Check_Allocator_Discrim_Accessibility): New procedure for checking
19027         that an expression that constrains an access discriminant in an
19028         allocator does not denote an object with a deeper level than the
19029         allocator's access type.
19030         (Resolve_Allocator): In the case of an allocator initialized by an
19031         aggregate of a discriminated type, check that associations for any
19032         access discriminants satisfy accessibility requirements by calling
19033         Check_Allocator_Discrim_Accessibility.
19034         (Resolve_Equality_Op): Handle comparisons of anonymous access to
19035         subprogram types in the same fashion as other anonymous access types.
19036         (Resolve_Concatenation_Arg): Remove initial character '\' in an error
19037         message that is not a continuation message.
19038         (Resolve_Type_Conversion): Add missing support for conversion to
19039         interface type.
19040         (Resolve_Actuals): Introduce a transient scope around the call if an
19041         actual is a call to a function returning a limited type, because the
19042         resulting value must be finalized after the call.
19043         (Resolve_Actuals): If the call was given in prefix notations, check
19044         whether an implicit 'Access reference or implicit dereference must be
19045         added to make the actual conform to the controlling formal.
19046
19047 2007-06-06  Robert Dewar  <dewar@adacore.com>
19048             Javier Miranda  <miranda@adacore.com>
19049
19050         * sem_ch7.adb (Check_Anonymous_Access_Types): Fix error for null body
19051         (Derive_Inherited_Private_Subprogram): Code cleanup. In case of explicit
19052         overriding of an inherited private subprogram now there is no need to
19053         inherit its dispatching slot and reduce the size of the dispatch table.
19054         Set_All_DT_Position now ensures that the same slot is now assigned to
19055         both entities. This is required to statically build the dispatch table.
19056         (Declare_Inherited_Private_Subprograms): Rewriten to avoid the need
19057         of calling Set_All_DT_Position to re-evaluate the position of the
19058         entries in the dispatch table. Such reevaluation is not desired if
19059         the tagged type is already frozen.
19060
19061 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
19062             Gary Dismukes  <dismukes@adacore.com>
19063             Robert Dewar  <dewar@adacore.com>
19064             Javier Miranda  <miranda@adacore.com>
19065
19066         * sem_util.ads, sem_util.adb (May_Be_Lvalue): A prefix of an attribute
19067         reference acts as an lvalue when the attribute name modifies the prefix
19068         (Is_Coextension_Root): New routine.
19069         (Mark_Static_Coextensions): New routine.
19070         (Type_Access_Level): Revise code for checking the level of the
19071         anonymous access type of a return object.
19072         (Safe_To_Capture_Value): Not safe to capture if Address_Taken
19073         (Matches_Prefixed_View_Profile): Remove the no longer necessary
19074         retrieval of the corresponding controlling record type.
19075         (Find_Overridden_Synchronized_Primitive): Code cleanup. Add handling of
19076         concurrent types declared within a generic as well as class wide types.
19077         Emit a mode incompatibility error whenever a protected entry or routine
19078         override an interface routine whose first parameter is not of mode
19079         "out", "in out" or access to variable.
19080         (Overrides_Synchronized_Primitive): Rename to
19081         Find_Overridden_Synchronized_Primitive.
19082         (Collect_Interface_Components): New subprogram that collects all the
19083         components of a tagged record containing tags of secondary dispatch
19084         tables.
19085         (Add_Global_Declaration): New procedure
19086         (Abstract_Interface_List): Handle properly the case of a subtype of a
19087         private extension.
19088         (Type_Access_Level): In the case of a type whose parent scope is a
19089         return statement, call Type_Access_Level recursively on the enclosing
19090         function's result type to determine the level of the return object's
19091         type.
19092         (Build_Elaboration_Entity): Build name of elaboration entity from the
19093         scope chain of the entity, rather than the unit name of the file name.
19094         (Check_Nested_Access): New procedure.
19095         (Has_Up_Level_Access, Set_Has_Up_Level_Access): New procedures.
19096         (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
19097         (Get_Renamed_Entity): Utility routine for performing common operation
19098         of chasing the Renamed_Entity field of an entity.
19099
19100 2007-06-06  Robert Dewar  <dewar@adacore.com>
19101
19102         * sem_elab.adb (Check_A_Call): Specialize elaboration warnings on
19103         elaboration model
19104         (Check_A_Call): Add check for entry call which was causing blowup
19105
19106 2007-06-06  Olivier Hainque  <hainque@adacore.com>
19107
19108         * raise-gcc.c (__gnat_eh_personality): Tweak the signature and add
19109         special code on ia64-vms to handle major incompatibilities between the
19110         GCC unwinding ABI and the VMS Condition Handling Facility, both calling
19111         this routine with a very different set of arguments and expectations on
19112         the return value.
19113
19114 2007-06-06  Thomas Quinot  <quinot@adacore.com>
19115
19116         * socket.c (__gnat_close_signalling_fd): New function.
19117         (__gnat_safe_gethostbyaddr, __gnat_safe_gethostbyname,
19118         __gnat_safe_getservbyname, __gnat_safe_getservbyport):
19119         New supporting functions for task safe Netdb operations.
19120
19121 2007-06-06  Thomas Quinot  <quinot@adacore.com>
19122             Olivier Hainque  <hainque@adacore.com>
19123
19124         * a-except-2005.ads, a-except-2005.adb
19125         (Raise_From_Controlled_Operation): New procedure in
19126         (private part of) Ada.Exceptions (standard runtime version). Used to
19127         provide informational exception message when Program_Error is raised as
19128         a result of an Adjust or Finalize operation propagating an exception.
19129         (Rmsg_28): Fix description for E.4(18) check.
19130         (Raise_Current_Excep): Call Debug_Raise_Exception just before
19131         propagation starts, to let debuggers know about the event in a reliable
19132         fashion.
19133         Take the address of E and dereference to make sure it is homed on stack
19134         and prevent the stores from being deleted, necessary for proper
19135         debugger behavior on "break exception" hits.
19136         (Local_Raise): Moved to System.Exceptions
19137
19138         * s-finimp.adb (Raise_From_Finalize): Code to construct an appropriate
19139         exception message from the current occurrence and raise Program_Error
19140         has been moved to Ada.Exceptions.Raise_From_Controlled_Operation.
19141
19142 2007-06-06  Jose Ruiz  <ruiz@adacore.com>
19143             Arnaud Charlet  <charlet@adacore.com>
19144
19145         * s-taprob.adb (Unlock): Change the ceiling priority of the underlying
19146         lock, if needed.
19147
19148         * s-taprop.ads (Set_Ceiling): Add this procedure to change the ceiling
19149         priority associated to a lock.
19150
19151         * s-tpoben.adb ([Vulnerable_]Complete_Task, Lock_Entries): Relax
19152         assertion to take into account case of no abort restriction.
19153         (Initialize_Protection_Entries): Add initialization for the field
19154         New_Ceiling associated to the protected object.
19155         (Unlock_Entries): Change the ceiling priority of the underlying lock, if
19156         needed.
19157
19158         * s-solita.adb (Get_Current_Excep): Moved back to s-tasini/s-tarest,
19159         since this function needs to be set consistently with Update_Exception.
19160
19161         * s-tarest.adb (Get_Current_Excep): Moved back to s-tasini/s-tarest,
19162         since this function needs to be set consistently with Update_Exception.
19163
19164         * s-taskin.ads: Update comments on
19165         Interrupt_Server_Blocked_On_Event_Flag.
19166         (Unbind_Handler): Fix handling of server_task wakeup
19167         (Server_Task): Set self's state so that Unbind_Handler can take
19168         appropriate actions.
19169         (Common_ATCB): Now use a constant from System.Parameters to determine
19170         the max size of the Task_Image field.
19171
19172         * s-tassta.adb (Task_Wrapper): Now pass the overflow guard to the
19173         Initialize_Analyzer function.
19174         ([Vulnerable_]Complete_Task, Lock_Entries): Relax assertion to
19175         take into account case of no abort restriction.
19176         ([Vulnerable_]Complete_Master): Modify assertion.
19177
19178         * s-tataat.adb (Finalize): Use the nestable versions of
19179         Defer/Undefer_Abort.
19180
19181         * s-tpobop.adb (Protected_Entry_Call): Relax assertion.
19182
19183         * s-tpobop.ads: Update comments.
19184
19185         * s-tposen.adb (Protected_Single_Entry_Call): Call Lock_Entry instead
19186         of locking the object manually, to avoid inconsistencies between
19187         Lock/Unlock_Entry assertions.
19188
19189         * s-interr.ads, s-interr.adb (Server_Task): Fix race condition when
19190         terminating
19191         application and System.Parameters.No_Abort is True.
19192         Update comments on Interrupt_Server_Blocked_On_Event_Flag.
19193         (Unbind_Handler): Fix handling of server_task wakeup
19194         (Server_Task): Set self's state so that Unbind_Handler can take
19195         appropriate actions.
19196
19197 2007-06-06  Thomas Quinot  <quinot@adacore.com>
19198
19199         * s-finroo.ads, s-finroo.adb (Read, Write): Use null procedure
19200         declarations instead of an explicit null body, for conciseness.
19201
19202 2007-06-06  Robert Dewar  <dewar@adacore.com>
19203
19204         * sem_eval.adb (Eval_Relational_Op): nothing to do if an operand is an
19205         illegal aggregate and the type is still Any_Composite.
19206         (Subtypes_Statically_Match): Fix problem of empty discriminant list
19207
19208 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
19209
19210         * sem_smem.adb (Check_Shared_Var): Check explicitly for as task object,
19211         to prevent subsequent expansion.
19212
19213 2007-06-06  Robert Dewar  <dewar@adacore.com>
19214
19215         * sinput-l.ads, sinput-l.adb: implement a new pragma No_Body
19216
19217 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
19218             Robert Dewar  <dewar@adacore.com>
19219
19220         * sprint.ads, sprint.adb (Sprint_Node_Actual): Output aggregate for
19221         exceptions.
19222         (Write_Itype): Handle case of string literal subtype, which
19223         comes up in this context.
19224         (Update_Itype): when debugging expanded code, update sloc of itypes
19225         associated with defining_identifiers and ranges, for gdb use.
19226         (Sprint_Node_Actual): Add static keyword to object or exception
19227         declaration output if Is_Statically_Allocated is True.
19228         (Sprint_End_Label): Set entity of end marker for a subprogram, package,
19229         or task body, so that the tree carries the proper Sloc information for
19230         debugging use.
19231         (Write_Indent): In Dump_Source_Text mode, ignore implicit label nodes
19232
19233 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
19234
19235         * s-secsta.adb (Chunk): Ensure this object has a static size known at
19236         compile time, to avoid dynamic memory allocation
19237         (Elaboration code): Only use dynamic memory allocation when needed.
19238
19239 2007-06-06  Quentin Ochem  <ochem@adacore.com>
19240
19241         * s-stausa.ads, s-stausa.adb (Initialize_Analyzer): Added parameter
19242         "Overflow_Guard".
19243         (Stack_Analyzer): Added field "Overflow_Guard"
19244         (Task_Result): Added field "Overflow_Guard".
19245         (Index_Str): New constant.
19246         (Task_Name_Str): New constant.
19247         (Actual_Size_Str): New constant.
19248         (Pattern_Array_Element_Size): New constant.
19249         (Get_Usage_Range): New subprogram.
19250         (Output_Result): Added parameter Max_Size_Len and Max_Actual_Use_Len.
19251         Now align the output.
19252         Added comments.
19253         (Initialize): Added value for Overflow_Guard.
19254         (Fill_Stack): Use constant Pattern_Array_Elem_Size when relevant.
19255         Update the value of the overflow guard according to the actual
19256         beginning of the pattern array.
19257         (Initialize_Analyzer): Added parameter Overflow_Guard.
19258         Take this parameter into accound when computing the max size.
19259         (Compute_Result): Use constant Pattern_Array_Elem_Size when relevant.
19260         (Report_Result): Removed extra useless procedure.
19261         Updated call to Output_Result.
19262         Moved full computation of the Task_Result here.
19263
19264 2007-06-06  Thomas Quinot  <quinot@adacore.com>
19265
19266         * g-soccon-darwin.ads, gen-soccon.c: Add new constant
19267         Thread_Blocking_IO, always True by default, set False on a per-runtime
19268         basis.
19269         Add Windows-specific constants
19270         Add new constant Need_Netdb_Buffer.
19271         Add new macros to indicate whether getXXXbyYYY is thread safe and, if
19272         not, whether to use getXXXbyYYY_r.
19273
19274         * gsocket.h: Add new constant Need_Netdb_Buffer.
19275         Add new macros to indicate whether getXXXbyYYY is thread safe and, if
19276         not, whether to use getXXXbyYYY_r.
19277
19278 2007-06-06  Eric Botcazou  <ebotcazou@adacore.com>
19279
19280         * s-stoele.ads, s-stoele.adb: Move inline_always subprograms earlier
19281         than their first call.
19282         Add type Dummy_Communication_Block used in the generation of the pre-
19283         defined dispatching primitive _disp_asynchronous_select.
19284         (Storage_Element): Put Pragma Universal_Aliasing on it.
19285
19286 2007-06-06  Vincent Celier  <celier@adacore.com>
19287
19288         * a-dirval-vms.adb, a-dirval.ads, a-dirval.adb (Windows): New Boolean
19289         function.
19290
19291         * a-dirval-mingw.adb (Is_Valid_Path_Name): Forbid a path with a drive
19292         letter if it is not followed by a '/' or a '\'.
19293         (Windows): New Boolean function
19294
19295         * a-direct.ads, a-direct.adb: Remove unnecessary and misplaced pragma
19296         Ada 2005.
19297         (Containing_Directory): On Windows, keep at least one '/' or '\' after a
19298         drive letter.
19299         (Containing_Directory): Raise Use_Error when the directory is a root
19300         directory.
19301         (Extension): When returning the result, use a conversion to Result_Type,
19302         not a qualification.
19303
19304 2007-06-06  Robert Dewar  <dewar@adacore.com>
19305
19306         * stylesw.ads, stylesw.adb (Set_GNAT_Style_Check): New procedure
19307         (Set_Style_Check_Options): Recognize new -gnatyg style switch
19308
19309         * switch-c.adb (Scan_Front_End_Switches, case -gnatg): Set
19310         Warn_On_Non_Local_Exception to False, to turn off warnings for
19311         No_Exception_Propagation in ZFP runtime.
19312         (Scan_Front_End_Switches): Fix handling of --RTS switch for non GCC
19313         back-ends.
19314         (Scan_Front_End_Switches): For 'g', call Set_GNAT_Style_Checks
19315
19316 2007-06-06  Vincent Celier  <celier@adacore.com>
19317
19318         * switch-b.adb (Scan_Binder_Switches): Add processing for new
19319         switches -R and -Z
19320
19321         * switch-m.adb (Normalize_Compiler_Switches): Do not record switch -E
19322         (Scan_Make_Switches): Recognize new switch -aP
19323
19324 2007-06-06  Matthew Gingell  <gingell@adacore.com>
19325             Jose Ruiz  <ruiz@adacore.com>
19326
19327         * s-stchop-vxworks.adb (Set_Stack_Info): Instead of trying to map the
19328         VxWorks task descriptor in the Ada run time, call a C subprogram
19329         (__gnat_get_stack_info) that extracts the required information.
19330
19331         * sysdep.c: Back out temporary lynxos workaround.
19332         (__gnat_get_stack_info): Add this procedure that passes to the Ada run
19333         time the stack information associated to the currently executing task.
19334         Only VxWorks systems require this function.
19335
19336 2007-06-06  Eric Botcazou  <ebotcazou@adacore.com>
19337
19338         * tracebak.c (FRAME_OFFSET): Add parameter FP. On SPARC/Solaris, do not
19339         add the stack bias if the offset is computed from a frame address.
19340         (__gnat_backtrace): Adjust for above change.
19341
19342 2007-06-06  Thomas Quinot  <quinot@adacore.com>
19343
19344         * types.h, types.ads: Rename PE_Illegal_CW_Actual_E_4_18 to
19345         PE_Non_Transportable_Actual.
19346         (By_Descriptor_Last): New constant.
19347         (By_Copy_Return): Likewise.
19348
19349 2007-06-06  Vincent Celier  <celier@adacore.com>
19350
19351         * vms_conv.adb (Process_Argument): Keep arguments starting with '+' as
19352         is.
19353
19354         * vms_data.ads: Add entries for -gnatw.x and -gnatw.X
19355         /STYLE_CHECKS=GNAT: Change meaning to -gnatyg
19356         /GNAT_INTERNAL: New compiler qualifier corresponding to -gnatg
19357         Add missing comment for /OPTIMIZE=SPACE
19358         Add entry for OPTIMIZE=SPACE
19359         Add new qualifier /ALL_PROJECTS (= -U) for GNAT LIST
19360         Add documentation for new qualifiers corresponding to -gnatw.c/.C
19361
19362 2007-06-06  Vincent Celier  <celier@adacore.com>
19363             Robert Dewar  <dewar@adacore.com>
19364
19365         * xgnatugn.adb: Allow dots to be used in ug_words (-gnatw.c and
19366         -gnatw.C)
19367
19368         * gnat_ugn.texi: Fix ordering of -g switch for gnatmake
19369         Document gnatbind switch -a
19370         (case Constructions): Document that variables declarations are allowed
19371         for previously declared variables.
19372         Fix external lib project example
19373         -gnatg: Indicate new VMS qualifier /GNAT_INTERNAL
19374         Indicate that "#if not X or Y then" is not allowed in input files to
19375         gnatprep.
19376         Document gnatw.x and gnatw.X warning flags
19377         Mention -Winline switch to activate warnings when back-end inlining is
19378         ineffective.
19379         Add gnatcheck rule descriptions
19380         Describe how to use the GNAT driver to call a tool on a closure.
19381         Describe how to run project-wide checks or metrics.
19382         Document gnatbind's -R option
19383         Updated to account for Ada 2005 support
19384
19385         * gnat_rm.texi (Case Construction): Allow variable declarations for
19386         previously declared variables.
19387         (Representation Clauses and Pragmas): Lift restriction on alignment
19388         clauses for record types.
19389         (Ada.Characters.*): Fix typo in reference to A.3.3(27).
19390         Document No_Exception_Propagation restriction
19391         Document No_Body pragma
19392         Updated to account for Ada 2005 support; corrected some typos
19393         (Implementation Defined Pragmas): Document pragma Universal_Aliasing.
19394
19395         * gnat-style.texi: Make it clear that we never use mode IN for
19396         procedures or functions
19397
19398         * ug_words: Add entries for -gnatw.x and -gnatw.X
19399         Add entries for -gnatw.c/.C
19400
19401 2007-06-06  Pascal Obry  <obry@adacore.com>
19402             Vincent Celier  <celier@adacore.com>
19403
19404         * makegpr.adb (Add_Archive_Path): Use untouched object and library
19405         dirs and library name.
19406         (Build_Global_Archive): Idem. Minor code clean-up. Removes duplicate
19407         comments.
19408         (Build_Library): Idem.
19409         (Compile_Individual_Sources): Idem.
19410         (Compile_Link_With_Gnatmake): Idem.
19411         (Compile_Sources): Idem.
19412         (Get_Imported_Directories): Idem.
19413         (Link_Executables): Idem. Same change for the executable dir.
19414         (Check_Compilation_Needed): C_Source_Path new variable containing
19415         the canonical form of Source_Path to check against the source names
19416         in the dependency file.
19417         (Build_Global_Archive, Compile_Individual_Sources, Compile_Sources): In
19418         verbose mode, display the name of the object directory we're changing
19419         to.
19420         (Saved_Switches): New name of table X_Switches
19421         (Scan_Arg): Recognize new switch -aP and save in table Saved_Switches
19422         (Usage): New line for switch -aP
19423         (Get_Imported_Directories.Add): Make sure that Add_Arg is True before
19424         testing if a directory should be added to the search path.
19425
19426 2007-06-06  Javier Miranda  <miranda@adacore.com>
19427
19428         * a-cidlli.ads, a-cdlili.ads, a-cohama.ads, a-coinve.ads,
19429         a-convec.ads (Empty_Vector, Empty_Map, Empty_List): Move this object
19430         declaration after freezing point of all its associated tagged types;
19431         otherwise such types are frozen too early.
19432
19433 2007-06-06  Robert Dewar  <dewar@adacore.com>
19434
19435         * a-reatim.adb: Documentation addition
19436
19437         * g-cgideb.adb: Minor code reorganization
19438
19439         * tree_io.adb, treepr.adb, cstand.adb, krunch.adb, par.adb,
19440         mdll-utl.adb, par-ch5.adb, par-tchk.adb, s-exctab.ads, s-memory.ads,
19441         s-osprim.ads, s-restri.ads, s-soflin.ads: Minor reformatting.
19442
19443         * debug.ads, debug.adb (Get_Debug_Flag_K): Remove unused obsolete
19444         function.  Change name New_Scope to Push_Scope
19445         (Get_Debug_Flag_K): Remove unused obsolete function.
19446
19447         * exp_ch8.adb, inline.adb, sem_ch8.ads: Change name New_Scope to
19448         Push_Scope.
19449
19450         * makeusg.adb: Update Copyright notice
19451         Add line for switch -aP
19452
19453         * makeusg.adb: Fix wording of some usage messages
19454
19455         * s-assert.adb (Raise_Assert_Failure): Add call to
19456         Debug_Raise_Assert_Failure.
19457
19458         * s-unstyp.ads (type Packed_Bytes2): Change alignment to use 'Min
19459         (2, Standard'Alignment) for compatibility with AAMP (where alignment
19460         is restricted to 1).
19461
19462         * s-wchjis.adb: Remove use of System.Pure_Exceptions
19463
19464         * tbuild.ads, tbuild.adb (Make_Implicit_Exception_Handler): Set the
19465         node location to No_Location when we're not debugging the expanded
19466         code.
19467
19468 2007-05-22  Alexandre Oliva  <aoliva@redhat.com>
19469
19470         * misc.c (enumerate_modes): Consider log2_b to always be one.
19471
19472 2007-05-14  Rafael Ávila de Espíndola  <espindola@google.com>
19473
19474         * misc.c (LANG_HOOKS_UNSIGNED_TYPE): Remove.
19475
19476 2007-05-02  Pascal Obry  <obry@adacore.com>
19477
19478         * gnatchop.adb (Write_Source_Reference_Pragma): Change implementation
19479         to use Stream_IO.File_Type. This is needed to make use of the UTF-8
19480         encoding support of Stream_IO.
19481         (Write_Unit): Idem.
19482
19483         * adaint.h, adaint.c (__gnat_os_filename): New routine. Returns the
19484         filename and corresponding encoding to match the OS requirement.
19485         (__gnat_file_exists): Do not call __gnat_stat() on Windows as this
19486         routine will fail on specific devices like CON: AUX: ...
19487
19488         PR ada/29856: Add missing braces
19489
19490 2007-04-22  Andrew Pinski  <andrew_pinski@playstation.sony.com>
19491
19492         PR ada/31660
19493         * ada-tree.h (lang_tree_node): Fix typo in chain_next.
19494
19495 2007-04-21  Jan Hubicka  <jh@suse.cz>
19496
19497         * misc.c (gnat_expand_body): Don't call target for destructors,
19498         avoid redundant check on syntax errors.
19499
19500 2007-04-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
19501
19502         * ada-tree.h (lang_tree_node): Use GENERIC_NEXT
19503         instead of checking GIMPLE_STMT_P in chain_next.
19504
19505 2007-04-17  Andreas Krebbel  <krebbel1@de.ibm.com>
19506
19507         PR ada/31576
19508         * system-linux-alpha.ads: Disable constant condition warning for the
19509         Default_Bit_Order variable.
19510         * system-linux-s390.ads: Likewise.
19511         * system-linux-s390x.ads: Likewise.
19512         * system-linux-sparc.ads: Likewise.
19513
19514 2007-04-06  Javier Miranda  <miranda@adacore.com>
19515             Matt Heaney  <heaney@adacore.com>
19516             Robert Dewar  <dewar@adacore.com>
19517
19518         a-coprnu.ads, a-cohata.ads, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
19519         a-cgarso.ads, a-secain.ads, a-slcain.ads, a-shcain.ads, a-chtgke.ads,
19520         a-chtgke.ads, a-coprnu.ads, a-contai.ads, a-chtgke.ads, a-chtgke.adb,
19521         a-stwiha.ads, a-strhas.ads, a-lfztio.ads, a-liztio.ads, a-llfzti.ads,
19522         a-llizti.ads, a-sfztio.ads, a-siztio.ads, a-ssizti.ads, a-stzfix.ads,
19523         a-stzhas.ads, a-szuzha.ads, a-tiunio.ads, a-wwunio.ads, a-ztcoio.ads,
19524         a-ztinio.ads, a-zttest.ads, a-zzunio.ads, a-astaco.ads, a-charac.ads,
19525         a-chlat1.ads, ada.ads, a-dynpri.ads, a-flteio.ads, a-fwteio.ads,
19526         a-inteio.ads, a-intnam.ads, a-ioexce.ads, a-iwteio.ads, a-lfteio.ads,
19527         a-lfwtio.ads, a-liteio.ads, a-liwtio.ads, a-llftio.ads, a-llfwti.ads,
19528         a-llitio.ads, a-lliwti.ads, a-ncelfu.ads, a-ngcefu.ads, a-ngelfu.ads,
19529         a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads, a-nllcty.ads,
19530         a-nllefu.ads, a-nscefu.ads, a-nscoty.ads, a-nselfu.ads, a-nucoty.ads,
19531         a-nuelfu.ads, a-numeri.ads, a-sfteio.ads, a-sfwtio.ads, a-siteio.ads,
19532         a-siwtio.ads, a-ssitio.ads, a-ssiwti.ads, a-storio.ads, a-strfix.ads,
19533         a-string.ads, a-stwifi.ads, a-titest.ads, a-unccon.ads, a-uncdea.ads,
19534         a-wtcoio.ads, a-wtinio.ads, a-wttest.ads, calendar.ads, directio.ads,
19535         i-c.ads, ioexcept.ads, machcode.ads, sequenio.ads, text_io.ads,
19536         unchconv.ads, unchdeal.ads, a-widcha.ads, a-zchara.ads, a-stboha.ads,
19537         a-stfiha.ads, a-coteio.ads, a-envvar.ads, a-lcteio.ads, a-llctio.ads,
19538         a-scteio.ads, a-swbwha.ads, a-swfwha.ads, a-szbzha.ads, a-szfzha.ads,
19539         a-tiboio.ads, a-wwboio.ads, a-zzboio.ads, a-dispat.ads, a-tgdico.ads,
19540         expander.adb, g-socket.ads, par-labl.adb, sinput-c.adb, s-tarest.ads,
19541         s-stchop.ads, g-expect-vms.adb, s-taprop-lynxos.adb,
19542         s-taprop-tru64.adb, s-taprop-irix.adb,
19543         s-taprop-hpux-dce.adb, s-traceb-hpux.adb,
19544         s-taprop-linux.adb, s-taprop-dummy.adb, s-osprim-unix.adb,
19545         s-osprim-solaris.adb, s-taprop-solaris.adb, s-taprop-vms.adb,
19546         s-osprim-mingw.adb, s-taprop-mingw.adb, s-osprim-posix.adb,
19547         s-taprop-posix.adb, a-exexpr-gcc.adb, a-ststio.adb, a-ststio.ads,
19548         a-textio.adb, a-textio.ads, a-tideau.adb, a-tideau.ads, a-witeio.adb,
19549         a-witeio.ads, a-wtdeau.adb, a-wtdeau.ads, g-calend.adb, g-calend.ads,
19550         g-dirope.adb, g-expect.ads, gnatchop.adb, g-spipat.adb, g-spipat.ads,
19551         s-direio.adb, s-direio.ads, s-fatgen.adb, s-fatgen.ads, s-parint.adb,
19552         s-sequio.adb, s-sequio.ads, s-taprop.ads, s-valdec.adb, s-valdec.ads,
19553         s-valint.adb, s-valint.ads, s-vallld.adb, s-vallld.ads, s-vallli.adb,
19554         s-vallli.ads, s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads,
19555         s-valuns.adb, s-valuns.ads, s-valuti.adb, s-valuti.ads, xref_lib.adb,
19556         s-stchop.adb, i-vxwork-x86.ads, a-crbtgo.ads, a-crbtgo.adb,
19557         a-coorse.ads, a-coorse.adb, a-cohama.ads, a-cohama.adb, a-ciorse.ads,
19558         a-ciorse.adb, a-cihama.ads, a-cihama.adb, a-chtgop.ads, a-chtgop.ads,
19559         a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cihase.ads, a-cohase.adb,
19560         a-cohase.ads, a-swuwha.ads, a-ciormu.ads, a-coormu.ads, a-rbtgso.ads,
19561         a-stunha.ads, a-ciorma.adb, a-coorma.adb, a-ztdeau.adb, a-ztdeau.ads,
19562         a-ztexio.adb, a-ztexio.ads: Addition of null-exclusion to anonymous
19563         access types.
19564         Update documentation.
19565         Minor rewording.
19566
19567 2007-04-06  Robert Dewar  <dewar@adacore.com>
19568
19569         * system-linux-ia64.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads,
19570         system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
19571         system-vxworks-sparcv9.ads, system-solaris-x86.ads, system-irix-o32.ads,
19572         system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
19573         system-linux-x86.ads, system-vxworks-mips.ads, system-interix.ads,
19574         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
19575         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
19576         system-vxworks-alpha.ads, system-vms_64.ads, system-darwin-ppc.ads,
19577         system-vxworks-x86.ads, system-linux-ppc.ads, system-linux-hppa.ads,
19578         system-hpux-ia64.ads, targparm.adb,
19579         targparm.ads (Functions_Return_By_DSP_On_Target): Removed
19580
19581         * system.ads: Move Functions_Return_By_DSP to obsolete section,
19582         kept for bootstrap purposes only.
19583
19584 2007-04-06  Arnaud Charlet  <charlet@adacore.com>
19585
19586         * s-osinte-lynxos-3.ads, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
19587         s-osinte-freebsd.ads, s-osinte-aix.ads, s-osinte-darwin.ads,
19588         s-taprop-posix.adb (Create_Task): Fix handling of Task_Info.
19589         (PTHREAD_SCOPE_PROCESS, PTHREAD_SCOPE_SYSTEM): New constants.
19590
19591 2007-04-06  Robert Dewar  <dewar@adacore.com>
19592
19593         * a-except.adb, a-except.ads, a-except-2005.ads, a-except-2005.adb
19594         (Local_Raise): New dummy procedure called when a raise is converted
19595         to a local goto. Used for debugger to detect that the exception
19596         is raised.
19597
19598         * debug.adb: Document new d.g flag (expand local raise statements to
19599         gotos even if pragma Restriction (No_Exception_Propagation) is not set)
19600
19601         * exp_sel.adb: Use Make_Implicit_Exception_Handler
19602
19603         * exp_ch11.adb (Expand_Exception_Handlers): Use new flag -gnatw.x to
19604         suppress warnings for unused handlers.
19605         (Warn_If_No_Propagation):  Use new flag -gnatw.x to suppress
19606         warnings for raise statements not handled locally.
19607         (Get_RT_Exception_Entity): New function
19608         (Get_Local_Call_Entity): New function
19609         (Find_Local_Handler): New function
19610         (Warn_If_No_Propagation): New procedure
19611         (Expand_At_End_Handler): Call Make_Implicit_Handler
19612         (Expand_Exception_Handlers): Major additions to deal with local handlers
19613         (Expand_N_Raise_Constraint_Error, Expand_N_Raise_Program_Error,
19614         Expand_N_Raise_Storage_Error, (Expand_N_Raise_Statement): Add handling
19615         for local raise
19616
19617         * exp_ch11.ads (Get_RT_Exception_Entity): New function
19618         (Get_Local_Call_Entity): New function
19619
19620         * gnatbind.adb (Restriction_List): Add No_Exception_Propagation to list
19621         of restrictions that the binder will never suggest adding.
19622
19623         * par-ch11.adb (P_Exception_Handler): Set Local_Raise_Statements field
19624         to No_Elist.
19625
19626         * restrict.adb (Check_Restricted_Unit): GNAT.Current_Exception may not
19627         be with'ed in the presence of pragma Restriction
19628         (No_Exception_Propagation).
19629
19630         * sem.adb (Analyze): Add entries for N_Push and N_Pop nodes
19631
19632         * sem_ch11.adb (Analyze_Exception_Handler): If there is a choice
19633         parameter, then the handler is not a suitable target for a local raise,
19634         and this is a violation of restriction No_Exception_Propagation.
19635         (Analyze_Handled_Statements): Analyze choice parameters in exception
19636         handlers before analyzing statement sequence (needed for proper
19637         detection of local raise statements).
19638         (Analyze_Raise_Statement): Reraise statement is a violation of the
19639         No_Exception_Propagation restriction.
19640
19641         * s-rident.ads: Add new restriction No_Exception_Propagation
19642
19643         * tbuild.ads, tbuild.adb (Make_Implicit_Exception_Handler): New
19644         function, like Make_Exception_Handler but sets Local_Raise_Statements
19645         to No_List.
19646         (Add_Unique_Serial_Number): Deal with case where this is called during
19647         processing of configuration pragmas.
19648
19649 2007-04-06  Thomas Quinot  <quinot@adacore.com>
19650             Pat Rogers  <rogers@adacore.com>
19651             Pascal Obry  <obry@adacore.com>
19652
19653         * g-stsifd-sockets.adb: New file.
19654
19655         * g-socthi.ads, g-socket.adb, g-socthi-vxworks.adb,
19656         g-socthi-vxworks.ads, g-socthi-mingw.ads, g-socthi-vms.ads,
19657         g-socthi-vms.adb: Move signalling
19658         fd management to a nested package, so that they can conveniently be
19659         moved to a subunit that is shared across Windows, VMS, and VxWorks
19660         (Ada implementation) or completed with imported bodies from socket.c
19661         (UNIX case).
19662         (Read_Signalling_Fd, Write_Signalling_Fd, Create_Signalling_Fds): New
19663         subprograms.
19664         (Check_Selector): Use Read_Signalling_Fd to read and discard data from
19665         the signalling file descriptor.
19666         (Abort_Selector): Use Write_Signalling_Fd to write dummy data to the
19667         signalling file descriptor.
19668         (Create_Selector): Use new C-imported subprogram Create_Signalling_Fds
19669         instead of creating a pair of sockets for signalling here.
19670
19671         * g-socthi.adb: Ditto.
19672         Set the runtime process to ignore SIGPIPEs on platforms that support
19673         neither SO_NOSIGPIPE nor MSG_NOSIGNAL functionality.
19674
19675         * g-socthi-mingw.adb: Ditto.
19676         (WS_Version): Use Windows 2.2.
19677         Use Winsock 2.2 (instead of 1.1) for the GNAT.Socket API.
19678
19679         * g-soliop-mingw.ads: Link with ws2_32 for Windows 2.x support.
19680         Use Winsock 2.2 (instead of 1.1) for the GNAT.Socket API.
19681
19682         * Makefile.in: New libgnat pair g-stsifd.adb<g-stsifd-sockets.adb.
19683         added GNAT byte swapping facility
19684         Update FreeBSD THREADSLIB from -lc_r to -lpthread, for FreeBSD 6.
19685
19686         * g-bytswa.adb, g-bytswa-x86.adb, g-bytswa.ads: New files.
19687
19688         * socket.c (__gnat_read_signalling_fd, __gnat_write_controlling_fd):
19689         New subprograms.
19690         (__gnat_create_signalling_fds): New subprogram.
19691         Set the runtime process to ignore SIGPIPEs on platforms that support
19692         neither SO_NOSIGPIPE nor MSG_NOSIGNAL functionality.
19693
19694 2007-04-06  Hristian Kirtchev  <kirtchev@adacore.com>
19695             Vincent Celier  <celier@adacore.com>
19696
19697         * a-calend-vms.ads, a-calend.ads, a-calend.adb, a-calend-vms.adb:
19698         New version of Ada.Calendar which supports the new upper bound of Ada
19699         time (2399-12-31 86_399.999999999).
19700         The following modifications have been made to the package:
19701          - New representation of time as count of nanoseconds since the start of
19702            Ada time (1901-1-1 0.0).
19703          - Target independent Split and Time_Of routines which service both
19704            Ada 95 and Ada 2005 code.
19705          - Target independent interface to the Ada 2005 children of Calendar.
19706          - Integrated leap seconds into Ada 95 and Ada 2005 mode.
19707          - Handling of non-leap centenial years.
19708          - Updated clock function.
19709          - Updated arithmetic and comparison operators.
19710
19711         * a-caldel.adb (To_Duration): Add call to target independent routine in
19712         Ada.Calendar to handle the conversion of time to duration.
19713
19714         * sysdep.c (__gnat_localtime_tzoff): Test timezone before setting off
19715         (UTC Offset).
19716         If timezone is obviously incorrect (outside of -14 hours .. 14 hours),
19717         set off to 0.
19718         (__gnat_localtime_tzoff for Lynx and VxWorks): Even though these
19719         targets do not have a natural time zone, GMT is used as a default.
19720         (__gnat_get_task_options): New.
19721
19722         * a-direct.adb (Modification_Time): Add with and use clauses for
19723         Ada.Calendar and Ada.
19724         Calendar.Formatting. Remove with clause for Ada.Unchecked_Conversion
19725         since it is no longer needed.
19726         (Duration_To_Time): Removed.
19727         (OS_Time_To_Long_Integer): Removed.
19728         (Modification_Time): Rewritten to use Ada.Calendar and Ada.Calendar.
19729         Formatting Time_Of routines which automatically handle time zones,
19730         buffer periods and leap seconds.
19731
19732         * a-calari.ads, a-calari.adb ("+", "-", Difference): Add calls to
19733         target independent routines in Ada.Calendar.
19734
19735         * a-calfor.ads, a-calfor.adb:
19736         Code cleanup and addition of validity checks in various routines.
19737         (Day_Of_Week, Split, Time_Of): Add call to target independent routine in
19738         Ada.Calendar.
19739
19740         * a-catizo.ads, a-catizo.adb (UTC_Time_Offset): Add call to target
19741         independent routine in Ada.Calendar.
19742
19743 2007-04-06  Olivier Hainque  <hainque@adacore.com>
19744
19745         * adaint.c:
19746         (convert_addresses): Adjust prototype and dummy definition to expect an
19747          extra file_name argument.
19748
19749         * gmem.c (__gnat_convert_addresses): Wrapper to convert_addresses,
19750         filling the now expected file_name argument with the appropriate
19751         argv[0] expansion.
19752         (__gnat_gmem_a2l_initialize, __gnat_gmem_read_next_frame): Use it.
19753         (tracebk): Array of void * instead of char *, corresponding to what
19754          convert_addresses expects.
19755         (exename): New static global, to hold the executable file name to be
19756         used in all convert_addresses invocations.
19757         (gmem_read_backtrace, __gnat_gmem_symbolic): Account for tracebk type
19758         change.
19759         (__gnat_gmem_a2l_initialize): Resolve exename.
19760         (__gnat_convert_addresses): Use exename as the convert_addresses
19761         file_name argument.
19762
19763         * g-trasym.adb (Symbolic_Traceback): Adjust signature of imported
19764         "convert_addresses", now expecting a filename argument. Import the
19765         necessary entities to compute the filename to use and pass it to
19766         convert_addresses.
19767
19768 2007-04-06  Matt Gingell  <gingell@adacore.com>
19769
19770         * system-aix.ads: Back out previous change.
19771         (Functions_Return_By_DSP): Removed
19772
19773 2007-04-06  Pascal Obry  <obry@adacore.com>
19774
19775         * s-osprim-mingw.adb (Timed_Delay): Use the right clock (standard one
19776         or the monotonic used by Ada.Real_Time) to compute the sleep duration
19777         on Windows.
19778
19779 2007-04-06  Jose Ruiz  <ruiz@adacore.com>
19780
19781         * s-osinte-vxworks.ads, s-osinte-vxworks.adb (VX_FP_TASK): Remove this
19782         function. Its value changes in different VxWorks versions, and it is
19783         now handled by the function __gnat_get_task_options.
19784
19785         * s-taprop-vxworks.adb (Create_Task): Call the function
19786         __gnat_get_task_options to get the required options for creating a task.
19787
19788 2007-04-06  Pascal Obry  <obry@adacore.com>
19789             Thomas Quinot  <quinot@adacore.com>
19790
19791         * adaint.c: Replace all occurences of S2WS to S2WSU (Unicode) when
19792         dealing with filename.
19793         (__gnat_fopen): Call the proper macro (8bits or UTF8) to convert the
19794         filename from a standard string to a wide-string depending on the
19795         encoding value.
19796         (__gnat_freopen): Idem.
19797         (__gnat_current_time): New function (wrapper for time(3) standard C
19798         function).
19799
19800         * g-os_lib.ads (Current_Time): New function. Returns the current
19801         system time as an OS_Time value.
19802
19803         * s-osprim.ads (Clock): Add more precise definition of UNIX epoch.
19804         (Monotonic_Clock): Same.
19805
19806 2007-04-06  Quentin Ochem  <ochem@adacore.com>
19807
19808         * ali.ads, ali.adb (Get_Nat): Raise an exception if the file cursor is
19809         not on a natural.
19810         (Scan_ALI): Cancel the xref line if there has been a reading ALI error.
19811
19812 2007-04-06  Jose Ruiz  <ruiz@adacore.com>
19813
19814         * a-retide.adb: Add elaboration code to ensure that the tasking run
19815         time is initialized when using delay operations even when no task is
19816         created.
19817
19818 2007-04-06  Javier Miranda  <miranda@adacore.com>
19819
19820         * a-tags.ads, a-tags.adb (Object_Specific_Data): Remove
19821         component Num_Prim_Ops.
19822         (Set_Num_Prim_Ops): Removed.
19823         Remove all the assertions because all the routines of this
19824         package are inline always.
19825         (Get_Offset_Index): Add support to primary dispatch tables.
19826         Move the documentation about the dispatch table to a-tags.ads
19827         (Set_External_Tag): Removed
19828         (Inherit_TSD): Removed.
19829         (Interface_Data_Element, Interfaces_Array, Interface_Data): Declarations
19830         moved to a-tags.ads
19831         (Displace, IW_Membership, Inherit_TSD, Interface_Ancestor_Tags,
19832         Register_Interface_Tag, Set_Offset_To_Top): Update all the occurrences
19833         of the TSD field "Table" because this field has been renamed to
19834         "Ifaces_Table".
19835         (Inherit_CPP_DT): Removed.
19836         (K_Typeinfo, K_Offset_To_Top, K_Tagged_Kind, K_Signature,
19837         Cstring, Tag_Table, Type_Specific_Data, Dispatch_Table): These
19838         declarations have been moved to a-tags.ads
19839         (Check_Size): Removed.
19840         (Expanded_Name): Updated to get access to the new field of TSD
19841         containing the address of the expanded name.
19842         (Get_Access_Level/Set_Access_Level): Removed.
19843         (Get_Predefined_Prim_Op_Address): Removed.
19844         (Set_Predefined_Prim_Op_Address): Removed.
19845         (Get_Prim_Op_Address/Set_Prim_Op_Address): Removed.
19846         (Get_Remotely_Callable/Set_Remotely_Callable): Removed.
19847         (Set_Expanded_Name): Removed.
19848         (Inherit_DT): Removed.
19849         (Inherit_CPP_DT): Removed.
19850         (Set_RC_Offset): Removed.
19851         (Set_TSD): Removed.
19852         (Base_Address): New function that displaces "this" to point to the base
19853         of the object (that is, to point to the primary tag of the object).
19854
19855 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
19856             Javier Miranda  <miranda@adacore.com>
19857
19858         * exp_ch3.ads, exp_ch3.adb (Analyze_N_Full_Type_Declaration): For an
19859         anonymous access component, do not create a master_id if type already
19860         has one, as may happen if the type is a subcomponent of a packed array
19861         type.
19862         (Build_Init_Procedure, Component_Needs_Simple_Initialization,
19863         Initialize_Tag): Remove code associated with the old CPP pragmas.
19864         CPP_Virtual and CPP_Vtable are no longer supported.
19865         (Build_Offset_To_Top_Internal): Add support for concurrent record types
19866         (Build_Offset_To_Top_Functions): Add support for concurrent record types
19867         (Freeze_Record_Type): Remove call to
19868         Init_Predefined_Interface_Primitives.
19869         (Init_Secondary_Tags.Initialize_Tag): New subprogram containing all the
19870         code required to initialize the tags of the secondary dispatch tables.
19871         This leaves the algoritm more clear.
19872         (Init_Secondary_Tags): Add support for concurrent record types
19873         (Make_Predefined_Primitive_Specs): Code cleanup.
19874         (Predefined_Primitive_Bodies): Code cleanup.
19875         (Build_Master_Renaming): New local subprogram.
19876         (Expand_N_Full_Type_Declaration): Build the master_id associated with
19877         anonymous access to task type components.
19878         (Expand_N_Subtype_Indication): The bounds of a range constraint in a
19879         subtype indication are resolved during analysis, and must not be done
19880         here.
19881         (Stream_Operation_OK): Check Restriction_Active before RTE_Available.
19882
19883 2007-04-06  Geert Bosch  <bosch@adacore.com>
19884             Ed Schonberg  <schonberg@adacore.com>
19885             Javier Miranda  <miranda@adacore.com>
19886             Bob Duff  <duff@adacore.com>
19887
19888         * exp_ch4.adb (Expand_N_Type_Conversion): Remove special processing
19889         for conversion of a Float_Type'Truncation to integer.
19890
19891         * exp_attr.adb (Is_Inline_Floating_Point_Attribute): New function to
19892         check if a node is an attribute that can be handled directly by the
19893         back end.
19894         (Expand_N_Attribute_Reference): Suppress expansion of floating-point
19895         attributes that can be handled directly by the back end.
19896         (Expand_N_Attribute_Reference, case 'Access and 'Unchecked_Access):
19897         use new predicate Is_Access_Protected_Subprogram_Type.
19898         (Expand_N_Attribute_Reference, case 'Write): The reference is legal for
19899         and Unchecked_Union if it is generated as part of the default  Output
19900         procedure for a type with default discriminants.
19901         (Expand_N_Attribute_Reference): Avoid the expansion of dispatching calls
19902         if we are compiling under restriction No_Dispatching_Calls.
19903         (Constrained): Use Underlying_Type, in case the type is private without
19904         discriminants, but the full type has discriminants.
19905         (Expand_N_Attribute_Reference): Replace call to Get_Access_Level by
19906         call to Build_Get_Access_Level.
19907         (Expand_N_Attribute_Reference): The use of 'Address with class-wide
19908         interface objects requires a call to the run-time subprogram that
19909         returns the base address of the object.
19910         (Valid_Conversion): Improve error message on illegal attempt to store
19911         an anonymous access to subprogram value into a record component.
19912
19913         * sem_res.adb (Resolve_Equality_Op): Detect ambiguity for "X'Access =
19914         null".
19915         (Simplify_Type_Conversion): New procedure that performs simplification
19916         of Int_Type (Float_Type'Truncation (X)).
19917         (Resolve_Type_Conversion): Call above procedure after resolving operand
19918         and before performing checks. This replaces the existing ineffective
19919         code in Exp_Ch4.
19920         (Set_String_Literal_Subtype): When creating the internal static lower
19921         bound subtype for a string literal, use a newly created copy of the
19922         subtree representing the lower bound.
19923         (Resolve_Call): Exclude build-in-place function calls from transient
19924         scope treatment. Update comments to describe this exception.
19925         (Resolve_Equality_Op): In case of dispatching call check violation of
19926         restriction No_Dispatching_Calls.
19927         (Resolve_Call): If the call returns an array, the context imposes the
19928         component type of the array, and the function has one non-defaulted
19929         parameter, rewrite the call as the indexing of a call with a single
19930         parameter, to handle an Ada 2005 syntactic ambiguity for calls written
19931         in prefix form.
19932         (Resolve_Actuals): If an actual is an allocator for an access parameter,
19933         the master of the created object is the innermost enclosing statement.
19934         (Remove_Conversions): For a binary operator, check if type of second
19935         formal is numeric, to check if an abstract interpretation is present
19936         in the case of exponentiation as well.
19937
19938 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
19939             Bob Duff  <duff@adacore.com>
19940
19941         * atree.h, atree.ads, atree.adb (Copy_Node_With_Replacement): When
19942         copying a parameter list in a call, set properly the First_Named_Formal
19943         and Next_Named_Formal fields in the new list and in the enclosing call.
19944         (Watch_Node,New_Node_Breakpoint,New_Node_Debugging_Output): Shorten
19945         names, to ease typing in the debugger. Improve comments.
19946         (Watch_Node): New variable, intended to be set in the debugger.
19947         (New_Node_Breakpoint): New do-nothing procedure to set a breakpoint on,
19948         called when the watched node is created.
19949         (New_Node_Debugging_Output): Combined version of local procedures
19950         New_Node_Debugging_Output and New_Entity_Debugging_Output, now global,
19951         with a parameter so that conditional breakpoints like "if Node = 12345"
19952         work.
19953         (New_Node, New_Entity): Call the global New_Node_Debugging_Output.
19954         Add Elist1 function
19955
19956 2007-04-06  Thomas Quinot  <quinot@adacore.com>
19957             Ed Schonberg  <schonberg@adacore.com>
19958             Gary Dismukes  <dismukes@adacore.com>
19959
19960         * checks.ads, checks.adb (Selected_Range_Checks): No range check is
19961         required for a conversion between two access-to-unconstrained-array
19962         types.
19963         (Expr_Known_Valid): Validity checks do not apply to discriminants, but
19964         to discriminant constraints on discriminant objects. This rule must
19965         apply as well to discriminants of protected types in private components.
19966         (Null_Exclusion_Static_Checks): If No_Initialization is set on an
19967         object of a null-excluding access type then don't require the
19968         the object declaration to have an expression and don't emit a
19969         run-time check.
19970
19971 2007-04-06  Arnaud Charlet  <charlet@adacore.com>
19972             Eric Botcazou  <botcazou@adacore.com>
19973
19974         * gnatvsn.ads, comperr.adb (Get_Gnat_build_Type): Renamed Build_Type
19975         and made constant.
19976
19977         * comperr.ads, comperr.adb (Compiler_Abort): Add third parameter
19978         Fallback_Loc. Use it as the sloc info when Current_Error_Node doesn't
19979         carry any.
19980
19981         * fe.h (Compiler_Abort): Add third parameter.
19982
19983         * misc.c (internal_error_function): Build third argument from current
19984         input location and pass it to Compiler_Abort.
19985
19986 2007-04-06  Gary Dismukes  <dismukes@adacore.com>
19987
19988         * cstand.adb (Create_Standard): When the target's storage unit size is
19989         greater than a byte, set Has_Non_Standard_Rep and Has_Pragma_Pack on
19990         Standard_String.
19991
19992 2007-04-06  Nicolas Roche  <roche@adacore.com>
19993
19994         * cstreams.c (__gnat_full_name): Fix issues on VxWorks 6.x for which
19995         absolute path can have the following form: device:/a/b. In this case
19996         '/' should be inserted between the path and the filename.
19997
19998 2007-04-06  Olivier Hainque  <hainque@adacore.com>
19999             Eric Botcazou  <botcazou@adacore.com>
20000
20001         * decl.c (gnat_to_gnu_entity) <E_Constant>: Associate an external
20002         VAR_DECL to a CONST_DECL we make for a public constant when we know the
20003         corresponding definition has created the so made visible variable.
20004         Handle anonymous access to protected subprogram.
20005         (gnat_to_gnu_entity) <E_Variable>: Do not make the underlying type of an
20006         object with an address clause volatile.  Re-enable original fix.
20007         <E_Subprogram_Type>: Set TYPE_REF_CAN_ALIAS_ALL on the reference type
20008         too.
20009         (gnat_to_gnu_entity) <E_Class_Wide_Type>: Retrieve the TYPE_DECL
20010         associated with either the Equivalent or Root type, instead of the
20011         naked type node.
20012         (gnat_to_gnu_entity): Manually mark the top of the DECL_FIELD_OFFSET
20013         subtree for every field of a global record type.
20014         (gnat_to_gnu_entity) <E_Record_Subtype>: If the subtype has
20015         discriminants, invoke again variable_size on its newly computed sizes.
20016
20017 2007-04-06  Robert Dewar  <dewar@adacore.com>
20018             Thomas Quinot  <quinot@adacore.com>
20019             Ed Schonberg  <schonberg@adacore.com>
20020             Bob Duff  <duff@adacore.com>
20021
20022         * einfo.ads, einfo.adb: (First_Component_Or_Discriminant): New function
20023         (Next_Component_Or_Discriminant): New function and procedure
20024         (First_Index, First_Literal, Master_Id,
20025         Set_First_Index, Set_First_Literal, Set_Master_Id):
20026         Add missing Ekind assertions.
20027         (Is_Access_Protected_Subprogram_Type): New predicate.
20028         (Has_RACW): New entity flag, set on package entities to indicate that
20029         the package contains the declaration of a remote accecss-to-classwide
20030         type.
20031         (E_Return_Statement): This node type has the Finalization_Chain_Entity
20032         attribute, in case the result type has controlled parts.
20033         (Requires_Overriding): Add this new flag, because "requires
20034         overriding" is subtly different from "is abstract" (see AI-228).
20035         (Is_Abstract): Split Is_Abstract flag into Is_Abstract_Subprogram and
20036         Is_Abstract_Type. Make sure these are called only when appropriate.
20037         (Has_Pragma_Unreferenced_Objects): New flag
20038
20039         * exp_ch5.adb (Expand_N_Assignment_Statement): If the left-hand side is
20040         class-wide, the tag of the right-hand side must be an exact match, not
20041         an ancestor of that of the object on left-hand side.
20042         (Move_Activation_Chain): New procedure to create the call to
20043         System.Tasking.Stages.Move_Activation_Chain.
20044         (Expand_N_Extended_Return_Statement): Generate code to call
20045         System.Finalization_Implementation.Move_Final_List at the end of a
20046         return statement if the function's result type has controlled parts.
20047         Move asserts to Build_In_Place_Formal.
20048         (Move_Final_List): New function to create the call statement.
20049         (Expand_N_Assignment_Statement): In case of assignment to a class-wide
20050         tagged type, replace generation of call to the run-time subprogram
20051         CW_Membership by call to Build_CW_Membership.
20052         (Expand_N_Return_Statement): Replace generation of call to the run-time
20053         subprogram Get_Access_Level by call to Build_Get_Access_Level.
20054         (Expand_N_Simple_Function_Return): Replace generation of call to the
20055         run-time subprogram Get_Access_Level by call to Build_Get_Access_Level.
20056
20057         * exp_ch6.ads, exp_ch6.adb (Expand_Call): Use new predicate
20058         Is_Access_Protected_Subprogram_Type, to handle both named and anonymous
20059         access to protected operations.
20060         (Add_Task_Actuals_To_Build_In_Place_Call): New procedure to add the
20061         master and chain actual parameters to a build-in-place function call
20062         involving tasks.
20063         (BIP_Formal_Suffix): Add new enumeration literals to complete the case
20064         statement.
20065         (Make_Build_In_Place_Call_In_Allocator,
20066         Make_Build_In_Place_Call_In_Anonymous_Context,
20067         Make_Build_In_Place_Call_In_Assignment,
20068         Make_Build_In_Place_Call_In_Object_Declaration): Call
20069         Add_Task_Actuals_To_Build_In_Place_Call with the appropriate master.
20070         (Expand_Inlined_Call): If the subprogram is a null procedure, or a
20071         stubbed procedure with a null body, replace the call with a null
20072         statement without using the full inlining machinery, for efficiency
20073         and to avoid invalid values in source file table entries.
20074
20075         * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Add support for
20076         renamings of calls to build-in-place functions.
20077
20078         * rtsfind.adb (RTE_Record_Component_Available): New subprogram that
20079         provides the functionality of RTE_Available to record components.
20080         (RTU_Entity): The function Entity has been renamed to RTU_Entity
20081         to avoid undesired overloading.
20082         (Entity): New subprogram that returns the entity for the referened
20083         unit. If this unit has not been loaded, it returns Empty.
20084         (RE_Activation_Chain_Access, RE_Move_Activation_Chain): New entities.
20085         Remove no longer used entities.
20086         (RE_Finalizable_Ptr_Ptr, RE_Move_Final_List): New entities.
20087         (RE_Type_Specific_Data): New entity.
20088         (RE_Move_Any_Value): New entity.
20089         (RE_TA_A, RE_Get_Any_Type): New entities.
20090         (RE_Access_Level, RE_Dispatch_Table, E_Default_Prim_Op_Count,
20091          RE_Prims_Ptr, RE_RC_Offset, RE_Remotely_Callable,
20092          RE_DT_Typeinfo_Ptr_Size, RE_Cstring_Ptr, RE_DT_Expanded_Name): Added.
20093         (Entity): New subprogram that returns the entity for the referened
20094         unit. If this unit has not been loaded, it returns Empty.
20095         (RTE): Addition of a new formal that extends the search to the scopes
20096         of the record types found in the chain of the package.
20097
20098         * sem_ch6.ads, sem_ch6.adb (Check_Overriding_Indicator): Print
20099         "abstract subprograms must be visible" message, whether or not the type
20100         is an interface; that is, remove the special case for interface types.
20101         (Analyze_Function_Return): Remove error message "return of task objects
20102         is not yet implemented" because this is now implemented.
20103         (Create_Extra_Formals): Add the extra master and activation chain
20104         formals in case the result type has tasks.
20105         Remove error message "return of limited controlled objects is not yet
20106         implemented".
20107         (Create_Extra_Formals): Add the extra caller's finalization list formal
20108         in case the result type has controlled parts.
20109         (Process_Formals): In case of access formal types there is no need
20110         to continue with the analysis of the formals if we already notified
20111         errors.
20112         (Check_Overriding_Indicator): Add code to check overriding of predefined
20113         operators.
20114         (Create_Extra_Formals): Prevent creation of useless Extra_Constrained
20115         flags for formals that do not require them,.
20116         (Enter_Overloaded_Entity): Do not give -gnatwh warning message unless
20117         hidden entity is use visible or directly visible.
20118         (Analyze_Abstract_Subprogram_Declaration,Analyze_Subprogram_Body,
20119         Analyze_Subprogram_Declaration,Analyze_Subprogram_Specification,
20120         Check_Conventions,Check_Delayed_Subprogram,Make_Inequality_Operator,
20121         New_Overloaded_Entity): Split Is_Abstract flag into
20122         Is_Abstract_Subprogram and Is_Abstract_Type.
20123
20124         * s-finimp.ads, s-finimp.adb (Move_Final_List): New procedure to move
20125         a return statement's finalization list to the caller's list, used for
20126         build-in-place functions with result type with controlled parts.
20127         Remove no longer used entities.
20128
20129         * s-taskin.ads (Activation_Chain): Remove pragma Volatile. It is no
20130         longer needed, because the full type is now limited, and therefore a
20131         pass-by-reference type.
20132         (Foreign_Task_Level): New constant.
20133
20134         * s-tassta.ads, s-tassta.adb (Move_Activation_Chain): New procedure to
20135         move tasks from the activation chain belonging to a return statement to
20136         the one passed in by the caller, and update the master to the one
20137         passed in by the caller.
20138         (Vulnerable_Complete_Master, Check_Unactivated_Tasks): Check the master
20139         of unactivated tasks, so we don't kill the ones that are being returned
20140         by a build-in-place function.
20141         (Create_Task): Ignore AI-280 for foreign threads.
20142
20143 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
20144             Robert Dewar  <dewar@adacore.com>
20145             Bob Duff  <duff@adacore.com>
20146             Gary Dismukes  <dismukes@adacore.com>
20147
20148         * errout.adb (Unwind_Internal_Type): Use predicate
20149         Is_Access__Protected_Subprogram_Type.
20150
20151         * freeze.adb (Size_Known): Use First/Next_Component_Or_Discriminant
20152         (Freeze_Entity, packed array case): Do not override explicitly set
20153         alignment and size clauses.
20154         (Freeze_Entity):  An entity declared in an outer scope can be frozen if
20155         the enclosing subprogram is a child unit body that acts as a spec.
20156         (Freeze_Entity): Use new predicate Is_Access_Protected_Subprogram_Type.
20157         (Freeze_Record_Type): New Ada 2005 processing for reverse bit order
20158         Remove all code for DSP option
20159
20160         * layout.adb (Layout_Record_Type): Use First/
20161         Next_Component_Or_Discriminant
20162         (Layout_Type): Use new predicate Is_Access_Protected_Subprogram_Type,
20163         to handle properly the anonymous access case.
20164
20165         * sem_attr.adb (Build_Access_Object_Type): Use E_Access_Attribute_Type
20166         for all access attributes, because overload resolution should work the
20167         same for 'Access, 'Unchecked_Access, and 'Unrestricted_Access. This
20168         causes the error message for the ambiguous "X'Access = Y'Access" and
20169         "X'Unrestricted_Access = Y'Access" and so forth to match.
20170         (Resolve_Attribute, case 'Access): Remove use of Original_Access_Type,
20171         now that anonymous access to protected operations have their own kind.
20172         (Resolve_Attribute): In case of dispatching call check the violation of
20173         restriction No_Dispatching_Calls.
20174         (Check_Array_Type): Check new -gnatyA array index style option
20175
20176         * sem_ch3.ads, sem_ch3.adb (Derived_Type_Declaration): Reject an
20177         attempt to derive from a synchronized tagged type.
20178         (Analyze_Type_Declaration): If there is a incomplete tagged view of the
20179         type, inherit the class-wide type already created, because it may
20180         already have been used in a self-referential anonymous access component.
20181         (Mentions_T): Recognize self-referential anonymous access components
20182         that use (a subtype of) the class-wide type of the enclosing type.
20183         (Build_Derived_Record_Type): Add earlier setting of Is_Tagged_Type. Pass
20184         Derived_Type for Prev formal on call to
20185         Check_Anonymous_Access_Components rather than Empty.
20186         (Make_Incomplete_Type_Declaration): Add test for case where the type has
20187         a record extension in deciding whether to create a class-wide type,
20188         rather than just checking Tagged_Present.
20189         (Replace_Anonymous_Access_To_Protected_Subprogram): Procedure applies
20190         to stand-alone object declarations as well as component declarations.
20191         (Array_Type_Declaration): Initialize Packed_Array_Type to Empty, to
20192         prevent accidental overwriting when enclosing package appears in
20193         a limited_with_clause.
20194         (Array_Type_Declaration): If the component type is an anonymous access,
20195         the associated_node for the itype is the type declaration itself.
20196         (Add_Interface_Tag_Components): Modified to support concurrent
20197         types with abstract interfaces.
20198         (Check_Abstract_Interfaces): New subprogram that verifies the ARM
20199         rules 3.9.4 (15/2), 9.1 (9.d/2) and 9.4 (11.d/2).
20200         (Build_Derived_Record_Type): Add call to Analyze_Interface_Declaration
20201         to complete the decoration of synchronized interface types. Add also
20202         a call to Check_Abstract_Interfaces to verify the ARM rules.
20203         (Derive_Interface_Subprograms): Modified to support concurrent types
20204         with abstract interfaces.
20205         (Analyze_Subtype_Indication): Resolve the range with the given subtype
20206         mark, rather than delaying the full resolution depending on context.
20207         (Analyze_Component_Declaration,Analyze_Interface_Declaration,
20208         Analyze_Object_Declaration,Analyze_Subtype_Declaration,
20209         Array_Type_Declaration,Build_Derived_Record_Type,
20210         Build_Discriminated_Subtype,Check_Abstract_Overriding,Check_Completion,
20211         Derive_Interface_Subprograms,Derive_Subprogram,Make_Class_Wide_Type,
20212         Process_Full_View,Record_Type_Declaration): Split Is_Abstract flag into
20213         Is_Abstract_Subprogram and Is_Abstract_Type. Make sure these are
20214         called only when appropriate.
20215         (Copy_And_Swap): Copy Has_Unreferenced_Objects flag from full type
20216         to private type.
20217         (Analyze_Subtype_Declaration): For an access subtype declaration, create
20218         an itype reference for the anonymous designated subtype, to prevent
20219         scope anonmalies in gigi.
20220         (Build_Itype_Reference): New utility, to simplify construction of such
20221         references.
20222
20223 2007-04-06  Vincent Celier  <celier@adacore.com>
20224
20225         * errutil.adb (Initialize): Initialize warnings table, if all warnings
20226         are suppressed, supply an initial dummy entry covering all possible
20227         source locations.
20228
20229         * make.adb (Scan_Make_Arg): Reject options that should start with "--"
20230         and start with only one, such as "-RTS=none".
20231         (Collect_Arguments): Do not check for sources outside of projects.
20232         Do not collect arguments if project is externally built.
20233         (Compile_Sources): Do nothing, not even check if the source is up to
20234         date, if its project is externally built.
20235         (Compile): When compiling a predefined source, add -gnatpg
20236         as the second switch, after -c.
20237         (Compile_Sources): Allow compilation of Annex J renames without -a
20238         (Is_In_Object_Directory): Check if the ALI file is in the object
20239         even if there is no project extension.
20240         (Create_Binder_Mapping_File): Only put a unit in the mapping file for
20241         gnatbind if the ALI file effectively exists.
20242         (Initialize): Add the directory where gnatmake is invoked in front of
20243         the path if it is invoked from a bin directory, even without directory
20244         information, so that the correct GNAT tools will be used when spawned
20245         without directory information.
20246
20247         * makeusg.adb: Change switch -S to -eS
20248         Add lines for new switches -we, -wn and -ws
20249         Add line for new switch -p
20250
20251         * prj-proc.adb (Process): Set Success to False when Warning_Mode is
20252         Treat_As_Error and there are warnings.
20253
20254         * switch-m.ads, switch-m.adb (Normalize_Compiler_Switches): Do not skip
20255         -gnatww Change gnatmake switch -S to -eS
20256         (Scan_Make_Switches): Code reorganisation. Process separately multi
20257         character switches and single character switches.
20258         (Scan_Make_Switches): New Boolean out parameter Success. Set Success to
20259         False when switch is not recognized by gnatmake.
20260         (Scan_Make_Switches): Set Setup_Projects True when -p or
20261         --create-missing-dirs is specified.
20262
20263         * fname.adb (Is_Predefined_File_Name): Return True for annex J
20264         renamings Calendar, Machine_Code, Unchecked_Conversion and
20265         Unchecked_Deallocation only when Renamings_Included is True.
20266
20267         * par.adb: Allow library units Calendar, Machine_Code,
20268         Unchecked_Conversion and Unchecked_Deallocation to be recompiled even
20269         when -gnatg is not specified.
20270         (P_Interface_Type_Definition): Remove the formal Is_Synchronized because
20271         there is no need to generate always a record_definition_node in case
20272         of synchronized interface types.
20273         (SIS_Entry_Active): Initialize global variable to False
20274         (P_Null_Exclusion): For AI-447: Add parameter Allow_Anonymous_In_95 to
20275         indicate cases where AI-447 says "not null" is legal.
20276
20277         * makeutl.ads, makeutil.adb (Executable_Prefix_Path): New function
20278
20279         * makegpr.adb (Check_Compilation_Needed): Take into account dependency
20280         files with with several lines starting with the object fileb name.
20281         (Scan_Arg): Set Setup_Projects True when -p or --create-missing-dirs
20282         is specified.
20283         (Initialize): Add the directory where gprmake is invoked in front of the
20284         path, if it is invoked from a bin directory or with directory
20285         information, so that the correct GNAT tools will be used when invoked
20286         directly.
20287         (Check_Compilation_Needed): Process correctly backslashes on Windows.
20288
20289         * vms_data.ads: Update switches/qualifiers
20290
20291 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
20292             Thomas Quinot  <quinot@adacore.com>
20293
20294         * exp_aggr.adb:
20295         If the array component is a discriminated record, the array aggregate
20296         is non-static even if the component is given by an aggregate with
20297         static components.
20298         (Expand_Record_Aggregate): Use First/Next_Component_Or_Discriminant
20299         (Convert_Aggr_In_Allocator): If the allocator is for an access
20300         discriminant and the type is controlled. do not place on a finalization
20301         list at this point. The proper list will be determined from the
20302         enclosing object.
20303         (Build_Record_Aggr_Code): If aggregate has box-initialized components,
20304         initialize record controller if needed, before the components, to ensure
20305         that they are properly finalized.
20306         (Build_Record_Aggr_Code): For the case of an array component that has a
20307         corresponding array aggregate in the record aggregate, perform sliding
20308         if required.
20309
20310 2007-04-06  Javier Miranda  <miranda@adacore.com>
20311             Gary Dismukes  <dismukes@adacore.com>
20312             Ed Schonberg  <schonberg@adacore.com>
20313
20314         * exp_ch13.adb (Expand_External_Tag_Definition): Replace call to the
20315         run-time subprogram Set_External_Tag by call to Build_Set_External_Tag.
20316
20317         * exp_ch4.adb (Expand_Allocator_Expression): Don't perform a run-time
20318         accessibility on class-wide allocators if the allocator occurs at the
20319         same scope level as the allocator's type. The check is guaranteed to
20320         succeed in that case, even when the expression originates from a
20321         parameter of the containing subprogram.
20322         (Expand_N_Op_Eq): Do nothing in case of dispatching call if compiling
20323         under No_Dispatching_Calls restriction. During the semantic analysis
20324         we already notified such violation.
20325         (Tagged_Membership): Constant folding. There is no need to check
20326         the tag at run-time if the type of the right operand is non
20327         class-wide abstract.
20328         Replace call to Is_Ancestor by call to Is_Parent
20329         to support concurrent types with interface types.
20330         (Expand_N_Allocator): Add an assertion associated with the generation
20331         of the master_id.
20332         (Expand_N_Slice): Do not enable range check to nodes associated
20333         with the frontend expansion of the dispatch table.
20334         (Is_Local_Access_Discriminant): Subsidiary function to
20335         Expand_N_Allocator.
20336         (Tagged_Membership): Replace generation of call to the run-time
20337         subprogram CW_Membership by call to Build_CW_Membership.
20338         (Expand_Allocator_Expression): Replace generation of call to the
20339         run-time subprogram Get_Access_Level by call to Build_Get_Access_Level.
20340
20341         * exp_disp.ads, exp_disp.adb (Make_DT): Code reorganization to
20342         initialize most the TSD components by means of an aggregate.
20343         Modify the declaration of the object containing the TSD
20344         because we now expand code that has a higher level of abstraction.
20345         The TSD has a discriminant containing the Inheritance Depth Level,
20346         value that is used in the membership test but also to fix the size
20347         of the table of ancestors.
20348         (Expand_Interface_Conversion): Insert function body at the closest place
20349         to the conversion expression, to prevent access-before-elaboration
20350         errors in the backend.
20351         Code improved to reduce the size of the dispatch table if
20352         compiling under restriction No_Dispatching_Calls plus code cleanup.
20353         Code reorganization plus removal of calls to Set_Num_Prim_Ops
20354         (Make_Secondary_DT): Remove call to Set_Num_Prim_Ops.
20355         (Expand_Dispatching_Call): Minor code reorganization plus addition of
20356         code to return immediately if compiling under No_Dispatching_Calls
20357         restriction.
20358         (Set_All_DT_Position): Remove code associated with the old CPP pragmas.
20359         CPP_Virtual and CPP_Vtable are no longer supported.
20360         (Expand_Interface_Conversion): Add missing support for interface type
20361         derivations.
20362         (Expand_Interface_Actuals): Replace calls to Is_Ancestor by calls to
20363         Is_Parent to support concurrent types with interfaces.
20364         (Init_Predefined_Interface_Primitives): Removed.
20365         (Make_Secondary_DT): Modified to support concurrent record types.
20366         (Set_All_DT_Position): Modified to support concurrent record types.
20367         (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entries associated
20368         with Get_External_Tag, Inherit_TSD, Set_External_Tag.
20369         (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entry associated
20370         with CW_Membership.
20371         (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entries associated
20372         with Get_Access_Level, Get_Predefined_Prim_Op_Address,
20373         Get_Prim_Op_Address Get_RC_Offset, Get_Remotely_Callable, Inherit_DT,
20374         Set_Access_Level, Set_Expanded_Name, Set_Predefined_Prim_Op_Address,
20375         Set_Prim_Op_Address, Set_RC_Offset, Set_Remotely_Callable, Set_TSD.
20376         (Expand_Dispatching_Call): Replace generation of call to the run-time
20377         subprograms Get_Predefined_Prim_Op_Address and Get_Prim_Op_Address by
20378         calls to Build_Get_Predefined_Prim_Op_Address, and Build_Get_Prim_Op_
20379         Address.
20380         (Fill_DT_Entry, Fill_Secondary_DT_Entry): Replace generation of call to
20381         the run-time subprograms Set_Predefined_Prim_Op_Address and Set_Prim_
20382         Op_Address by calls to Build_Set_Predefined_Prim_Op_Address, and
20383         Build_Set_Prim_Op_Address.
20384         (Get_Remotely_Callable): Subprogram removed.
20385         (Init_Predefined_Interface_Primitives): Replace generation of call to
20386         the run-time subprograms Inherit_DT by call to Build_Inherit_Predefined_
20387         Prims.
20388
20389         * sem_elab.adb (Set_Elaboration_Constraint): Replace the call to
20390         First (Parameter_Associations ()) with the call to First_Actual that
20391         returns an actual parameter expression for both named and positional
20392         associations.
20393
20394         * sem_disp.adb (Check_Dispatching_Call): In case of dispatching call
20395         check violation of restriction No_Dispatching_Calls.
20396         (Check_Controlling_Type): A formal of a tagged incomplete type is a
20397         controlling argument.
20398
20399         * exp_util.ads, exp_util.adb (Type_May_Have_Bit_Aligned_Components): Use
20400         First/Next_Component_Or_Discriminant
20401         (Insert_Actions): Add entries for new N_Push and N_Pop nodes
20402         (Find_Implemented_Interface): Removed. All the calls to this subprogram
20403         specify Any_Limited_Interface, and this functionality is already
20404         provided by the function Has_Abstract_Interfaces.
20405         (Find_Interface, Find_Interface_Tag, Find_Interface_ADT): Modified to
20406         support concurrent types implementing interfaces.
20407         (Find_Implemented_Interface): Removed. All the calls to this subprogram
20408         specify kind Any_Limited_Interface, and this functionality is already
20409         provided by the function Has_Abstract_Interfaces.
20410         (Remove_Side_Effects): replace Controlled_Type by
20411         CW_Or_Controlled_Type whenever the issue is related to
20412         using or not the secondary stack.
20413
20414         * par-ch12.adb (P_Formal_Type_Definition): Update calls to
20415         P_Interface_Type_Definition to fulfill the new interface (the formal
20416         Is_Synchronized is no longer required).
20417
20418         * Make-lang.in (GNAT_ADA_OBJS): Addition of exp_atag.o
20419         Update dependencies.
20420
20421         * exp_atag.ads, exp_atag.adb: New file
20422
20423 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
20424             Bob Duff  <duff@adacore.com>
20425             Cyrille Comar  <comar@adacore.com>
20426
20427         * exp_ch7.ads, exp_ch7.adb (Find_Final_List): If the access type is
20428         anonymous, use finalization list of enclosing dynamic scope.
20429         (Expand_N_Package_Declaration): For a library package declaration
20430         without a corresponding body, generate RACW subprogram bodies in the
20431         spec (just as we do for the task activation call).
20432         (Convert_View): Split Is_Abstract flag into Is_Abstract_Subprogram and
20433         Is_Abstract_Type. Make sure these are called only when appropriate.
20434         Remove all code for DSP option
20435         (CW_Or_Controlled_Type): new subprogram.
20436
20437 2007-04-06  Eric Botcazou  <botcazou@adacore.com>
20438             Ed Schonberg  <schonberg@adacore.com>
20439             Gary Dismukes  <dismukes@adacore.com>
20440
20441         * exp_ch9.ads, exp_ch9.adb (Family_Offset): Add new 'Cap' boolean
20442         parameter. If it is set to true, return a result capped according to
20443         the global upper bound for the index of an entry family.
20444         (Family_Size): Add new 'Cap' boolean parameter. Pass it to Family_Offset
20445         (Build_Find_Body_Index): Adjust for above change.
20446         (Entry_Index_Expression): Likewise.
20447         (Is_Potentially_Large_Family): New function extracted from...
20448         (Collect_Entry_Families): ...here. Call it to detect whether the family
20449         is potentially large.
20450         (Build_Entry_Count_Expression): If the family is potentially large, call
20451         Family_Size with 'Cap' set to true.
20452         (Expand_N_Protected_Type_Declaration, Expand_N_Protected_Body): Generate
20453         a protected version of an operation declared in the private part of
20454         a protected object, because they may be invoked through a callback.
20455         (Set_Privals): If the type of a private component is an anonymous access
20456         type, do not create a new itype for each protected body.
20457         If the body of a protected operation creates
20458         controlled types (including allocators for class-widetypes), the
20459         body of the corresponding protected subprogram must include a
20460         finalization list.
20461         (Build_Activation_Chain_Entity): Build the chain entity for extended
20462         return statements.
20463         (Type_Conformant_Parameters): Use common predicate Conforming_Types
20464         to determine whether operation overrides an inherited primitive.
20465         (Build_Wrapper_Spec): Add code to examine the parents while looking
20466         for a possible overriding candidate.
20467         (Build_Simple_Entry_Call): Set No_Initialization on the object used to
20468         hold an actual parameter value since its initialization is separated
20469         from the the declaration. Prevents errors on null-excluding access
20470         formals.
20471
20472 2007-04-06  Thomas Quinot  <quinot@adacore.com>
20473             Pablo Oliveira  <oliveira@adacore.com>
20474
20475         * exp_dist.ads, exp_dist.adb (Build_To_Any_Call, Build_From_Any_Call):
20476         Do an Unchecked_Conversion to handle the passage from the Underlying
20477         Type to the Base Type when calling Build_To_Any_Call and
20478         Build_From_Any_Call.
20479         (Build_Actual_Object_Declaration): Set Object's Ekind to E_Variable or
20480         E_Constant, depending upon Variable formal.
20481         (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
20482         PolyORB_Support.Build_Subprogram_Receiving_Stubs): For a formal
20483         parameter that requires an extra constrained parameter, declare
20484         temporary for actual as a variable, not a constant.
20485         (Add_RACW_Primitive_Declarations_And_Bodies): Generate bodies only when
20486         the unit being compiled is the one that contains the stub type.
20487         Change primitive operation name for the RACW associated with a RAS
20488         from Call to _Call so it cannot clash with any legal identifier.
20489         (PolyORB_Support.Add_RACW_Write_Attribute): Remove unused constant
20490         Is_RAS.
20491         (Append_RACW_Bodies): New subprogram.
20492         (Expand_Receiving_Stubs_Bodies): Pass a 'Stmts' list to
20493         Add_Receiving_Stubs_To_Declarations functions.
20494         When expanding a package body, this list correspond to the
20495         statements in the HSS at the end of the pacakge.
20496         When expanding a package spec, this list correspond to the
20497         spec declarations.
20498         (Add_Receiving_Stubs_To_Declarations): Append the function
20499         registering the receiving stubs at the end of the 'Stmts' list.
20500         (RCI_Package_Locator): Pass the new Version generic formal when
20501         instantiating a RCI_Locator package.
20502         (Build_From_Any_Function): To compute the High bound for an
20503         unconstrained array actual, we add the Low bound with the length.
20504         Thus we must convert the low bound and the length to an appropriate
20505         type before doing the sum.
20506         (Build_Subprogram_Receiving_Stubs, PolyORB):
20507          * Retrieve the extra formals parameters at the
20508            end of the parameter stream.
20509          * Use Move_Any_Value to write back out parameters
20510            after executing the request as it is more efficient
20511            than Copy_Any_Value.
20512          * Build the any containing Extra Formals with the
20513            appropriate typecode.
20514         (PolyORB_Support.Helpers.Append_Record_Traversal): Nothing to do for an
20515         empty Component_List.
20516         (Build_Actual_Object_Declaration): New subprogram. Build and insert into
20517         the tree the declaration for an object that serves as actual parameter
20518         in server-side stubs.
20519         (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
20520         PolyORB_Support.Build_Subprogram_Receiving_Stubs):
20521         Use Build_Actual_Object_Declaration to prepare the actuals.
20522         (Add_Parameter_To_NVList): Set the parameter mode to In for
20523         Extra Constrained Parameters.
20524         (Build_General_Calling_Stubs): Set the parameter type to boolean for
20525         Extra Constrained parameters.
20526         (Build_To_Any_Function, Build_From_Any_Function,
20527         Built_TypeCode_Function): When Typ is implicit, call the correct
20528         function with the first not implicit parent type.
20529         (TC_Rec_Add_Process_Element, FA_Rec_Add_Process_Element,
20530         (FA_Ary_Add_Process_Element): When Datum is an Any, we cannot infer the
20531         typecode from the Etype. Therefore we retrieve the correct typecode
20532         with a call to Get_Any_Type.
20533         (Copy_Specification): Do controlling formal type substitution based on
20534         Is_Controlling_Formal flag, instead of caller-provided object type.
20535         (Build_Subprogram_Calling_Stubs): When retrieveing the original spec for
20536         a RACW primitive operation, we might get a subprogram declaration for an
20537         ancestor of the RACW designated type (not for the designated type
20538         itself), in the case where this operation is inherited. In this case we
20539         have no easy means of determining the original tagged type for which
20540         the primitive was declared, so instead we now rely on
20541         Copy_Specification to use the Is_Controlling_Formal flag to determine
20542         which formals require type substitution.
20543
20544 2007-04-06  Robert Dewar  <dewar@adacore.com>
20545             Ed Schonberg  <schonberg@adacore.com>
20546
20547         * exp_intr.adb (Expand_Exception_Call): Calls to subprograms in
20548         GNAT.Current_Exception are not allowed if pragma Restrictions
20549         (No_Exception_Propagation) is set and in any case make the associated
20550         handler unsuitable as a target for a local raise statement.
20551         (Expand_Dispatching_Constructor_Call): Replace generation of call to the
20552         run-time subprogram CW_Membership by call to Build_CW_Membership.
20553         (Expand_Dispatching_Constructor_Call): If the dispatching tag is given
20554         by a function call, a temporary must be created before expanding the
20555         Constructor_Call itself, to prevent out-of-order elaboration in the
20556         back-end when stack checking is enabled..
20557
20558 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
20559
20560         * exp_pakd.adb (Expand_Packed_Boolean_Operator): The bounds of the
20561         result are the bounds of the left operand, not the right.
20562
20563 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
20564
20565         * exp_strm.adb
20566         (Build_Mutable_Record_Write_Procedure): For an Unchecked_Union type, use
20567          discriminant defaults.
20568         (Build_Record_Or_Elementary_Output_Procedure): Ditto.
20569         (Make_Component_List_Attributes): Ditto.
20570
20571 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
20572             Bob Duff  <duff@adacore.com>
20573
20574         * sem_aggr.adb (Resolve_Record_Aggregate): In semantics-only mode treat
20575         an association with a box as providing a value even though the
20576         initialization procedure for the type is not available.
20577         (Resolve_Record_Aggregate): Check that a choice of an association with a
20578         box corresponds to a component of the type.
20579         (Resolve_Record_Aggregate): Split Is_Abstract flag into
20580         Is_Abstract_Subprogram and Is_Abstract_Type.
20581
20582         * exp_tss.adb (Base_Init_Proc): Use Is_Type instead of Type_Kind for
20583         assert.
20584
20585         * inline.adb (Add_Inlined_Body): Split Is_Abstract flag into
20586         Is_Abstract_Subprogram and Is_Abstract_Type. Make sure these are
20587         called only when appropriate.
20588
20589 2007-04-06  Olivier Hainque  <hainque@adacore.com>
20590
20591         * g-alleve.ads (Low Level Vector type definitions): Map each to the
20592         associated vector view instead of all to the unsigned char view.
20593
20594         * g-altcon.adb (Generic_Conversions): New internal generic package,
20595         offering facilities for all the Vector/View conversion routines
20596         implemented by this unit.
20597         (To_View/To_Vector - all versions): Reimplemented in a systematic
20598         manner, using the internal Generic_Conversions facilities.
20599
20600 2007-04-06  Pascal Obry  <obry@adacore.com>
20601
20602         * g-arrspl.adb (Free) [Element_Access]: New routine to free the source
20603         string.
20604         (Create): Free the source string before storing the new one.
20605
20606 2007-04-06  Vincent Celier  <celier@adacore.com>
20607
20608         * g-debpoo.adb (Validity): New package with a complete new
20609         implementation of subprograms Is_Valid and Set_Valid.
20610         (Is_Valid): Move to local package Validity
20611         (Set_Valid): Move to local package Validity
20612
20613 2007-04-06  Arnaud Charlet  <charlet@adacore.com>
20614             Pablo Oliveira  <oliveira@adacore.com>
20615
20616         * g-expect.adb (Get_Command_Output): When expanding the output buffer
20617         we must ensure that there is enough place for the new data we are going
20618         to copy in.
20619
20620 2007-04-06  Thomas Quinot  <quinot@adacore.com>
20621
20622         * g-md5.ads, g-md5.adb (Digest): Fix off-by-one error in padding
20623         computation.
20624
20625 2007-04-06  Jose Ruiz  <ruiz@adacore.com>
20626             Vincent Celier  <celier@adacore.com>
20627
20628         * gnatcmd.adb (B_Start): Add prefix of binder generated file.
20629         (Stack_String): Add this String that contains the name of the Stack
20630         package in the project file.
20631         (Packages_To_Check_By_Stack): Add this list that contains the packages
20632         to be checked by gnatstack, which are the naming and the stack packages.
20633         (Check_Files): If no .ci files were specified for gnatstack we add all
20634         the .ci files belonging to the projects, including binder generated
20635         files.
20636         (Non_VMS_Usage): Document that gnatstack accept project file switches.
20637         (GNATCmd): Update the B_Start variable if we are in a VMS environment.
20638         Add gnatstack to the list of commands that use project file related
20639         switches, and get the single attribute Switches from the stack package
20640         in a project file when calling gnatstack. Parse the -U flag for
20641         processing files belonging to all projects in the project tree.
20642         Remove all processing for command Setup
20643
20644         * prj-attr.adb: Add new package Stack with single attribute Switches
20645
20646         * vms_conv.ads (Command_Type): Add command Stack.
20647         Move to body declarations that are only used in the body: types Item_Id,
20648         Translation_Type, Item_Ptr, Item and its subtypes.
20649
20650         * vms_conv.adb: (Initialize): Add data for new command Stack.
20651         Add declarations moved from the spec: types Item_Id, Translation_Type,
20652         Item_Ptr, Item and its subtypes.
20653         (Cargs_Buffer): New table
20654         (Cargs): New Boolean global variable
20655         (Process_Buffer): New procedure to create arguments
20656         (Place): Put character in table Buffer or Cargs_Buffer depending on the
20657          value of Cargs.
20658         (Process_Argument): Set Cargs when processing qualifiers for GNAT
20659         COMPILE
20660         (VMS_Conversion): Call Process_Buffer for table Buffer and, if it is not
20661         empty, for table Cargs_Buffer.
20662         (Initialize): Remove component Setup in Command_List
20663
20664 2007-04-06  Vincent Celier  <celier@adacore.com>
20665
20666         * gprep.adb (Process_Files.Process_One_File): Use full file name when
20667         issuing pragma Source_Reference.
20668
20669 2007-04-06  Emmanuel Briot  <briot@adacore.com>
20670
20671         * g-regpat.adb (Parse_Posix_Character_Class): Fix handling of
20672         [[:xdigit:]] character class.
20673         Also raise an exception when an invalid character class is used.
20674
20675 2007-04-06  Pascal Obry  <obry@adacore.com>
20676
20677         * i-cstrea.ads: (fopen): Add encoding parameter.
20678         (freopen): Idem.
20679         Change reference from a-sysdep.c to sysdep.c in comment.
20680         Update copyright notice.
20681         This set of patch add support for the encoding form parameter.
20682
20683         * mingw32.h (S2WSU): New macro to convert from a string to a
20684         wide-string using the UTF-8 encoding. The S2WS macro supports now only
20685         standard 8bits encoding.
20686         (WS2SU): As above but converting from wide-sring to string.
20687         This is needed as it is necessary to have access to both versions in the
20688         runtime for the form parameter encoding support.
20689         This set of patch add support for the encoding form parameter.
20690         (S2WS): Improve implementation to handle cases where the filename is not
20691         UTF-8 encoded. In this case we default to using the current code page
20692         for the conversion.
20693
20694         * s-crtl-vms64.ads, s-crtl.ads (Filename_Encoding): New enumeration
20695         type (UTF8, ASCII_8bits). This enumeration has a rep clause to match
20696         the constants defined in adaint.h.
20697         (fopen): Add encoding parameter.
20698         (freopen): Idem.
20699
20700         * s-ficobl.ads (AFCB): Add Encoding field to record the filename
20701         encoding. This is needed for the Reset routine (freopen low level-call).
20702
20703         * s-fileio.adb (Open): Decode encoding form parameter and set the
20704         corresponding encoding value into AFCB structure.
20705         (Reset): Pass the encoding value to freopen.
20706         (Close): Move the call to Lock_Task to the beginning of the procedure.
20707
20708 2007-04-06  Geert Bosch  <bosch@adacore.com>
20709             Robert Dewar  <dewar@adacore.com>
20710
20711         * i-fortra.ads: Add Double_Complex type.
20712
20713         * impunit.adb: (Is_Known_Unit): New function
20714         Add Gnat.Byte_Swapping
20715         Add GNAT.SHA1
20716         Add new Ada 2005 units
20717         Ada.Numerics.Generic_Complex_Arrays, Ada.Numerics.Generic_Real_Arrays,
20718         Ada.Numerics.Complex_Arrays, Ada.Numerics.Real_Arrays,
20719         Ada.Numerics.Long_Complex_Arrays, Ada.Numerics.Long_Long_Complex_Arrays,
20720         Ada.Numerics.Long_Long_Real_Arrays and Ada.Numerics.Long_Real_Arrays
20721
20722         * impunit.ads (Is_Known_Unit): New function
20723
20724         * a-ngcoar.adb, a-ngcoar.ads, a-ngrear.adb,
20725         a-ngrear.ads, a-nlcoar.ads, a-nllcar.ads, a-nllrar.ads, a-nlrear.ads,
20726         a-nucoar.ads, a-nurear.ads, g-bytswa.adb, g-bytswa-x86.adb,
20727         g-bytswa.ads, g-sha1.adb, g-sha1.ads, i-forbla.ads, i-forlap.ads,
20728         s-gearop.adb, s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb,
20729         s-gecola.ads, s-gerebl.adb, s-gerebl.ads, s-gerela.adb, s-gerela.ads:
20730         New files.
20731
20732         * Makefile.rtl: Add g-bytswa, g-sha1, a-fzteio and a-izteio
20733
20734         * a-fzteio.ads, a-izteio.ads: New Ada 2005 run-time units.
20735
20736 2007-04-06  Eric Botcazou  <botcazou@adacore.com>
20737             Arnaud Charlet  <charlet@adacore.com>
20738
20739         * init.c: Reuse PA/HP-UX code for IA-64/HP-UX, except
20740         __gnat_adjust_context_for_raise.
20741         (__gnat_init_float): on x86 vxworks 5.x and 6.x, we use the same
20742         implementation of floating point operations as native x86 targets.
20743         So the FPU should be initialized in the same way using finit. Fix
20744         floating point operations accuracy issues.
20745         (__gnat_install_handler, case FreeBSD): Use proper type for sa_sigaction
20746         member in struct sigaction, so as to avoid warning for incompatible
20747         pointer types.
20748
20749 2007-04-06 Serguei Rybin  <rybin@adacore.com>
20750
20751         * lib.ads, lib.adb (Tree_Read): Release the memory occupied by the
20752         switches from previously loaded tree
20753
20754 2007-04-06  Thomas Quinot  <quinot@adacore.com>
20755
20756         * lib-writ.adb (Write_With_Lines): Factor duplicated code between the
20757         cases where a given dependency has a body or not.
20758         (Write_With_File_Names): New subprogram, common code for the two cases
20759         above.
20760
20761 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
20762             Javier Miranda  <miranda@adacore.com>
20763
20764         * lib-xref.ads, lib-xref.adb:
20765         Modify the loop that collects type references, to include interface
20766         types that the type implements. List each of these interfaces when
20767         building the entry for the type.
20768         (Generate_Definition): Initialize component Def and Typ of new entry
20769         in table Xrefs, to avoid to have these components unitialized.
20770         (Output_References): Split Is_Abstract flag into
20771         Is_Abstract_Subprogram and Is_Abstract_Type.
20772         (Generate_Reference): Add barrier to do not generate the warning
20773         associated with Ada 2005 entities with entities generated by the
20774         expander.
20775
20776 2007-04-06  Robert Dewar  <dewar@adacore.com>
20777             Arnaud Charlet  <charlet@adacore.com>
20778             Vincent Celier  <celier@adacore.com>
20779
20780         * gnat_rm.texi, gnat_ugn.texi: Add -gnatyl documentation
20781         Update 'Exception Handling Control' chapter which was outdated.
20782         Minor fix to documentation of -gnatwq
20783         Remove section "Adapting the Run Time to a New C++ Compiler" because
20784         it is now obsolete.
20785         Add passage on need of -nostart-files in some non-ada-main cases.
20786         Document new switch -eS (/STANDARD_OUTPUT_FOR_COMMANDS) for gnatmake
20787         Update documentation about Interfacing with C++
20788         Add documentation for new gnatmake switch -p
20789         Add missing protocol part in URLs.
20790         Document -gnatyA
20791         Document pragma Compile_Time_Error
20792         Add documentation for Object_Size indicating that stand alone
20793         objects can have a larger size in some cases.
20794         Add node for GNAT.Byte_Swapping, GNAT.SHA1
20795         Update reference to the Ravenscar profile.
20796         Document pragma Unreferenced_Objects
20797
20798         * gnat-style.texi: Fix typo
20799
20800 2007-04-06  Vincent Celier  <celier@adacore.com>
20801
20802         * mlib.adb (Building_Library): Only output "building a library..." in
20803         verbose mode
20804
20805         * mlib-prj.adb (Build_Library): Only output lists of object and ALI
20806         files in verbose mode.
20807
20808         * mlib-utl.adb (Ar): Only output the first object files when not in
20809         verbose mode.
20810         (Gcc): Do not display all the object files if not in verbose mode, only
20811         the first one.
20812
20813 2007-04-06  Robert Dewar  <dewar@adacore.com>
20814
20815         * namet.ads, namet.adb (wn): Improve this debugging routine. Calling
20816         it no longer destroys the contents of Name_Buffer or Name_Len and
20817         non-standard and invalid names are handled better.
20818         (Get_Decoded_Name_String): Improve performance by using
20819         Name_Has_No_Encodings flag in the name table.
20820         (Is_Valid_Name): New function to determine whether a Name_Id is valid.
20821         Used for debugging printouts.
20822
20823 2007-04-06  Robert Dewar  <dewar@adacore.com>
20824             Javier Miranda  <miranda@adacore.com>
20825             Bob Duff  <duff@adacore.com>
20826
20827         * par-ch3.adb: (P_Type_Declaration): Set Type_Token_Location
20828         (P_Interface_Type_Definition): Remove the formal Is_Synchronized because
20829         there is no need to generate always a record_definition_node in case
20830         of synchronized interface types.
20831         (P_Type_Declaration): Update calls to P_Interface_Type_Definition.
20832         (P_Null_Exclusion): For AI-447: Remove warnings about "not null" being
20833         illegal in Ada 95, in cases where it is legal. Change the warnings to
20834         errors in other cases. Don't give the error unless the "not null"
20835         parses properly. Correct the source position at which the error occurs.
20836         (P_Known_Discriminant_Part_Opt): Pass Allow_Anonymous_In_95 => True to
20837         P_Null_Exclusion, to suppress "not null" warnings.
20838         (P_Identifier_Declarations): Code cleanup. Removed unrequired label and
20839         associated goto statements.
20840
20841         * par-endh.adb (Pop_End_Context): Allow more flexibility in placement
20842         of END RECORD
20843
20844         * scans.ads (Type_Token_Location): New flag
20845
20846         * par-ch6.adb (P_Mode): Check specifically for case of IN ACCESS
20847         (P_Formal_Part): Pass Allow_Anonymous_In_95 => True to
20848         P_Null_Exclusion, to suppress "not null" warnings.
20849
20850 2007-04-06  Robert Dewar  <dewar@adacore.com>
20851             Javier Miranda  <miranda@adacore.com>
20852             Bob Duff  <duff@adacore.com>
20853             Vincent Celier  <celier@adacore.com>
20854
20855         * par-prag.adb (Prag): Add dummy entry for pragma Compile_Time_Error
20856         (Extensions_Allowed): No longer sets Ada_Version
20857         Entry for pragma Unreferenced_Objects
20858
20859         * sem_prag.adb (Analyze_Pragma, case Priority): Force with of
20860         system.tasking if pragma priority used in a procedure
20861         (Analyze_Pragma, case Warning): Handle dot warning switches
20862         (Process_Compile_Time_Warning_Or_Error): New procedure
20863         (Analyze_Pragma): Add processing for Compile_Time_Error
20864         Add support for extra arguments External_Name and Link_Name.
20865         Remove code associated with pragmas CPP_Virtual and CPP_Vtable.
20866         (Process_Import_Or_Interface): Add support for the use of pragma Import
20867         with tagged types.
20868         (Extensions_Allowed): No longer affects Ada_Version
20869         (Analyze_Pragma): Split Is_Abstract flag into Is_Abstract_Subprogram and
20870         Is_Abstract_Type. Make sure these are called only when appropriate.
20871         Add processing for pragma Unreferenced_Objects
20872
20873         * snames.h, snames.ads, snames.adb: Add entry for pragma
20874         Compile_Time_Error
20875         Add new standard name Minimum_Binder_Options for new gprmake
20876         Add new standard names for gprmake: Archive_Suffix,
20877         Library_Auto_Init_Supported, Library_Major_Minor_Id_Supported,
20878         Library_Support, Library_Version_Options,
20879         Shared_Library_Minimum_Options,
20880         Shared_Library_Prefix, Shared_Library_Suffix, Symbolic_Link_Supported.
20881         Change Name_Call to Name_uCall so that it cannot clash with a legal
20882         subprogram name.
20883         Add new standard names Mapping_Spec_Suffix and Mapping_Body_Suffix
20884         Append C_Plus_Plus to convention identifiers as synonym for CPP
20885         Add new standard names Stack and Builder_Switches
20886         Add new standard names: Compiler_Minimum_Options, Global_Config_File,
20887         Library_Builder, Local_Config_File, Objects_Path, Objects_Path_File,
20888         Run_Path_Option, Toolchain_Version.
20889         Entry for pragma Unreferenced_Objects
20890
20891         * switch-c.adb (Scan_Front_End_Switches): Store correct -gnateD
20892         switches, without repetition of "eD". Make sure that last character of
20893         -gnatep= switch is not taken as -gnat switch character.
20894         Complete rewrite of circuit for handling saving compilation options
20895         Occasioned by need to support dot switchs for -gnatw, but cleans up
20896         things in general.
20897         -gnatX does not affect Ada_Version
20898         Include -gnatyA in -gnatg style switches
20899
20900         * sem_warn.ads, sem_warn.adb (Output_Unreferenced_Messages): Exclude
20901         warnings on return objects.
20902         (Warn_On_Useless_Assignment): Exclude warnings on return objects
20903         (Set_Dot_Warning_Switch): New procedure
20904         (Check_References): Add missing case of test for
20905         Has_Pragma_Unreferenced_Objects
20906         (Output_Unreferenced_Messages): Implement effect of new pragma
20907         Unreferenced_Objects, remove special casing of limited controlled
20908         variables.
20909
20910 2007-04-06  Vincent Celier  <celier@adacore.com>
20911
20912         * prj-ext.adb (Initialize_Project_Path): New procedure that initialize
20913         the default project path, initially done during elaboration of the
20914         package.
20915         If the prefix returned by Sdefault is null, get the prefix from a call
20916         to Executable_Prefix_Path.
20917         (Project_Path): Call Initialize_Project_Path if Current_Project_Path is
20918         null.
20919
20920         * prj-nmsc.adb (Get_Path_Names_And_Record_Sources): Use the non
20921         canonical directory name to open the directory from which files are
20922         retrieved.
20923         (Record_Other_Sources): Idem.
20924         (Locate_Directory): Add the possibility to create automatically missing
20925         directories when Setup_Projects is True.
20926         Call Locate_Directory so that the directory will be created when
20927         Setup_Projects is True, for object dir, library dir, library ALI dir,
20928         library source copy dir and exec dir.
20929
20930         * prj-pp.adb (Max_Line_Length): Set to 255 for compatibility with older
20931         versions of GNAT.
20932
20933 2007-04-06  Robert Dewar  <dewar@adacore.com>
20934
20935         * sem_ch13.ads, sem_ch13.adb (Adjust_Record_For_Reverse_Bit_Order):
20936         Use First/Next_Component_Or_Discriminant
20937         (Analyze_Record_Representation_Clause):
20938         Use First/Next_Component_Or_Discriminant
20939         (Check_Component_Overlap): Use First/Next_Component_Or_Discriminant
20940         (Analyze_Attribute_Definition_Clause, case Value_Size): Reject
20941         definition if type is unconstrained.
20942         (Adjust_Record_For_Reverse_Bit_Order): New procedure
20943         (Analyze_Attribute_Definition_Clause): Split Is_Abstract flag into
20944         Is_Abstract_Subprogram and Is_Abstract_Type.
20945         (Adjust_Record_For_Reverse_Bit_Order): New procedure
20946
20947         * repinfo.adb (List_Record_Info): Use First/
20948         Next_Component_Or_Discriminant.
20949
20950         * style.ads, styleg-c.adb, styleg-c.ads (Check_Array_Attribute_Index):
20951         New procedure.
20952
20953         * stylesw.ads, stylesw.adb: Recognize new -gnatyA style switch
20954         Include -gnatyA in default switches
20955
20956         * opt.ads: (Warn_On_Non_Local_Exception): New flag
20957         (Warn_On_Reverse_Bit_Order): New flag
20958         (Extensions_Allowed): Update the documentation.
20959         (Warn_On_Questionable_Missing_Parens): Now on by default
20960
20961         * usage.adb: Add documentation of -gnatw.x/X switches
20962         Document new -gnatyA style switch
20963         -gnatq warnings are on by default
20964
20965 2007-04-06  Ed Falis  <falis@adacore.com>
20966
20967         * s-carun8.adb, s-carsi8.adb (Compare_Array_?8): modify so that last
20968         full word is no longer compared twice.
20969
20970 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
20971
20972         * sem_ch10.adb (Install_Limited_Context_Clauses.
20973         Expand_Limited_With_Clause): Use a new copy of selector name in the
20974         call to Make_With_Clause. This fixes the tree structure for ASIS
20975         purposes. Nothing is changed in the compiler behaviour.
20976         (Process_Body_Clauses): Handle properly use clauses whose prefix is
20977         a package renaming.
20978         (Install_Limited_With_Clauses): Do not install non-limited view when it
20979         is still incomplete.
20980
20981 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
20982             Gary Dismukes  <dismukes@adacore.com>
20983
20984         * sem_ch12.adb (Check_Generic_Actuals): Use first subtype of actual
20985         when capturing size information, instead of base type, which for a
20986         formal array type will be the unconstrained type.
20987         (Analyze_Formal_Object_Declaration): Add check for illegal default
20988         expressions for a formal in object of a limited type.
20989         (Instantiate_Object): Ditto.
20990         (Check_Formal_Package_Instance): Skip entities that are formal objects,
20991         because they were defaulted in the formal package and no check applies
20992         to them.
20993         (Check_Formal_Package_Instance): Extend conformance check to other
20994         discrete types beyond Integer.
20995         (Process_Default): Copy directly the unmatched formal. A generic copy
20996         has already been performed in Analyze_Formal_Package.
20997         (Analyze_Associations): If a formal subprogram has no match, check for
20998         partial parametrization before looking for a default, to prevent
20999         spurious errors.
21000         (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation): Do
21001         not set the instantiation environment before analyzing the actuals.
21002         Fixes regression on 8515-003 with implementation of AI-133.
21003         Set_Instance_Env checks whether the generic unit is a predefined
21004         unit, in which case the instance must be analyzed with the latest Ada
21005         mode. This setting must take place after analysis of the actuals,
21006         because the actuals must be analyzed and frozen in the Ada mode extant
21007         outside of the current instantiation.
21008         (Save_Env, Restore_Env): Preserve and restore the configuration
21009         parameters so that predefined units can be compiled in the proper Ada
21010         mode.
21011         (Analyze_Formal_Object_Declaration,Analyze_Formal_Subprogram,
21012         Instantiate_Type): Split Is_Abstract flag into Is_Abstract_Subprogram
21013         and Is_Abstract_Type.
21014         (Analyze_Formal_Package): For better error recovery, Add exception
21015         handler to catch Instantion_Error, which can be raised in
21016         Analyze_Associations
21017
21018 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
21019             Bob Duff  <duff@adacore.com>
21020             Gary Dismukes  <dismukes@adacore.com>
21021
21022         * sem_ch4.adb (Try_Primitive_Operation): The call is legal if the
21023         prefix type is a discriminated subtype of the type of the formal.
21024         (Analyze_Allocator): Collect all coextensions regardless of the context.
21025         Whether they can be allocated statically is determined in exp_ch4.
21026         (Analyze_Selected_Component): If the prefix is a limited view and the
21027         non-limited view is available, use the non-limited one.
21028         (Operator_Check): For "X'Access = Y'Access" (which is ambiguous, and
21029         therefore illegal), suggest a qualified expression rather than a type
21030         conversion, because a type conversion would be illegal in this context.
21031         (Anayze_Allocator): Trace recursively all nested allocators so that all
21032         coextensions are on the corresponding list for the root. Do no mark
21033         coextensions if the root allocator is within a declaration for a stack-
21034         allocated object, because the access discriminants will be allocated on
21035         the stack as well.
21036         (Analyze_Call): Remove restriction on calls to limited functions for the
21037         cases of generic actuals for formal objects, defaults for formal objects
21038         and defaults for record components.
21039         (Analyze_Allocator): Before analysis, chain coextensions on the proper
21040         element list. Their expansion is delayed until the enclosing allocator
21041         is processed and its finalization list constructed.
21042         (Try_Primitive_Operation): If the prefix is a concurrent type, looks
21043         for an operation with the given name among the primitive operations of
21044         the corresponding record type.
21045         (Analyze_Selected_Component): If the prefix is a task type that
21046         implements an interface, and there is no entry with the given name,
21047         check whether there is another primitive operation (e.g. a function)
21048         with that name.
21049         (Try_Object_Operation, Analyze_One_Call, Try_Indexed_Call): Handle
21050         properly the indexing of a function call written in prefix form, where
21051         the function returns an array type, and all parameters of the function
21052         except the first have defaults.
21053         (Analyze_Equality_Op): If this is a call to an implicit inequality, keep
21054         the original operands, rather than relocating them, for efficiency and
21055         to work properly when an operand is overloaded.
21056         (Analyze_Allocator,Operator_Check,Remove_Abstract_Operations): Split
21057         Is_Abstract flag into Is_Abstract_Subprogram and Is_Abstract_Type.
21058         (Analyze_Selected_Component): If the prefix is a private extension, only
21059         scan the visible components, not those of the full view.
21060         (Try_Primitive_Operation): If the operation is a procedure, collect all
21061         possible interpretations, as for a function, because in the presence of
21062         classwide parameters several primitive operations of the type can match
21063         the given arguments.
21064
21065 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
21066             Robert Dewar  <dewar@adacore.com>
21067
21068         * sem_ch5.adb (Analyze_Assignment): Reject a right-hand side that is a
21069         tag-indeterminate call to an abstract function, when the left-hand side
21070         is not classwide.
21071         (Analyze_Loop_Statement): Improve detection of infinite loops
21072
21073 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
21074             Thomas Quinot  <quinot@adacore.com>
21075
21076         * sem_ch7.ads, sem_ch7.adb (Inspect_Deferred_Constant_Completion): Move
21077         out of Analyze_Package_Declaration, because processing must be applied
21078         to package bodies as well, for deferred constants completed by pragmas.
21079         (Analyze_Package_Declaration): When the package declaration being
21080         analyzed does not require an explicit body, call Check_Completion.
21081         (May_Need_Implicit_Body): An implicit body is required when a package
21082         spec contains the declaration of a remote access-to-classwide type.
21083         (Analyze_Package_Body): If the package contains RACWs, append the
21084         pending subprogram bodies generated by exp_dist at the end of the body.
21085         (New_Private_Type,Unit_Requires_Body): Split Is_Abstract flag into
21086         Is_Abstract_Subprogram and Is_Abstract_Type.
21087         (Preserve_Full_Attributes): The full entity list is not an attribute
21088         that must be preserved from full to partial view.
21089
21090         * sem_dist.adb (Add_RAS_Dereference_TSS):
21091         Change primitive name to _Call so it cannot clash with any legal
21092         identifier, and be special-cased in Check_Completion.
21093         Mark the full view of the designated type for the RACW associated with
21094         a RAS as Comes_From_Source to get proper view switching when installing
21095         private declarations.
21096         Provite a placeholder nested package body along with the nested spec
21097         to have a place for Append_RACW_Bodies to generate the calling stubs
21098         and stream attributes.
21099
21100 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
21101             Robert Dewar  <dewar@adacore.com>
21102
21103         * sem_ch8.adb (Has_Components): If the argument is an incomplete type
21104         that is a limited view, check the non-limited view if available.
21105         (Undefined): Refine error message for missing with of Text_IO
21106         (Find_Expanded_Name): Use Is_Known_Unit for more accurate error message
21107         to distinguish real missing with cases.
21108         Fix format of all missing with messages
21109         (Analyze_Subprogram_Renaming): Emit proper error message on illegal
21110         renaming as body when renamed entity is abstract.
21111
21112 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
21113             Javier Miranda  <miranda@adacore.com>
21114
21115         * sem_type.ads, sem_type.adb (Has_Abstract_Interpretation): Make
21116         predicate recursive, to handle complex expressions on literals whose
21117         spurious ambiguity comes from the abstract interpretation of some
21118         subexpression.
21119         (Interface_Present_In_Ancestor): Add support to concurrent record
21120         types.
21121         (Add_One_Interp,Disambiguate): Split Is_Abstract flag into
21122         Is_Abstract_Subprogram and Is_Abstract_Type.
21123
21124 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
21125             Javier Miranda  <miranda@adacore.com>
21126
21127         * sem_util.ads, sem_util.adb (Object_Access_Level): If the object is a
21128         dereference of a local object R created as a reference to another
21129         object O, use the access level of O.
21130         (Matches_Prefixed_View_Profile): Use common predicate Conforming_Types,
21131         rather than local Same_Formal_Type, to check whether protected operation
21132         overrides an inherited one.
21133         (Same_Formal_Type): New predicate, used when matching signatures of
21134         overriding synchronized operations, to handle the case when a formal
21135         has a type that is a generic actual.
21136         (Is_Aliased_View): Replace check on E_Task_Type and E_Protected_Type by
21137         predicate Is_Concurrent_Type. This ensures supportin case of subtypes.
21138         (Needs_One_Actual): New predicate, for Ada 2005 use, to resolve
21139         syntactic ambiguities involving indexing of function calls that return
21140         arrays.
21141         (Abstract_Interface_List): New subprogram that returns the list of
21142         abstract interfaces associated with a concurrent type or a
21143         concurrent record type.
21144         (Interface_Present_In_Parent): New subprogram used to check if a
21145         given type or some of its parents implement a given interface.
21146         (Collect_Abstract_Interfaces): Add support for concurrent types
21147         with interface types.
21148         (Has_Abstract_Interfaces): Add support for concurrent types with
21149         interface types.
21150         (Is_Parent): New subprogram that determines whether E1 is a parent
21151         of E2. For a concurrent type its parent is the first element of its
21152         list of interface types; for other types this function provides the
21153         same result than Is_Ancestor.
21154         (Enclosing_Subprogram): Add test for N_Extended_Return_Statement.
21155         (Collect_Synchronized_Interfaces): Removed because the subprogram
21156         Collect_Abstract_Interfaces provides this functionality.
21157         (Collect_Abstract_Interfaces): Minor update to give support to
21158         concurrent types and thus avoid undesired code duplication.
21159         (Get_Subprogram_Entity): Handle entry calls.
21160         (May_Be_Lvalue): Include actuals that appear as in-out parameters in
21161         entry calls.
21162         (Enter_Name): Do not give -gnatwh hiding warning for record component
21163         entities, they never result in hiding.
21164
21165 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
21166             Robert Dewar  <dewar@adacore.com>
21167
21168         * sinfo.ads, sinfo.adb (Coextensions): New element list for allocators,
21169         to chain nested components that are allocators for access discriminants
21170         of the enclosing object.
21171         Add N_Push and N_Pop nodes
21172         New field Exception_Label added
21173         (Local_Raise_Statements): New field in N_Exception_Handler_Node
21174         (Local_Raise_Not_OK): New flag in N_Exception_Handler_Node
21175         (Is_Coextension): New flag for allocators, to mark allocators that
21176         correspond to access discriminants of dynamically allocated objects.
21177         (N_Block_Statement): Document the fact that the corresponding entity
21178         can be an E_Return_Statement.
21179         (Is_Coextension): New flag for allocators.
21180         Remove all code for DSP option
21181
21182         * sprint.ads, sprint.adb: Display basic information for class_wide
21183         subtypes. Add handling of N_Push and N_Pop nodes
21184
21185 2007-04-06  Arnaud Charlet  <charlet@adacore.com>
21186
21187         * s-tpobop.adb (Exceptional_Complete_Entry_Body): Undefer abortion
21188         before propagating exception.
21189
21190 2007-04-06  Olivier Hainque  <hainque@adacore.com>
21191
21192         * tracebak.c (PC_ADJUST - ia64): -4 instead of -16, expected to yield
21193         an address always within the call instruction from a return address.
21194
21195 2007-04-06  Olivier Hainque  <hainque@adacore.com>
21196             Eric Botcazou  <botcazou@adacore.com>
21197
21198         * trans.c (call_to_gnu) <TYPE_RETURNS_BY_TARGET_PTR_P>: Return an
21199         expression with a COMPOUND_EXPR including the call instead of emitting
21200         the call directly here.
21201         (gnat_to_gnu) <N_Slice>: Do not return a non-constant low bound if the
21202         high bound is constant and the slice is empty.  Tidy.
21203         (tree_transform, case N_Op_Not): Handle properly the case where the
21204         operation applies to a private type whose full view is a modular type.
21205         (Case_Statement_To_gnu): If an alternative is an E_Constant with an
21206         Address_Clause, use the associated Expression as the GNAT tree
21207         representing the choice value to ensure the corresponding GCC tree is
21208         of the proper kind.
21209         (maybe_stabilize_reference): Stabilize COMPOUND_EXPRs as a whole
21210         instead of just the operands, as the base GCC stabilize_reference does.
21211         <CALL_EXPR>: New case. Directly stabilize the call if an lvalue is not
21212         requested; otherwise fail.
21213         (addressable_p) <COMPONENT_REF>: Do not test DECL_NONADDRESSABLE_P.
21214
21215 2007-04-06  Thomas Quinot  <quinot@adacore.com>
21216
21217         * uintp.ads, uintp.adb (UI_Div_Rem): New subprogram, extending previous
21218         implementation of UI_Div.
21219         (UI_Div): Reimplement as a call to UI_Div_Rem.
21220         (UI_Rem): Take advantage of the fact that UI_Div_Rem provides the
21221         remainder, avoiding the cost of a multiplication and a subtraction.
21222         (UI_Modular_Inverse): Take advantage of the fact that UI_Div_Rem
21223         provides both quotient and remainder in a single computation.
21224         (UI_Modular_Exponentiation, UI_Modular_Inverse): New modular arithmetic
21225         functions for uint.
21226         (UI_Modular_Inverse): Add a note that the behaviour of this subprogram
21227         is undefined if the given n is not inversible.
21228
21229 2007-04-06  Olivier Hainque  <hainque@adacore.com>
21230
21231         * utils2.c (known_alignment): Handle COMPOUND_EXPR, COND_EXPR and
21232         BIT_AND_EXPR. Handle also VIEW_CONVERT_EXPR, as the other conversion
21233         opcodes.
21234
21235 2007-04-06  Eric Botcazou  <botcazou@adacore.com>
21236             Olivier Hainque  <hainque@adacore.com>
21237
21238         * utils.c (update_pointer_to): Make a copy of the couple of FIELD_DECLs
21239         when updating the contents of the old pointer to an unconstrained array.
21240         (end_subprog_body): Set error_gnat_node to Empty.
21241         (write_record_type_debug_info): Do not be unduly sparing with our bytes.
21242         (unchecked_convert): For subtype to base type conversions, require that
21243         the source be a subtype if it is an integer type.
21244         (builtin_decls): New global, vector of available builtin functions.
21245         (gnat_pushdecl): Add global builtin function declaration nodes to the
21246         builtin_decls list.
21247         (gnat_install_builtins): Adjust comments.
21248         (builtin_function): Set DECL_BUILTIN_CLASS and DECL_FUNCTION_CODE before
21249         calling gnat_pushdecl, so that it knows when it handed a builtin
21250         function declaration node.
21251         (builtin_decl_for): Search the builtin_decls list.
21252
21253 2007-04-06  Eric Botcazou  <botcazou@adacore.com>
21254
21255         * s-stchop-vxworks.adb:
21256         (Stack_Check): Raise Storage_Error if the argument has wrapped around.
21257
21258 2007-04-06  Robert Dewar  <dewar@adacore.com>
21259             Arnaud Charlet  <charlet@adacore.com>
21260
21261         * a-diroro.ads: Inserted the pragma Unimplemented_Unit
21262
21263         * bindgen.adb (Gen_Output_File_Ada): Generate pragma Ada_95 at start
21264         of files
21265         Add mention of -Sev (set initialize_scalars option from environment
21266         variable at run time) in gnatbind usage message.
21267
21268         * elists.ads, elists.adb: (Append_Unique_Elmt): New procedure
21269
21270         * fname-uf.ads: Minor comment fix
21271
21272         * osint.ads: Change pragma Elaborate to Elaborate_All
21273
21274         * par-load.adb: Add documentation.
21275
21276         * sem_cat.ads, sem_cat.adb: Minor code reorganization
21277
21278         * s-parint.ads (RCI_Locator) : Add 'Version' generic formal
21279
21280         * s-secsta.ads: Extra comments
21281
21282         * s-soflin.ads: Minor comment fixes
21283
21284         * s-stratt.ads (Block_Stream_Ops_OK): Removed.
21285
21286         * s-wchcon.ads: Minor comment addition
21287
21288         * treepr.adb: Minor change in message
21289         (Print_Name,Print_Node): Make these debug printouts more robust: print
21290         "no such..." instead of crashing on bad input.
21291
21292 2007-03-30  Rafael Ávila de Espíndola  <espindola@google.com>
21293
21294         * trans.c (Attribute_to_gnu): Use get_signed_or_unsigned_type
21295         instead of gnat_signed_or_unsigned_type.
21296         * utils.c (gnat_signed_or_unsigned_type): Remove.
21297         * misc.c (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove
21298         * gigi.h (gnat_signed_or_unsigned_type): Remove
21299
21300 2007-03-09  Roger Sayle  <roger@eyesopen.com>
21301
21302         * cuintp.c (UI_To_gnu): Use fold_buildN calls instead of calling
21303         fold with the result of buildN.
21304         * decl.c (gnat_to_gnu_entity): Likewise.
21305         * trans.c (Attribute_to_gnu, gnat_to_gnu, emit_check): Likewise.
21306         * utils.c (finish_record_type, merge_sizes, max_size, convert):
21307         Likewise.
21308         * utils2.c (gnat_truthvalue_conversion, compare_arrays,
21309         nonbinary_modular_operation, build_binary_op, build_unary_op,
21310         build_cond_expr): Likewise.
21311
21312         * utils.c (convert): Use fold_build1 when casting values to void.
21313         * utils2.c (gnat_truthvalue_conversion): Use build_int_cst and
21314         fold_convert instead of convert when appropriate.
21315
21316 2007-03-01  Brooks Moses  <brooks.moses@codesourcery.com>
21317
21318         * Make-lang.in: Add install-pdf target as copied from
21319         automake v1.10 rules.
21320
21321 2007-02-28  Andreas Schwab  <schwab@suse.de>
21322
21323         * Make-lang.in (doc/gnat_ugn_unw.texi): Depend on
21324         $(gcc_docdir)/include/gcc-common.texi and gcc-vers.texi.
21325         (doc/gnat-style.info): Likewise.
21326
21327 2007-02-26  Brooks Moses  <brooks.moses@codesourcery.com>
21328
21329         * gnat-style.texi: Standardize title page.
21330         * gnat_rm.texi: Likewise.
21331         * gnat_ugn.texi: Likewise.
21332
21333 2007-02-25  Mark Mitchell  <mark@codesourcery.com>
21334
21335         * decl.c (annotate_value): Adjust for refactoring of tree_map
21336         hierarchy.
21337
21338 2007-02-24  Mark Mitchell  <mark@codesourcery.com>
21339
21340         * decl.c (annotate_value): Adjust for refactoring of tree_map
21341         hierarchy.
21342
21343 2007-02-21  Ed Schonberg  <schonberg@adacore.com>
21344
21345         PR ada/18819
21346         * sem_ch3.adb (Create_Constrained_Components): for a subtype of an
21347         untagged derived type, add hidden components to keep discriminant
21348         layout consistent, when a given discriminant of the derived type
21349         constraints several discriminants of the parent type.
21350
21351 2007-02-16  Eric Botcazou  <ebotcazou@adacore.com>
21352             Sandra Loosemore  <sandra@codesourcery.com>
21353
21354         * trans.c (call_to_gnu):  Use build_call_list instead of build3 to
21355         build the call expression.
21356         (gnat_stabilize_reference_1): Handle tcc_vl_exp.
21357         * utils.c (max_size) <tcc_exceptional>: Delete.
21358         <tcc_vl_exp>: New case.
21359         <tcc_expression>: Delete CALL_EXPR subcase.
21360         (build_global_cdtor): Use build_call_nary instead of build3.
21361         * utils2.c (build_call_1_expr): Likewise.
21362         (build_call_2_expr): Likewise.
21363         (build_call_0_expr): Likewise.
21364         (build_call_alloc_dealloc): Likewise.
21365
21366 2007-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
21367
21368         * raise-gcc.c (get_region_description_for, get_call_site_action_for,
21369         get_action_description_for): Replace _Unwind_Word with _uleb128_t
21370         and _Unwind_SWord with _sleb128_t.
21371
21372 2007-02-06  Paolo Bonzini  <bonzini@gnu.org>
21373
21374         * Make-lang.in (ada/decl.o): Add gt-ada-decl.h dependency.
21375         * decl.c: Include gt-ada-decl.h.
21376         (annotate_value_cache): New.
21377         (annotate_value): Use it instead of TREE_COMPLEXITY.
21378
21379 2007-02-03  Kazu Hirata  <kazu@codesourcery.com>
21380
21381         * misc.c, utils2.c: Fix comment typos.
21382
21383 2007-01-24  Roger Sayle  <roger@eyesopen.com>
21384
21385         * decl.c (gnat_to_gnu_entity): Use TREE_OVERFLOW instead of
21386         TREE_CONSTANT_OVERFLOW.
21387         (allocatable_size_p, annotate_value): Likewise.
21388         * trans.c (gnat_to_gnu): Likewise.
21389         * utils.c (unchecked_convert): Likewise.
21390         * utils2.c (build_simple_component_ref): Likewise.
21391
21392 2007-01-23  Richard Guenther  <rguenther@suse.de>
21393
21394         PR bootstrap/30541
21395         * Make-lang.in: Replace invocations of gnatmake with $(GNATMAKE).
21396         (gnatboot2): Pass staged GNATMAKE instead of STAGE_PREFIX.
21397         (gnatboot3): Likewise.
21398         (GNATBIND): Do not define.
21399         * Makefile.in (GNATBIND): Do not define.
21400
21401 2007-01-08  Richard Guenther  <rguenther@suse.de>
21402
21403         * cuintp.c (build_cst_from_int): Use built_int_cst_type.
21404         * trans.c (gnat_to_gnu): Likewise.
21405
21406 2006-12-07  Geoffrey Keating  <geoffk@apple.com>
21407
21408         * Makefile.in: Replace CROSS_COMPILE with CROSS_DIRECTORY_STRUCTURE.
21409         * adaint.c: Likewise.
21410
21411 2006-12-05  Aldy Hernandez  <aldyh@redhat.com>
21412
21413         Merge from gimple-tuples-branch:
21414         2006-11-02  Aldy Hernandez  <aldyh@redhat.com>
21415
21416         * ada-tree.h (lang_tree_node): Handle gimple tuples.
21417         * trans.c (gnat_gimplify_expr): Replace MODIFY_EXPR with
21418         GIMPLE_MODIFY_STMT.
21419
21420 2006-12-02  Kazu Hirata  <kazu@codesourcery.com>
21421
21422         * Makefile.in, mingw32.h, trans.c: Fix comment typos.
21423         * gnat_rm.texi, gnat_ugn.texi: Follow spelling conventions.
21424         Fix typos.
21425
21426 2006-11-17  Eric Botcazou  <ebotcazou@adacore.com>
21427
21428         PR ada/27936
21429         * trans.c (add_decl_expr): Do not dynamically elaborate padded objects
21430         if the initializer takes into account the padding.
21431
21432 2006-11-11  Richard Guenther  <rguenther@suse.de>
21433
21434         * trans.c (maybe_stabilize_reference): Remove handling of
21435         FIX_CEIL_EXPR, FIX_FLOOR_EXPR and FIX_ROUND_EXPR.
21436
21437 2006-11-05  Arnaud Charlet  <charlet@adacore.com>
21438
21439         PR ada/29707
21440         * s-osinte-linux-alpha.ads, s-osinte-linux-hppa.ads
21441         (To_Target_Priority): New function.
21442
21443 2006-10-31  Robert Dewar  <dewar@adacore.com>
21444
21445         * a-taster.adb, s-traent-vms.adb, a-elchha.ads, a-elchha.adb,
21446         a-exctra.adb, ali-util.adb, exp_disp.ads, s-stalib.ads, s-traent.adb,
21447         s-addope.ads, s-addope.adb, a-rbtgso.adb, a-crbltr.ads, a-coprnu.adb,
21448         a-cgcaso.adb, a-cgarso.adb, a-cgaaso.adb, a-coormu.adb, a-ciormu.adb,
21449         a-rbtgso.ads, a-stunha.adb, a-stunha.adb, a-ciorma.adb, a-coorma.adb,
21450         a-secain.adb, a-slcain.adb, a-shcain.adb, a-stwiha.adb, a-stwiha.adb,
21451         a-strhas.adb, a-strhas.adb, a-stzhas.adb, a-stzhas.adb, a-szuzha.adb,
21452         a-chacon.adb, a-chacon.adb, a-chacon.ads, a-stboha.adb, a-swbwha.adb,
21453         a-szbzha.adb: Minor reformatting. Fix header.
21454
21455         * a-numaux-x86.adb: Add parentheses for use of unary minus
21456         * a-ngcefu.adb: Supply missing parentheses for unary minus
21457         * a-ngcoty.adb: Add parens for use of unary minus
21458         * a-ngelfu.adb: Add missing parens for unary minus
21459         * a-tifiio.adb: Add parentheses for uses of unary minus
21460
21461 2006-10-31  Robert Dewar  <dewar@adacore.com>
21462             Bob Duff  <duff@adacore.com>
21463             Ed Schonberg  <schonberg@adacore.com>
21464
21465         * sem_res.adb (Resolve_Unary_Op): Add warning for use of unary minus
21466         with multiplying operator.
21467         (Expected_Type_Is_Any_Real): New function to determine from the Parent
21468         pointer whether the context expects "any real type".
21469         (Resolve_Arithmetic_Op): Do not give an error on calls to the
21470         universal_fixed "*" and "/" operators when they are used in a context
21471         that expects any real type. Also set the type of the node to
21472         Universal_Real in this case, because downstream processing requires it
21473         (mainly static expression evaluation).
21474         Reword some continuation messages
21475         Add some \\ sequences to continuation messages
21476         (Resolve_Call): Refine infinite recursion case. The test has been
21477         sharpened to eliminate some false positives.
21478         Check for Current_Task usage now includes entry barrier, and is now a
21479         warning, not an error.
21480         (Resolve): If the call is ambiguous, indicate whether an interpretation
21481         is an inherited operation.
21482         (Check_Aggr): When resolving aggregates, skip associations with a box,
21483         which are priori correct, and will be replaced by an actual default
21484         expression in the course of expansion.
21485         (Resolve_Type_Conversion): Add missing support for conversion from
21486         a class-wide interface to a tagged type. Minor code cleanup.
21487         (Valid_Tagged_Converion): Add support for abstact interface type
21488         conversions.
21489         (Resolve_Selected_Component): Call Generate_Reference here rather than
21490         during analysis, and use May_Be_Lvalue to distinguish read/write.
21491         (Valid_Array_Conversion): New procedure, abstracted from
21492         Valid_Conversion, to incorporate accessibility checks for arrays of
21493         anonymous access types.
21494         (Valid_Conversion): For a conversion to a numeric type occurring in an
21495         instance or inlined body, no need to check that the operand type is
21496         numeric, since this has been checked during analysis of the template.
21497         Remove legacy test for scope name Unchecked_Conversion.
21498
21499         * sem_res.ads: Minor reformatting
21500
21501         * a-except.adb, a-except-2005.adb: Turn off subprogram ordering
21502         (PE_Current_Task_In_Entry_Body): New exception code
21503         (SE_Restriction_Violation): Removed, not used
21504
21505         * a-except.ads:  Update comments.
21506
21507         * types.h, types.ads: Add definition for Validity_Check
21508         (PE_Current_Task_In_Entry_Body): New exception code
21509         (SE_Restriction_Violation): Removed, not used
21510
21511 2006-10-31  Thomas Quinot  <quinot@adacore.com>
21512
21513         * g-socthi-vxworks.adb (C_Gethostbyname): Fix wrong test for returned
21514         error status.
21515
21516 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
21517             Jose Ruiz  <ruiz@adacore.com>
21518
21519         * a-calend-vms.adb (Leap_Sec_Ops): Temp body for package in private
21520         part of Ada.Calendar: all subprogram raise Unimplemented.
21521         (Split_W_Offset): Temp function body, raising Unimplemented
21522
21523         * a-calend.ads, a-calend-vms.ads:
21524         Add imported variable Invalid_TZ_Offset used to designate targets unable
21525         to support time zones.
21526         (Unimplemented): Temporary function raised by the body of new
21527         subprograms below.
21528         (Leap_Sec_Ops): New package in the private part of Ada.Calendar. This
21529         unit provides handling of leap seconds and is used by the new Ada 2005
21530         packages Ada.Calendar.Arithmetic and Ada.Calendar.Formatting.
21531         (Split_W_Offset): Identical spec to that of Ada.Calendar.Split. This
21532         version returns an extra value which is the offset to UTC.
21533
21534         * a-calend.adb (Split_W_Offset): Add call to localtime_tzoff.
21535         (Leap_Sec_Ops): New body for package in private part of Ada.Calendar.
21536         (Split_W_Offset): New function body.
21537         (Time_Of): When a date is close to UNIX epoch, compute the time for
21538         that date plus one day (that amount is later substracted after
21539         executing mktime) so there are no problems with time zone adjustments.
21540
21541         * a-calend-mingw.adb: Remove Windows specific version no longer needed.
21542
21543         * a-calari.ads, a-calari.adb, a-calfor.ads, a-calfor.adb,
21544         a-catizo.ads, a-catizo.adb: New files.
21545
21546         * impunit.adb: Add new Ada 2005 entries
21547
21548         * sysdep.c: Add external variable __gnat_invalid_tz_offset.
21549         Rename all occurences of "__gnat_localtime_r" to
21550         "__gnat_localtime_tzoff".
21551         (__gnat_localtime_tzoff for Windows): Add logic to retrieve the time
21552         zone data and calculate the GMT offset.
21553         (__gnat_localtime_tzoff for Darwin, Free BSD, Linux, Lynx and Tru64):
21554         Use the field "tm_gmtoff" to extract the GMT offset.
21555         (__gnat_localtime_tzoff for AIX, HPUX, SGI Irix and Sun Solaris): Use
21556         the external variable "timezone" to calculate the GMT offset.
21557
21558 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
21559             Jose Ruiz  <ruiz@adacore.com>
21560
21561         * s-osinte-posix.adb, s-osinte-linux.ads, s-osinte-freebsd.adb,
21562         s-osinte-freebsd.ads, s-osinte-solaris-posix.ads, s-osinte-hpux.ads,
21563         s-osinte-darwin.adb, s-osinte-darwin.ads, s-osinte-lynxos-3.ads,
21564         s-osinte-lynxos-3.adb (To_Target_Priority): New function maps from
21565         System.Any_Priority to a POSIX priority on the target.
21566
21567         * system-linux-ia64.ads:
21568         Extend range of Priority types on Linux to use the whole range made
21569         available by the system.
21570
21571         * s-osinte-aix.adb, s-osinte-aix.ads (To_Target_Priority): New
21572         function maps from System.Any_Priority to a POSIX priority on the
21573         target.
21574         (PTHREAD_PRIO_PROTECT): Set real value.
21575         (PTHREAD_PRIO_INHERIT): Now a function.
21576         (SIGCPUFAIL): New signal.
21577         (Reserved): Add SIGALRM1, SIGWAITING, SIGCPUFAIL, since these signals
21578         are documented as reserved by the OS.
21579
21580         * system-aix.ads: Use the full range of priorities provided by the
21581         system on AIX.
21582
21583         * s-taprop-posix.adb: Call new function To_Target_Priority.
21584         (Set_Priority): Take into account Task_Dispatching_Policy and
21585         Priority_Specific_Dispatching pragmas when determining if Round Robin
21586         must be used for scheduling the task.
21587
21588         * system-linux-x86_64.ads, system-linux-x86.ads,
21589         system-linux-ppc.ads: Extend range of Priority types on Linux to use
21590         the whole range made available by the system.
21591
21592         * s-taprop-vms.adb, s-taprop-mingw.adb, s-taprop-irix.adb,
21593         s-taprop-tru64.adb, s-taprop-linux.adb, s-taprop-hpux-dce.adb,
21594         s-taprop-lynxos.adb (Finalize_TCB): invalidate the stack-check cache
21595         when deallocating the TCB in order to avoid potential references to
21596         deallocated data.
21597         (Set_Priority): Take into account Task_Dispatching_Policy and
21598         Priority_Specific_Dispatching pragmas when determining if Round Robin
21599         or FIFO within priorities must be used for scheduling the task.
21600
21601         * s-taprop-vxworks.adb (Enter_Task): Store the user-level task id in
21602         the Thread field (to be used internally by the run-time system) and the
21603         kernel-level task id in the LWP field (to be used by the debugger).
21604         (Create_Task): Reorganize to unify the calls to taskSpawn into a single
21605         instance, and propagate the current task options to the spawned task.
21606         (Set_Priority): Take into account Priority_Specific_Dispatching pragmas.
21607         (Initialize): Set Round Robin dispatching when the corresponding pragma
21608         is in effect.
21609
21610 2006-10-31  Robert Dewar  <dewar@adacore.com>
21611
21612         * system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
21613         system-linux-hppa.ads, system-hpux-ia64.ads,
21614         system-lynxos-ppc.ads, system-lynxos-x86.ads, system-tru64.ads,
21615         system-vxworks-sparcv9.ads, system-solaris-x86.ads,
21616         system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads,
21617         system-vxworks-m68k.ads, system-vxworks-mips.ads, system-interix.ads,
21618         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
21619         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
21620         system-vxworks-alpha.ads, system.ads: Add pragma Warnings(Off,
21621         Default_Bit_Order) to kill constant condition warnings for references
21622         to this switch.
21623
21624 2006-10-31  Vincent Celier  <celier@adacore.com>
21625             Eric Botcazou  <ebotcazou@adacore.com>
21626
21627         * mlib-tgt-lynxos.adb, mlib-tgt-mingw.adb, mlib-tgt-tru64.adb,
21628         mlib-tgt-aix.adb, mlib-tgt-irix.adb, mlib-tgt-hpux.adb,
21629         mlib-tgt-linux.adb, mlib-tgt-solaris.adb: Use Append_To, instead of
21630         Ext_To, when building the library file name
21631
21632         * mlib-tgt-vxworks.adb: ditto.
21633         (Get_Target_Suffix): Add support for x86 targets.
21634
21635         * mlib-fil.ads, mlib-fil.adb: (Append_To): New function
21636
21637         * mlib-tgt-darwin.adb:
21638         Use Append_To, instead of Ext_To, when building the library file name
21639         (Flat_Namespace): New global variable.
21640         (No_Shared_Libgcc_Switch): Rename to No_Shared_Libgcc_Options.
21641         (Shared_Libgcc_Switch): Rename to With_Shared_Libgcc_Options.
21642         (Link_Shared_Libgcc): Delete.
21643         (Build_Dynamic_Library): Adjust for above changes.
21644         Use Opt package.
21645         (Build_Dynamic_Library): Pass -shared-libgcc if GCC 4 or later.
21646
21647 2006-10-31  Eric Botcazou  <ebotcazou@adacore.com>
21648
21649         * s-taprop-solaris.adb: (Time_Slice_Val): Change type to Integer.
21650         (Initialize): Add type conversions required by above change.
21651
21652 2006-10-31  Jose Ruiz  <ruiz@adacore.com>
21653
21654         * s-osinte-vxworks.ads, s-osinte-vxworks.adb:
21655         (getpid): New body for this function that uses the underlying taskIdSelf
21656         function for VxWorks 5 and VxWorks 6 in kernel mode.
21657         (unsigned_int): New type, modular to allow logical bit operations.
21658         (taskOptionsGet): New imported function.
21659
21660         * s-taspri-vxworks.ads (Private_Data): Change the type for the LWP
21661         field to be compliant with the type used by the corresponding operating
21662         system primitive.
21663
21664 2006-10-31  Pascal Obry  <obry@adacore.com>
21665             Eric Botcazou  <ebotcazou@adacore.com>
21666             Vincent Celier  <celier@adacore.com>
21667
21668         * adaint.c (__gnat_get_libraries_from_registry): Call explicitly the
21669         ASCII version of the registry API. This is needed as the GNAT runtime
21670         is now UNICODE by default.
21671         Include version.h.
21672         (get_gcc_version): Do not hardcode the return value.
21673         (__gnat_file_time_name): On Windows properly set the default returned
21674         value to -1 which corresponds to Invalid_Time.
21675         (__gnat_fopen): New routine. A simple wrapper on all plateforms
21676          except on Windows where it does conversion for unicode support.
21677         (__gnat_freopen): Idem.
21678         (__gnat_locate_exec_on_path): If environment variable PATH does not
21679         exist, return a NULL pointer
21680
21681         * adaint.h: (__gnat_fopen): Declare.
21682         (__gnat_freopen): Likewise.
21683
21684         * mingw32.h (_tfreopen): Define this macro here for older MingW
21685         version.
21686         Activate the unicode support on platforms using a MingW runtime
21687         version 3.9 or newer.
21688
21689         * s-crtl.ads (fopen): Is now an import to the wrapper __gnat_freopen.
21690         This is needed for proper unicode support on Windows.
21691         (freopen): Idem.
21692
21693 2006-10-31  Eric Botcazou  <ebotcazou@adacore.com>
21694             Nicolas Setton  <setton@adacore.com>
21695             Olivier Hainque  <hainque@adacore.com>
21696             Gary Dismukes  <dismukes@adacore.com>
21697
21698         * gigi.h: (tree_code_for_record_type): Declare.
21699         (add_global_renaming_pointer): Rename to record_global_renaming_pointer.
21700         (get_global_renaming_pointers): Rename to
21701         invalidate_global_renaming_pointers.
21702         (static_ctors): Delete.
21703         (static_dtors): Likewise.
21704         (gnat_write_global_declarations): Declare.
21705         (create_var_decl): Adjust descriptive comment to indicate that the
21706         subprogram may return a CONST_DECL node.
21707         (create_true_var_decl): Declare new function, similar to
21708         create_var_decl but forcing the creation of a VAR_DECL node.
21709         (get_global_renaming_pointers): Declare.
21710         (add_global_renaming_pointer): Likewise.
21711
21712         * ada-tree.h (DECL_READONLY_ONCE_ELAB): New macro.
21713
21714         * decl.c (gnat_to_gnu_entity) <case E_Function>: Don't copy the type
21715         tree before setting TREE_ADDRESSABLE for by-reference return mechanism
21716         processing.
21717         (gnat_to_gnu_entity): Remove From_With_Type from computation for
21718         imported_p.
21719         <E_Access_Type>: Use the Non_Limited_View as the full view of the
21720         designated type if the pointer comes from a limited_with clause.  Make
21721         incomplete designated type if it is in the main unit and has a freeze
21722         node.
21723         <E_Incomplete_Type>: Rework to treat Non_Limited_View, Full_View, and
21724         Underlying_Full_View similarly.  Return earlier if the full view already
21725         has an associated tree.
21726         (gnat_to_gnu_entity) <E_Record_Type>: Restore comment.
21727         (gnat_to_gnu_entity) <E_Record_Type>: Do not use a dummy type.
21728         (gnat_to_gnu_entity) <E_Variable>: Set TYPE_REF_CAN_ALIAS_ALL on the
21729         reference type built for objects with an address clause.
21730         Use create_true_var_decl with const_flag set for
21731         DECL_CONST_CORRESPONDING_VARs, ensuring a VAR_DECL is created with
21732         TREE_READONLY set.
21733         (gnat_to_gnu_entity, case E_Enumeration_Type): Set TYPE_NAME
21734         for Character and Wide_Character types. This info is read by the
21735         dwarf-2 writer, and is needed to be able to use the command "ptype
21736         character" in the debugger.
21737         (gnat_to_gnu_entity): When generating a type representing
21738         a Character or Wide_Character type, set the flag TYPE_STRING_FLAG,
21739         so that debug writers can distinguish it from ordinary integers.
21740         (elaborate_expression_1): Test the DECL_READONLY_ONCE_ELAB flag in
21741         addition to TREE_READONLY to assert the constantness of variables for
21742         elaboration purposes.
21743         (gnat_to_gnu_entity, subprogram cases): Change loops on formal
21744         parameters to call new Einfo function First_Formal_With_Extras.
21745         (gnat_to_gnu_entity): In type_annotate mode, replace a discriminant of a
21746         protected type with its corresponding discriminant, to obtain a usable
21747         declaration
21748         (gnat_to_gnu_entity) <E_Access_Protected_Subprogram_Type>: Be prepared
21749         for a multiple elaboration of the "equivalent" type.
21750         (gnat_to_gnu_entity): Adjust for renaming of add_global_renaming_pointer
21751         into record_global_renaming_pointer.
21752         (gnat_to_gnu_entity) <E_Array_Type>: Do not force
21753         TYPE_NONALIASED_COMPONENT to 0 if the element type is an aggregate.
21754         <E_Array_Subtype>: Likewise.
21755         (gnat_to_gnu_entity) <E_Incomplete_Subtype>: Add support for regular
21756         incomplete subtypes and incomplete subtypes of incomplete types visible
21757         through a limited with clause.
21758         (gnat_to_gnu_entity) <E_Array_Subtype>: Take into account the bounds of
21759         the base index type for the maximum size of the array only if they are
21760         constant.
21761         (gnat_to_gnu_entity, renaming object case): Do not wrap up the
21762         expression into a SAVE_EXPR if stabilization failed.
21763
21764         * utils.c (create_subprog_decl): Turn TREE_ADDRESSABLE on the type of
21765         a result decl into DECL_BY_REFERENCE on this decl, now what is expected
21766         by lower level compilation passes.
21767         (gnat_genericize): New function, lowering a function body to GENERIC.
21768         Turn the type of RESULT_DECL into a real reference type if the decl
21769         has been marked DECL_BY_REFERENCE, and adjust references to the latter
21770         accordingly.
21771         (gnat_genericize_r): New function. Tree walking callback for
21772         gnat_genericize.
21773         (convert_from_reference, is_byref_result): New functions. Helpers for
21774         gnat_genericize_r.
21775         (create_type_decl): Call gnat_pushdecl before calling
21776         rest_of_decl_compilation, to make sure that field TYPE_NAME of
21777         type_decl is properly set before calling the debug information writers.
21778         (write_record_type_debug_info): The heuristics which compute the
21779         alignment of a field in a variant record might not be accurate. Add a
21780         safety test to make sure no alignment is set to a smaller value than
21781         the alignment of the field type.
21782         (make_dummy_type): Use the Non_Limited_View as the underlying type if
21783         the type comes from a limited_with clause. Do not loop on the full view.
21784         (GET_GNU_TREE, SET_GNU_TREE, PRESENT_GNU_TREE): New macros.
21785         (dummy_node_table): New global variable, moved from decl.c.
21786         (GET_DUMMY_NODE, SET_DUMMY_NODE, PRESENT_DUMMY_NODE): New macros.
21787         (save_gnu_tree): Use above macros.
21788         (get_gnu_tree): Likewise.
21789         (present_gnu_tree): Likewise.
21790         (init_dummy_type): New function, moved from decl.c. Use above macros.
21791         (make_dummy_type): Likewise.
21792         (tree_code_for_record_type): New function extracted from make_dummy_type
21793         (init_gigi_decls): Set DECL_IS_MALLOC on gnat_malloc.
21794         (static_ctors): Change it to a vector, make static.
21795         (static_dtors): Likewise.
21796         (end_subprog_body): Adjust for above change.
21797         (build_global_cdtor): Moved from trans.c.
21798         (gnat_write_global_declarations): Emit global constructor and
21799         destructor, and call cgraph_optimize before emitting debug info for
21800         global declarations.
21801         (global_decls): New global variable.
21802         (gnat_pushdecl): Store the global declarations in global_decls, for
21803         later use.
21804         (gnat_write_global_declarations): Emit debug information for global
21805          declarations.
21806         (create_var_decl_1): Former create_var_decl, with an extra argument to
21807          state whether the creation of a CONST_DECL is allowed.
21808         (create_var_decl): Behavior unchanged. Now a wrapper around
21809         create_var_decl_1 allowing CONST_DECL creation.
21810         (create_true_var_decl): New function, similar to create_var_decl but
21811         forcing the creation of a VAR_DECL node (CONST_DECL not allowed).
21812         (create_field_decl): Do not always mark the field as addressable
21813         if its type is an aggregate.
21814         (global_renaming_pointers): New static variable.
21815         (add_global_renaming_pointer): New function.
21816         (get_global_renaming_pointers): Likewise.
21817
21818         * misc.c (gnat_dwarf_name): New function.
21819         (LANG_HOOKS_DWARF_NAME): Define to gnat_dwarf_name.
21820         (gnat_post_options): Add comment about structural alias analysis.
21821         (gnat_parse_file): Do not call cgraph_optimize here.
21822         (LANG_HOOKS_WRITE_GLOBALS): Define to gnat_write_global_declarations.
21823
21824         * trans.c (process_freeze_entity): Don't abort if we already have a
21825         non dummy GCC tree for a Concurrent_Record_Type, as it might
21826         legitimately have been elaborated while processing the associated
21827         Concurrent_Type prior to this explicit freeze node.
21828         (Identifier_to_gnu): Do not make a variable referenced in a SJLJ
21829         exception handler volatile if it is of variable size.
21830         (process_type): Remove bypass for types coming from a limited_with
21831         clause.
21832         (call_to_gnu): When processing the copy-out of a N_Type_Conversion GNAT
21833         actual, convert the corresponding gnu_actual to the real destination
21834         type when necessary.
21835         (add_decl_expr): Set the DECL_READONLY_ONCE_ELAB flag on variables
21836         originally TREE_READONLY but whose elaboration cannot be performed
21837         statically.
21838         Part of fix for F504-021.
21839         (tree_transform, subprogram cases): Change loops on formal parameters to
21840         call new Einfo function First_Formal_With_Extras.
21841         (gnat_to_gnu) <N_Op_Shift_Right_Arithmetic>: Ignore constant overflow
21842         stemming from type conversion for the lhs.
21843         (Attribute_to_gnu) <Attr_Alignment>: Also divide the alignment by the
21844         number of bits per unit for components of records.
21845         (gnat_to_gnu) <N_Code_Statement>: Mark operands addressable if needed.
21846         (Handled_Sequence_Of_Statements_to_gnu): Register the cleanup associated
21847         with At_End_Proc after the SJLJ EH cleanup.
21848         (Compilation_Unit_to_gnu): Call elaborate_all_entities only on the main
21849         compilation unit.
21850         (elaborate_all_entities): Do not retest type_annotate_only.
21851         (tree_transform) <N_Abstract_Subprogram_Declaration>: Process the
21852         result type of an abstract subprogram, which may be an itype associated
21853         with an anonymous access result (related to AI-318-02).
21854         (build_global_cdtor): Move to utils.c.
21855         (Case_Statement_to_gnu): Avoid adding the choice of a when statement if
21856         this choice is not a null tree nor an integer constant.
21857         (gigi): Run unshare_save_expr via walk_tree_without_duplicates
21858         on the body of elaboration routines instead of mark_unvisited.
21859         (add_stmt): Do not mark the tree.
21860         (add_decl_expr): Tweak comment.
21861         (mark_unvisited): Delete.
21862         (unshare_save_expr): New static function.
21863         (call_to_gnu): Issue an error when making a temporary around a
21864         procedure call because of non-addressable actual parameter if the
21865         type of the formal is by_reference.
21866         (Compilation_Unit_to_gnu): Invalidate the global renaming pointers
21867         after building the elaboration routine.
21868
21869 2006-10-31  Bob Duff  <duff@adacore.com>
21870
21871         * a-filico.adb (Finalize(List_Controller)): Mark the finalization list
21872         as finalization-started, so we can raise Program_Error on 'new'.
21873
21874         * s-finimp.adb: Raise Program_Error on 'new' if finalization of the
21875         collection has already started.
21876
21877         * s-finimp.ads (Collection_Finalization_Started): Added new special
21878         flag value for indicating that a collection's finalization has started.
21879
21880         * s-tassta.adb (Create_Task): Raise Program_Error on an attempt to
21881         create a task whose master has already waited for dependent tasks.
21882
21883 2006-10-31  Robert Dewar  <dewar@adacore.com>
21884
21885         * lib.adb, lib.ads: (In_Predefined_Unit): New functions
21886
21887         * a-finali.ads, a-ngcoty.ads, a-strbou.ads, a-stream.ads, a-strmap.ads,
21888         a-strunb.ads, a-stwibo.ads, a-stwima.ads, a-stwiun.ads, a-taside.ads,
21889         a-coorse.ads, a-convec.ads, a-coinve.ads, a-cohama.ads, a-ciorse.ads,
21890         a-cihama.ads, a-cihase.ads, a-cohase.ads, a-ciorma.ads, a-coorma.ads,
21891         a-ciormu.ads, a-coormu.ads, a-stzbou.ads, a-stzmap.ads, a-stzunb.ads,
21892         a-except-2005.ads: Add pragma Preelaborable_Warning
21893
21894 2006-10-31  Robert Dewar  <dewar@adacore.com>
21895             Jose Ruiz  <ruiz@adacore.com>
21896
21897         * a-dispat.ads, a-dispat.adb, a-diroro.ads, a-diroro.adb: New files.
21898
21899         * ali.adb (Get_Name): Properly handle scanning of wide character names
21900         encoded with brackets notation.
21901         (Known_ALI_Lines): Add S lines to this list.
21902         (Scan_ALI): Acquire S (priority specific dispatching) lines.
21903         New flag Elaborate_All_Desirable in unit table
21904
21905         * ali.ads (Priority_Specific_Dispatching): Add this range of
21906         identifiers to be used for Priority_Specific_Dispatching table entries.
21907         (ALIs_Record): Add First_Specific_Dispatching and
21908         Last_Specific_Dispatching that point to the first and last entries
21909         respectively in the priority specific dispatching table for this unit.
21910         (Specific_Dispatching): Add this table for storing each S (priority
21911         specific dispatching) line encountered in the input ALI file.
21912         New flag Elaborate_All_Desirable in unit table
21913
21914         * bcheck.adb: (Check_Configuration_Consistency): Add call to
21915         Check_Consistent_Dispatching_Policy.
21916         (Check_Consistent_Dispatching_Policy): Add this procedure in charge of
21917         verifying that the use of Priority_Specific_Dispatching,
21918         Task_Dispatching_Policy, and Locking_Policy is consistent across the
21919         partition.
21920
21921         * bindgen.adb: (Public_Version_Warning): function removed.
21922         (Set_PSD_Pragma_Table): Add this procedure in charge of getting the
21923         required information from ALI files in order to initialize the table
21924         containing the specific dispatching policy.
21925         (Gen_Adainit_Ada): Generate the variables required for priority specific
21926         dispatching entries (__gl_priority_specific_dispatching and
21927         __gl_num_specific_dispatching).
21928         (Gen_Adainit_C): Generate the variables required for priority specific
21929         dispatching entries (__gl_priority_specific_dispatching and
21930         __gl_num_specific_dispatching).
21931         (Gen_Output_File): Acquire settings for Priority_Specific_Dispatching
21932         pragma entries.
21933         (Gen_Restrictions_String_1, Gen_Restrictions_String_2): Removed.
21934         (Gen_Restrictions_Ada, Gen_Restrictions_C, Set_Boolean): New procedures.
21935         (Tab_To): Removed.
21936         (Gen_Output_File_Ada/_C): Set directly __gl_xxx variables instead of
21937         a call to gnat_set_globals.
21938         Generate a string containing settings from
21939         Priority_Specific_Dispatching pragma entries.
21940         (Gen_Object_Files_Options): Do not include the runtime libraries when
21941         pragma No_Run_Time is specified.
21942
21943         * init.c (__gnat_install_handler, case FreeBSD): Use SA_SIGINFO, for
21944         consistency with s-intman-posix.adb.
21945         (__gnat_error_handler, case FreeBSD): Account for the fact that the
21946         handler is installed with SA_SIGINFO.
21947         (__gnat_adjust_context_for_raise, FreeBSD case): New function for
21948         FreeBSD ZCX support, copied from Linux version.
21949         Add MaRTE-specific definitions for the linux target. Redefine sigaction,
21950         sigfillset, and sigemptyset so the routines defined by MaRTE.
21951         (__gl_priority_specific_dispatching): Add this variable that stores the
21952         string containing priority specific dispatching policies in the
21953         partition.
21954         (__gl_num_specific_dispatching): Add this variable that indicates the
21955         highest priority for which a priority specific dispatching pragma
21956         applies.
21957         (__gnat_get_specific_dispatching): Add this routine that returns the
21958         priority specific dispatching policy, as set by a
21959         Priority_Specific_Dispatching pragma appearing anywhere in the current
21960         partition. The input argument is the priority number, and the result
21961         is the upper case first character of the policy name.
21962         (__gnat_set_globals): Now a dummy function.
21963         (__gnat_handle_vms_condition): Feed adjust_context_for_raise with
21964         mechargs instead of sigargs, as the latter can be retrieved from the
21965         former and sigargs is not what we want on ia64.
21966         (__gnat_adjust_context_for_raise, alpha-vms): Fetch sigargs from the
21967         mechargs argument.
21968         (__gnat_adjust_context_for_raise, ia64-vms): New function.
21969         (tasking_error): Remove unused symbol.
21970         (_abort_signal): Move this symbol to the IRIX specific part since this
21971         is the only target that uses this definition.
21972         (Check_Abort_Status): Move this symbol to the IRIX specific part since
21973         this is the only target that uses this definition.
21974         (Lock_Task): Remove unused symbol.
21975         (Unlock_Task): Remove unused symbol.
21976
21977         * lib-writ.adb (Write_ALI): Output new S lines for
21978         Priority_Specific_Dispatching pragmas.
21979         Implement new flag BD for elaborate body desirable
21980
21981         * lib-writ.ads: Document S lines for Priority Specific Dispatching.
21982         (Specific_Dispatching): Add this table for storing the entries
21983         corresponding to Priority_Specific_Dispatching pragmas.
21984         Document new BD flag for elaborate body desirable
21985
21986         * par-prag.adb (Prag): Add Priority_Specific_Dispatching to the list
21987         of known pragmas.
21988
21989 2006-10-31  Javier Miranda  <miranda@adacore.com>
21990
21991         * a-tags.ads, a-tags.adb:
21992         (Predefined_DT): New function that improves readability of the code.
21993         (Get_Predefined_Prim_Op_Address, Set_Predefined_Prim_Op_Address,
21994         Inherit_DT): Use the new function Predefined_DT to improve code
21995         readability.
21996         (Register_Interface_Tag): Update assertion.
21997         (Set_Interface_Table): Update assertion.
21998         (Interface_Ancestor_Tags): New subprogram required to implement AI-405:
21999         determining progenitor interfaces in Tags.
22000         (Inherit_CPP_DT): New subprogram.
22001
22002         * exp_disp.adb (Expand_Interface_Thunk): Suppress checks during the
22003         analysis of the thunk code.
22004         (Expand_Interface_Conversion): Handle run-time conversion of
22005         access to class wide types.
22006         (Expand_Dispatching_Call): When generating the profile for the
22007         subprogram itype for a dispatching operation, properly terminate the
22008         formal parameters chaind list (set the Next_Entity of the last formal
22009         to Empty).
22010         (Collect_All_Interfaces): Removed. This routine has been moved to
22011         sem_util and renamed as Collect_All_Abstract_Interfaces.
22012         (Set_All_DT_Position): Hidden entities associated with abstract
22013         interface primitives are not taken into account in the check for
22014         3.9.3(10); this check is done with the aliased entity.
22015         (Make_DT, Set_All_DT_Position): Enable full ABI compatibility for
22016         interfacing with CPP by default.
22017         (Expand_Interface_Conversion): Add missing support for static conversion
22018         from an interface to a tagged type.
22019         (Collect_All_Interfaces): Add new out formal containing the list of
22020         abstract interface types to cleanup the subprogram Make_DT.
22021         (Make_DT): Update the code to generate the table of interfaces in case
22022         of abstract interface types.
22023         (Is_Predefined_Dispatching_Alias): New function that returns true if
22024         a primitive is not a predefined dispatching primitive but it is an
22025         alias of a predefined dispatching primitive.
22026         (Make_DT): If the ancestor of the type is a CPP_Class and we are
22027         compiling under full ABI compatibility mode we avoid the generation of
22028         calls to run-time services that fill the dispatch tables because under
22029         this mode we currently inherit the dispatch tables in the IP subprogram.
22030         (Write_DT): Emit an "is null" indication for a null procedure primitive.
22031         (Expand_Interface_Conversion): Use an address as the type of the formal
22032         of the internally built function that handles the case in which the
22033         target type is an access type.
22034
22035 2006-10-31  Robert Dewar  <dewar@adacore.com>
22036
22037         * binde.adb (Better_Choice, Worse_Choice): Implement new preferences.
22038
22039 2006-10-31  Robert Dewar  <dewar@adacore.com>
22040
22041         * bindusg.ads, bindusg.adb:
22042         Change to package and rename procedure as Display, which
22043         now ensures that it only outputs usage information once.
22044
22045 2006-10-31  Jose Ruiz  <ruiz@adacore.com>
22046
22047         * cal.c: Use the header sys/time.h for VxWorks 6.2 or greater when
22048         using RTPs.
22049
22050         * mkdir.c: Use a different version of mkdir for VxWorks 6.2 or greater
22051         when using RTPs.
22052
22053 2006-10-31  Robert Dewar  <dewar@adacore.com>
22054             Ed Schonberg  <schonberg@adacore.com>
22055
22056         * treepr.adb: Use new subtype N_Membership_Test
22057
22058         * checks.ads, checks.adb: Add definition for Validity_Check
22059         (Range_Or_Validity_Checks_Suppressed): New function
22060         (Ensure_Valid): Test Validity_Check suppressed
22061         (Insert_Valid_Check): Test Validity_Check suppressed
22062         (Insert_Valid_Check): Preserve Do_Range_Check flag
22063         (Validity_Check_Range): New procedure
22064         (Expr_Known_Valid): Result of membership test is always valid
22065         (Selected_Range_Checks): Range checks cannot be applied to discriminants
22066         by themselves. Disabling those checks must also be done for task types,
22067         where discriminants may be used for the bounds of entry families.
22068         (Apply_Address_Clause_Check): Remove side-effects if address expression
22069         is non-static and is not the name of a declared constant.
22070         (Null_Exclusion_Static_Checks): Extend to handle Function_Specification.
22071         Code cleanup and new error messages.
22072         (Enable_Range_Check): Test for some cases of suppressed checks
22073         (Generate_Index_Checks): Suppress index checks if index checks are
22074         suppressed for array object or array type.
22075         (Apply_Selected_Length_Checks): Give warning for compile-time detected
22076         length check failure, even if checks are off.
22077         (Ensure_Valid): Do not generate a check on an indexed component whose
22078         prefix is a packed boolean array.
22079         * checks.adb: (Alignment_Checks_Suppressed): New function
22080         (Apply_Address_Clause_Check): New procedure, this is a completely
22081         rewritten replacement for Apply_Alignment_Check
22082         (Get_E_Length/Get_E_First_Or_Last): Add missing barrier to ensure that
22083         we request a discriminal value only in case of discriminants.
22084         (Apply_Discriminant_Check): For Ada_05, only call Get_Actual_Subtype for
22085         assignments where the target subtype is unconstrained and the target
22086         object is a parameter or dereference (other aliased cases are known
22087         to be unconstrained).
22088
22089 2006-10-31  Robert Dewar  <dewar@adacore.com>
22090
22091         * clean.adb, gnatname.adb, gnatsym.adb, prep.adb, prep.ads,
22092         prepcomp.adb, prj.ads, prj-strt.adb, sem_maps.ads,
22093         vms_conv.adb: Fix bad table increment values (much too small)
22094
22095         * table.adb (Realloc): Make sure we get at least some new elements
22096         Defends against silly small values for table increment
22097
22098 2006-10-31  Robert Dewar  <dewar@adacore.com>
22099             Ed Schonberg  <schonberg@adacore.com>
22100             Bob Duff  <duff@adacore.com>
22101
22102         * einfo.ads, einfo.adb (Obsolescent_Warning): Now defined on all
22103         entities. Move other fields around to make this possible
22104         (Is_Derived_Type): Add missing call to Is_Type.
22105         (Extra_Formals): New function for subprograms, entries, subprogram
22106         types.
22107         (Set_Extra_Formals): New procedure for subprograms, entries, subp types.
22108         (First_Formal_With_Extras): New function for subprogs, entries, subp
22109         types.
22110         (Write_Field28_Name): New procedure for node display of "Extra_Formals".
22111         Add node information for E_Return_Statement.
22112         (Elaborate_Body_Desirable): New flag
22113         (Is_Return_By_Reference_Type): Rename Is_Return_By_Reference_Type
22114         to be Is_Inherently_Limited_Type, because return-by-reference has
22115         no meaning in Ada 2005.
22116         (E_Return_Statement): New entity kind.
22117         (Return_Applies_To): Field of E_Return_Statement.
22118         (Is_Return_Object): New flag in object entities.
22119         (Is_Dynamic_Scope): Make it True for E_Return_Statement.
22120         (Must_Have_Preelab_Init): New flag
22121         (Known_To_Have_Preelab_Init): New flag
22122         (Is_Formal_Object): Move from Sem_Ch8 body to Einfo
22123         (Is_Visible_Formal): New flag on entities in formal packages.
22124         (Low_Bound_Known): New flag
22125         (Non_Limited_View, Set_Non_Limited_View): Add membership test agains
22126         Incomplete_Kind.
22127         (Write_Field17_Name): Correct spelling of Non_Limited_View. Add name
22128         output when Id is an incomplete subtype.
22129
22130 2006-10-31  Robert Dewar  <dewar@adacore.com>
22131
22132         * errout.ads, errout.adb (Finalize): Implement switch -gnatd.m
22133         Avoid abbreviation Creat
22134         (Finalize): List all sources in extended mail source if -gnatl
22135         switch is active.
22136         Suppress copyright notice to file in -gnatl=f mode if -gnatd7 set
22137         (Finalize): Implement new -gnatl=xxx switch to output listing to file
22138         (Set_Specific_Warning_On): New procedure
22139         (Set_Specific_Warning_Off): New procedure
22140         Add implementation of new insertion \\
22141         (Error_Msg_Internal): Add handling for Error_Msg_Line_Length
22142         (Unwind_Internal_Type): Improve report on anonymous access_to_subprogram
22143         types.
22144         (Error_Msg_Internal): Make sure that we set Last_Killed to
22145         True when a message from another package is suppressed.
22146         Implement insertion character ~ (insert string)
22147         (First_Node): Minor adjustments to get better placement.
22148
22149         * frontend.adb:
22150         Implement new -gnatl=xxx switch to output listing to file
22151
22152         * gnat1drv.adb:
22153         Implement new -gnatl=xxx switch to output listing to file
22154
22155         * opt.ads: (Warn_On_Questionable_Missing_Paren): New switch
22156         (Commands_To_Stdout): New flag
22157         Implement new -gnatl=xxx switch to output listing to file
22158         New switch Dump_Source_Text
22159         (Warn_On_Deleted_Code): New warning flag for -gnatwt
22160         Define Error_Msg_Line_Length
22161         (Warn_On_Assumed_Low_Bound): New switch
22162
22163         * osint.ads, osint.adb
22164         (Normalize_Directory_Name): Fix bug.
22165         Implement new -gnatl=xxx switch to output listing to file
22166         (Concat): Removed, replaced by real concatenation
22167         Make use of concatenation now allowed in compiler
22168         (Executable_Prefix.Get_Install_Dir): First get the full path, so that
22169         we find the 'lib' or 'bin' directory even when the tool has been
22170         invoked with a relative path.
22171         (Executable_Name): New function taking string parameters.
22172
22173         * osint-c.ads, osint-c.adb:
22174         Implement new -gnatl=xxx switch to output listing to file
22175
22176         * sinput-d.adb: Change name Creat_Debug_File to Create_Debug_File
22177
22178         * switch-c.adb:
22179         Implement new -gnatl=xxx switch to output listing to file
22180         Recognize new -gnatL switch
22181         (no longer keep in old warning about old style usage)
22182         Use concatenation to simplify code
22183         Recognize -gnatjnn switch
22184         (Scan_Front_End_Switches): Clean up handling of -gnatW
22185         (Scan_Front_End_Switches): Include Warn_On_Assumed_Low_Bound for -gnatg
22186
22187 2006-10-31  Robert Dewar  <dewar@adacore.com>
22188
22189         * erroutc.ads, erroutc.adb (Set_Specific_Warning_On): New procedure
22190         (Set_Specific_Warning_Off): New procedure
22191         (Warning_Specifically_Suppressed): New function
22192         (Validate_Specific_Warnings): New procedure
22193         (Output_Msg_Text): Complete rewrite to support -gnatjnn
22194
22195         * err_vars.ads: Implement insertion character ~ (insert string)
22196
22197 2006-10-31  Bob Duff  <duff@adacore.com>
22198             Ed Schonberg  <schonberg@adacore.com>
22199
22200         * exp_aggr.adb (Build_Record_Aggr_Code): For extension aggregates, if
22201         the parent part is a build-in-place function call, generate assignments.
22202         (Expand_Record_Aggregate): Call Convert_To_Assignments if any components
22203         are build-in-place function calls.
22204         (Replace_Self_Reference): New subsidiary of
22205         Make_OK_Assignment_Statement, to replace an access attribute that is a
22206         self-reference into an access to the appropriate component of the
22207         target object. Generalizes previous mechanism to handle self-references
22208         nested at any level.
22209         (Is_Self_Referential_Init): Remove, not needed.
22210         (Is_Self_Referential_Init): New predicate to simplify handling of self
22211         referential components in record aggregates.
22212         (Has_Default_Init_Comps, Make_OK_Assignment_Statement): Add guard to
22213         check for presence of entity before checking for self-reference.
22214         (Has_Default_Init_Comps): Return True if a component association is a
22215         self-reference to the enclosing type, which can only come from a
22216         default initialization.
22217         (Make_OK_Assignment_Statement): If the expression is of the form
22218         Typ'Acc, where Acc is an access attribute, the expression comes from a
22219         default initialized self-referential component.
22220         (Build_Record_Aggr_Code): If the type of the aggregate is a tagged type
22221         that has been derived from several abstract interfaces we must also
22222         initialize the tags of the secondary dispatch tables.
22223
22224 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
22225             Thomas Quinot  <quinot@adacore.com>
22226             Javier Miranda  <miranda@adacore.com>
22227             Robert Dewar  <dewar@adacore.com>
22228
22229         * exp_attr.adb:
22230         (Expand_Access_To_Protected_Op): If the context indicates that an access
22231         to a local operation may be transfered outside of the object, create an
22232         access to the wrapper operation that must be used in an external call.
22233         (Expand_N_Attribute_Reference, case Attribute_Valid): For the AAMP
22234         target, pass the Valid attribute applied to a floating-point prefix on
22235         to the back end without expansion.
22236         (Storage_Size): Use the new run-time function Storage_Size to retrieve
22237         the allocated storage when it is specified by a per-object expression.
22238         (Expand_N_Attribute_Reference): Add case for Attribute_Stub_Type.
22239         Nothing to do here, the attribute has been rewritten during semantic
22240         analysis.
22241         (Expand_Attribute_Reference): Handle expansion of the new Priority
22242         attribute
22243         (Find_Fat_Info): Handle case of universal real
22244         (Expand_Access_To_Protected_Op): Fix use of access to protected
22245         subprogram from inside the body of a protected entry.
22246         (Expand_Access_To_Protected_Op): Common procedure for the expansion of
22247         'Access and 'Unrestricted_Access, to transform the attribute reference
22248         into a fat pointer.
22249         (Is_Constrained_Aliased_View): New predicate to help determine whether a
22250         subcomponent's enclosing variable is aliased with a constrained subtype.
22251         (Expand_N_Attribute_Reference, case Attribute_Constrained): For Ada_05,
22252         test Is_Constrained_Aliased_View rather than Is_Aliased_View, because
22253         an aliased prefix must be known to be constrained in order to use True
22254         for the attribute value, and now it's possible for some aliased views
22255         to be unconstrained.
22256
22257 2006-10-31  Robert Dewar  <dewar@adacore.com>
22258
22259         * exp_ch2.adb: Change Is_Lvalue to May_Be_Lvalue
22260         (Expand_Entity_Reference): Correct error of not handling subprogram
22261         formals in current_value processing.
22262
22263 2006-10-31  Javier Miranda  <miranda@adacore.com>
22264             Robert Dewar  <dewar@adacore.com>
22265             Ed Schonberg  <schonberg@adacore.com>
22266             Gary Dismukes  <dismukes@adacore.com>
22267
22268         * exp_ch3.ads, exp_ch3.adb (Expand_N_Object_Declaration): Do not
22269         register in the final list objects containing class-wide interfaces;
22270         otherwise we incorrectly register the tag of the interface in the final
22271         list.
22272         (Make_Controlling_Function_Wrappers): Add missing barrier to do not
22273         generate the wrapper if the parent primitive is abstract. This is
22274         required to report the correct error message.
22275         (Expand_N_Subtype_Indication): Do validity checks on range
22276         (Clean_Task_Names): If an initialization procedure includes a call to
22277         initialize a task (sub)component, indicate that the procedure will use
22278         the secondary stack.
22279         (Build_Init_Procedure, Init_Secondary_Tags): Enable full ABI
22280         compatibility for interfacing with CPP by default.
22281         (Expand_N_Object_Declaration): Only build an Adjust call when the
22282         object's type is a nonlimited controlled type.
22283         * exp_ch3.adb: Add with and use of Exp_Ch6.
22284         (Expand_N_Object_Declaration): Check for object initialization that is a
22285         call to build-in-place function and apply Make_Build_In_Place_Call_In_
22286         Object_Declaration to the call.
22287         (Freeze_Type): When the designated type of an RACW was not frozen at the
22288         point where the RACW was declared, validate the primitive operations
22289         with respect to E.2.2(14) when it finally is frozen.
22290         (Build_Initialization_Call,Expand_Record_Controller): Rename
22291         Is_Return_By_Reference_Type to be Is_Inherently_Limited_Type, because
22292         return-by-reference has no meaning in Ada 2005.
22293         (Init_Secondary_Tags): Add missing call to Set_Offset_To_Top
22294         to register tag of the immediate ancestor interfaces in the
22295         run-time structure.
22296         (Init_Secondary_Tags): Moved to the specification to allow the
22297         initialization of extension aggregates with abstract interfaces.
22298         (Build_Master_Renaming): Make public, for use by function declarations
22299         whose return type is an anonymous access type.
22300         (Freeze_Record_Type): Replace call to Insert_List_Before by call to
22301         Insert_List_Before_And_Analyze after the generation of the specs
22302         associated with null procedures.
22303         (Expand_Tagged_Root): Update documentation in its specification.
22304         (Init_Secondary_Tags): Update documentation.
22305         (Build_Init_Procedure): If we are compiling under CPP full ABI compa-
22306         tibility mode and the immediate ancestor is a CPP_Pragma tagged type
22307         then generate code to inherit the contents of the dispatch table
22308         directly from the ancestor.
22309         (Expand_Record_Controller): Insert controller component after tags of
22310         implemented interfaces.
22311         (Freeze_Record_Type): Call new procedure Make_Null_Procedure_Specs to
22312         create null procedure overridings when null procedures are inherited
22313         from interfaces.
22314         (Make_Null_Procedure_Specs): New procedure to generate null procedure
22315         declarations for overriding null primitives inherited from interfaces.
22316         (Is_Null_Interface_Procedure): New function in
22317         Make_Null_Procedure_Specs.
22318         (Make_Predefined_Primitive_Specs/Predefined_Primitive_Bodies): If the
22319         immediate ancestor of a tagged type is an abstract interface type we
22320         must generate the specification of the predefined primitives associated
22321         with controlled types (because the dispatch table of the ancestor is
22322         null and hence these entries cannot be inherited). This is required to
22323         elaborate well the dispatch table.
22324
22325 2006-10-31  Javier Miranda  <miranda@adacore.com>
22326             Ed Schonberg  <schonberg@adacore.com>
22327             Bob Duff  <duff@adacore.com>
22328             Gary Dismukes  <dismukes@adacore.com>
22329             Robert Dewar  <dewar@adacore.com>
22330
22331         * exp_ch4.adb (Expand_N_Type_Conversion): Handle missing interface type
22332         conversion.
22333         (Expand_N_In): Do validity checks on range
22334         (Expand_Selected_Component): Use updated for of Denotes_Discriminant.
22335         (Expand_N_Allocator): For "new T", if the object is constrained by
22336         discriminant defaults, allocate the right amount of memory, rather than
22337         the maximum for type T.
22338         (Expand_Allocator_Expression): Suppress the call to Remove_Side_Effects
22339         when the allocator is initialized by a build-in-place call, since the
22340         allocator is already rewritten as a reference to the function result,
22341         and this prevents an unwanted duplication of the function call.
22342         Add with and use of Exp_Ch6.
22343         (Expand_Allocator_Expresssion): Check for an allocator whose expression
22344         is a call to build-in-place function and apply
22345         Make_Build_In_Place_Call_In_Allocator to the call (for both tagged and
22346         untagged designated types).
22347         (Expand_N_Unchecked_Type_Conversion): Do not do integer literal
22348         optimization if source or target is biased.
22349         (Expand_N_Allocator): Add comments for case of an allocator within a
22350         function that returns an anonymous access type designating tasks.
22351         (Expand_N_Allocator): apply discriminant checks for access
22352         discriminants of anonymous access types (AI-402, AI-416)
22353
22354 2006-10-31  Bob Duff  <duff@adacore.com>
22355             Robert Dewar  <dewar@adacore.com>
22356             Gary Dismukes  <dismukes@adacore.com>
22357             Ed Schonberg  <schonberg@adacore.com>
22358
22359         * exp_ch5.ads (Expand_N_Extended_Return_Statement): New procedure.
22360
22361         * exp_ch5.adb (Expand_N_Loop_Statement): Do validity checks on range
22362         (Expand_N_Assignment_Statement): Call
22363         Make_Build_In_Place_Call_In_Assignment if the right-hand side is a
22364         build-in-place function call. Currently, this can happen only for
22365         assignments that come from aggregates.
22366         Add -gnatd.l --Use Ada 95 semantics for limited function returns,
22367         in order to alleviate the upward compatibility introduced by AI-318.
22368         (Expand_N_Extended_Return_Statement): Add support for handling the
22369         return object as a build-in-place result.
22370         (Expand_Non_Function_Return): Implement simple return statements nested
22371         within an extended return.
22372         (Enable_New_Return_Processing): Turn on the new processing of return
22373         statements.
22374         (Expand_Non_Function_Return): For a return within an extended return,
22375         don't raise Program_Error, because Sem_Ch6 now gives a warning.
22376         (Expand_N_Extended_Return_Statement): Implement AI-318
22377         (Expand_Simple_Function_Return): Ditto.
22378         (Expand_N_If_Statement): Handle new -gnatwt warning
22379         (Expand_N_Case_Statement): Handle new -gnatwt warning
22380         (Expand_N_Assignment): Handle assignment to the Priority attribute of
22381         a protected object.
22382         (Expand_N_Assignment_Statement): Implement -gnatVe/E to control
22383         validity checking of assignments to elementary record components.
22384         (Expand_N_Return_Statement): return Class Wide types on the secondary
22385         stack independantly of their controlled status since with HIE runtimes,
22386         class wide types are not potentially controlled anymore.
22387
22388         * expander.adb (Expand): Add case for new N_Extended_Return_Statement
22389         node kind.
22390
22391         * exp_ch11.adb (Expand_N_Handled_Sequence_Of_Statements): Avoid
22392         Expand_Cleanup_Actions in case of N_Extended_Return_Statement, because
22393         it expects a block, procedure, or task. The return statement will get
22394         turned into a block, and Expand_Cleanup_Actions will happen then.
22395
22396 2006-10-31  Robert Dewar  <dewar@adacore.com>
22397             Ed Schonberg  <schonberg@adacore.com>
22398             Bob Duff  <duff@adacore.com>
22399             Gary Dismukes  <dismukes@adacore.com>
22400
22401         * exp_ch6.ads, exp_ch6.adb: Use new Validity_Check suppression
22402         capability.
22403         (Expand_Inlined_Call): Tagged types are by-reference types, and
22404         therefore should be replaced by a renaming declaration in the expanded
22405         body, as is done for limited types.
22406         (Expand_Call): If this is a call to a function with dispatching access
22407         result, propagate tag from context.
22408         (Freeze_Subprogram): Enable full ABI compatibility for interfacing with
22409         CPP by default.
22410         (Make_Build_In_Place_Call_In_Assignment): New procedure to do
22411         build-in-place when the right-hand side of an assignment is a
22412         build-in-place function call.
22413         (Make_Build_In_Place_Call_In_Allocator): Apply an unchecked conversion
22414         of the explicit dereference of the allocator to the result subtype of
22415         the build-in-place function. This is needed to satisfy type checking
22416         in cases where the caller's return object is created by an allocator for
22417         a class-wide access type and the type named in the allocator is a
22418         specific type.
22419         (Make_Build_In_Place_Call_In_Object_Declaration): Apply an unchecked
22420         conversion of the reference to the declared object to the result subtype
22421         of the build-in-place function. This is needed to satisfy type checking
22422         in cases where the declared object has a class-wide type. Also, in the
22423         class-wide case, change the type of the object entity to the specific
22424         result subtype of the function, to avoid passing a class-wide object
22425         without explicit initialization to the back end.
22426         (Register_Interface_DT_Entry): Moved outside the body of
22427         Freeze_Subprogram because this routine is now public; it is called from
22428         Check_Dispatching_Overriding to handle late overriding of abstract
22429         interface primitives.
22430         (Add_Access_Actual_To_Build_In_Place_Call): New utility procedure for
22431         adding an implicit access actual on a call to a build-in-place function.
22432         (Expand_Actuals): Test for an actual parameter that is a call to a
22433         build-in-place function and apply
22434         Make_Build_In_Place_Call_In_Anonymous_Context to the call.
22435         (Is_Build_In_Place_Function): New function to determine whether an
22436         entity is a function whose calls should be handled as build-in-place.
22437         (Is_Build_In_Place_Function_Call): New function to determine whether an
22438         expression is a function call that should handled as build-in-place.
22439         (Make_Build_In_Place_Call_In_Allocator): New procedure for handling
22440         calls to build-in-place functions as the initialization of an allocator.
22441         (Make_Build_In_Place_Call_In_Anonymous_Context): New procedure for
22442         handling calls to build-in-place functions in contexts that do not
22443         involve init of a separate object (for example, actuals of subprogram
22444         calls).
22445         (Make_Build_In_Place_Call_In_Object_Declaration): New procedure for
22446         handling calls to build-in-place functions as the initialization of an
22447         object declaration.
22448         (Detect_Infinite_Recursion): Add explicit parameter Process to
22449         instantiation of Traverse_Body to avoid unreferenced warning.
22450         (Check_Overriding_Inherited_Interfaces): Removed.
22451         (Register_Interface_DT_Entry): Code cleanup.
22452         (Register_Predefined_DT_Entry): Code cleanup.
22453         (Expand_Inlined_Call.Rewrite_Procedure_Call): Do not omit block around
22454         inlined statements if within a transient scope.
22455         (Expand_Inlined_Call.Process_Formals): When replacing occurrences of
22456         formal parameters with occurrences of actuals in inlined body, establish
22457         visibility on the proper view of the actual's subtype for the body's
22458         context.
22459         (Freeze_Subprogram): Do nothing if we are compiling under full ABI
22460         compatibility mode and we have an imported CPP subprogram because
22461         for now we assume that imported CPP primitives correspond with
22462         objects whose constructor is in the CPP side (and therefore we
22463         don't need to generate code to register them in the dispatch table).
22464         (Expand_Actuals): Introduce copy of actual, only if it might be a bit-
22465         aligned selected component.
22466         (Add_Call_By_Copy_Node): Add missing code to handle the case in which
22467         the actual of an in-mode parameter is a type conversion.
22468         (Expand_Actuals): If the call does not come from source and the actual
22469         is potentially misaligned, let gigi handle it rather than rejecting the
22470         (Expand_N_Subprogram_Body, Freeze_Subprogram): set subprograms returning
22471         Class Wide types as returning by reference independantly of their
22472         controlled status since with HIE runtimes class wide types are not
22473         potentially controlled anymore.
22474
22475 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
22476
22477         * exp_ch9.adb (Update_Prival_Types): Simplify code for entity
22478         references that are private components of the protected object.
22479         (Build_Barrier_Function): Set flag Is_Entry_Barrier_Function
22480         (Update_Prival_Subtypes): Add explicit Process argument to Traverse_Proc
22481         instantiation to deal with warnings.
22482         (Initialize_Protection): If expression for priority is non-static, use
22483         System_Priority as its expected type, in case the expression has not
22484         been analyzed yet.
22485
22486 2006-10-31  Robert Dewar  <dewar@adacore.com>
22487
22488         * exp_dbug.ads, exp_dbug.adb (Get_External_Name): Add missing
22489         initialization of Homonym_Len.
22490         (Fully_Qualify_Name): Remove kludge to eliminate anonymous block
22491         names from fully qualified name. Fixes problem of duplicate
22492         external names differing only in the presence of such a block name.
22493
22494 2006-10-31  Thomas Quinot  <quinot@adacore.com>
22495             Pablo Oliveira  <oliveira@adacore.com>
22496
22497         * exp_dist.adb (Get_Subprogram_Ids): This function will no more assign
22498         subprogram Ids, even if they are not yet assigned.
22499         (Build_Subprogram_Id): It is now this function that will take care of
22500         calling Assign_Subprogram_Ids if necessary.
22501         (Add_Receiving_Stubs_To_Declarations): Checking the subprograms ids
22502         should be done only once they are assigned.
22503         (Build_From_Any_Function, case of tagged types): Add missing call to
22504         Allocate_Buffer.
22505         (Corresponding_Stub_Type): New subprogram. Returns the associated stub
22506         type for an RACW type.
22507         (Add_RACW_Features): When processing an RACW declaration for which the
22508         designated type is already frozen, enforce E.2.2(14) rules immediately.
22509         (GARLIC_Support.Build_Subprogram_Receiving_Stubs): Do not perform any
22510         special reordering of controlling formals.
22511
22512         * exp_dist.ads (Corresponding_Stub_Type): New subprogram. Returns the
22513         associated stub type for an RACW type.
22514
22515 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
22516
22517         * exp_fixd.adb (Rounded_Result_Set): For multiplication and division of
22518         fixed-point operations in an integer context, i.e. as operands of a
22519         conversion to an integer type, indicate that result must be rounded.
22520
22521 2006-10-31  Robert Dewar  <dewar@adacore.com>
22522
22523         * exp_imgv.adb (Expand_Image_Attribute): For Wide_[Wide_]Character
22524         cases, pass the encoding method, since it is now required by the run
22525         time.
22526
22527         * s-valwch.ads, s-valwch.adb (Value_Wide_Wide_Character): Avoid
22528         assumption that Str'First = 1.
22529         (Value_Wide_Character): Takes EM (encoding method) parameter and passes
22530         it on to the Value_Wide_Wide_Character call.
22531         (Value_Wide_Wide_Character): Takes EM (encoding method) parameter and
22532         properly handles a string of the form quote-encoded_wide_char-quote.
22533
22534         * s-wchcnv.adb: Minor reformatting
22535
22536 2006-10-31  Javier Miranda  <miranda@adacore.com>
22537
22538         * exp_intr.adb (Expand_Dispatching_Constructor_Call): Add missing
22539         run-time membership test to ensure that the constructed object
22540         implements the target abstract interface.
22541
22542 2006-10-31  Robert Dewar  <dewar@adacore.com>
22543
22544         * exp_prag.adb (Expand_Pragma_Common_Object): Use a single
22545         Machine_Attribute pragma internally to implement the user pragma.
22546         Add processing for pragma Interface so that it is now completely
22547         equivalent to pragma Import.
22548
22549         * sem_prag.adb (Analyze_Pragma, case Obsolescent): Extend this pragma
22550         so that it can be applied to all entities, including record components
22551         and enumeration literals.
22552         (Analyze_Pragma, case Priority_Specific_Dispatching): Check whether
22553         priority ranges are correct, verify compatibility against task
22554         dispatching and locking policies, and if everything is correct an entry
22555         is added to the table containing priority specific dispatching entries
22556         for this compilation unit.
22557         (Delay_Config_Pragma_Analyze): Delay processing
22558         Priority_Specific_Dispatching pragmas because when processing the
22559         pragma we need to access run-time data, such as the range of
22560         System.Any_Priority.
22561         (Sig_Flags): Add Pragma_Priority_Specific_Dispatching.
22562         Allow pragma Unreferenced as a context item
22563         Add pragma Preelaborable_Initialization
22564         (Analyze_Pragma, case Interface): Interface is extended so that it is
22565         now syntactically and semantically equivalent to Import.
22566         (Analyze_Pragma, case Compile_Time_Warning): Fix error of blowups on
22567         insertion characters.
22568         Add handling for Pragma_Wide_Character_Encoding
22569         (Process_Restrictions_Restriction_Warnings): Ensure that a warning
22570         never supercedes a real restriction, and that a real restriction
22571         always supercedes a warning.
22572         (Analyze_Pragma, case Assert): Set Low_Bound_Known if assert is of
22573         appropriate form.
22574
22575 2006-10-31  Bob Duff  <duff@adacore.com>
22576             Ed Schonberg  <schonberg@adacore.com>
22577             Robert Dewar  <dewar@adacore.com>
22578
22579         * exp_ch7.adb (Build_Array_Deep_Procs, Build_Record_Deep_Procs,
22580         Make_Deep_Record_Body): Rename Is_Return_By_Reference_Type to be
22581         Is_Inherently_Limited_Type, because return-by-reference has no meaning
22582         in Ada 2005.
22583         (Find_Node_To_Be_Wrapped): Use new method of determining the result
22584         type of the function containing a return statement, because the
22585         Return_Type field was removed. We now use the Return_Applies_To field.
22586
22587         * exp_util.ads, exp_util.adb: Use new subtype N_Membership_Test
22588         (Build_Task_Image_Decl): If procedure is not called from an
22589         initialization procedure, indicate that function that builds task name
22590         uses the sec. stack. Otherwise the enclosing initialization procedure
22591         will carry the indication.
22592         (Insert_Actions): Remove N_Return_Object_Declaration. We now use
22593         N_Object_Declaration instead.
22594         (Kill_Dead_Code): New interface to implement -gnatwt warning for
22595         conditional dead code killed, and change implementation accordingly.
22596         (Insert_Actions): Add N_Return_Object_Declaration case.
22597         Correct comment to mention N_Extension_Aggregate node.
22598         (Set_Current_Value_Condition): Call Safe_To_Capture_Value to avoid bad
22599         attempts to save information for global variables which cannot be
22600         safely tracked.
22601         (Get_Current_Value_Condition): Handle conditions the other way round
22602         (constant on left). Also handle right operand of AND and AND THEN
22603         (Set_Current_Value_Condition): Corresponding changes
22604         (Append_Freeze_Action): Remove unnecessary initialization of Fnode.
22605         (Get_Current_Value_Condition): Handle simple boolean operands
22606         (Get_Current_Value_Condition): Handle left operand of AND or AND THEN
22607         (Get_Current_Value_Condition): If the variable reference is within an
22608         if-statement, does not appear in the list of then_statments, and does
22609         not come from source, treat it as being at unknown location.
22610         (Get_Current_Value_Condition): Enhance to allow while statements to be
22611         processed as well as if statements.
22612         (New_Class_Wide_Subtype): The entity for a class-wide subtype does not
22613         come from source.
22614         (OK_To_Do_Constant_Replacement): Allow constant replacement within body
22615         of loop. This is safe now that we fixed Kill_Current_Values.
22616         (OK_To_Do_Constant_Replacement): Check whether current scope is
22617         Standard, before examining outer scopes.
22618
22619 2006-10-31  Vincent Celier  <celier@adacore.com>
22620
22621         * krunch.ads, krunch.adb (Krunch): New Boolean parameter VMS_On_Target.
22622         When True, apply VMS treatment to children of packages A, G, I and S.
22623         For F320-016
22624
22625         * fname-uf.adb (Get_File_Name): Call Krunch with OpenVMS_On_Target
22626
22627 2006-10-31  Robert Dewar  <dewar@adacore.com>
22628             Ed Schonberg  <schonberg@adacore.com>
22629
22630         * freeze.adb: Add handling of Last_Assignment field
22631         (Warn_Overlay): Supply missing continuation marks in error msgs
22632         (Freeze_Entity): Add check for Preelaborable_Initialization
22633
22634         * g-comlin.adb: Add Warnings (Off) to prevent new warning
22635
22636         * g-expect.adb: Add Warnings (Off) to prevent new warning
22637
22638         * lib-xref.adb: Add handling of Last_Assignment field
22639         (Generate_Reference): Centralize handling of pragma Obsolescent here
22640         (Generate_Reference): Accept an implicit reference generated for a
22641         default in an instance.
22642         (Generate_Reference): Accept a reference for a node that is not in the
22643         main unit, if it is the generic body corresponding to an subprogram
22644         instantiation.
22645
22646         * xref_lib.adb: Add pragma Warnings (Off) to avoid new warnings
22647
22648         * sem_warn.ads, sem_warn.adb (Set_Warning_Switch): Add processing for
22649         -gnatwq/Q.
22650         (Warn_On_Useless_Assignment): Suppress warning if enclosing inner
22651         exception handler.
22652         (Output_Obsolescent_Entity_Warnings): Rewrite to avoid any messages on
22653         use clauses, to avoid messages on packages used to qualify, and also
22654         to avoid messages from obsolescent units.
22655         (Warn_On_Useless_Assignments): Don't generate messages for imported
22656         and exported variables.
22657         (Warn_On_Useless_Assignments): New procedure
22658         (Output_Obsolescent_Entity_Warnings): New procedure
22659         (Check_Code_Statement): New procedure
22660
22661         * einfo.ads, einfo.adb (Has_Static_Discriminants): New flag
22662         Change name Is_Ada_2005 to Is_Ada_2005_Only
22663         (Last_Assignment): New field for useless assignment warning
22664
22665 2006-10-31  Olivier Hainque  <hainque@adacore.com>
22666
22667         * g-alleve.adb (lvx, stvx): Ceil-Round the Effective Address to the
22668         closest multiple of VECTOR_ALIGNMENT and not the closest multiple of 16.
22669
22670 2006-10-31  Bob Duff  <duff@adacore.com>
22671             Robert Dewar  <dewar@adacore.com>
22672             Ed Schonberg  <schonberg@adacore.com>
22673
22674         * g-awk.adb (Default_Session, Current_Session): Compile this file in
22675         Ada 95 mode, because it violates the new rules for AI-318.
22676
22677         * g-awk.ads: Use overloaded subprograms in every case where we used to
22678         have a default of Current_Session. This makes the code closer to be
22679         correct for both Ada 95 and 2005.
22680
22681         * g-moreex.adb (Occurrence): Turn off warnings for illegal-in-Ada-2005
22682         code, relying on the fact that the compiler generates a warning
22683         instead of an error in -gnatg mode.
22684
22685         * lib-xref.ads (Xref_Entity_Letters): Add entry for new
22686         E_Return_Statement entity kind.
22687         Add an entry for E_Incomplete_Subtype in Xref_Entity_Letters.
22688
22689         * par.adb (P_Interface_Type_Definition): Addition of one formal to
22690         report an error if the reserved word abstract has been previously found.
22691         (SS_End_Type): Add E_Return for new extended_return_statement syntax.
22692
22693         * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Improve message for
22694         parenthesized range attribute usage
22695         (P_Expression_No_Right_Paren): Add missing comment about error recovery.
22696
22697         * par-ch6.adb (P_Return_Object_Declaration): AI-318: Allow "constant"
22698         in the syntax for extended_return_statement. This is not in the latest
22699         RM, but the ARG is expected to issue an AI allowing this.
22700         (P_Return_Subtype_Indication,P_Return_Subtype_Indication): Remove
22701         N_Return_Object_Declaration. We now use N_Object_Declaration instead.
22702         (P_Return_Object_Declaration, P_Return_Subtype_Indication,
22703         P_Return_Statement): Parse the new syntax for extended_return_statement.
22704
22705         * par-endh.adb (Check_End, Output_End_Deleted, Output_End_Expected,
22706         Output_End_Missing): Add error-recovery code for the new
22707         extended_return_statement syntax; that is, the new E_Return entry on
22708         the scope stack.
22709
22710         * s-auxdec-vms_64.ads, s-auxdec.ads (AST_Handler): Change type from
22711         limited to nonlimited, because otherwise we violate the new Ada 2005
22712         rules about returning limited types in function Create_AST_Handler in
22713         s-asthan.adb.
22714
22715         * sem.adb (Analyze): Add cases for new node kinds
22716         N_Extended_Return_Statement and N_Return_Object_Declaration.
22717
22718         * sem_aggr.adb (Aggregate_Constraint_Checks): Verify that component
22719         type is in the same category as type of context before applying check,
22720         to prevent anomalies in instantiations.
22721         (Resolve_Aggregate): Remove test for limited components in aggregates.
22722         It's unnecessary in Ada 95, because if it has limited components, then
22723         it must be limited. It's wrong in Ada 2005, because limited aggregates
22724         are now allowed.
22725         (Resolve_Record_Aggregate): Move check for limited types later, because
22726         OK_For_Limited_Init requires its argument to have been resolved.
22727         (Get_Value): When copying the component default expression for a
22728         defaulted association in an aggregate, use the sloc of the aggregate
22729         and not that of the original expression, to prevent spurious
22730         elaboration errors, when the expression includes function calls.
22731         (Check_Non_Limited_Type): Correct code for AI-287, extension aggregates
22732         were missing. We also didn't handle qualified expressions. Now also
22733         allow function calls. Use new common routine OK_For_Limited_Init.
22734         (Resolve_Extension_Aggregate): Minor fix to bad error message (started
22735         with space can upper case letter).
22736
22737         * sem_ch3.ads, sem_ch3.adb (Create_Constrained_Components): Set
22738         Has_Static_Discriminants flag
22739         (Record_Type_Declaration): Diagnose an attempt to declare an interface
22740         type with discriminants.
22741         (Process_Range_Expr_In_Decl): Do validity checks on range
22742         (Build_Discriminant_Constraints): Use updated form of
22743         Denotes_Discriminant.
22744         (Process_Subtype): If the subtype is a private subtype whose full view
22745         is a concurrent subtype, introduce an itype reference to prevent scope
22746         anomalies in gigi.
22747         (Build_Derived_Record_Type, Collect_Interface_Primitives,
22748         Record_Type_Declaration):  The functionality of the subprograms
22749         Collect_Abstract_Interfaces and Collect_All_Abstract_Interfaces
22750         is now performed by a single routine.
22751         (Build_Derived_Record_Type): If the type definition includes an explicit
22752         indication of limitedness, then the type must be marked as limited here
22753         to ensure that any access discriminants will not be treated as having
22754         a local anonymous access type.
22755         (Check_Abstract_Overriding): Issue a detailed error message when an
22756         abstract subprogram was not overridden due to incorrect mode of its
22757         first parameter.
22758         (Analyze_Private_Extension_Declaration): Add support for the analysis of
22759         synchronized private extension declarations. Verify that the ancestor is
22760         a limited or synchronized interface or in the generic case, the ancestor
22761         is a tagged limited type or synchronized interface and all progenitors
22762         are either limited or synchronized interfaces.
22763         Derived_Type_Declaration): Check for presence of private extension when
22764         dealing with synchronized formal derived types.
22765         Process_Full_View): Enchance the check done on the usage of "limited" by
22766         testing whether the private view is synchronized.
22767         Verify that a synchronized private view is completed by a protected or
22768         task type.
22769         (OK_For_Limited_Init_In_05): New function.
22770         (Analyze_Object_Declaration): Move check for limited types later,
22771         because OK_For_Limited_Init requires its argument to have been resolved.
22772         Add -gnatd.l --Use Ada 95 semantics for limited function returns,
22773         in order to alleviate the upward compatibility introduced by AI-318.
22774         (Constrain_Corresponding_Record): If the constraint is for a component
22775         subtype, mark the itype as frozen, to avoid out-of-scope references to
22776         discriminants in the back-end.
22777         (Collect_Implemented_Interfaces): Protect the recursive algorithm of
22778         this subprogram against wrong sources.
22779         (Get_Discr_Value, Is_Discriminant): Handle properly references to a
22780         discriminant of limited type completed with a protected type, when the
22781         discriminant is used to constrain a private component of the type, and
22782         expansion is disabled.
22783         (Find_Type_Of_Object): Do not treat a return subtype that is an
22784         anonymous subtype as a local_anonymous_type, because its accessibility
22785         level is the return type of the enclosing function.
22786         (Check_Initialization): In -gnatg mode, turn the error "cannot
22787         initialize entities of limited type" into a warning.
22788         (OK_For_Limited_Init): Return true for generated nodes, since it
22789         sometimes violates the legality rules.
22790         (Make_Incomplete_Declaration): If the type for which an incomplete
22791         declaration is created happens to be the currently visible entity,
22792         preserve the homonym chain when removing it from visibility.
22793         (Check_Conventions): Add support for Ada 2005 (AI-430): Conventions of
22794         inherited subprograms.
22795         (Access_Definition): If this is an access to function that is the return
22796         type of an access_to_function definition, context is a type declaration
22797         and the scope of the anonymous type is the current one.
22798         (Analyze_Subtype_Declaration): Add the defining identifier of a regular
22799         incomplete subtype to the set of private dependents of the original
22800         incomplete type.
22801         (Constrain_Discriminated_Type): Emit an error message whenever an
22802         incomplete subtype is being constrained.
22803         (Process_Incomplete_Dependents): Transform an incomplete subtype into a
22804         corresponding subtype of the full view of the original incomplete type.
22805         (Check_Incomplete): Properly detect invalid usage of incomplete types
22806         and subtypes.
22807
22808 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
22809
22810         * g-catiio.ads, g-catiio.adb (Value): New function.
22811         Given an input String, try and parse a valid Time value.
22812
22813 2006-10-31  Vincent Celier  <celier@adacore.com>
22814
22815         * g-debpoo.adb (Is_Valid): Correctly compute Offset using
22816         Integer_Address arithmetic, as in Set_Valid.
22817
22818 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
22819             Robert Dewar  <dewar@adacore.com>
22820
22821         * gnatcmd.adb (Process_Link): Use Osint.Executable_Name instead of
22822         handling executable extension manually and duplicating code.
22823
22824         * make.adb: Implement new -S switch
22825         (Gnatmake): Use new function Osint.Executable_Name instead
22826         of handling executable extension manually.
22827
22828         * prj-util.adb (Executable_Of): Make sure that if an Executable_Suffix
22829         is specified, the executable name ends with this suffix.
22830         Take advantage of Osint.Executable_Name instead of duplicating code.
22831
22832         * switch-m.adb: Recognize new gnatmake -S switch
22833
22834         * targparm.ads, targparm.adb (Executable_Extension_On_Target): New
22835         variable.
22836         (Get_Target_Parameters): Set Executable_Extension_On_Target if
22837         available.
22838
22839         * makeusg.adb: Add line for gnatmake -S switch
22840
22841 2006-10-31  Vincent Celier  <celier@adacore.com>
22842
22843         * gnatlink.adb (Gnatlink): If gcc is not called with -shared-libgcc,
22844         call it with -static-libgcc, as there are some platforms, such as
22845         Darwin, where one of these two switches is compulsory to link.
22846
22847 2006-10-31  Vincent Celier  <celier@adacore.com>
22848
22849         * gnatls.adb: Take into account GPR_PROJECT_PATH, when it is defined,
22850         instead of ADA_PROJECT_PATH, for the project path.
22851         (Gnatls): When displaying the project path directories, use host dir
22852         specs.
22853
22854         * prj-ext.adb (Prj.Ext elaboration): On VMS, only expand relative path
22855         names in the project path, as absolute paths may correspond to
22856         multi-valued VMS logical names.
22857
22858 2006-10-31  Vincent Celier  <celier@adacore.com>
22859
22860         * g-os_lib.ads, g-os_lib.adb (Locate_Exec_On_Path): Always return an
22861         absolute path name.
22862         (Locate_Regular_File): Ditto
22863         (Change_Dir): Remove, no longer used
22864         (Normalize_Pathname): Do not use Change_Dir to get the drive letter
22865         on Windows. Get it calling Get_Current_Dir.
22866         (OpenVMS): Remove imported boolean, no longer needed.
22867         (Normalize_Pathname)[VMS]: Do not resolve directory names.
22868         (Pid_To_Integer): New function to convert a Process_Id to  Integer
22869
22870 2006-10-31  Thomas Quinot  <quinot@adacore.com>
22871
22872         * g-socket.ads, g-socket.adb (Close_Selector): Once the signalling
22873         sockets are closed, reset the R_Sig_Socket and W_Sig_Socket components
22874         to No_Socket.
22875         (Selector_Type): Add default value of No_Socket for R_Sig_Socket and
22876         W_Sig_Socket.
22877
22878 2006-10-31  Robert Dewar  <dewar@adacore.com>
22879
22880         * g-speche.ads, g-speche.adb: Add special case to recognize misspelling
22881         initial letter o as a zero.
22882
22883 2006-10-31  Robert Dewar  <dewar@adacore.com>
22884
22885         * g-spipat.adb (S_To_PE): Remove incorrect use of 0 instead of Str'First
22886
22887 2006-10-31  Robert Dewar  <dewar@adacore.com>
22888
22889         * layout.adb (Layout_Record_Type): Deal with non-static subtypes of
22890         variant records
22891         (Layout_Variant_Record): Retrieve the discriminants from the entity
22892         rather than from the type definition, because in the case of a full
22893         type for a private type we need to take the discriminants from the
22894         partial view.
22895         (Layout_Component_List): When applying the Max operator to variants with
22896         a nonstatic size, check whether either operand is static and scale that
22897         operand from bits to storage units before applying Max.
22898         (Layout_Type): In VMS, if a C-convention access type has no explicit
22899         size clause (and does not inherit one in the case of a derived type),
22900         then the size is reset to 32 from 64.
22901
22902 2006-10-31  Vincent Celier  <celier@adacore.com>
22903
22904         * lib-load.adb (Load_Unit): Skip the test for a unit not found when
22905         its file has already been loaded, according to the unit being loaded,
22906         not to the current value of Multiple_Unit_Index.
22907
22908 2006-10-31  Thomas Quinot  <quinot@adacore.com>
22909             Eric Botcazou  <ebotcazou@adacore.com>
22910             Arnaud Charlet  <charlet@adacore.com>
22911
22912         * Makefile.in: Set EH mechanism to ZCX for FreeBSD.
22913         (NO_REORDER_ADAFLAGS): New var defined to -fno-toplevel-reorder if
22914         possible.
22915         (a-except.o): Pass it to the compiler.
22916         (gnatlib-shared-vms): Removed -nostartfiles switch in link step.
22917         (LIBGNAT_TARGET_PAIRS for Windows): Avoid the use of the specific
22918         a-calend-mingw.adb version.
22919
22920         * Makefile.rtl: Added s-dsaser.
22921         Add object entries for Ada.Calendar.[Arithmetic/Formatting/Time_Zones]
22922         (GNATRTL_TASKING_OBJS): Add Ada.Dispatching and
22923         Ada.Dispatching.Round_Robin.
22924         Added new unit Ada.Containers.Restricted_Bounded_Doubly_Linked_Lists
22925
22926         * Make-lang.in: Remove all references to gt-ada-decl.h.
22927         Add concatenation (s-strops/s-sopco3/s-sopco4/s-sopco5) to compiler
22928         sources.
22929         Add dependency on ada/s-restri.o for GNAT1 and GNATBIND objects.
22930         Update dependencies.
22931
22932         * system-freebsd-x86.ads: Make ZCX the default EH mechanism for FreeBSD
22933
22934 2006-10-31  Vincent Celier  <celier@adacore.com>
22935
22936         * mlib-utl.adb (Initialized): Remove, no longer used
22937         (Initialize): Remove, no longer used
22938         (Ar): If Ar_Exec is null, get the location of the archive builder and,
22939         if there is one, the archive indexer. Fail if the archive builder cannot
22940         be found.
22941         (Gcc): If the driver path is unknown, get it. Fail if the driver cannot
22942         be found.
22943
22944 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
22945
22946         * sem_ch10.ads, sem_ch10.adb (Check_Redundant_Withs,
22947         Process_Body_Clauses): If the context of a body includes a use clause
22948         for P.Q then a with_clause for P in the same body is not redundant,
22949         even if the spec also has a with_clause on P.
22950         Add missing continuation mark to error msg
22951         (Build_Limited_Views): A limited view of a type is tagged if its
22952         declaration includes a record extension.
22953         (Analyze_Proper_Body): Set Corresponding_Stub field in N_Subunit
22954         node, even if the subunit has errors. This avoids malfunction by
22955         Lib.Check_Same_Extended_Unit in the presence of syntax errors.
22956         (Analyze_Compilation_Unit): Add circuit to make sure we get proper
22957         generation of obsolescent messages for with statements (cannot do
22958         this too early, or we cannot implement avoiding the messages in the
22959         case of obsolescent units withing obsolescent units).
22960         (Install_Siblings): If the with_clause is on a remote descendant of
22961         an ancestor of the current compilation unit, find whether there is
22962         a sibling child unit that is immediately visible.
22963         (Remove_Private_With_Clauses): New procedure, invoked after completing
22964         the analysis of the private part of a nested package, to remove from
22965         visibility the private with_clauses of the enclosing package
22966         declaration.
22967         (Analyze_With_Clause): Remove Check_Obsolescent call, this checking is
22968         now centralized in Generate_Reference.
22969         (Install_Limited_Context_Clauses): Remove superfluous error
22970         message associated with unlimited view visible through use
22971         and renamings. In addition, at the point in which the error
22972         is reported, we add the backslash to the text of the error
22973         to ensure that it is reported as a single error message.
22974         Use new // insertion for some continuation messages
22975         (Expand_Limited_With_Clause): Use copy of name rather than name itself,
22976         to create implicit with_clause for parent unit mentioned in original
22977         limited_with_clause.
22978         (Install_Limited_With_Unit): Set entity of parent identifiers if the
22979         unit is a child unit. For ASIS queries.
22980         (Analyze_Subunit): If the subunit appears within a child unit, make all
22981         ancestor child units directly visible again.
22982
22983 2006-10-31  Robert Dewar  <dewar@adacore.com>
22984
22985         * par-ch10.adb (P_Context_Clause): Minor error message fix
22986
22987 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
22988             Javier Miranda  <miranda@adacore.com>
22989
22990         * par-ch12.adb: Grammar update and cleanup.
22991         (P_Formal_Type_Definition, P_Formal_Derived_Type_Definition): Add
22992         support for synchronized derived type definitions.
22993         Add the new actual Abstract_Present to every call to
22994         P_Interface_Type_Definition.
22995         (P_Formal_Object_Declarations): Update grammar rules. Handle parsing of
22996         a formal object declaration with an access definition or a subtype mark
22997         with a null exclusion.
22998         (P_Generic_Association): Handle association with box, and others_choice
22999         with box, to support Ada 2005 partially parametrized formal packages.
23000
23001 2006-10-31  Robert Dewar  <dewar@adacore.com>
23002             Javier Miranda  <miranda@adacore.com>
23003
23004         * par-ch3.adb (P_Range_Or_Subtype_Mark): Check for bad parentheses
23005         (P_Type_Declaration): Remove barrier against the reserved word "limited"
23006         after "abstract" to give support to the new syntax of AARM 3.4 (2/2).
23007         (P_Type_Declaration): Minor code cleanup. Add support for synchronized
23008         private extensions.
23009         (P_Type_Declaration): Add the new actual Abstract_Present to every call
23010         to P_Interface_Type_Definition.
23011         (P_Interface_Type_Definition): Addition of one formal to report an error
23012         if the reserved word abstract has been previously found.
23013         (P_Identifier_Declarations): Update grammar rules. Handle parsing of an
23014         object renaming declaration with an access definition or subtype mark
23015         with a possible null exclusion.
23016
23017         * par-ch9.adb: Minor error msg fix
23018
23019         * par-load.adb: Add missing continuation mark to error msg
23020
23021         * par-tchk.adb: (Wrong_Token): Code cleanup, use concatenation
23022
23023 2006-10-31  Vincent Celier  <celier@adacore.com>
23024
23025         * prj-dect.adb (Parse_Attribute_Declaration): Do not issue warning for
23026         unknown attribute in unknown package or in package that does not need
23027         to be checked.
23028         (Parse_Package_Declaration): Do not issue warning for unknown package in
23029         quiet output.
23030
23031 2006-10-31  Vincent Celier  <celier@adacore.com>
23032
23033         * prj-makr.adb (Packages_To_Check_By_Gnatname): New global constant
23034         (Make): Call Parse with Packages_To_Check_By_Gnatname for parameter
23035         Packages_To_Check.
23036
23037 2006-10-31  Vincent Celier  <celier@adacore.com>
23038
23039         * prj-nmsc.adb (Check_Ada_Name): For children of package A, G, I and S
23040         on VMS, change "__" to '.' before checking the name.
23041         (Record_Ada_Source): Always add the source file name in the list of
23042         of sources, even if it is not the first time, as it is for another
23043         source index.
23044         (Get_Unit): Replace both '_' (after 'a', 'g', 'i' or 's') with a single
23045         dot, instead of replacing only the first '_'.
23046
23047         * prj-part.adb (Parse): Convert project file path to canonical form
23048
23049         * prj-proc.adb (Recursive_Process): Make sure that, when a project is
23050         extended, the project id of the project extending it is recorded in its
23051         data, even when it has already been processed as an imported project.
23052
23053 2006-10-31  Robert Dewar  <dewar@adacore.com>
23054
23055         * repinfo.adb (List_Entities): Don't list entities from renaming
23056         declarations.
23057
23058 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
23059             Robert Dewar  <dewar@adacore.com>
23060
23061         * restrict.ads, restrict.adb (Restriction_Active): Now returns False if
23062         only a restriction warning is active for the given restriction. This is
23063         desirable because we do not want to modify code in the case where only
23064         a warning is set.
23065         (Set_Profile_Restrictions): Make sure that a Profile_Warnings never
23066         causes overriding of real restrictions.
23067         Take advantage of new No_Restrictions constant.
23068
23069         * raise.h: (__gnat_set_globals): Change profile.
23070
23071 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
23072
23073         * rtsfind.adb: Remove s-polint from comment as it exists no more.
23074
23075         * rtsfind.ads:
23076         Move entity RE_Get_Active_Partition_Id to package System.DSA_Services.
23077         Move all the entities in obsolete package System.PolyORB_Interface to
23078         System.Partition_Interface.
23079         (RE_Storage_Size): New function in System.Tasking.
23080         (RE_Get_Ceiling): New entity.
23081         (RE_Set_Ceiling): New entity.
23082         (RO_PE_Get_Ceiling): New entity.
23083         (RO_RE_Set_Ceiling): New entity.
23084         (Inherit_CPP_DT): New entity
23085
23086 2006-10-31  Robert Dewar  <dewar@adacore.com>
23087
23088         * scng.adb (Scan, case of numeric literal): Better msg for identifier
23089         starting with a digit.
23090
23091 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
23092             Thomas Quinot  <quinot@adacore.com>
23093             Javier Miranda  <miranda@adacore.com>
23094             Gary Dismukes  <dismukes@adacore.com>
23095
23096         * sem_attr.ads, sem_attr.adb (Analyze_Access_Attribute): Diagnose
23097         properly an attempt to apply Unchecked_Access to a protected operation.
23098         (OK_Self_Reference): New subprogram to check the legality of an access
23099         attribute whose prefix is the type of an enclosing aggregate.
23100         Generalizes previous mechanism to handle attribute references nested
23101         arbitrarily deep within the aggregate.
23102         (Analyze_Access_Attribute): An access attribute whose prefix is a type
23103         can appear in an aggregate if this is a default-initialized aggregate
23104         for a self-referential type.
23105         (Resolve_Attribute, case Access): Ditto.
23106         Add support for new implementation defined attribute Stub_Type.
23107         (Eval_Attribute, case Attribute_Stub_Type): New case.
23108         (Analyze_Attribute, case Attribute_Stub_Type): New case.
23109         (Stream_Attribute_Available): Implement using new subprogram from
23110         sem_cat, Has_Stream_Attribute_Definition, instead of incorrect
23111         Has_Specified_Stream_Attribute flag.
23112         Disallow Storage_Size and Storage_Pool for access to subprogram
23113         (Resolve_Attribute, case 'Access et al): Take into account anonymous
23114         access types of return subtypes in extended return statements. Remove
23115         accessibility checks on anonymous access types when Unchecked_Access is
23116         used.
23117         (Analyze_Attribute): Add support for the use of 'Class to convert
23118         a class-wide interface to a tagged type.
23119         Add support for the attribute Priority.
23120         (Resolve_Attribute, case Attribute_Access): For Ada_05, add test for
23121         whether the designated type is discriminated with a constrained partial
23122         view and require static matching in that case.
23123         Add local variable Des_Btyp. The Designated_Type
23124         of an access to incomplete subtype is either its non-limited view if
23125         coming from a limited with or its etype if regular incomplete subtype.
23126
23127         * sem_cat.ads, sem_cat.adb (Validate_Remote_Access_To_Class_Wide_Type):
23128         Fix predicate to identify and allow cases of (expander-generated)
23129         references to tag of designated object of a RACW.
23130         (Validate_Static_Object_Name): In Ada 2005, a formal object is
23131         non-static, and therefore cannot appear as a primary in a preelaborable
23132         package.
23133         (Has_Stream_Attribute_Definition): New subprogram, abstracted from
23134         Has_Read_Write_Attributes.
23135         (Has_Read_Write_Attributes): Reimplement in termes of
23136         Has_Stream_Attribute_Definition.
23137         (Missing_Read_Write_Attributes): When checking component types in a
23138         record, unconditionally call Missing_Read_Write_Attributes recursively
23139         (remove guard checking for Is_Record_Type / Is_Access_Type).
23140
23141 2006-10-31  Robert Dewar  <dewar@adacore.com>
23142
23143         * sem_ch11.adb (Analyze_Handled_Statements): Move final test for
23144         useless assignments here and conditionalize it on absence of exception
23145         handlers.
23146         (Analyze_Exception_Handlers): Small code reorganization of error
23147         detection code, for new handling of formal packages.
23148
23149 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
23150             Hristian Kirtchev  <kirtchev@adacore.com>
23151
23152         * sem_ch12.ads, sem_ch12.adb (Save_References): If node is an operator
23153         that has been constant-folded, preserve information of original tree,
23154         for ASIS uses.
23155         (Analyze_Formal_Derived_Type): Set the limited present flag of the newly
23156         generated private extension declaration if the formal derived type is
23157         synchronized. Carry synchronized present over to the generated private
23158         extension.
23159         (Validate_Derived_Type_Instance): Ensure that the actual of a
23160         synchronized formal derived type is a synchronized tagged type.
23161         (Instantiate_Formal_Package): When creating the instantiation used to
23162         validate the actual package of a formal declared without a box, check
23163         whether the formal itself depends on a prior actual.
23164         (Instantiate_Formal_Subprogram): Create new entities for the defining
23165         identifiers of the formals in the renaming declaration, for ASIS use.
23166         (Instantiate_Formal_Subprogram, Instantiate_Formal_Type): When creating
23167         a renaming declaration or a subtype declaration for an actual in an
23168         instance, capture location information of declaration in generic, for
23169         ASIS use.
23170         (Instantiate_Formal_Package): Add comments on needed additional tests.
23171         AI-317 (partial parametrization) is fully implemented.
23172         (Validate_Private_Type_Instance): Add check for actual which
23173         must have preelaborable initialization
23174         Use new // insertion for some continuation messages
23175         (Analyze_Formal_Object_Declaration): Change usage of Expression to
23176         Default_Expression. Add type retrieval when the declaration has an
23177         access definition. Update premature usage of incomplete type check.
23178         (Check_Access_Definition): New subsidiary routine. Check whether the
23179         current compilation version is Ada 05 and the supplied node has an
23180         access definition.
23181         (Instantiate object): Alphabetize local variables. Handle the creation
23182         of new renaming declarations with respect to the kind of definition
23183         used - either an access definition or a subtype mark. Guard against
23184         unnecessary error message in the context of anonymous access types after
23185         they have been resolved. Add check for required null exclusion in a
23186         formal object declaration.
23187         (Switch_View): A private subtype of a non-private type needs to be
23188         switched (the base type can have been switched without its private
23189         dependents because of the last branch of Check_Private_View.
23190         (Check_Private_View): Do not recompute Base_Type (T), instead use cached
23191         value from BT.
23192         (Instantiate_Type): Emit an error message whenever a class-wide type of
23193         a tagged incomplete type is used as a generic actual.
23194         (Find_Actual_Type): Extend routine to handle a component type in a child
23195         unit that is imported from a formal package in a parent.
23196         (Validate_Derived_Type_Instance): Check that analyzed formal and actual
23197         agree on constrainedness, rather than checking against ultimate ancestor
23198         (Instantiate_Subprogram_Body): Create a cross-reference link to the
23199         generic body, for navigation purposes.
23200
23201 2006-10-31  Robert Dewar  <dewar@adacore.com>
23202             Thomas Quinot  <quinot@adacore.com>
23203
23204         * sem_ch13.adb: Storage pool cannot be given for access to subprogram
23205         type.
23206         (New_Stream_Subprogram): When processing an attribute definition clause
23207         for a stream-oriented subprogram, record an entity node occurring at
23208         the point of clause to use for checking the visibility of the clause,
23209         as defined by 8.3(23) as amended by AI-195.
23210         (New_Stream_Subprogram): New procedure, factoring behaviour from both
23211          New_Stream_Function and New_Stream_Procedure.
23212         (New_Stream_Function, New_Stream_Procedure): Removed.
23213         (Analyze_Attribute_Definition_Clause, case Address): Check new
23214         Alignment_Check check
23215
23216 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
23217             Javier Miranda  <miranda@adacore.com>
23218             Robert Dewar  <dewar@adacore.com>
23219
23220         * sem_ch4.adb (Try_Primitive_Operation): Code cleanup to ensure that we
23221         generate the same errors compiling under -gnatc.
23222         (Try_Object_Operation): If no candidate interpretation succeeds, but
23223         there is at least one primitive operation with the right name, report
23224         error in call rather than on a malformed selected component.
23225         (Analyze_Selected_Component): If the prefix is an incomplete type from
23226         a limited view, and the full view is available, use the full view to
23227         determine whether this is a prefixed call to a primitive operation.
23228         (Operator_Check): Verify that a candidate interpretation is a binary
23229         operation before checking the type of its second formal.
23230         (Analyze_Call): Add additional warnings for function call contexts not
23231         yet supported.
23232         (Analyze_Allocator): Move the check for "initialization not allowed for
23233         limited types" after analyzing the expression. This is necessary,
23234         because OK_For_Limited_Init looks at the structure of the expression.
23235         Before analysis, we don't necessarily know what sort of expression it
23236         is. For example, we don't know whether F(X) is a function call or an
23237         indexed component; the former is legal in Ada 2005; the latter is not.
23238         (Analyze_Allocator): Correct code for AI-287 -- extension aggregates
23239         were missing. We also didn't handle qualified expressions. Now also
23240         allow function calls. Use new common routine OK_For_Limited_Init.
23241         (Analyze_Type_Conversion): Do not perform some legality checks in an
23242         instance, because the error message will be redundant or spurious.
23243         (Analyze_Overloaded_Selected_Component): Do not do style check when
23244         setting an entity, since we do not know it is the right entity yet.
23245         (Analyze_Selected_Component): Move Generate_Reference call to Sem_Res
23246         (Analyze_Overloaded_Selected_Component): Same change
23247         (Analyze_Selected_Component): Remove unnecessary prefix type retrieval
23248         since regular incomplete subtypes are transformed into corresponding
23249         subtypes of their full views.
23250         (Complete_Object_Operation): Treat name of transformed subprogram call
23251         as coming from source, for browsing purposes.
23252         (Try_Primitive_Operation): If formal is an access parameter, compare
23253         with base type of object to determine whether it is a primitive
23254         operation.
23255         (Operator_Check): If no interpretation of the operator matches, check
23256         whether a use clause on any candidate might make the operation legal.
23257         (Try_Class_Wide_Operation): Check whether the first parameter is an
23258         access type whose designated type is class-wide.
23259
23260 2006-10-31  Robert Dewar  <dewar@adacore.com>
23261             Ed Schonberg  <schonberg@adacore.com>
23262             Gary Dismukes  <dismukes@adacore.com>
23263
23264         * sem_ch5.ads, sem_ch5.adb (Analyze_Loop_Statement): Add circuit to
23265         warn on infinite loops.
23266         Add \\ to some continuation messages
23267         (Analyze_Assignment_Statement): Call Warn_On_Useless_Assignment
23268         (Process_Bounds): If the bounds are integer literals that result from
23269         constant-folding, and they carry a user-defined type, preserve that type
23270         rather than treating this as an integer range.
23271         (Analyze_Exit_Statement): Test for E_Return_Statement in legality check.
23272         (Analyze_Goto_Statement): Test for E_Return_Stateemnt in legality check.
23273         (Analyze_Assignment_Statement): Add call to Check_Elab_Assign for
23274         left hand side of assignment.
23275         (Analyze_Assignment): Add suport to manage assigments to the attribute
23276         priority of a protected object.
23277         (Check_Possible_Current_Value_Condition): Allow fully qualified names
23278         not just identifiers.
23279         (Check_Possible_Current_Value_Condition): Acquire left operand of AND
23280         or AND THEN for possible tracking.
23281         (Analyze_Iteration_Scheme): Check for setting Current_Value for the
23282         case of while loops so we can track values in the loop body.
23283
23284 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
23285             Hristian Kirtchev  <kirtchev@adacore.com>
23286             Bob Duff  <duff@adacore.com>
23287
23288         * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Declaration): A null
23289         procedure cannot be a protected operation (it is a basic_declaration,
23290         not a subprogram_declaration).
23291         (Check_Overriding_Indicator): Rename formal Does_Override to Overridden_
23292         Subp. Add logic for entry processing.
23293         (Check_Synchronized_Overriding): New procedure in New_Overloaded_Entity.
23294         Determine whether an entry or subprogram of a protected or task type
23295         override an inherited primitive of an implemented interface.
23296         (New_Overloaded_Entity): Add calls to Check_Synchronized_Overriding.
23297         Update the actual used in calls to Check_Overriding_Indicator.
23298         (Analyze_Generic_Subprogram_Body): If the subprogram is a child unit,
23299         generate the proper reference to the parent unit, for cross-reference.
23300         (Analyze_Subprogram_Declaration): Protect Is_Controlling_Formal with
23301         Is_Formal.
23302         Add -gnatd.l --Use Ada 95 semantics for limited function returns,
23303         (Add_Extra_Formal): Revise procedure to allow passing in associated
23304         entity, scope, and name suffix, and handle setting of the new
23305         Extra_Formals field.
23306         (Create_Extra_Formals): Change existing calls to Add_Extra_Formal to
23307         pass new parameters. Add support for adding the new extra access formal
23308         for functions whose calls are treated as build-in-place.
23309         (Analyze_A_Return_Statement): Correct casing in error message.
23310         Move Pop_Scope to after Analyze_Function_Return, because an extended
23311         return statement really is a full-fledged scope. Otherwise, visibility
23312         doesn't work right. Correct use of "\" for continuation messages.
23313         (Analyze_Function_Return): Call Analyze on the Obj_Decl, rather than
23314         evilly trying to call Analyze_Object_Declaration directly. Otherwise,
23315         the node doesn't get properly marked as analyzed.
23316         (Analyze_Subprogram_Body): If subprogram is a function that returns
23317         an anonymous access type that denotes a task, build a Master Entity
23318         for it.
23319         (Analyze_Return_Type): Add call to Null_Exclusion_Static_Checks. Verify
23320         proper usage of null exclusion in a result definition.
23321         (Process_Formals): Code cleanup and new error message.
23322         (Process_Formals): Detect incorrect application of null exclusion to
23323         non-access types.
23324         (Conforming_Types): Handle conformance between [sub]types and itypes
23325          generated for entities that have null exclusions applied to them.
23326         (Maybe_Primitive_Operation): Add an additional type retrieval when the
23327          base type is an access subtype. This case arrises with null exclusions.
23328         (New_Overloaded_Entity): Do not remove the overriden entity from the
23329         homonym chain if it corresponds with an abstract interface primitive.
23330         (Process_Formals): Replace membership test agains Incomplete_Kind with a
23331         call to the synthesized predicate Is_Incomplete_Type.
23332         (Analyze_Subprogram_Body): Check wrong placement of abstract interface
23333         primitives.
23334         (Analyze_Subprogram_Declaration): Check that abstract interface
23335         primitives are abstract or null.
23336         (Analyze_Subprogram_Specification): Remove previous check for abstract
23337         interfaces because it was not complete.
23338         (Has_Interface_Formals): Removed.
23339
23340 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
23341             Javier Miranda  <miranda@adacore.com>
23342
23343         * sem_ch7.adb (Check_Anonymous_Access_Types): New procedure, subsidiary
23344         of Analyze_Package_Body, to create Itype references for anonymous
23345         access types created in the package declaration, whose designated types
23346         may have only a limited view.
23347         (Analyze_Package_Specification): For the private part of a nested
23348         package, install private_with_clauses of enclosing compilation unit if
23349         we are in its visible part.
23350         (Declare_Inherited_Private_Subprograms): Complete barrier
23351         to ensure that the primitive operation has an alias to some parent
23352         primitive. This is now required because, after the changes done for the
23353         implementation of abstract interfaces, the contents of the list of
23354         primitives has entities whose alias attribute references entities of
23355         such list of primitives.
23356         (Analyze_Package_Specification): Simplify code that handles parent units
23357         of instances and formal packages.
23358         (Uninstall_Declarations): Check the convention consistency among
23359         primitive overriding operations of a tagged record type.
23360
23361 2006-10-31  Robert Dewar  <dewar@adacore.com>
23362             Hristian Kirtchev  <kirtchev@adacore.com>
23363             Javier Miranda  <miranda@adacore.com>
23364             Ed Schonberg  <schonberg@adacore.com>
23365
23366         * sem_ch8.adb: Minor error msg rewording
23367         (Undefined): When checking for misspellings, invert arguments (to get
23368         expected and found set right)
23369         (Analyze_Subprogram_Renaming): Propagate Is_Pure, Is_Preelaborated
23370         (Analyze_Generic_Renaming): Same fix
23371         (Use_One_Package): Do not take into account the internal entities of
23372         abstract interfaces during the analysis of entities that are marked
23373         as potentially use-visible.
23374         (Find_Type): Handle the case of an attribute reference for
23375         implementation defined attribute Stub_Type (simply let the analysis of
23376         the attribute reference rewrite it).
23377         (Use_One_Type, End_Use_Type): Reject a reference to a limited view of a
23378         type that appears in a Use_Type clause.
23379         (Analyze_Object_Renaming): Add support for renaming of the Priority
23380         attribute.
23381         (Find_Type): In Ada 2005, a task type can be used within its own body,
23382         when it appears in an access definition.
23383         (Analyze_Object_Renaming): Remove warning on null_exclusion.
23384         (Analyze_Object_Renaming): Introduce checks for required null exclusion
23385          in a formal object declaration or in a subtype declaration.
23386         (Analyze_Subprogram_Renaming): Add call to Check_Null_Exclusion.
23387         (Check_Null_Exclusion): New local routine to
23388         Analyze_Subprogram_Renaming. Check whether the formals and return
23389         profile of a renamed subprogram have required null exclusions when
23390         their counterparts of the renaming already impose them.
23391         (In_Generic_Scope): New local routine to Analyze_Object_Renaming.
23392         Determine whether an entity is inside a generic scope.
23393         (In_Open_Scope): First pass of documentation update.
23394         (Find_Expanded_Name): Add support for shadow entities associated with
23395         limited withed packages. This is required to handle nested packages.
23396         (Analyze_Package_Renaming): Remove the restriction imposed by AI-217
23397         that makes a renaming of a limited withed package illegal.
23398
23399 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
23400             Ed Schonberg  <schonberg@adacore.com>
23401
23402         * sem_ch9.adb (Analyze_Protected_Definition): Remove call to
23403         Check_Overriding_Indicator.
23404         (Analyze_Task_Definition): Ditto.
23405         (Analyze_Protected_Type, Analyze_Task_Type): Code cleanup.
23406         (Check_Overriding_Indicator): To find overridden interface operation,
23407         examine only homonyms that have an explicit subprogram declaration, not
23408         inherited operations created by an unrelated type derivation.
23409         (Check_Overriding_Indicator): When checking for the presence of "null"
23410         in a procedure, ensure that the queried node is a procedure
23411         specification.
23412         (Matches_Prefixed_View_Profile): Add mechanism to retrieve the parameter
23413         type when the formal is an access to variable.
23414         (Analyze_Protected_Type): Add check for Preelaborable_Initialization
23415         (Analyze_Task_Type): Same addition
23416         (Analyze_Entry_Declaration): Call Generate_Reference_To_Formals, to
23417         provide navigation capabilities for entries.
23418
23419 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
23420             Ed Schonberg  <schonberg@adacore.com>
23421             Javier Miranda  <miranda@adacore.com>
23422             Gary Dismukes  <dismukes@adacore.com>
23423
23424         * sem_disp.adb (Check_Dispatching_Operation): Do not flag subprograms
23425         inherited from an interface ancestor by another interface in the
23426         context of an instance as 'late'.
23427         (Is_Tag_Indeterminate, Propagate_Tag): Handle properly the dereference
23428         of a call to a function that dispatches on access result.
23429         (Check_Dispatching_Operation): In case of late overriding of a primitive
23430         that covers abstract interface subprograms we register it in all the
23431         secondary dispatch tables associated with abstract interfaces.
23432         (Check_Dispatching_Call): Add check that a dispatching call is not made
23433         to a function with a controlling result of a limited type. This is a
23434         current implementation restriction.
23435         (Check_Controlling_Formal): Remove bogus checks for E.2.2(14).
23436         (Check_Dispatching_Operation): Do no emit a warning if the controlling
23437         argument is an interface type that is a generic formal.
23438         (Is_Interface_Subprogram): Removed.
23439         (Check_Dispatching_Operation): If the subprogram is not a dispatching
23440         operation, check the formals to handle the case in which it is
23441         associated with an abstract interface type.
23442
23443 2006-10-31  Robert Dewar  <dewar@adacore.com>
23444             Ed Schonberg  <schonberg@adacore.com>
23445
23446         * sem_elab.ads, sem_elab.adb (Check_Elab_Assign): New procedure
23447         Add new calls to this procedure during traversal
23448         (Activate_Elaborate_All_Desirable): Do not set elaboration flag on
23449         another unit if expansion is disabled.
23450
23451 2006-10-31  Robert Dewar  <dewar@adacore.com>
23452
23453         * sem_eval.adb (Compile_Time_Compare): Make use of information from
23454         Current_Value in the conditional case, to evaluate additional
23455         comparisons at compile time.
23456
23457 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
23458             Hristian Kirtchev  <kirtchev@adacore.com>
23459             Javier Miranda  <miranda@adacore.com>
23460
23461         * sem_type.adb (Add_One_Interp): If node is an indirect call, preserve
23462         subprogram type to provide better diagnostics in case of ambiguity.
23463         (Covers): Handle coverage of formal and actual anonymous access types in
23464         the context of generic instantiation.
23465         (Covers/Interface_Present_In_Ancestors): Use the base type to manage
23466         abstract interface types; this is required to handle concurrent types
23467         with discriminants and abstract interface types.
23468         (Covers): Include type coverage of both regular incomplete subtypes and
23469         incomplete subtypes of incomplete type visibles through a limited with
23470         clause.
23471
23472 2006-10-31  Robert Dewar  <dewar@adacore.com>
23473             Hristian Kirtchev  <kirtchev@adacore.com>
23474             Ed Schonberg  <schonberg@adacore.com>
23475
23476         * sem_util.ads, sem_util.adb (Enter_Name): Exclude -gnatwh warning
23477         messages for entities in packages which are not used.
23478         (Collect_Synchronized_Interfaces): New procedure.
23479         (Overrides_Synchronized_Primitive): New function.
23480         (Denotes_Discriminant): Extend predicate to apply to task types.
23481         Add missing continuation marks in error msgs
23482         (Unqualify): New function for removing zero or more levels of
23483         qualification from an expression. There are numerous places where this
23484         ought to be used, but we currently only deal properly with zero or one
23485         level.
23486         (In_Instance); The analysis of the actuals in the instantiation of a
23487         child unit is not within an instantiation, even though the parent
23488         instance is on the scope stack.
23489         (Safe_To_Capture_Value): Exclude the case of variables that are
23490         renamings.
23491         (Check_Obsolescent): Removed
23492         (Is_Aliased_View): A reference to an enclosing instance in an aggregate
23493         is an aliased view, even when rewritten as a reference to the target
23494         object in an assignment.
23495         (Get_Subprogram_Entity): New function
23496         (Known_To_Be_Assigned): New function
23497         (Type_Access_Level): Compute properly the access level of a return
23498         subtype that is an anonymous access type.
23499         (Explain_Limited_Type): Correct use of "\" for continuation messages.
23500         (Is_Transfer): The new extended_return_statement causes a transfer of
23501         control.
23502         (Has_Preelaborable_Initialization): New function
23503         (Has_Null_Exclusion): New function. Given a node N, determine whether it
23504         has a null exclusion depending on its Nkind.
23505         Change Is_Lvalue to May_Be_Lvalue
23506         (May_Be_Lvalue): Extensive additional code to deal with subprogram
23507         arguments (IN parameters are not Lvalues, IN OUT parameters are).
23508         (Safe_To_Capture_Value): Extend functionality so it can be used for
23509         the current value condition case.
23510         (Has_Compatible_Alignment): New function
23511         (Is_Dependent_Component_Of_Mutable_Object): Revise the tests for mutable
23512         objects to handle the Ada 2005 case, where aliasedness no longer implies
23513         that the object is constrained. In particular, for dereferenced names,
23514         the designated object must be assumed to be unconstrained.
23515         (Kill_Current_Values): Properly deal with the case where we encounter
23516         a loop in the scope chain.
23517         (Safe_To_Capture_Value): Do not let a loop stop us from capturing
23518         a value.
23519         (Compile_Time_Constraint_Error): Improve error message in error case
23520
23521         * exp_ch13.adb (Expand_N_Freeze_Entity): Remove the freezing node
23522         associated with entities of abstract interface primitives.
23523         Call Apply_Address_Clause_Check instead of Apply_Alignment_Check
23524
23525 2006-10-31  Robert Dewar  <dewar@adacore.com>
23526
23527         * s-osinte-tru64.adb:
23528         Mark Asm statements Volatile to prevent warnings (seems a
23529         reasonable change anyway)
23530         Fixes new warnings
23531
23532         * s-mastop-irix.adb: Add Volatile to Asm statements
23533         Suppresses warning, and seems appropriate in any case
23534
23535         * s-osinte-vms.adb: Add Volatile to Asm statement
23536
23537         * s-vaflop-vms-alpha.adb: Add Volatile to Asm statements
23538
23539         * exp_code.ads, exp_code.adb (Asm_Input_Value): Note that Error can be
23540         returned.
23541         Add call to Check_Code_Statement
23542
23543 2006-10-31  Robert Dewar  <dewar@adacore.com>
23544             Ed Schonberg  <schonberg@adacore.com>
23545             Bob Duff  <duff@adacore.com>
23546
23547         * sinfo.ads, sinfo.adb (Set_Synchronized_Present,
23548         Synchronized_Present): Add Formal_Derived_Type_Definition and
23549         Private_Extension_Declaration to the list of assertions.
23550         (Is_Entry_Barrier_Function): New flag
23551         (Has_Self_Reference): New flag on aggregates, to indicate that they
23552         contain a reference to the enclosing type, inserted through a default
23553         initialization.
23554         (Next_Rep_Item): Move from Node4 to Node5.
23555         (Entity): Add this field for N_Attribute_Definition_Clause.
23556         (Comes_From_Extended_Return_Statement): New flag on N_Return_Statement
23557         (N_Return_Object_Declaration): Remove this node kind. We now use
23558         N_Object_Declaration instead.
23559         (Actual_Designated_Subtype): Move to a different place to make room in
23560         N_Extended_Return_Statement.
23561         (Procedure_To_Call): Move to a different place to make room in
23562         N_Extended_Return_Statement.
23563         (Return_Type): Removed this field to make room in return statements
23564         (both kinds).
23565         (Return_Statement_Entity): New field in return statements, in part to
23566         replace Return_Type, and in part to support the fact that return
23567         statements are now pushed on the scope stack during semantic analysis.
23568         (Return_Object_Declarations): New field to support extended return
23569         statements.
23570         (N_Extended_Return_Statement): New node for extended_return_statement
23571         nonterminal.
23572         (N_Return_Object_Declaration): New node for part of
23573         extended_return_statement nonterminal. Needed because all the necessary
23574         fields won't fit in N_Extended_Return_Statement.
23575         Generic_associations now carry the Box_Present flag, to indicate a
23576         default for an actual in a partially parametrized formal package.
23577
23578         * snames.h, snames.ads, snames.adb: Add definition for Validity_Check
23579         (Preset_Names): Add entries for Priority_Specific_Dispatching pragma
23580         and for the new predefined dispatching policies: EDF_Across_Priorities,
23581         Non_Preemptive_Within_Priorities, and Round_Robin_Within_Priorities.
23582         Introduce new name Stub_Type for implementation defined attribute.
23583         Add pragma Preelaborable_Initialization
23584         Add entry for Priority attribute.
23585         Add Pragma_Wide_Character_Encoding
23586         (Get_Convention_Name): Given a convention id, this function returns the
23587         corresponding name id from the names table.
23588
23589 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
23590             Robert Dewar  <dewar@adacore.com>
23591             Bob Duff  <duff@adacore.com>
23592
23593         * sprint.adb (Sprint_Node_Actual, case Parameter_Specification): Do not
23594         print null exclusion twice in the case of an access definition,
23595         Implement new -gnatL switch
23596         Remove N_Return_Object_Declaration. We now use
23597         N_Object_Declaration instead. Implement the case for
23598         N_Extended_Return_Statement. Alphabetize the cases.
23599         Add cases for new nodes N_Extended_Return_Statement and
23600         N_Return_Object_Declaration. The code is not yet written.
23601         Update the output for N_Formal_Object_Declaration
23602         and N_Object_Renaming_Declaration.
23603         (Write_Itype): Account for the case of a modular integer subtype whose
23604         base type is private.
23605
23606 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
23607
23608         * s-restri.ads, s-restri.adb: Mark this package as Preelaborate.
23609         Remove elaboration code, now done in the binder.
23610
23611         * s-rident.ads: Make this unit Preelaborate.
23612         (No_Restrictions): New constant used to clean up code and follow
23613         preelaborate constraints.
23614
23615         * s-stalib.adb:
23616         Add System.Restrictions dependence, referenced directly from the
23617         binder generated file.
23618
23619 2006-10-31  Gary Dismukes  <dismukes@adacore.com>
23620
23621         * s-scaval.adb (Initialize): Add new Boolean flag AFloat that is set
23622         True when AAMP extended floating-point is in use (48-bit). Change type
23623         ByteLF to ByteLLF, add new array type ByteLF and condition the size of
23624         the two byte array types on AFloat. Change type of IV_Ilf overlay
23625         variable from Byte8 to ByteLF. Add appropriate initializations of
23626         floating-point overlays for AAMP cases.
23627
23628 2006-10-31  Javier Miranda  <miranda@adacore.com>
23629
23630         * s-tpoben.ads, s-tpoben.adb, s-taprob.ads, s-taprob.adb
23631         (Get_Ceiling): New subprogram that returns
23632         the ceiling priority of the protected object.
23633         (Set_Ceiling): New subprogram that sets the new ceiling priority of
23634         the protected object.
23635
23636         * s-tarest.adb: (Create_Restricted_Task): Fix potential CE.
23637
23638         * s-taskin.ads, s-taskin.adb: (Storage_Size): New function.
23639
23640 2006-10-31  Jose Ruiz  <ruiz@adacore.com>
23641
23642         * s-tpobop.adb (Requeue_Call): Introduce a dispatching point when
23643         requeuing to the same protected object to give higher priority tasks
23644         the opportunity to execute.
23645
23646 2006-10-31  Robert Dewar  <dewar@adacore.com>
23647
23648         * widechar.adb (Is_Start_Of_Wide_Char): In case of brackets encoding,
23649         add more precise check for the character sequence that follows '[' to
23650         avoid possible confusion in case if '[' is the last character of a
23651         string literals.
23652         (Scan_Wide): Always allow brackets encoding
23653
23654 2006-10-31  Olivier Hainque  <hainque@adacore.com>
23655
23656         * s-stchop.ads: make this unit preelaborate. This is desirable in
23657         general and made mandatory by the use of this unit by s-taprop which
23658         is itself preelaborate.
23659
23660         * s-stchop-vxworks.adb (Set_Stack_Info, Task_Descriptor type): Add
23661         Td_Events component.
23662
23663 2006-10-31  Vincent Celier  <celier@adacore.com>
23664
23665         * a-dirval-vms.adb (Invalid_Character): Specify that digits are allowed
23666         in file names.
23667
23668 2006-10-31  Vincent Celier  <celier@adacore.com>
23669
23670         * a-direct.ads, a-direct.adb (Search): New procedure in Ada 2005
23671
23672 2006-10-31  Vincent Celier  <celier@adacore.com>
23673
23674         * makegpr.adb (Check_Compilation_Needed): Take into account path names
23675         with spaces.
23676         (Check_Compilation_Needed): When checking a C or C++ source, do not
23677         resolve symbolic links.
23678         (Display_Command): New Boolean parameter Ellipse, defaulted to False.
23679         When not in verbose mode and Ellipse is True, display "..." for the
23680         first argument with Display set to False.
23681         (Build_Global_Archive): Always set Display True for the first object
23682         file. Call Display_Command with Ellipse set to True.
23683
23684 2006-10-31  Matt Heaney  <heaney@adacore.com>
23685
23686         * a-crbtgo.ads: Commented each subprogram
23687
23688         * a-crbtgo.adb: Added reference to book from which algorithms were
23689         adapted.
23690
23691         * a-crbtgk.ads, a-crbtgk.adb (Generic_Insert_Post): pass flag to
23692         indicate which child.
23693         (Generic_Conditional_Insert): changed parameter name from "Success" to
23694         "Inserted".
23695         (Generic_Unconditional_Insert_With_Hint): improved algorithm
23696
23697         * a-coorse.adb (Replace_Element): changed parameter name in call to
23698         conditional insert operation.
23699
23700         * a-convec.adb, a-coinve.adb (Insert): removed obsolete comment
23701
23702         * a-cohama.adb (Iterate): manipulate busy-bit here, instead of in
23703         Generic_Iteration
23704
23705         * a-ciorse.adb (Replace_Element): changed parameter name in call to
23706         conditional insert operation.
23707
23708         * a-cihama.adb (Iterate): manipulate busy-bit here, instead of in
23709         Generic_Iteration.
23710
23711         * a-cidlli.ads, a-cidlli.adb (Splice): Position param is now mode in
23712         instead of mode inout.
23713
23714         * a-chtgop.adb (Adjust): modified comments to reflect current AI-302
23715         draft
23716         (Generic_Read): preserve existing buckets array if possible
23717         (Generic_Write): don't send buckets array length anymore
23718
23719         * a-cdlili.ads, a-cdlili.adb (Splice): Position param is now mode in
23720         instead of mode inout.
23721
23722         * a-cihase.adb (Difference): iterate over smaller of Tgt and Src sets
23723         (Iterate): manipulate busy-bit here, instead of in Generic_Iteration
23724
23725         * a-cohase.adb (Difference): iterate over smaller of Tgt and Src sets
23726         (Iterate): manipulate busy-bit here, instead of in Generic_Iteration
23727         (Replace_Element): local operation is now an instantiation
23728
23729         * a-chtgke.ads, a-chtgke.adb (Generic_Conditional_Insert): manually
23730         check current length.
23731         (Generic_Replace_Element): new operation
23732
23733 2006-10-31  Doug Rupp  <rupp@adacore.com>
23734
23735         * g-trasym-vms-alpha.adb: Dummy_User_Act_Proc: New function.
23736         Call TBK$SYMBOLIZE without omitting parameters.
23737
23738 2006-10-31  Vincent Celier  <celier@adacore.com>
23739
23740         * symbols-processing-vms-ia64.adb,
23741         symbols-processing-vms-alpha.adb (Process): Do not include symbols
23742         that come from generic instantiations in bodies.
23743
23744 2006-10-31  Pat Rogers  <rogers@adacore.com>
23745
23746         * a-rttiev.ads, a-rttiev.adb:
23747         This is a significant redesign primarily for the sake of automatic
23748         timer task termination but also to fix a design flaw.
23749         Therefore we are now using an RTS lock, instead of a protected
23750         object, to provide mutual exclusion to the queue of pending events
23751         and the type Timing_Event is no longer a protected type.
23752
23753 2006-10-31  Robert Dewar  <dewar@adacore.com>
23754             Cyrille Comar  <comar@adacore.com>
23755             Ben Brosgol  <brosgol@adacore.com>
23756
23757         * debug.adb:  Update flags documentation
23758
23759         * gnat_ugn.texi: Add documentation for new -gnatwq switch
23760         Clean up documentation for several other warning switches
23761         Clarify how task stack size can be specified with various
23762         versions of Windows.
23763         Add note that -gnatVo includes ranges including loops
23764         Add documentation for -gnatL switch
23765         Add note on elaboration warning for initializing variables
23766         Add documentation for new -gnatwt warning switch
23767         Document new form of pragma Warnings (On|Off, string)
23768         Add comment on use of pragma Warnings to control warnings
23769         Add documentation for -gnatjnn switch
23770         Modify section on interfacing with C for VMS 64-bit.
23771         Add doc for -gnatVe/E
23772         Add documentation of new warning flags -gnatww/-gnatwW
23773         Add warnings about address clause overlays to list of warnings
23774         (Exception Handling Control): Document that the option --RTS must be
23775         used consistently for gcc and gnatbind.
23776         Clarify that inlining is not always possible
23777         Update documentation on pragma Unchecked_Union.
23778
23779         * gnat_rm.texi:
23780         Add documentation for new extended version of pragma Obsolescent
23781         Add documentation for implementation defined attribute 'Stub_Type.
23782         Add note on use of Volatile in asm statements
23783         Add documentation on use of pragma Unreferenced in context clause
23784         Document new form of pragma Warnings (On|Off, pattern)
23785         Document pragma Wide_Character_Encoding
23786         Add note that pragma Restrictions (No_Elaboration_Code) is only fully
23787         enforced if code generation is active.
23788         Add section on pragma Suppress to document GNAT specific check
23789         Alignment_Check
23790         Clarify difference between No_Dispatching_Calls & No_Dispatch.
23791         Add documentation for pragma Restrictions (No_Elaboration_Code)
23792
23793         * gnat-style.texi:
23794         Add comments on layout of subprogram local variables in the
23795         presence of nested subprograms.
23796
23797         * ug_words: Resync.
23798
23799         * elists.ads: Minor reformatting
23800         Node returns Node_Or_Entity_Id (doc change only)
23801
23802         * xgnatugn.adb: Replace ACADEMICEDITION with GPLEDITION
23803
23804         * g-arrspl.ads (Create): Update comments.
23805
23806         * sem.ads: Add details on the handling of the scope stack.
23807
23808         * usage.adb: Update documentation.
23809
23810         * validsw.ads, validsw.adb:
23811         Add definition of Validity_Check_Components and implement -gnatVe/E
23812
23813         * vms_data.ads: Add missing VMS qualifiers.
23814
23815         * s-addope.ads: Add documentation on overflow and divide by zero
23816
23817 2006-10-31  Robert Dewar  <dewar@adacore.com>
23818             Thomas Quinot  <quinot@adacore.com>
23819             Arnaud Charlet  <charlet@adacore.com>
23820
23821         * fmap.adb: Put routines in alpha order
23822
23823         * g-boumai.ads: Remove redundant 'in' keywords
23824
23825         * g-cgi.adb: Minor reformatting
23826
23827         * g-cgi.ads: Remove redundant 'in' keywords
23828
23829         * get_targ.adb: Put routines in alpha order
23830
23831         * prj-attr.ads: Minor reformatting
23832
23833         * s-atacco.ads: Minor reformatting
23834
23835         * scn.adb: Put routines in alpha order
23836
23837         * sinput-l.adb: Minor comment fix
23838
23839         * sinput-p.adb: Minor comment fix
23840
23841         * s-maccod.ads: Minor reformatting
23842
23843         * s-memory.adb: Minor reformatting
23844
23845         * s-htable.adb: Fix typo in comment.
23846
23847         * s-secsta.adb: Minor comment update.
23848
23849         * s-soflin.adb: Minor reformatting
23850
23851         * s-stoele.ads:
23852         Add comment about odd qualification in Storage_Offset declaration
23853
23854         * s-strxdr.adb:
23855         Remove unnecessary 'in' keywords for formal parameters.
23856
23857         * treeprs.adt: Minor reformatting
23858
23859         * urealp.adb: Put routines in alpha order
23860
23861         * s-wchcon.ads, s-wchcon.adb (Get_WC_Encoding_Method): New version
23862         taking string.
23863
23864         * s-asthan-vms-alpha.adb: Remove redundant 'in' keywords
23865
23866         * g-trasym-vms-ia64.adb: Remove redundant 'in' keywords
23867
23868         * env.c (__gnat_unsetenv): Unsetenv is unavailable on LynxOS, so
23869         workaround as on other platforms.
23870
23871         * g-eacodu-vms.adb: Remove redundant 'in' keywords
23872         * g-expect-vms.adb: Remove redundant 'in' keywords
23873
23874         * gnatdll.adb (Add_Files_From_List): Handle Name_Error and report a
23875         clear error message if the list-of-files file cannot be opened.
23876
23877         * g-thread.adb (Unregister_Thread_Id): Add use type Thread_Id so the
23878         equality operator is always visible.
23879
23880         * lang.opt: Woverlength-strings: New option.
23881
23882         * nmake.adt:
23883         Update copyright, since nmake.ads and nmake.adb have changed.
23884
23885         * osint-b.ads, osint-b.adb (Time_From_Last_Bind): removed function .
23886         (Binder_Output_Time_Stamps_Set): removed.
23887         (Old_Binder_Output_Time_Stamp): idem.
23888         (New_Binder_Output_Time_Stamp): idem.
23889         (Recording_Time_From_Last_Bind): idem.
23890         (Recording_Time_From_Last_Bind): Make constant.
23891
23892         * output.ads, output.adb (Write_Str): Allow LF characters
23893         (Write_Spaces): New procedure
23894
23895         * prepcomp.adb (Preproc_Data_Table): Change Increment from 5% to 100%
23896
23897         * inline.adb: Minor reformatting
23898
23899         * s-asthan-vms-alpha.adb: Remove redundant 'in' keywords
23900
23901         * s-mastop-vms.adb: Remove redundant 'in' keywords
23902
23903         * s-osprim-vms.adb: Remove redundant 'in' keywords
23904
23905         * s-trafor-default.adb: Remove redundant 'in' keywords
23906
23907         * 9drpc.adb: Remove redundant 'in' keywords
23908
23909         * s-osinte-mingw.ads: Minor reformatting
23910
23911         * s-inmaop-posix.adb: Minor reformatting
23912
23913         * a-direio.ads: Remove quotes from Compile_Time_Warning message
23914
23915         * a-exexda.adb: Minor code reorganization
23916
23917         * a-filico.adb: Minor reformatting
23918
23919         * a-finali.adb: Minor reformatting
23920
23921         * a-nudira.ads: Remove quote from Compile_Time_Warning message
23922
23923         * a-numeri.ads: Minor reformatting
23924
23925         * a-sequio.ads: Remove quotes from Compile_Time_Warning message
23926
23927         * exp_pakd.ads: Fix obsolete comment
23928
23929         * a-ztenau.adb, a-ztenio.adb, a-wtenau.adb, a-tienau.adb,
23930         a-wtenio.adb (Put): Avoid assuming low bound of string is 1.
23931         Probably not a bug, but certainly neater and more efficient.
23932
23933         * a-tienio.adb: Minor reformatting
23934
23935         * comperr.adb (Compiler_Abort): Call Cancel_Special_Output at start
23936         Avoid assuming low bound of string is 1.
23937
23938         * gnatbind.adb: Change Bindusg to package and rename procedure as
23939         Display, which now ensures that it only outputs usage information once.
23940         (Scan_Bind_Arg): Avoid assuming low bound of string is 1.
23941
23942         * g-pehage.adb (Build_Identical_Keysets): Replace use of 1 by
23943         Table'First.
23944
23945         * g-regpat.adb (Insert_Operator): Add pragma Warnings (Off) to kill
23946         warning.
23947         (Match): Add pragma Assert to ensure that Matches'First is zero
23948
23949         * g-regpat.ads (Match): Document that Matches lower bound must be zero
23950
23951         * makeutl.adb (Is_External_Assignment): Add pragma Assert's to check
23952         documented preconditions (also kills warnings about bad indexes).
23953
23954         * mdll.adb (Build_Dynamic_Library): Avoid assumption that Afiles'First
23955         is 1.
23956         (Build_Import_Library): Ditto;
23957
23958         * mdll-utl.adb: (Gnatbind): Avoid assumption that Alis'First = 1
23959
23960         * rtsfind.adb (RTE_Error_Msg): Avoid assuming low bound of string is 1.
23961
23962         * sem_case.adb (Analyze_Choices): Add pragma Assert to check that
23963         lower bound of choice table is 1.
23964
23965         * sem_case.ads (Analyze_Choices): Document that lower bound of
23966         Choice_Table is 1.
23967
23968         * s-imgdec.adb (Set_Decimal_Digits): Avoid assuming low bound of
23969         string is 1.
23970
23971         * uintp.adb (Init_Operand): Document that low bound of Vec is always 1,
23972         and add appropriate Assert pragma to suppress warnings.
23973
23974         * atree.h, atree.ads, atree.adb
23975         Change Elist24 to Elist25
23976         Add definitions of Field28 and Node28
23977         (Traverse_Field): Use new syntactic parent table in sinfo.
23978
23979         * cstand.adb: Change name Is_Ada_2005 to Is_Ada_2005_Only
23980
23981         * itypes.adb: Change name Is_Ada_2005 to Is_Ada_2005_Only
23982
23983         * exp_tss.adb: Put routines in alpha order
23984
23985         * fe.h: Remove redundant declarations.
23986
23987 2006-10-23 Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
23988
23989         * utils.c (builtin_function): Rename to gnat_builtin_function.
23990         Move common code to add_builtin_function.
23991         * misc.c (LANG_HOOKS_BUILTIN_FUNCTION): Define as
23992         gnat_builtin_function.
23993         * gigi.h (builtin_function): Rename to gnat_builtin_function.
23994         Change the signature.
23995
23996 2006-10-16  Brooks Moses  <bmoses@stanford.edu>
23997
23998         * Makefile.in: Add TEXI2PDF definition.
23999         * Make-lang.in: Add "ada.pdf" target.
24000
24001 2006-10-03  Kazu Hirata  <kazu@codesourcery.com>
24002
24003         * decl.c, utils.c: Fix comment typos.
24004         * utils.c: Fix a typo.
24005
24006 2006-09-28  Eric Botcazou  <ebotcazou@adacore.com>
24007
24008         * decl.c (gnat_to_gnu_entity) <E_Procedure>: Do not set "const" flag
24009         on "pure" Ada subprograms if SJLJ exceptions are used.
24010         * trans.c (Handled_Sequence_Of_Statements_to_gnu): Set TREE_NO_WARNING
24011         on the declaration node of JMPBUF_SAVE.
24012         * utils.c (init_gigi_decls): Set DECL_IS_PURE on the declaration nodes
24013         of Get_Jmpbuf_Address_Soft and Get_GNAT_Exception.
24014         * utils2.c (build_call_0_expr): Do not set TREE_SIDE_EFFECTS.
24015
24016 2006-08-20  Laurent Guerby  <laurent@guerby.net>
24017
24018         PR ada/28716
24019         g-socket.adb (Bind_Socket): Call Set_Address.
24020
24021 2006-09-15  Eric Botcazou  <ebotcazou@adacore.com>
24022
24023         PR ada/15802
24024         * decl.c (same_discriminant_p): New static function.
24025         (gnat_to_gnu_entity) <E_Record_Type>: When there is a parent
24026         subtype and we have discriminants, fix up the COMPONENT_REFs
24027         for the discriminants to make them reference the corresponding
24028         fields of the parent subtype after it has been built.
24029
24030 2006-09-15  Roger Sayle  <roger@eyesopen.com>
24031
24032         PR ada/18817
24033         * utils.c (max_size): Perform constant folding of (A ? B : C) - D
24034         into A ? B - D : C - D when calculating the size of a MINUS_EXPR.
24035
24036 2006-09-13  Olivier Hainque  <hainque@adacore.com>
24037
24038         PR ada/29025
24039         * trans.c (gnat_gimplify_expr) <ADDR_EXPR>: When taking the address
24040         of a SAVE_EXPR, just make the operand addressable/not-readonly and
24041         let the common gimplifier code make and propagate a temporary copy.
24042         (call_to_gnu): Clarify the use of SAVE_EXPR for not addressable
24043         out/in-out actuals and defer setting the addressable/readonly bits
24044         to the gimplifier.
24045
24046 2006-09-13  Eric Botcazou  <ebotcazou@adacore.com>
24047
24048         PR ada/28591
24049         * decl.c (components_to_record): Defer emitting debug info for the
24050         record type associated with the variant until after we are sure to
24051         actually use it.
24052
24053 2006-09-13  Eric Botcazou  <ebotcazou@adacore.com>
24054
24055         PR ada/21952
24056         * gigi.h (gnat_internal_attribute_table): Declare.
24057         * misc.c (LANG_HOOKS_ATTRIBUTE_TABLE): Define to above.
24058         * utils.c (gnat_internal_attribute_table): New global variable.
24059         (builtin_function): Always call decl_attributes on the builtin.
24060         (handle_const_attribute): New static function.
24061         (handle_nothrow_attribute): Likewise.
24062
24063 2006-07-28  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
24064
24065         * Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies.
24066
24067 2006-06-23  Olivier Hainque  <hainque@adacore.com>
24068
24069         * misc.c (gnat_type_max_size): Look at TYPE_ADA_SIZE if we have
24070         not been able to get a constant upper bound from TYPE_SIZE_UNIT.
24071
24072 2006-06-20  James A. Morrison  <phython@gcc.gnu.org>
24073             Eric Botcazou  <ebotcazou@adacore.com>
24074
24075         PR ada/18692
24076         * Make-lang.in: Add check-gnat to lang_checks.  Rename existing
24077         check-gnat into check-acats.
24078
24079 2006-06-17  Karl Berry  <karl@gnu.org>
24080
24081         * gnat-style.texi (@dircategory): Use "Software development"
24082         instead of "Programming", following the Free Software Directory.
24083
24084 2006-06-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
24085
24086         PR ada/27944
24087         * s-taprop-hpux-dce.adb: Delete redundant 'with System.Parameters'.
24088
24089 2006-06-06  Laurent Guerby  <laurent@guerby.net>
24090
24091         PR ada/27769
24092         mlib-utl.adb: Use Program_Name.
24093
24094 2006-05-28  Kazu Hirata  <kazu@codesourcery.com>
24095
24096         * decl.c, env.c, gigi.h, init.c, initialize.c, raise-gcc.c,
24097         sem_ch13.adb, sysdep.c, targtyps.c, tb-alvxw.c, tracebak.c,
24098         trans.c, utils.c: Fix comment typos.  Follow spelling
24099         conventions.
24100         * gnat_rm.texi, gnat_ugn.texi, : Fix typos.  Follow spelling
24101         conventions.
24102
24103 2006-05-19  Nicolas Setton  <setton@adacore.com>
24104
24105         * misc.c (gnat_dwarf_name): New function.
24106         (LANG_HOOKS_DWARF_NAME): Define to it.
24107
24108 2006-05-14  H.J. Lu  <hongjiu.lu@intel.com>
24109
24110         * Make-lang.in (ada/decl.o): Replace target.h with $(TARGET_H).
24111         (ada/misc.o): Likewise.
24112         (ada/utils.o): Likewise.
24113
24114 2006-04-08  Aurelien Jarno  <aurel32@debian.org>
24115
24116         * Makefile.in: Add Ada support for GNU/kFreeBSD.
24117         * s-osinte-kfreebsd-gnu.ads: New file.
24118
24119 2006-03-29  Carlos O'Donell  <carlos@codesourcery.com>
24120
24121         * Make-lang.in: Rename docdir to gcc_docdir.
24122
24123 2006-03-04  Eric Botcazou  <ebotcazou@adacore.com>
24124
24125         * gigi.h (get_ada_base_type): Delete.
24126         * utils2.c (get_ada_base_type): Likewise.
24127         * trans.c (convert_with_check): Operate in the real base type.
24128
24129 2006-03-03  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
24130
24131         * uintp.adb (Num_Bits): Handle Uint_Int_First specially.
24132
24133 2006-03-02  Richard Sandiford  <richard@codesourcery.com>
24134
24135         * utils.c (create_var_decl): Use have_global_bss_p when deciding
24136         whether to make the decl common.
24137
24138 2006-02-20  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
24139
24140         * Make-lang.in (Ada): Remove.
24141         (.PHONY): Remove Ada
24142
24143 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
24144
24145         * sem_ch4.adb (Find_Boolean_Types): If one of the operands is an
24146         aggregate, check the interpretations of the other operand to find one
24147         that may be a boolean array.
24148
24149         (Analyze_Selected_Component): Fix flow-of-control typo in case where
24150         the prefix is a private extension.
24151
24152 2006-02-17  Eric Botcazou  <botcazou@adacore.com>
24153
24154         PR ada/26315
24155         * utils2.c (find_common_type): If both input types are BLKmode and
24156         have the same constant size, keep using the first one.
24157
24158         * bindgen.adb: (Gen_Versions_Ada): Revert previous workaround.
24159
24160         * decl.c (gnat_to_gnu_entity): Only check TREE_OVERFLOW for a constant.
24161
24162         * misc.c (gnat_handle_option): New case for -Woverlength-strings.
24163
24164 2006-02-17  Jose Ruiz  <ruiz@adacore.com>
24165
24166         * s-taprop-irix.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
24167         s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb,
24168         s-taprop-posix.adb, s-taprop-vxworks.adb, s-taprop-lynxos.adb,
24169         s-taprop-tru64.adb (Set_False, Set_True, Suspend_Until_True): Add
24170         Abort_Defer/Undefer pairs to avoid the possibility of a task being
24171         aborted while owning a lock.
24172
24173 2006-02-17  Javier Miranda  <miranda@adacore.com>
24174             Robert Dewar  <dewar@adacore.com>
24175
24176         * exp_ch4.adb (Expand_N_Allocator): If the allocated object is accessed
24177         through an access to class-wide interface we force the displacement of
24178         the pointer to the allocated object to reference the corresponding
24179         secondary dispatch table.
24180         (Expand_N_Op_Divide): Allow 64 bit divisions by small power of 2,
24181         if Long_Shifts are supported on the target, even if 64 bit divides
24182         are not supported (configurable run time mode).
24183         (Expand_N_Type_Conversion): Do validity check if validity checks on
24184         operands are enabled.
24185         (Expand_N_Qualified_Expression): Do validity check if validity checks
24186         on operands are enabled.
24187
24188 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
24189
24190         * exp_dbug.adb (Debug_Renaming_Declaration): Indicate that the entity
24191         must be materialized when the renamed expression is an explicit
24192         dereference.
24193
24194 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
24195
24196         * freeze.adb (Statically_Discriminated_Components): Return false if
24197         the bounds of the type of the discriminant are not static expressions.
24198
24199         * sem_aggr.adb (Check_Static_Discriminated_Subtype): Return false if
24200         the bounds of the discriminant type are not static.
24201
24202 2006-02-17  Robert Dewar  <dewar@adacore.com>
24203
24204         * g-os_lib.adb (Copy_File): Make sure that if From has an Invalid_FD,
24205         then we close To if it is valid.
24206
24207 2006-02-17  Vasiliy Fofanov  <fofanov@adacore.com>
24208
24209         * init.c (facility_resignal_table): new array
24210         (__gnat_default_resignal_p): enhance default predicate to resignal if
24211         VMS condition has one of the predefined facility codes.
24212
24213 2006-02-17  Vasiliy Fofanov  <fofanov@adacore.com>
24214
24215         * Makefile.in: Use VMS64 specialized versions of several units in
24216         Interfaces.C hierarchy to be compatible with HP C default size choices.
24217         Use the default version of Ada.Synchronous_Task_Control for VxWorks 653.
24218
24219 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
24220
24221         * sem_ch10.adb (Analyze_With_Clause): If the unit is a subprogram
24222         instantiation, the corresponding entity is the related_instance of the
24223         wrapper package created for the instance.
24224
24225 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
24226
24227         * sem_ch12.adb (Analyze_Package_Instantiation): Inline_Now is false if
24228         the current instance is nested within another instance in a child unit.
24229
24230 2006-02-17  Javier Miranda  <miranda@adacore.com>
24231             Ed Schonberg  <schonberg@adacore.com>
24232
24233         * sem_ch3.adb (Build_Discriminated_Subtype): In case of concurrent
24234         type we cannot inherit the primitive operations; we inherit the
24235         Corresponding_Record_Type (which has the list of primitive operations).
24236         (Check_Anonymous_Access_Types): When creating anonymous access types for
24237         access components, use Rewrite in order to preserve the tree structure,
24238         for ASIS use.
24239         (Analyze_Object_Declaration): For limited types with access
24240         discriminants with defaults initialized by an aggregate, obtain
24241         subtype from aggregate as for other mutable types.
24242         (Derived_Type_Declaration): If the derived type is a limited interface,
24243         set the corresponding flag (Is_Limited_Record is not sufficient).
24244
24245 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
24246
24247         * sem_ch6.adb (Build_Body_To_Inline): Enforce the rule that in order
24248         to inline a function that returns an unconstrained type, the return
24249         expression must be the first variable declared in the body of the
24250         function.
24251
24252 2006-02-17  Javier Miranda  <miranda@adacore.com>
24253
24254         * sem_res.adb (Resolve_Type_Conversion): In case of conversion to an
24255         abstract interface type, the static analysis is not enough to know if
24256         the interface is implemented or not by the source tagged type. Hence
24257         we must pass the work to the expander to generate the required code to
24258         evaluate the conversion at run-time.
24259         (Resolve_Equality_Op): Do not apply previous
24260         transformation if expansion is disasbled, to prevent anomalies when
24261         locating global references in a generic unit.
24262
24263 2006-02-17  Vincent Celier  <celier@adacore.com>
24264
24265         * snames.ads, snames.adb: New standard names for new project attributes:
24266         archive_builder, archive_indexer, compiler_pic_option,
24267         config_body_file_name, config_body_file_name_pattern,
24268         config_file_switches, config_file_unique, config_spec_file_name,
24269         config_spec_file_name_pattern, default_builder_switches,
24270         default_global_compiler_switches, default_language,
24271         dependency_file_kind, global_compiler_switches, include_path,
24272         include_path_file, language_kind, linker_executable_option,
24273         linker_lib_dir_option, linker_lib_name_option, mapping_file_switches,
24274         roots, runtime_project.
24275
24276 2006-02-17  Matthew Heaney  <heaney@adacore.com>
24277
24278         * a-convec.ads, a-convec.adb:
24279         (operator "&"): handle potential overflow for large index types
24280         (Insert): removed Contraint_Error when using large index types
24281         (Insert_Space): removed Constraint_Error for large index types
24282         (Length): moved constraint check from Length to Insert
24283
24284         * a-coinve.ads, a-coinve.adb: Stream attribute procedures are declared
24285         as not null access.
24286         Explicit raise statements now include an exception message.
24287         (operator "&"): handle potential overflow for large index types
24288         (Insert): removed Contraint_Error when using large index types
24289         (Insert_Space): removed Constraint_Error for large index types
24290         (Length): moved constraint check from Length to Insert
24291
24292 2006-02-17  Robert Dewar  <dewar@adacore.com>
24293
24294         * s-wchcnv.adb: Document handling of [ on output (we do not change
24295         this to ["5B"] and the new comments say why not.
24296
24297         * gnat_ugn.texi:
24298         Add note for -gnatVo that this now includes the cases of type
24299         conversions and qualified expressions.
24300         Add comments on handling of brackets encoding for Text_IO
24301
24302 2006-02-17  Ramon Fernandez  <fernandez@adacore.com>
24303             Thomas Quinot  <quinot@adacore.com>
24304             Robert Dewar  <dewar@adacore.com>
24305             Javier Miranda  <miranda@adacore.com>
24306
24307         * expander.adb: Fix typo in comment
24308
24309         * exp_pakd.adb: Fix typo
24310         Minor comment reformatting.
24311
24312         * g-dyntab.adb: Minor reformatting
24313
24314         * exp_ch6.adb (Register_Interface_DT_Entry): Traverse the list of
24315         aliased subprograms to look for the abstract interface subprogram.
24316
24317 2006-02-16  Eric Botcazou  <ebotcazou@adacore.com>
24318
24319         * env.c (__gnat_setenv): Use size_t.
24320         (__gnat_unsetenv): Likewise.
24321         (__gnat_clearenv): Likewise.
24322
24323 2006-02-16  Arnaud Charlet  <charlet@adacore.com>
24324
24325         * opt.ads (Ada_Version_Default): Set to Ada 2005 by default.
24326
24327 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
24328
24329         * a-intnam-os2.ads, a-intnam-unixware.ads, g-soccon-unixware.ads,
24330         g-soliop-unixware.ads, i-os2err.ads, i-os2lib.adb, i-os2lib.ads,
24331         i-os2syn.ads, i-os2thr.ads, s-intman-irix-athread.adb,
24332         s-osinte-aix-fsu.ads, s-osinte-fsu.adb, s-parame-os2.adb,
24333         s-osinte-irix-athread.ads, s-osinte-linux-fsu.ads, s-osinte-os2.adb,
24334         s-osinte-os2.ads, s-osinte-solaris-fsu.ads, s-osinte-unixware.adb,
24335         s-osinte-unixware.ads, s-osprim-os2.adb, s-taprop-irix-athread.adb,
24336         s-taprop-os2.adb, s-tasinf-irix-athread.adb, s-tasinf-irix-athread.ads,
24337         s-taspri-os2.ads, system-os2.ads, system-unixware.ads: Removed,
24338         no longer used.
24339
24340 2006-02-13  Jose Ruiz  <ruiz@adacore.com>
24341
24342         * a-taster.adb (Current_Task_Fallback_Handler): Document why explicit
24343         protection against race conditions is not needed.
24344         (Set_Dependents_Fallback_Handler): Add mutual exclusive access to the
24345         fallback handler.
24346         (Set_Specific_Handler): Add mutual exclusive access to the specific
24347         handler.
24348         (Specific_Handler): Add mutual exclusive access for retrieving the
24349         specific handler.
24350
24351         * s-tarest.adb (Task_Wrapper): Add mutual exclusive access to the fall
24352         back handler.
24353
24354         * s-taskin.ads (Common_ATCB): Remove pragma Atomic for
24355         Fall_Back_Handler and Specific_Handler.
24356
24357         * s-tassta.adb (Task_Wrapper): Add mutual exclusive access to the task
24358         termination handlers.
24359         Set two different owerflow depending on the maximal stack size.
24360
24361         * s-solita.adb (Task_Termination_Handler_T): Document why explicit
24362         protection against race conditions is not needed when executing the
24363         task termination handler.
24364
24365 2006-02-13  Robert Dewar  <dewar@adacore.com>
24366
24367         * s-gloloc-mingw.adb, a-cgaaso.ads, a-stzmap.adb, a-stzmap.adb,
24368         a-stzmap.ads, a-ztcoio.adb, a-ztedit.adb, a-ztedit.ads, a-ztenau.adb,
24369         a-ztenau.ads, a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
24370         a-comlin.adb, a-decima.adb, a-decima.ads, a-direio.adb, a-direio.adb,
24371         a-direio.adb, a-direio.ads, a-ngcoty.adb, a-ngcoty.ads, a-nuflra.adb,
24372         a-nuflra.ads, a-sequio.adb, a-sequio.ads, a-sequio.ads, a-storio.ads,
24373         a-stream.ads, a-ststio.adb, a-ststio.adb, a-ststio.ads, a-ststio.ads,
24374         a-stwima.adb, a-stwima.adb, a-stwima.ads, a-stwise.adb, a-teioed.adb,
24375         a-teioed.ads, a-ticoau.adb, a-ticoau.ads, a-ticoio.adb, a-tasatt.ads,
24376         a-tideau.adb, a-tideau.ads, a-tideio.adb, a-tideio.ads, a-tienau.adb,
24377         a-tienau.ads, a-tienio.adb, a-tienio.ads, a-tifiio.ads, a-tiflau.adb,
24378         a-tiflau.ads, a-tiflio.adb, a-tiflio.adb, a-tiflio.ads, a-tigeau.ads,
24379         a-tiinau.adb, a-tiinau.ads, a-tiinio.adb, a-tiinio.ads, a-timoio.adb,
24380         a-timoio.ads, a-titest.adb, a-titest.ads, a-wtcoio.adb, a-wtdeau.adb,
24381         a-wtdeau.ads, a-wtdeio.adb, a-wtdeio.ads, a-wtedit.adb, a-wtedit.adb,
24382         a-wtedit.ads, a-wtenau.adb, a-wtenau.ads, a-wtenau.ads, a-wtenio.adb,
24383         a-wtenio.ads, a-wtfiio.adb, a-wtfiio.ads, a-wtflau.adb, a-wtflau.ads,
24384         a-wtflio.adb, a-wtflio.adb, a-wtflio.ads, a-wtgeau.ads, a-wtinau.adb,
24385         a-wtinau.ads, a-wtinio.adb, a-wtinio.ads, a-wtmoau.adb, a-wtmoau.ads,
24386         a-wtmoio.adb, a-wtmoio.ads, xref_lib.adb, xref_lib.ads, xr_tabls.adb,
24387         g-boubuf.adb, g-boubuf.ads, g-cgideb.adb, g-io.adb, gnatdll.adb,
24388         g-pehage.adb, i-c.ads, g-spitbo.adb, g-spitbo.ads, mdll.adb,
24389         mlib-fil.adb, mlib-utl.adb, mlib-utl.ads, prj-env.adb, prj-tree.adb,
24390         prj-tree.ads, prj-util.adb, s-arit64.adb, s-asthan.ads, s-auxdec.adb,
24391         s-auxdec.ads, s-chepoo.ads, s-direio.adb, s-direio.ads, s-errrep.adb,
24392         s-errrep.ads, s-fileio.adb, s-fileio.ads, s-finroo.adb, s-finroo.ads,
24393         s-gloloc.adb, s-gloloc.ads, s-io.adb, s-io.ads, s-rpc.adb,
24394         s-rpc.ads, s-shasto.ads, s-sequio.adb, s-stopoo.ads, s-stratt.adb,
24395         s-stratt.ads, s-taasde.adb, s-taasde.ads, s-tadert.adb, s-sequio.ads,
24396         s-taskin.adb, s-tasque.adb, s-tasque.ads, s-wchjis.ads, makegpr.adb,
24397         a-coinve.adb, a-cidlli.adb, eval_fat.adb, exp_dist.ads, exp_smem.adb,
24398         fmap.adb, g-dyntab.ads, g-expect.adb, lib-xref.ads, osint.adb,
24399         par-load.adb, restrict.adb, sinput-c.ads, a-cdlili.adb,
24400         system-vms.ads, system-vms-zcx.ads, system-vms_64.ads: Minor
24401         reformatting.
24402
24403 2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>
24404
24405         * a-tasatt.adb, s-osinte-lynxos-3.adb, s-osinte-lynxos.adb,
24406         s-osinte-aix.adb, s-interr-sigaction.adb, s-asthan-vms-alpha.adb,
24407         s-interr-vms.adb, s-intman-vms.adb, s-interr-vxworks.adb,
24408         s-intman-vxworks.adb, s-asthan-vms-alpha.adb, a-ztexio.adb,
24409         a-reatim.adb, a-taside.adb, a-textio.adb, a-witeio.adb, prj-attr.adb,
24410         s-intman-irix.adb, s-intman-solaris.adb, s-intman-posix.adb,
24411         a-dynpri.adb, a-interr.adb, g-dynhta.adb, s-asthan.adb, s-interr.adb,
24412         s-pooglo.adb, s-pooloc.adb, s-poosiz.adb, s-tasren.adb, s-tasuti.adb,
24413         s-tataat.adb, s-tpobop.adb: Remove redundant with clauses.
24414
24415 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
24416
24417         * s-osinte-darwin.adb, s-osinte-darwin.ads, s-osinte-vxworks.ads,
24418         s-osinte-solaris.ads, s-osinte-linux.ads, s-osinte-freebsd.ads,
24419         s-osinte-solaris-posix.ads, s-osinte-lynxos-3.ads, s-osinte-lynxos.ads,
24420         s-osinte-tru64.ads, s-osinte-aix.ads, s-osinte-irix.ads,
24421         s-osinte-hpux-dce.ads, s-osinte-linux-hppa.ads,
24422         s-osinte-linux-alpha.ads, s-inmaop-posix.adb (sigset_t_ptr): Removed,
24423         replaced by anonymous access type.
24424         (pthread_sigmask): Now take an access sigset_t
24425
24426         * s-osinte-hpux.ads:  Ditto.
24427         (pthread_mutex_t, pthread_cond_t): Update definitions to support
24428         properly 32 and 64 bit ABIs.
24429
24430 2006-02-13  Pascal Obry  <obry@adacore.com>
24431
24432         * s-taprop-posix.adb, s-taprop-vxworks.adb, s-taprop-tru64.adb,
24433         s-taprop-lynxos.adb, s-taprop-irix.adb, s-taprop-hpux-dce.adb,
24434         s-taprop-linux.adb, s-taprop-solaris.adb,
24435         s-taprop-vms.adb (Create_Task): Remove task adjustment code. This
24436         adjustement is already done when calling this routine.
24437
24438 2006-02-13  Pascal Obry  <obry@adacore.com>
24439
24440         * system-mingw.ads (Underlying_Priorities): Update the priority mapping
24441         table to take advantage of the 16 priority levels available on Windows
24442         2000 and XP. On NT4 there are only 7 priority levels, this is properly
24443         supported by this new mapping.
24444
24445 2006-02-13  Nicolas Setton  <setton@adacore.com>
24446
24447         * adadecode.h, adadecode.c: (__gnat_decode): Improve support of types.
24448         (get_encoding): New subprogram. Extracts the encodings from an encoded
24449         Ada name.
24450
24451 2006-02-13  Pascal Obry  <obry@adacore.com>
24452             Nicolas Roche  <roche@adacore.com>
24453             Arnaud Charlet  <charlet@adacore.com>
24454
24455         * adaint.h, adaint.c (DIR_SEPARATOR): Use _T() macro for Unicode
24456         support.
24457         (__gnat_try_lock): Add unicode support by using a specific section on
24458         Windows.
24459         (__gnat_get_current_dir): Idem.
24460         (__gnat_open_read): Idem.
24461         (__gnat_open_rw): Idem.
24462         (__gnat_open_create): Idem.
24463         (__gnat_create_output_file): Idem.
24464         (__gnat_open_append): Idem.
24465         (__gnat_open_new): Idem.
24466         (__gnat_file_time_name): Idem.
24467         (__gnat_set_file_time_name): Idem.
24468         (__gnat_stat): Idem.
24469         (win32_no_block_spawn): Idem.
24470         (__gnat_locate_exec_on_path): Idem.
24471         (__gnat_opendir): New routine.
24472         (__gnat_closedir): Idem.
24473         (__gnat_readdir): Add new parameter length (pointer to int). Update
24474         implementation to use it and add specific Win32 code for Unicode
24475         support.
24476         (__gnat_get_env_value_ptr): Remove. Replaced by __gnat_getenv in env.c
24477         (__gnat_set_env_value): Remove. Replaced by __gnat_setenv in env.c
24478         (convert_addresses): Do not define this dummy routine on VMS.
24479
24480         * mingw32.h (GNAT_UNICODE_SUPPORT): New definition, if set the GNAT
24481         runtime Unicode support will be activated.
24482         (S2WS): String to Wide-String conversion. This version just copy a
24483         string in non Unicode version.
24484         (WS2S): Wide-String to String conversion. This version just copy a
24485         string in non Unicode version.
24486
24487         * g-dirope.adb: (Close): Now import __gnat_closedir from adaint.c.
24488         (Open): Now import __gnat_opendir from adaint.c.
24489         (Read): Change the implementation to support unicode characters. It is
24490         not possible to use strlen() on Windows as this version supports only
24491         standard ASCII characters. So the length of the directory entry is now
24492         returned from the imported __gnat_readdir routine.
24493         Update copyright notice.
24494
24495         * s-crtl-vms64.ads, s-crtl.ads: (closedir): Moved to adaint.c.
24496         (opendir): Moved to adaint.c.
24497
24498         * g-os_lib.adb (Copy_Time_Stamp): Fix off-by-one range computation.
24499         (Get_Directory): Fix wrong indexing.
24500         (Getenv): replace __gnat_get_env_value_ptr from adaint.c by
24501         __gnat_getenv from env.c
24502         (Setenv): replace __gnat_set_env_value from adaint.c by __gnat_setenv
24503         from env.c
24504
24505         * env.h, env.c: New file.
24506
24507         * s-scaval.adb (Initialize): Replace __gnat_get_env_value_ptr from
24508         adaint.c by __gnat_getenv from env.c
24509
24510         * s-shasto.adb (Initialize): replace __gnat_get_env_value_ptr from
24511         adaint.c by __gnat_getenv from env.c
24512
24513         * Make-lang.in: Add env.o in the list of C object needed by gnat1
24514         and gnatbind.
24515         Update dependencies.
24516
24517 2006-02-13  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
24518             Olivier Hainque  <hainque@adacore.com>
24519             Eric Botcazou  <ebotcazou@adacore.com>
24520
24521         * ada-tree.h: (TYPE_UNCHECKED_UNION_P): Deleted.
24522
24523         * gigi.h (value_factor_p): Add prototype and description, now public.
24524
24525         * decl.c (gnat_to_gnu_field): Don't attempt BLKmode to integral type
24526         promotion for field with rep clause if the associated size was proven
24527         to be in error.
24528         Expand comments describing attempts to use a packable type.
24529         (gnat_to_gnu_entity) <E_Signed_Integer_Subtype,
24530         E_Floating_Point_Subtype>: Inherit alias set of what we are making a
24531         subtype of to ensure conflicts amongst all subtypes in a hierarchy,
24532         necessary since these are not different types and pointers may
24533         actually designate any subtype in this hierarchy.
24534         (gnat_to_gnu_entity, case E_Record_Type): Always make fields for
24535         discriminants but put them into record only if not Unchecked_Union;
24536         pass flag to components_to_record showing Unchecked_Union.
24537         (make_dummy_type): Use UNION_TYPE only if Unchecked_Union and no
24538         components before variants; don't set TYPE_UNCHECKED_UNION_P.
24539         (components_to_record): New argument UNCHECKED_UNION.
24540         Remove special case code for Unchecked_Union and instead use main code
24541         with small changes.
24542
24543         PR ada/26096
24544         (gnat_to_gnu_entity) <E_Variable>: Do not initialize the aligning
24545         variable with the expression being built, only its inner field.
24546
24547         * trans.c (Handled_Sequence_Of_Statements_to_gnu): Remove call to
24548         emit_sequence_entry_statements.
24549         (emit_sequence_entry_statements, body_with_handlers_p): Delete.
24550         (establish_gnat_vms_condition_handler): Move before
24551         Subprogram_Body_to_gnu.
24552         (Subprogram_Body_to_gnu): On VMS, establish_gnat_vms_condition_handler
24553         for a subprogram if it has a foreign convention or is exported.
24554         (Identifier_to_gnu): Manually unshare the DECL_INITIAL tree when it is
24555         substituted for a CONST_DECL.
24556         (tree_transform, case N_Aggregate): Remove code for UNION_TYPE and pass
24557         Etype to assoc_to_constructor.
24558         (assoc_to_constructor): New argument, GNAT_ENTITY; use it to ignore
24559         discriminants of Unchecked_Union.
24560         (TARGET_ABI_OPEN_VMS): Define to 0 if not defined, so that later uses
24561         don't need cluttering preprocessor directives.
24562         (establish_gnat_vms_condition_handler): New function. Establish the GNAT
24563         condition handler as current in the compiled function.
24564         (body_with_handlers_p): New function. Tell whether a given sequence of
24565         statements node is attached to a package or subprogram body and involves
24566         exception handlers possibly nested within inner block statements.
24567         (emit_sequence_entry_statements): New function, to emit special
24568         statements on entry of sequences when necessary. Establish GNAT
24569         condition handler in the proper cases for VMS.
24570         (Handled_Sequence_Of_Statements_to_gnu): Start block code with
24571         emit_sequence_entry_statements.
24572
24573         * utils2.c (find_common_type): If both input types are BLKmode and
24574         have a constant size, use the smaller one.
24575         (build_simple_component_ref): Also match if FIELD and NEW_FIELD are
24576         the same.
24577
24578         * utils.c (value_factor_p): Make public, to allow uses from other gigi
24579         units.
24580         (create_type_decl): Do not set the flag DECL_IGNORED_P for dummy types.
24581         (convert, case UNION_TYPE): Remove special treatment for unchecked
24582         unions.
24583
24584         PR ada/18659
24585         (update_pointer_to): Update variants of pointer types to unconstrained
24586         arrays by attaching the list of fields of the main variant.
24587
24588 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
24589             Robert Dewar  <dewar@adacore.com>
24590
24591         * a-exexpr.adb, a-exexpr-gcc.adb
24592         (Process_Raise_Exception): Removed, merged with Propagate_Exception.
24593         (Propagate_Exception): Now take extra From_Signal_Handler parameter.
24594         Remove code unused for exception propagation for the compiler itself
24595         from a-except.adb and update to still share separate packages.
24596
24597         * a-except.ads, a-except.adb: Ditto.
24598         Add comments that this version is now used only by the compiler and
24599         other basic tools. The full version that includes the Ada 2005 stuff
24600         is in separate files a-except-2005.ads/adb. The reason is that we do
24601         not want to cause bootstrap problems with compilers not recognizing
24602         Wide_Wide_String.
24603         Add exception reason code PE_Implicit_Return
24604         Add new exception reason code (Null Exception_Id)
24605
24606         * a-except-2005.adb, a-except-2005.ads: New files.
24607
24608         * s-wchcon.ads: (Get_WC_Encoding_Method): New function.
24609
24610         * s-wchcon.adb: New file.
24611
24612         * Makefile.in (LIBGNAT_SRCS): Add tb-gcc.c.
24613         (traceback.o deps): Likewise.
24614         (SPARC/Solaris): Accept sparc[64|v9]-sun-solaris.
24615         Activate build of GMEM instrumentation library on VMS targets.
24616         (gnatlib-sjlj, gnatlib-zcx): Pass EH_MECHANISM to make gnatlib.
24617         Use a-except-2005.ads/adb for all run-time library builds unless
24618         specified otherwise.
24619         [VMS] (LIBGNAT_TARGET_PAIRS_AUX1,2): Rename s-parame-vms.ads to
24620         s-parame-vms-alpha.ads and add s-parame-vms-ia64.ads.
24621         Use s-parame.adb on all native platforms.
24622         Use s-parame-vxworks.adb on all vxworks platforms.
24623         Add env.c env.h in LIBGNAT_SRCS
24624         Add env.o in LIBGNAT_OBJS
24625         (GNATMAKE_OBJS): Remove ctrl_c.o object.
24626         (LIBGNAT_TARGET_PAIRS for x86-vxworks): Use an specialized version of
24627         s-osinte.adb, s-tpopsp.adb, and system.ads for the run time that
24628         supports VxWorks 6 RTPs.
24629         (EXTRA_GNATRTL_NONTASKING_OBJS for x86-vxworks): Remove the use of
24630         i-vxworks and i-vxwoio from the run time that supports VxWorks 6 RTPs.
24631
24632         * types.h, types.ads (Terminate_Program): New exception
24633         Add comment on modifying multiple versions of a-except.adb when the
24634         table of exception reasons is modified.
24635         Add exception reason code PE_Implicit_Return
24636         Add new exception reason code (Null Exception_Id)
24637
24638         * clean.adb (Initialize): Get the target parameters before checking
24639         if target is OpenVMS. Move the OpenVMS specific code here from package
24640         body elaboration code.
24641
24642 2006-02-13  Thomas Quinot  <quinot@adacore.com>
24643             Vincent Celier  <celier@adacore.com>
24644             Robert Dewar  <dewar@adacore.com>
24645
24646         * ali-util.adb (Get_File_Checksum): Update to account for change in
24647         profile of Initialize_Scanner.
24648
24649         * gprep.adb (Gnatprep): Update to account for change in profile of
24650         Initialize_Scanner.
24651         (Process_One_File): Same.
24652
24653         * lib.adb (Get_Code_Or_Source_Unit): New subprogram factoring the
24654         common code between Get_Code_Unit and Get_Source_Unit. Reimplement
24655         that behaviour using the new Unit information recorded in the source
24656         files table, rather than going through all units every time.
24657         (Get_Code_Unit): Reimplement in terms of Get_Code_Or_Source_Unit.
24658         (Get_Source_Unit): Same.
24659
24660         * prepcomp.adb (Parse_Preprocessing_Data_File): Update to account for
24661         change in profile of Initialize_Scanner.
24662         (Prepare_To_Preprocess): Same.
24663
24664         * lib.ads: Fix typo in comment (templace -> template).
24665
24666         * prj-part.adb (Parse_Single_Project): Update to account for change in
24667         profile of Initialize_Scanner.
24668
24669         * scn.adb (Initialize_Scanner): Account for change in profile of
24670         Scng.Initialize_Scanner: set Current_Source_Unit in Scn instead of Scng.
24671         Also record the association of the given Source_File_Index to the
24672         corresponding Unit_Number_Type.
24673
24674         * scng.ads, scng.adb (Initialize_Scanner.Set_Reserved): Remove
24675         procedure.
24676         (Initialize_Scanner): Call Scans.Initialize_Ada_Keywords.
24677         Remove Unit formal for generic scanner: this formal
24678         is only relevant to Scn (the scanner instance used to parse Ada source
24679         files), not to other instances. Update comment accordingly.
24680         (Scan): Use new function Snames.Is_Keyword_Name.
24681
24682         * sinfo-cn.adb: Fix typo in comment.
24683
24684         * sinput.adb (Unit, Set_Unit): Accessors for new source file attribute
24685         Unit.
24686
24687         * sinput.ads (Source_File_Record): New component Unit, used to capture
24688         the unit identifier (if any) associated to a source file.
24689
24690         * sinput-c.adb, sinput-l.adb (Load_File): Initialize new component
24691         Unit in Source_File_Record.
24692
24693         * sinput-p.adb (Source_File_Is_Subunit): Update to account for change
24694         in profile of Initialize_Scanner.
24695
24696         * scans.adb (Initialize_Ada_Keywords): New procedure
24697
24698         * scans.ads (Initialize_Ada_Keywords): New procedure to initialize the
24699         Ada keywords in the Namet table, without the need to call
24700         Initialize_Scanner.
24701
24702         * snames.adb: Add pragma Ada_2005 (synonym for Ada_05)
24703         (Is_Keyword_Name): New function
24704
24705         * snames.ads: Add subtype Configuration_Pragma_Names
24706         Add pragma Ada_2005 (synonym for Ada_05)
24707         (Is_Keyword_Name): New function
24708
24709         * snames.h: Add pragma Ada_2005 (synonym for Ada_05)
24710
24711 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
24712
24713         * a-stwisu.adb, a-strsup.adb, a-stzsup.adb (Super_Slice): Fix slice
24714         index.
24715
24716         * a-stwima.adb (To_Set): Add extra check when N = 0.
24717
24718         * g-regpat.adb: (Match_Simple_Operator): Avoid possible overflow.
24719
24720 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
24721
24722         * s-parame-mingw.adb, s-parame-linux.adb,
24723         s-parame-solaris.adb: Removed, replaced by s-parame.adb
24724
24725         * s-parame-vxworks.ads: Fix typo.
24726
24727         * s-parame-vxworks.adb: New file.
24728
24729         * s-parame.adb: Version now used by all native platforms.
24730         (Default_Stack_Size): Use 2 megs for default stack size and use
24731         __gl_default_stack_size when available.
24732         (Minimum_Stack_Size): Use 12K.
24733
24734         * s-taprop-mingw.adb: Set default stack size linker switch to 2megs.
24735         (Create_Task): Refine implementation taking advantage of the XP stack
24736         size support. On XP, we now create the thread using the flag
24737         STACK_SIZE_PARAM_IS_A_RESERVATION.
24738
24739         * s-osinte-mingw.ads (Stack_Size_Param_Is_A_Reservation): New constant.
24740
24741         * sysdep.c (__gnat_is_windows_xp): New routine, returns 1 on Windows
24742         XP and 0 on older Windows versions.
24743
24744         * interfac-vms.ads: Removed, no longer used.
24745
24746 2006-02-13  Matthew Heaney  <heaney@adacore.com>
24747
24748         * a-rbtgso.adb, a-crbtgo.adb, a-crbtgk.adb, a-coorse.adb,
24749         a-cohama.adb, a-ciorse.adb, a-cihama.adb, a-cihase.adb,
24750         a-cohase.adb: All explicit raise statements now include an exception
24751         message.
24752
24753         * a-ciormu.ads, a-ciormu.adb, a-coormu.ads, a-coormu.adb
24754         (Update_Element_Preserving_Key): renamed op to just Update_Element.
24755         Explicit raise statements now include an exception message
24756
24757         * a-cihase.ads, a-cohase.ads: Removed comment.
24758
24759         * a-stboha.ads, a-stboha.adb, a-stfiha.ads, a-envvar.adb,
24760         a-envvar.ads, a-swbwha.ads, a-swbwha.adb, a-swfwha.ads, a-szbzha.ads,
24761         a-szbzha.adb, a-szfzha.ads: New files.
24762
24763 2006-02-13  Matthew Heaney  <heaney@adacore.com>
24764
24765         * a-cgcaso.adb, a-cgaaso.adb: Implemented using heapsort instead of
24766         quicksort.
24767
24768 2006-02-13  Eric Botcazou  <ebotcazou@adacore.com>
24769
24770         * lang.opt: Wvariadic-macros: New option.
24771         Wold-style-definition: Likewise.
24772         Wmissing-format-attribute: Likewise.
24773
24774         * misc.c (gnat_handle_option): New cases for -Wvariadic-macros,
24775         -Wold-style-definition and -Wmissing-format-attribute.
24776
24777 2006-02-13  Robert Dewar  <dewar@adacore.com>
24778
24779         * a-ticoio.ads, a-ticoio.adb: Add use clause (moved here from spec)
24780
24781         * a-coteio.ads, a-lcteio.ads, a-llctio.ads, a-scteio.ads: New files.
24782
24783 2006-02-13  Nicolas Roche  <roche@adacore.com>
24784
24785         * a-envvar.adb, a-envvar.ads: New files.
24786
24787 2006-02-13  Douglas Rupp  <rupp@adacore.com>
24788
24789         * s-parame-vms.ads: Renamed to s-parame-vms-alpha.ads
24790
24791         * s-parame-vms-alpha.ads, s-parame-vms-ia64.ads: New files.
24792
24793 2006-02-13  Pat Rogers  <rogers@adacore.com>
24794
24795         * a-rttiev.adb, a-rttiev.ads: New files.
24796
24797 2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>
24798
24799         * a-tiboio.adb, a-tiboio.ads, a-wwboio.adb,
24800         a-wwboio.ads, a-zzboio.adb, a-zzboio.ads:  New files.
24801
24802         * impunit.adb, Makefile.rtl: Added new Ada 2005 units.
24803
24804 2006-02-13  Robert Dewar  <dewar@adacore.com>
24805
24806         * rtsfind.adb, exp_prag.adb, lib-writ.adb, par-labl.adb,
24807         sem_case.adb: Minor code reorganization (not Present should be No)
24808
24809 2006-02-13  Geert Bosch  <bosch@adacore.com>
24810             Gary Dismukes  <dismukes@adacore.com>
24811
24812         * a-tifiio.adb (Put_Digits): Test Last against To'First - 1 instead of
24813         0, since the lower bound of the actual string may be greater than one.
24814
24815         PR ada/20753
24816         * a-tifiio.adb (Put): Fix condition to raise Layout_Error when invalid
24817         layout is requested.
24818
24819 2006-02-13  Vincent Celier  <celier@adacore.com>
24820
24821         * back_end.adb (Scan_Compiler_Arguments): Check if
24822         Search_Directory_Present is True and, if it is, add the argument in
24823         the source search directory path.
24824
24825         * switch-c.adb (Scan_Front_End_Switches): Accept switch "-I". Set
24826         Search_Directory_Present to True.
24827
24828 2006-02-13  Joel Brobecker  <brobecke@adacore.com>
24829
24830         * bindgen.adb (Gen_Main_C): declare the ensure_reference variable as
24831         volatile, to tell the compiler to preserve this variable at any level
24832         of optimization.
24833         (Gen_Versions_Ada): Temporarily work around codegen bug.
24834
24835 2006-02-13  Vincent Celier  <celier@adacore.com>
24836
24837         * gnatlink.adb (Process_Binder_File): If -shared is specified, invoke
24838         gcc to link with option -shared-libgcc.
24839         (Gnatlink): Remove duplicate switches -shared-libgcc
24840
24841 2006-02-13  Robert Dewar  <dewar@adacore.com>
24842
24843         * gnatvsn.ads (Current_Year): New constant, used to easily update
24844         copyright on all GNAT tools.
24845
24846         * gnatls.adb, gnatname.adb, vms_conv.adb: Add 2006 to displayed
24847         copyright notice.
24848
24849 2006-02-13  Robert Dewar  <dewar@adacore.com>
24850
24851         * erroutc.ads, erroutc.adb (Set_Message_Blank): Don't insert space
24852         after hyphen (small aesthetic change useful for a range of numbers
24853         using ^-^.
24854         Suppress range checks for a couple of assignments which otherwise
24855         cause validity checks with validity checking turned on.
24856
24857         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Size):
24858         Improvement in error message for object.
24859         (Rep_Item_Too_Late): Remove '!' in warning message.
24860
24861 2006-02-13  Robert Dewar  <dewar@adacore.com>
24862             Eric Botcazou  <ebotcazou@adacore.com>
24863
24864         * err_vars.ads: Suppress range checks for a couple of assignments
24865         which otherwise cause validity checks with validity checking turned on.
24866         Update comments.
24867
24868         * errout.adb (Error_Msg_Internal): Do not suppress warning messages.
24869         Make message unconditional if it is a warning.
24870         (Error_Msg_NEL): Always output warning messages.
24871         Suppress range checks for a couple of assignments which otherwise
24872         cause validity checks with validity checking turned on.
24873
24874         * errout.ads (Message Insertion Characters): Document that '!' is
24875         implied by '?' in error messages.
24876
24877         * gnat1drv.adb: (Bad_Body): Remove '!' in warning message.
24878         (Gnat1drv): Use a goto to end of main subprogram instead of
24879         Exit_Program (E_Success) so that finalization can occur normally.
24880
24881 2006-02-13  Eric Botcazou  <ebotcazou@adacore.com>
24882
24883         * s-stchop.adb (Stack_Check): Raise Storage_Error if the argument has
24884         wrapped around.
24885
24886 2006-02-13  Vincent Celier  <celier@adacore.com>
24887
24888         * a-direct.adb (Duration_To_Time, OS_Time_To_Long_Integer): New
24889         Unchecked_Conversion functions.
24890         (Modification_Time): Use direct conversion of OS_Time to Calendar time
24891         when OpenVMS returns False.
24892
24893         * a-dirval-mingw.adb, a-dirval-vms.adb, a-dirval.ads,
24894         a-dirval.adb (OpenVMS): New Boolean function
24895
24896 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
24897             Thomas Quinot  <quinot@adacore.com>
24898
24899         * checks.adb (Build_Discriminant_Checks): If the expression being
24900         checks is an aggregate retrieve the values of its discriminants to
24901         generate the check, rather than creating a temporary and a reference
24902         to it.
24903         (Apply_Access_Check): Rewritten to handle new Is_Known_Null flag
24904         (Install_Null_Excluding_Check): Ditto
24905         (Selected_Length_Checks): Build actual subtype for the original Ck_Node,
24906         not for the renamed object, so that the actual itype is attached in the
24907         proper context.
24908
24909 2006-02-13  Robert Dewar  <dewar@adacore.com>
24910             Vincent Celier  <celier@adacore.com>
24911
24912         * debug.adb: Eliminate numeric switches for binder/gnatmake
24913
24914         * switch-m.adb (Normalize_Compiler_Switches): Record numeric debug
24915         switches for the compiler.
24916         (Scan_Make_Switches): Do not allow numeric debug switches for gnatmake
24917         (Scan_Make_Switches): When failing with an illegal switch, output an
24918         error message with the full switch.
24919         Eliminate numeric switches for binder/gnatmake
24920
24921         * switch.ads, switch.adb (Bad_Switch): New procedure
24922
24923         * switch-b.adb (Scan_Binder_Switches): Do not accept combined switches.
24924         Remove 0-9 as debug flag character possibilities
24925         -d is now controlling the primary stack size when its value is a
24926         positive. Also add checks against invalid values, and support for kb,
24927         mb. Ditto for -D switch.
24928
24929 2006-02-13  Robert Dewar  <dewar@adacore.com>
24930             Serguei Rybin  <rybin@adacore.com>
24931
24932         * opt.ads opt.adb: Add Ada_Version_Explicit_Config along with
24933         save/restore routines.
24934         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
24935         were not always properly handled previously.
24936         Since we are changing the tree format anyway, also get rid of the
24937         junk obsolete Immediate_Errors flag.
24938         (Tree_Read): Change the way of reading Tree_Version_String - now we
24939         read the version string from the tree even if its length is not the
24940         same as the length of the version string computed from Gnatvsn.
24941         (Search_Directory_Present): New Boolean flag for the compiler.
24942         Define Tree_Version_String as a dynamic string.
24943         (Default_Stack_Size): new variable, used to handle switch -d.
24944
24945         * par-prag.adb:
24946         For pragma Ada_2005, remove stuff about setting Ada_Version_Explicit
24947         only for main unit.
24948         Add pragma Ada_2005 (synonym for Ada_05)
24949         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
24950         were not always properly handled previously.
24951
24952         * directio.ads, ioexcept.ads, sequenio.ads, text_io.ads: Change
24953         explicit Ada_95 to Ada_2005.
24954
24955 2006-02-13  Javier Miranda  <miranda@adacore.com>
24956             Robert Dewar  <dewar@adacore.com>
24957             Ed Schonberg  <schonberg@adacore.com>
24958
24959         * einfo.ads, einfo.adb (First_Tag_Component): Protect the frontend
24960         against errors in the source program: a private types for which the
24961         corresponding full type declaration is missing and pragma CPP_Virtual
24962         is used.
24963         (Is_Unchecked_Union): Check flag on Implementation_Base_Type.
24964         (Is_Known_Null): New flag
24965         (Has_Pragma_Pure): New flag
24966         (No_Return): Present in all entities, set only for procedures
24967         (Is_Limited_Type): A type whose ancestor is an interface is limited if
24968         explicitly declared limited.
24969         (DT_Offset_To_Top_Func): New attribute that is present in E_Component
24970         entities. Only used for component marked Is_Tag. If present it stores
24971         the Offset_To_Top function used to provide this value in tagged types
24972         whose ancestor has discriminants.
24973
24974         * exp_ch2.adb: Update status of new Is_Known_Null flag
24975
24976         * sem_ch7.adb: Maintain status of new Is_Known_Null flag
24977
24978         * sem_cat.adb (Get_Categorization): Don't treat function as Pure in
24979         the categorization sense if Is_Pure was set by pragma Pure_Function.
24980
24981 2006-02-13  Quentin Ochem  <ochem@adacore.com>
24982             Olivier Hainque  <hainque@adacore.com>
24983
24984         * bindusg.adb: Updated documentation for -d and -D switches.
24985
24986         * raise.h (__gnat_set_globals): added new parameter for
24987         Default_Stack_Size.
24988
24989         * init.c (__gnat_adjust_context_for_raise) <alpha-vms case>: Implement.
24990         (__gnat_handle_vms_condition): Adjust context before raise.
24991         (__gnat_install_handler): Restore the global vector setup for GCC
24992         versions before 3.4, as the frame based circtuitry is not available
24993         in this case.
24994         (__gnat_set_globals): added a parameter default_stack_size
24995         (__gl_default_stack_size): new variable.
24996
24997 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
24998
24999         * exp_aggr.adb (Build_Array_Aggr_Code): Rename variable
25000         "Others_Mbox_Present" to "Others_Box_Present" because the mbox concept
25001         does not exist in the Ada RM.
25002         (Compatible_Int_Bounds): Determine whether two integer range bounds
25003         are of equal length and have the same start and end values.
25004         (Is_Int_Range_Bounds): Determine whether a node is an integer range.
25005         (Build_Record_Aggr_Code): Perform proper sliding of a nested array
25006         aggregate when it is part of an object declaration.
25007         (Build_Record_Aggr_Code)  If the aggregate ttype is a derived type that
25008         constrains discriminants of its parent, add explicitly the discriminant
25009         constraints of the ancestor by retrieving them from the
25010         stored_constraint of the parent.
25011
25012 2006-02-13  Robert Dewar  <dewar@adacore.com>
25013
25014         * exp_attr.adb (Expand_N_Attribute_Reference, case Mechanism_Code): If
25015         attribute Mechanism_Code is applied to renamed subprogram, modify
25016         prefix to point to base subprogram.
25017         Max/Min attributes now violate Restriction No_Implicit_Conditionals
25018
25019         * sinfo.ads: Document that Mechanism_Code cannot be applied to
25020         renamed subprograms so that the front-end must replace the prefix
25021         appropriately.
25022
25023 2006-02-13  Javier Miranda  <miranda@adacore.com>
25024             Gary Dismukes  <dismukes@adacore.com>
25025
25026         * exp_ch3.adb (Component_Needs_Simple_Initialization): Add check for
25027         availability of RE_Interface_Tag.
25028         (Build_Initialization_Call): Fix wrong access to the discriminant value.
25029         (Freeze_Record_Type): Do not generate the tables associated with
25030         timed and conditional dispatching calls through synchronized
25031         interfaces if compiling under No_Dispatching_Calls restriction.
25032         When compiling for Ada 2005, for a nonabstract
25033         type with a null extension, call Make_Controlling_Function_Wrappers
25034         and insert the wrapper function declarations and bodies (the latter
25035         being appended as freeze actions).
25036         (Predefined_Primitive_Bodies): Do not generate the bodies of the
25037         predefined primitives associated with timed and conditional
25038         dispatching calls through synchronized interfaces if we are
25039         compiling under No_Dispatching_Calls.
25040         (Build_Init_Procedure):  Use RTE_Available to check if a run-time
25041         service is available before generating a call.
25042         (Make_Controlling_Function_Wrappers): New procedure.
25043         (Expand_N_Full_Type_Declaration): Create a class-wide master for
25044         access-to-limited-interfaces because they can be used to reference
25045         tasks that implement such limited interface.
25046         (Build_Offset_To_Top_Functions): Build the tree corresponding to the
25047         procedure spec and body of the Offset_To_Top function that is generated
25048         when the parent of a type with discriminants has secondary dispatch
25049         tables.
25050         (Init_Secondary_Tags): Handle the case in which the parent of the type
25051         containing secondary dispatch tables has discriminants to generate the
25052         correct arguments to call Set_Offset_To_Top.
25053         (Build_Record_Init_Proc): Add call to Build_Offset_To_Top_Functions.
25054
25055         * a-tags.ads, a-tags.adb: (Check_Index): Removed.
25056         Add Wide_[Wide_]Expanded_Name.
25057         (Get_Predefined_Prim_Op_Address): New subprogram that provides exactly
25058         the same functionality of Get_Prim_Op_Address but applied to predefined
25059         primitive operations because the pointers to the predefined primitives
25060         are now saved in a separate table.
25061         (Parent_Size): Modified to get access to the separate table of primitive
25062         operations or the parent type.
25063         (Set_Predefined_Prim_Op_Address): New subprogram that provides the same
25064         functionality of Set_Prim_Op_Address but applied to predefined primitive
25065         operations.
25066         (Set_Signature): New subprogram used to store the signature of a DT.
25067         (Displace): If the Offset_To_Top value is not static then call the
25068         function generated by the expander to get such value; otherwise use
25069         the value stored in the table of interfaces.
25070         (Offset_To_Top): The type of the actual has been changed to Address to
25071         give the correct support to tagged types with discriminants. In this
25072         case this value is stored just immediately after the tag field.
25073         (Set_Offset_To_Top): Two new formals have been added to indicate if the
25074         offset_to_top value is static and hence pass this value to the run-time
25075         to store it in the table of interfaces, or else if this value is dynamic
25076         and then pass to the run-time the address of a function that is
25077         generated by the expander to provide this value for each object of the
25078         type.
25079
25080         * rtsfind.ads (Default_Prin_Op_Count): Removed.
25081         (Default_Prim_Op_Count): New entity
25082         (Get_Predefined_Prim_Op_Address): New entity
25083         (Set_Predefined_Prim_Op_Address): New entity
25084         (RE_Set_Signature): New entity
25085
25086 2006-02-13  Thomas Quinot  <quinot@adacore.com>
25087             Ed Schonberg  <schonberg@adacore.com>
25088
25089         * exp_ch4.adb (Expand_Allocator_Expression): Pass Allocator => True to
25090         Make_Adjust_Call done for a newly-allocated object.
25091
25092         * exp_ch7.ads, exp_ch7.adb (Expand_Cleanup_Actions): If the statements
25093         in a subprogram are wrapped in a cleanup block, indicate that the
25094         subprogram contains an inner block with an exception handler.
25095         (Make_Adjust_Call): New Boolean formal Allocator indicating whether the
25096         Adjust call is for a newly-allocated object. In that case we must not
25097         assume that the finalization list chain pointers are correct (since they
25098         come from a bit-for-bit copy of the original object's pointers) so if
25099         the attach level would otherwise be zero (no change), we set it to 4
25100         instead to cause the pointers to be reset to null.
25101
25102         * s-finimp.adb (Attach_To_Final_List): New attach level: 4, meaning
25103         reset chain pointers to null.
25104
25105 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
25106
25107         * exp_ch5.adb (Expand_Assign_Array): If the right-hand side is a
25108         string, and the context requires a loop for the assignment (e.g.
25109         because the left-hand side is packed), generate a unique name for the
25110         temporary that holds the string, to prevent spurious name clashes.
25111
25112 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
25113             Javier Miranda  <miranda@adacore.com>
25114             Robert Dewar  <dewar@adacore.com>
25115             Gary Dismukes  <dismukes@adacore.com>
25116
25117         * exp_ch6.adb (Expand_Inlined_Call): Handle calls to functions that
25118         return unconstrained arrays.
25119         Update comments.
25120         (Expand_Call):  An indirect call through an access parameter of a
25121         protected operation is not a protected call.
25122         Add circuit to raise CE in Ada 2005 mode following call
25123         to Raise_Exception.
25124         (Register_DT_Entry): Do nothing if
25125         the run-time does not give support to abstract interfaces.
25126         (Freeze_Subprogram): In case of dispatching operations, do not generate
25127         code to register the operation in the dispatch table if the source
25128         is compiled with No_Dispatching_Calls.
25129         (Register_Predefined_DT_Entry): Generate code that calls the new
25130         run-time subprogram Set_Predefined_Prim_Op_Address instead of
25131         Set_Prim_Op_Address.
25132
25133         * sem_ch5.adb (Analyze_Assignment_Statement): Do not apply length checks
25134         on array assignments if the right-hand side is a function call that has
25135         been inlined. Check is performed on the assignment in the block.
25136         (Process_Bounds): If bounds and range are overloaded, apply preference
25137         rule for root operations to disambiguate, and diagnose true ambiguity.
25138         (Analyze_Assignment): Propagate the tag for a class-wide assignment with
25139         a tag-indeterminate right-hand side even when Expander_Active is True.
25140         Needed to ensure that dispatching calls to T'Input are allowed and
25141         get the tag of the target class-wide object.
25142
25143         * sem_ch6.adb (New_Overloaded_Entity): Handle entities that override
25144         an inherited primitive operation that already overrides several
25145         abstract interface primitives. For transitivity, the new entity must
25146         also override all the abstract interface primitives covered by the
25147         inherited overriden primitive.
25148         Emit warning if new entity differs from homograph in same scope only in
25149         that one has an access parameter and the other one has a parameter of
25150         a general access type with the same designated type, at the same
25151         position in the signature.
25152         (Make_Inequality_Operator): Use source locations of parameters and
25153         subtype marks from corresponding equality operator when creating the
25154         tree structure for the implicit declaration of "/=". This does not
25155         change anything in behaviour except that the decoration of the
25156         components of the subtree created for "/=" allows ASIS to get the
25157         string images of the corresponding identifiers.
25158         (Analyze_Return_Statement): Remove '!' in warning message.
25159         (Check_Statement_Sequence): Likewise.
25160         (Analyze_Subprogram_Body): For an access parameter whose designated type
25161         is an incomplete type imported through a limited_with clause, use the
25162         type of the corresponding formal in the body.
25163         (Check_Returns): Implicit return in No_Return procedure now raises
25164         Program_Error with a compile time warning, instead of beging illegal.
25165         (Has_Single_Return):  Function returning unconstrained type cannot be
25166         inlined if expression in unique return statement is not an identifier.
25167         (Build_Body_To_Inline): It is possible to inline a function call that
25168         returns an unconstrained type if all return statements in the function
25169         return the same local variable. Subsidiary procedure Has_Single_Return
25170         verifies that the body conforms to this restriction.
25171
25172         * sem_res.adb (Resolve_Equality_Op): If the operands do not have the
25173         same type, and  one of them is of an anonymous access type, convert
25174         the other operand to it, so that this is a valid binary operation for
25175         gigi.
25176         (Resolve_Type_Conversion): Handle subtypes of protected types and
25177         task types when accessing to the corresponding record type.
25178         (Resolve_Allocator): Add '\' in 2-line warning message.
25179         Remove '!' in warning message.
25180         (Resolve_Call): Add '\' in 2-line warning message.
25181         (Valid_Conversion): Likewise.
25182         (Resolve_Overloaded_Selected_Component): If disambiguation succeeds, the
25183         resulting type may be an access type with an implicit dereference.
25184         Obtain the proper component from the designated type.
25185         (Make_Call_Into_Operator): Handle properly a call to predefined equality
25186         given by an expanded name with prefix Standard, when the operands are
25187         of an anonymous access type.
25188         (Check_Fully_Declared_Prefix): New procedure, subsidiary of Resolve_
25189         Explicit_Dereference and Resolve_Selected_Component, to verify that the
25190         prefix of the expression is not of an incomplete type. Allows full
25191         diagnoses of all semantic errors.
25192         (Resolve_Actuals): If the actual is an allocator whose directly
25193         designated type is a class-wide interface we build an anonymous
25194         access type to use it as the type of the allocator. Later, when
25195         the subprogram call is expanded, if the interface has a secondary
25196         dispatch table the expander will add a type conversion to force
25197         the displacement of the pointer.
25198         (Resolve_Call): If a function that returns an unconstrained type is
25199         marked Inlined_Always and inlined, the call will be inlined and does
25200         not require the creation of a transient scope.
25201         (Check_Direct_Boolean_Op): Removed
25202         (Resolve_Comparison_Op): Remove call to above
25203         (Resolve_Equality_Op): Remove call to above
25204         (Resolve_Logical_Op): Inline above, since this is only call.
25205         (Valid_Conversion): Handle properly conversions between arrays of
25206         convertible anonymous access types.
25207
25208         PR ada/25885
25209         (Set_Literal_String_Subtype): If the lower bound is not static, wrap
25210         the literal in an unchecked conversion, because GCC 4.x needs a static
25211         value for a string bound.
25212
25213 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
25214             Hristian Kirtchev  <kirtchev@adacore.com>
25215
25216         * exp_ch9.adb (Expand_N_Protected_Type_Declaration): When creating the
25217         components of the corresponding record, take into account component
25218         definitions that are access definitions.
25219         (Expand_N_Asynchronous_Select): A delay unit statement rewritten as a
25220         procedure is not considered a dispatching call and will be expanded
25221         properly.
25222
25223 2006-02-13  Javier Miranda  <miranda@adacore.com>
25224
25225         * exp_disp.ads, exp_disp.adb (Expand_Dispatching_Call): If the
25226         controlling argument of the dispatching call is an abstract interface
25227         class-wide type then we use it directly.
25228         Check No_Dispatching_Calls restriction.
25229         (Default_Prim_Op_Position): Remove the code that looks for the last
25230         entity in the list of aliased subprograms. This code was wrong in
25231         case of renamings.
25232         (Fill_DT_Entry): Add assertion to avoid the use of this subprogram
25233         when the source is compiled with the No_Dispatching_Calls restriction.
25234         (Init_Predefined_Interface_Primitives): No need to inherit primitives
25235         if we are compiling with restriction No_Dispatching_Calls.
25236         (Make_Disp_XXX): Addition of assertion to avoid the use of all these
25237         subprograms if we are compiling under No_Dispatching_Calls restriction.
25238         (Make_DT): Generate a dispatch table with a single dummy entry if
25239         we are compiling with the No_Dispatching_Calls restriction. In
25240         addition, in this case we don't generate code that calls to the
25241         following run-time subprograms: Set_Type_Kind, Inherit_DT.
25242         (Make_Select_Specific_Data_Table): Add assertion to avoid the use
25243         of this subprogram if compiling with the No_Dispatching_Calls
25244         restriction.
25245         (Expand_Type_Conversion): Instead of using the actual parameter,
25246         the argument passed as parameter to the conversion function was
25247         erroneously referenced by the expander.
25248         (Ada_Actions): Addition of Get_Predefined_Prim_Op_Address,
25249         Set_Predefined_Primitive_Op_Address and Set_Signature.
25250         (Expand_Dispatching_Call): Generate call to
25251         Get_Predefined_Prim_Op_Address for predefined primitives.
25252         (Fill_DT_Entry): Generate call to Set_Predefined_Prim_Op_Address for
25253         predefined primitives.
25254         (Make_DT, Make_Secondary_DT): If the tagged type has no user defined
25255         primitives we reserve one dummy entry to ensure that the tag does not
25256         point to some memory that is associated with some other object. In
25257         addition, remove all the old code that generated the assignments
25258         associated with the signature of the dispatch table and replace them
25259         by a call to the new subprogram Set_Signature.
25260         (Set_All_DT_Position): Change the algorithm because now we have a
25261         separate dispatch table associated with predefined primitive operations.
25262         (Expand_Interface_Conversion): In case of non-static offset_to_top
25263         add explicit dereference to get access to the object after the call
25264         to displace the pointer to the object.
25265         (Expand_Interface_Thunk): Modify the generation of the actual used
25266         in the calls to the run-time function Offset_To_Top to fulfil its
25267         new interface.
25268         (Make_DT): Add the new actuals required to call Set_Offset_To_Top.
25269
25270 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
25271
25272         * exp_dist.adb (Copy_Specification): For access parameters, copy
25273         Null_Exclusion flag, which will have been set for stream subprograms
25274         in Ada2005 mode.
25275
25276 2006-02-13  Pascal Obry  <obry@adacore.com>
25277
25278         * expect.c (__gnat_expect_portable_execvp): New implementation. The
25279         previous implementation was using the C runtime spawnve routine but
25280         the corresponding wait was using directly the Win32 API. This was
25281         causing some times a lock when waiting for an event using
25282         WaitForSingleObject in __gnat_waitpid. This new implementation uses
25283         the Win32 CreateProcess routine. Avoiding mixing C runtime and Win32
25284         API fixes this problem.
25285
25286 2006-02-13  Robert Dewar  <dewar@adacore.com>
25287
25288         * exp_intr.adb (Expand_Unc_Deallocation): Correct error of bad analyze
25289         call.
25290
25291 2006-02-13  Thomas Quinot  <quinot@adacore.com>
25292
25293         * exp_pakd.ads: Fix typos in comments.
25294
25295         * exp_pakd.adb (Convert_To_PAT_Type): For the case of a bit packed
25296         array reference that is an explicit dereference, mark the converted
25297         (packed) array reference as analyzed to prevent a forthcoming
25298         reanalysis from resetting its type to the original (non-packed) array
25299         type.
25300
25301 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
25302             Javier Miranda  <miranda@adacore.com>
25303             Eric Botcazou  <ebotcazou@adacore.com>
25304
25305         * exp_util.ads, exp_util.adb (Find_Prim_Op,
25306         Is_Predefined_Primitive_Operation): When
25307         searching for the predefined equality operator, verify that operands
25308         have the same type.
25309         (Is_Predefined_Dispatching_Operation): Remove the code that looks
25310         for the last entity in the list of aliased subprograms. This code
25311         was wrong in case of renamings.
25312         (Set_Renamed_Subprogram): New procedure
25313         (Remove_Side_Effects): Replace calls to Etype (Exp) with use of the
25314         Exp_Type constant computed when entering this subprogram.
25315         (Known_Null): New function
25316         (OK_To_Do_Constant_Replacement): New function
25317         (Known_Non_Null): Check scope before believing Is_Known_Non_Null flag
25318         (Side_Effect_Free): An attribute reference 'Input is not free of
25319         side effect, unlike other attributes that are functions. (from code
25320         reading).
25321         (Remove_Side_Effects): Expressions that involve packed arrays or records
25322         are copied at the point of reference, and therefore must be marked as
25323         renamings of objects.
25324         (Is_Predefined_Dispatching_Operation): Return false if the operation is
25325         not a dispatching operation.
25326
25327         PR ada/18819
25328         (Remove_Side_Effects): Lift enclosing type conversion nodes for
25329         elementary types in all cases.
25330
25331 2006-02-13  Javier Miranda  <miranda@adacore.com>
25332
25333         * freeze.adb (Freeze_Entity): Handle subtypes of protected types and
25334         task types when accessing to the corresponding record type.
25335         Remove '!' in warning message.
25336
25337 2006-02-13  Olivier Hainque  <hainque@adacore.com>
25338
25339         * g-altive.ads (VECTOR_ALIGNMENT): Set to Min (16, Max_Alignment),
25340         to avoid useless and space inefficient overalignments on targets where
25341         Max_Alignment is larger than 16.
25342
25343 2006-02-13  Pascal Obry  <obry@adacore.com>
25344
25345         * g-catiio.adb (Sec_Number): New type used to compute the number of
25346         seconds since 1-1-1970.
25347         (Image) [Natural]: The parameter was an Integer, as we can't deal with
25348         negative numbers (years, months...) it is better to have a Natural here.
25349         Code clean-up.
25350         (Image) [Number]: Change parameter from Long_Integer to Number.
25351         (Image): Use Number type to compute the seconds since 1-1-1970 to fix an
25352         overflow for dates past year 2038.
25353
25354 2006-02-13  Matthew Heaney  <heaney@adacore.com>
25355
25356         *  g-dyntab.adb (Index_Of): conversion from Natural can no longer raise
25357         Constraint_Error.
25358
25359 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
25360
25361         * gnatbind.adb (Scan_Bind_Arg): Replace error by warning on -M and
25362         native platforms.
25363         (Gnatbind): Do not call Exit_Program (E_Success) at the end, so that
25364         finalization can occur normally.
25365
25366 2006-02-13  Vincent Celier  <celier@adacore.com>
25367
25368         * gnatcmd.adb (Rules_Switches): New table
25369         (Add_To_Rules_Switches): New procedure
25370         (GNATCmd): For command CHECK, put all options following "-rules" in the
25371         Rules_Switches table. Append these -rules switches after the -cargs
25372         switches.
25373
25374 2006-02-13  Robert Dewar  <dewar@adacore.com>
25375
25376         * g-spipat.adb (Image, case PC_Assign_Imm and case PC_Assign_OnM):
25377         These two cases were generating incorrect output, and if this unit
25378         was built with checks on, generated a discriminant mismatch constraint
25379         error.
25380
25381 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
25382             Robert Dewar  <dewar@adacore.com>
25383
25384         * lib-xref.adb (Get_Type_Reference): For a private type whose full
25385         view is an array type, indicate the component type as well, for
25386         navigation purposes.
25387         (Generate_Reference): Don't consider array ref on LHS to be a case
25388         of violating pragma Unreferenced.
25389         Do not give Ada 2005 warning except on real reference.
25390
25391 2006-02-13  Vincent Celier  <celier@adacore.com>
25392
25393         * make.adb (Collect_Arguments_And_Compile): For VMS, when compiling the
25394         main source, add switch -mdebug-main=_ada_ so that the executable can
25395         be debugged by the standard VMS debugger.
25396         (Gnatmake): Set No_Main_Subprogram to True when there is no main
25397         subprogram, to avoid issuing -mdebug-main=_ada_ for VMS uselessly.
25398         Exit the Multi_Main_Loop when Unique_Compile is True after compilation
25399         of the last source, as the binding and linking phases are never
25400         performed.
25401         Set all executable obsolete when rebuilding a library.
25402
25403         * makeutl.adb (Linker_Options_Switches): Do not process empty linker
25404         options.
25405
25406 2006-02-13  Javier Miranda  <miranda@adacore.com>
25407
25408         PR ada/23973
25409         * par-ch3.adb (P_Derived_Type_Def_Or_Private_Ext_Decl): Reorganize the
25410         code to improve the error message reported when the program has
25411         declarations of abstract interface types and it is not compiled with
25412         the -gnat05 switch.
25413         (P_Access_Definition): Reorganize the code to improve the error
25414         message reported when the new Ada 2005 syntax for anonymous
25415         access types is used and the program is not compiled with the
25416         -gnat05 switch.
25417
25418 2006-02-13  Robert Dewar  <dewar@adacore.com>
25419
25420         * par-ch6.adb, style.ads, styleg.adb, styleg.ads, stylesw.adb,
25421         stylesw.ads, usage.adb, vms_data.ads: Implement -gnatyI switch
25422         (MODE_IN)
25423
25424 2006-02-13  Javier Miranda  <miranda@adacore.com>
25425
25426         * par-endh.adb (Explicit_Start_Label): Add code to protect the parser
25427         against source containing syntax errors.
25428
25429 2006-02-13  Vincent Celier  <celier@adacore.com>
25430
25431         * prj.adb (Reset): Initialize the first element of table Namings with
25432         the standard naming data.
25433
25434 2006-02-13  Vincent Celier  <celier@adacore.com>
25435
25436         * prj.ads (Error_Warning): New enumeration type
25437
25438         * prj-nmsc.ads, prj-nmsc.adb (Error_Msg): If location parameter is
25439         unknown, use the location of the project to report the error.
25440         (When_No_Sources): New global variable
25441         (Report_No_Ada_Sources): New procedure
25442         (Check): New parameter When_No_Sources. Set value of global variable
25443         When_No_Sources,
25444         (Find_Sources): Call Report_No_Ada_Sources when appropriate
25445         (Get_Sources_From_File): Ditto
25446         (Warn_If_Not_Sources): Better warning messages indicating the unit name
25447         and the file name.
25448
25449         * prj-pars.ads, prj-pars.adb (Parse): New parameter When_No_Sources.
25450         Call Prj.Proc.Process with parameter When_No_Sources.
25451
25452         * prj-proc.ads, prj-proc.adb (Check): New parameter When_No_Sources.
25453         Call Recursive_Check with parameter When_No_Sources.
25454         (Recursive_Check): New parameter When_No_Sources. Call itself and
25455         Prj.Nmsc.Check with parameter When_No_Sources.
25456         (Process): New parameter When_No_Sources. Call Check with parameter
25457         When_No_Sources.
25458         (Copy_Package_Declarations): New procedure to copy renamed parameters
25459         and setting the location of the declared attributes to the location
25460         of the renamed package.
25461         (Process_Declarative_Items): Call Copy_Package_Declarations for renamed
25462         packages.
25463
25464 2006-02-13  Vincent Celier  <celier@adacore.com>
25465
25466         * prj-makr.adb (Make): Preserve the comments from the original project
25467         file.
25468         When removing nodes (attributes Source_Dirs, Source_Files,
25469         Source_List_File and package Naming), save the comments and attach the
25470         saved comments to the newly created nodes.
25471         Do not add a with clause for the naming package if one already exists.
25472
25473 2006-02-13  Javier Miranda  <miranda@adacore.com>
25474             Gary Dismukes  <dismukes@adacore.com>
25475             Robert Dewar  <dewar@adacore.com>
25476
25477         * restrict.ads (No_Dispatching_Calls): New GNAT restriction.
25478
25479         * sem_disp.adb (Override_Dispatching_Operation): Traverse the list of
25480         aliased entities to look for the overriden abstract interface
25481         subprogram.
25482         (Is_Interface_Subprogram): Complete documentation.
25483         (Check_Dispatching_Operation): Do not generate code to register the
25484         operation in the dispatch table if the source is compiled with
25485         restriction No_Dispatching_Calls.
25486         (Override_Dispatching_Operation): Check for illegal attempt to override
25487         No_Return procedure with procedure that is not No_Return
25488         (Check_Dispatching_Call): Suppress the check for an abstract operation
25489         when the original node of an actual is a tag-indeterminate attribute
25490         call, since the attribute, which must be 'Input, can never be abstract.
25491         (Is_Tag_Indeterminate): Handle checking of tag indeterminacy of a
25492         call to the Input attribute (even when rewritten).
25493         (Propagate_Tag): Augment comment to indicate the possibility of a call
25494         to an Input attribute.
25495
25496         * sem_disp.ads (Override_Dispatching_Operation): Moved to spec to allow
25497         calling it from Exp_Ch3.Make_Controlling_Function_Wrappers.
25498
25499         * s-rident.ads: (No_Dispatching_Calls): New GNAT restriction.
25500         No_Wide_Characters is no longer partition-wide
25501         No_Implementation_Attributes/Pragmas are now Ada 2005 (AI-257)
25502         rather than GNAT
25503
25504 2006-02-13  Douglas Rupp  <rupp@adacore.com>
25505
25506         * s-auxdec-vms_64.ads (Short_Address): Wrap it in a type.
25507
25508 2006-02-13  Javier Miranda  <miranda@adacore.com>
25509
25510         * sem_aggr.adb (Resolve_Record_Aggregate): Restructure the code that
25511         handles default-initialized components to keep separate the management
25512         of this feature but also avoid the unrequired resolution and
25513         expansion of components that do not have partially initialized
25514         values.
25515         (Collect_Aggr_Bounds): Add '\' in 2-line warning message.
25516         (Check_Bounds): Likewise.
25517         (Check_Length): Likewise.
25518
25519 2006-02-13  Javier Miranda  <miranda@adacore.com>
25520             Ed Schonberg  <schonberg@adacore.com>
25521
25522         * sem_attr.adb (Analyze_Attribute): In case of 'Class applied to an
25523         abstract interface type call analyze_and_resolve to expand the type
25524         conversion into the corresponding displacement of the
25525         reference to the base of the object.
25526         (Eval_Attribute, case Width): For systems where IEEE extended precision
25527         is supported, the maximum exponent occupies 4 decimal digits.
25528         (Accessibility_Message): Add '\' in 2-line warning message.
25529         (Resolve_Attribute): Likewise.
25530         (case Attribute_Access): Significantly revise checks
25531         for illegal access-to-subprogram Access attributes to properly enforce
25532         the rules of 3.10.2(32/2).
25533         Diagnose use of current instance with an illegal attribute.
25534
25535         * sem_util.ads, sem_util.adb (Enclosing_Generic_Body): Change formal
25536         to a Node_Id.
25537         (Enclosing_Generic_Unit): New function to return a node's innermost
25538         enclosing generic declaration node.
25539         (Compile_Time_Constraint_Error): Remove '!' in warning messages.
25540         (Type_Access_Level): The accessibility level of anonymous acccess types
25541         associated with discriminants is that of the current instance of the
25542         type, and that's deeper than the type itself (AARM 3.10.2 (12.3.21)).
25543         (Compile_Time_Constraint_Error): Handle case of conditional expression.
25544         (Kill_Current_Values_For_Entity): New function
25545         (Enter_Name): Change formal type to Entity_Id
25546
25547 2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>
25548             Ed Schonberg  <schonberg@adacore.com>
25549             Gary Dismukes  <dismukes@adacore.com>
25550
25551         * sem_ch10.adb (Check_Redundant_Withs): New procedure in
25552         Analyze_Compilation_Unit.
25553         Detect and warn on redundant with clauses detected in a package spec
25554         and/or body when -gnatwr is used.
25555         (Analyze_Context): Analyze config pragmas before other items
25556         (Install_Context_Items): Don't analyze config pragmas here
25557         (Install_Limited_Withed_Unit): Set limited entity of package in
25558         with_clause so that cross-reference information or warning messages on
25559         unused packages can be properly generated
25560         (Is_Visible_Through_Renamings): Return false if the limited_with_clause
25561         has Error_Posted set. Prevent infinite loops in illegal programs.
25562         (Check_Private_Child_Unit): Move test for a nonprivate with clause down
25563         to the point of the error test requiring the current unit to be private.
25564         This ensures that private with clauses are not exempted from the basic
25565         checking for being a descendant of the same library unit parent as a
25566         withed private descendant unit.
25567         (Check_Private_Limited_Withed_Unit): Revise the checking algorithm to
25568         handle private with clauses properly, as well as to account for cases
25569         where the withed unit is a public descendant of a private ancestor
25570         (in which case the current unit must be a descendant of the private
25571         ancestor's parent). The spec comments were updated accordingly. Also,
25572         the old error message in this subprogram was replaced with error
25573         messages that mirror the errors tested and reported by
25574         Check_Private_Child_Unit.
25575         Parameter and variable names improved for readability.
25576         (Install_Limited_Context_Clauses): Remove test for a withed unit being
25577         private as the precondition for calling
25578         Check_Private_Limited_Withed_Unit since that subprogram has been
25579         revised to test public units as well as private units.
25580
25581 2006-02-13  Thomas Quinot  <quinot@adacore.com>
25582             Robert Dewar  <dewar@adacore.com>
25583             Ed Schonberg  <schonberg@adacore.com>
25584             Javier Miranda  <miranda@adacore.com>
25585
25586         * sem_ch12.adb (Inline_Instance_Body): Remove erroneous assumption
25587         that Scope_Stack.First = 1.
25588         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
25589         were not always properly handled previously.
25590         (Formal_Entity): Complete rewrite, to handle properly some complex case
25591         with multiple levels of parametrization by formal packages.
25592         (Analyze_Formal_Derived_Type): Propagate Ada 2005 "limited" indicator
25593         to the corresponding derived type declaration for proper semantics.
25594
25595         * sem_prag.adb (Analyze_Pragma): Remove '!' in warning message.
25596         (Check_Component): Enforce restriction on components of
25597         unchecked_unions: a component in a variant cannot contain tasks or
25598         controlled types.
25599         (Unchecked_Union): Allow nested variants and multiple discriminants, to
25600         conform to AI-216.
25601         Add pragma Ada_2005 (synonym for Ada_05)
25602         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
25603         were not always properly handled previously.
25604         Document that pragma Propagate_Exceptions has no effect
25605         (Analyze_Pragma, case Pure): Set new flag Has_Pragma_Pure
25606         (Set_Convention_From_Pragma): Check that if a convention is
25607         specified for a dispatching operation, then it must be
25608         consistent with the existing convention for the operation.
25609         (CPP_Class): Because of the C++ ABI compatibility, the programmer is no
25610         longer required to specify an vtable-ptr component in the record. For
25611         compatibility reasons we leave the support for the previous definition.
25612         (Analyze_Pragma, case No_Return): Allow multiple arguments
25613
25614         * sem_ch3.ads, sem_ch3.adb (Check_Abstract_Overriding): Flag a
25615         non-overrideen inherited operation with a controlling result as
25616         illegal only its implicit declaration comes from the derived type
25617         declaration of its result's type.
25618         (Check_Possible_Deferred_Completion): Relocate the object definition
25619         node of the subtype indication of a deferred constant completion rather
25620         than directly analyzing it. The analysis of the generated subtype will
25621         correctly decorate the GNAT tree.
25622         (Record_Type_Declaration): Check whether this is a declaration for a
25623         limited derived record before analyzing components.
25624         (Analyze_Component_Declaration): Diagnose record types  not explicitly
25625         declared limited when a component has a limited type.
25626         (Build_Derived_Record_Type): Code reorganization to check if some of
25627         the inherited subprograms of a tagged type cover interface primitives.
25628         This check was missing in case of a full-type associated with a private
25629         type declaration.
25630         (Constant_Redeclaration): Check that the subtypes of the partial and the
25631         full view of a constrained deferred constant statically match.
25632         (Mentions_T): A reference to the current type in an anonymous access
25633         component declaration  must be an entity name.
25634         (Make_Incomplete_Type_Declaration): If type is tagged, set type of
25635         class_wide type to refer to full type, not to the incomplete one.
25636         (Add_Interface_Tag_Components): Do nothing if RE_Interface_Tag is not
25637         available. Required to give support to the certified run-time.
25638         (Analyze_Component_Declaration): In case of anonymous access components
25639         perform missing checks for AARM 3.9.2(9) and 3.10.2 (12.2).
25640         (Process_Discriminants): For an access discriminant, use the
25641         discriminant specification as the associated_node_for_itype, to
25642         simplify accessibility checks.
25643
25644 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
25645             Javier Miranda  <miranda@adacore.com>
25646
25647         * sem_ch4.adb (Remove_Abstract_Interpretations): Even if there are no
25648         abstract interpretations on an operator, remove interpretations that
25649         yield Address or a type derived from it, if one of the operands is an
25650         integer literal.
25651         (Try_Object_Operation.Try_Primitive_Operation,
25652         Try_Object_Operation.Try_Class_Wide_Operation): Set proper source
25653         location when creating the new reference to a primitive or class-wide
25654         operation as a part of rewriting a subprogram call.
25655         (Try_Primitive_Operations): If context requires a function, collect all
25656         interpretations after the first match, because there may be primitive
25657         operations of the same type with the same profile and different return
25658         types. From code reading.
25659         (Try_Primitive_Operation): Use the node kind to choose the proper
25660         operation when a function and a procedure have the same parameter
25661         profile.
25662         (Complete_Object_Operation): If formal is an access parameter and prefix
25663         is an object, rewrite as an Access reference, to match signature of
25664         primitive operation.
25665         (Find_Equality_Type, Find_One_Interp): Handle properly equality given
25666         by an expanded name with prefix Standard, when the operands are of an
25667         anonymous access type.
25668         (Remove_Abstract_Operations): If the operation is abstract because it is
25669         inherited by a user-defined type derived from Address, remove it as
25670         well from the set of candidate interpretations of an overloaded node.
25671         (Analyze_Membership_Op): Membership test not applicable to cpp-class
25672         types.
25673
25674 2006-02-13  Bob Duff  <duff@adacore.com>
25675
25676         * sem_ch8.adb (Note_Redundant_Use): Suppress unhelpful warning about
25677         redundant use clauses.
25678         In particular, if the scope of two use clauses overlaps, but one is not
25679         entirely included in the other, we should not warn.  This can happen
25680         with nested packages.
25681         (Analyze_Subprogram_Renaming): Protect the compiler against previously
25682         reported errors. The bug was reported when the compiler was built
25683         with assertions enabled.
25684         (Find_Type): If the node is a 'Class reference and the prefix is a
25685         synchronized type without a corresponding record, return the type
25686         itself.
25687
25688 2006-02-13  Javier Miranda  <miranda@adacore.com>
25689
25690         * sem_ch9.adb (Analyze_Protected_Type, Analyze_Task_Type): Check that
25691         if this is the full-declaration associated with a private declaration
25692         that implement interfaces, then the private type declaration must be
25693         limited.
25694         (Analyze_Single_Protected, Analyze_Single_Task): Do not mark the object
25695         as aliased. The use of the 'access attribute is not available for such
25696         object (for this purpose the object should be explicitly marked as
25697         aliased, but being an anonymous type this is not possible).
25698
25699 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
25700             Robert Dewar  <dewar@adacore.com>
25701
25702         * sem_elab.adb (Same_Elaboration_Scope): A package that is a
25703         compilation unit is an elaboration scope.
25704         (Add_Task_Proc): Add '\' in 2-line warning message.
25705         (Activate_All_Desirable): Deal with case of unit with'ed by parent
25706
25707 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
25708             Javier Miranda  <miranda@adacore.com>
25709
25710         * sem_type.adb (Write_Overloads): Improve display of candidate
25711         interpretations.
25712         (Add_One_Interp): Do not add to the list of interpretations aliased
25713         entities corresponding with an abstract interface type that is an
25714         immediate ancestor of a tagged type; otherwise we have a dummy
25715         conflict between this entity and the aliased entity.
25716         (Disambiguate): The predefined equality on universal_access is not
25717         usable if there is a user-defined equality with the proper signature,
25718         declared in the same declarative part as the designated type.
25719         (Find_Unique_Type): The universal_access equality operator defined under
25720         AI-230 does not cover pool specific access types.
25721         (Covers): If one of the types is a generic actual subtype, check whether
25722         it matches the partial view of the other type.
25723
25724 2006-02-13  Thomas Quinot  <quinot@adacore.com>
25725
25726         * sinput-d.adb (Write_Line): Update the Source_Index_Table after each
25727         line. This is necessary to allow In_Extended_Main_Unit to provide
25728         correct results for itypes while writing out expanded source.
25729         (Close_File): No need to update the source_index_table here since it's
25730         now done for each line.
25731
25732 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
25733             Robert Dewar  <dewar@adacore.com>
25734
25735         * sprint.adb (Write_Itype): Preserve Sloc of declaration, if any, to
25736         preserve the source unit where the itype is declared, and prevent a
25737         backend abort.
25738         (Note_Implicit_Run_Time_Call): New procedure
25739         (Write_Itype): Handle missing cases (E_Class_Wide_Type and
25740         E_Subprogram_Type)
25741
25742         * sprint.ads: Document use of $ for implicit run time routine call
25743
25744 2006-02-13  Quentin Ochem  <ochem@adacore.com>
25745
25746         * s-stausa.adb (Initialize_Analyzer): fixed error in assignment of
25747         task name.
25748
25749 2006-02-13  Bob Duff  <duff@adacore.com>
25750
25751         * s-valint.adb (Scan_Integer): Call Scan_Raw_Unsigned instead of
25752         Scan_Unsigned, so we do not scan leading blanks and sign twice.
25753         Integer'Value("- 5") and Integer'Value("-+5") now correctly
25754         raise Constraint_Error.
25755
25756         * s-vallli.adb (Scan_Long_Long_Integer): Call
25757         Scan_Raw_Long_Long_Unsigned instead of Scan_Long_Long_Unsigned, so we
25758         do not scan leading blanks and sign twice.
25759         Integer'Value("- 5") and Integer'Value("-+5") now correctly
25760         raise Constraint_Error.
25761
25762         * s-valllu.ads, s-valllu.adb (Scan_Raw_Long_Long_Unsigned,
25763         Scan_Long_Long_Unsigned): Split out most of the processing from
25764         Scan_Long_Long_Unsigned out into
25765         Scan_Raw_Long_Long_Unsigned, so that Val_LLI can call the Raw_ version.
25766         This prevents scanning leading blanks and sign twice.
25767         Also fixed a bug: Modular'Value("-0") should raise Constraint_Error
25768         See RM-3.5(44).
25769
25770         * s-valuns.ads, s-valuns.adb (Scan_Raw_Unsigned, Scan_Unsigned): Split
25771         out most of the processing from Scan_Unsigned out into
25772         Scan_Raw_Unsigned, so that Val_LLI can call the Raw_ version.
25773         This prevents scanning leading blanks and sign twice.
25774
25775         * s-valuti.ads, s-valuti.adb (Scan_Plus_Sign): Add Scan_Plus_Sign, for
25776         use with Modular'Value attribute.
25777         (Scan_Plus_Sign): Add Scan_Plus_Sign, for use with Modular'Value
25778         attribute.
25779
25780 2006-02-13  Robert Dewar  <dewar@adacore.com>
25781
25782         * s-wchjis.adb (JIS_To_EUC): Raise Constraint_Error for invalid value
25783
25784 2006-02-13  Eric Botcazou  <ebotcazou@adacore.com>
25785
25786         * tracebak.c (PPC AIX/Darwin): Define FORCE_CALL to 1.
25787         (PPC VxWorks): Likewise.
25788         (Generic unwinder): Define FORCE_CALL to 0 if not already defined.
25789         (forced_callee): Make non-inlinable and non-pure.
25790         (__gnat_backtrace): Call forced_callee if FORCE_CALL is set to 1.
25791
25792 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
25793             Ben Brosgol  <brosgol@adacore.com>
25794             Robert Dewar  <dewar@adacore.com>
25795
25796         * gnat_rm.texi, gnat_ugn.texi: Remove limitations with sparc m64
25797         support.
25798         Document that gnatbind -M option is for cross environments only.
25799         Added description of using gnatmem to trace gnat rtl allocs and deallocs
25800         Add note on use of $ to label implicit run time calls
25801         Add documentation for -gnatyI (check mode IN)
25802         Updated chapter on compatibility with HP Ada
25803         VMS-oriented edits.
25804         Ran spell and corrected errors
25805         Add documentation for gnatbind -d and rework documentation of -D
25806         at the same time.
25807         Add subprogram/data elimination section.
25808         Minor editing of annex A.
25809         Add section for gnatcheck.
25810         Add documentation for restriction No_Dispatching_Calls
25811         Add documentation for pragma Ada_2005
25812         Remove mention of obsolete pragma Propagate_Exceptions
25813         Document that pragma Unreferenced can appear after DO in ACCEPT
25814         Clarify Pure_Function for library level units
25815         Mention Max/Min in connection with No_Implicit_Conditionals
25816         No_Wide_Characters restriction is no longer partition-wide
25817         Add a nice example for Universal_Literal_String attribute
25818         Document that pragma No_Return can take multiple arguments
25819
25820         * ug_words: Added entry for gnatcheck
25821
25822         * g-ctrl_c.ads (Install_Handler): Enhance comments
25823
25824         * g-os_lib.ads: Add comments to OS_Exit that it is abrupt termination
25825
25826         * g-trasym.ads: Add documentation on how to do off line symbolic
25827         traceback computation.
25828
25829         * s-fatgen.adb: Add comments for Unaligned_Valid
25830
25831         * stand.ads: Fix typo in comment
25832
25833 2006-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
25834
25835         * Make-lang.in (check-gnat): Run run_acats with $(SHELL).
25836
25837 2006-02-06  Roger Sayle  <roger@eyesopen.com>
25838
25839         * decl.c (gnat_substitute_in_type): Don't handle CHAR_TYPE.
25840
25841 2006-02-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
25842
25843         PR target/25926
25844         * initialize.c (__gnat_initialize): Provide HP-UX 10 host and target
25845         implementation that calls __main.
25846
25847 2006-01-25  Peter O'Gorman  <peter@pogma.com>
25848
25849         PR bootstrap/25859
25850         * Makefile.in (GCC_LINK): Remove quotes.
25851         (tools targets): Link with either $(GNATLINK) --GCC="$(GCC_LINK)"
25852         or $(GCC_LINK).
25853
25854         (powerpc-darwin): Pass -shared-libgcc when building shared library.
25855
25856 2006-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
25857
25858         PR ada/24533
25859         * s-osinte-linux-hppa.ads: Reduce alignment of atomic_lock_t to 8.
25860
25861 2005-12-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
25862
25863         * s-osinte-linux-hppa.ads: Correct alignment of atomic_lock_t.
25864
25865 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
25866
25867         * Makefile.in: Remove dummy setting of GCC_FOR_TARGET, no longer
25868         needed.
25869
25870 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
25871
25872         * Make-lang.in: Update dependencies
25873
25874 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
25875
25876         * Make-lang.in: Add rule for ada/exp_sel.o
25877
25878 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
25879
25880         * Makefile.in (mingw section): Remove EH_MECHANISM setting.
25881
25882 2005-12-09  Arnaud Charlet  <charlet@adacore.com>
25883
25884         * gnatvsn.ads (Library_Version): Bump to version 4.2
25885         (ASIS_Version_Number): Bumped.
25886
25887 2005-12-09  Doug Rupp  <rupp@adacore.com>
25888
25889         * mlib-tgt-vms-ia64.adb, mlib-tgt-vms-alpha.adb (Is_Interface): Change
25890         Ada bind file prefix on VMS from b$ to b__.
25891         (Build_Dynamic_Library): Change Init file suffix on VMS from $init to
25892         __init.
25893
25894         * prj-nmsc.adb: Change some Hostparm.OpenVMS checks to
25895         Targparm.OpenVMS_On_Target.
25896         (Object_Suffix): Initialize with target object suffix.
25897         (Get_Unit): Change Ada bind file prefix on VMS from b$ to b__.
25898
25899         * butil.adb: Change some Hostparm.OpenVMS checks to
25900         Targparm.OpenVMS_On_Target.
25901
25902         * clean.adb: Change some Hostparm.OpenVMS checks to
25903         Targparm.OpenVMS_On_Target.
25904         (Object_Suffix): Initialize with call to Get_Target_Object_Suffix.
25905         ({declaraction},Delete_Binder_Generated_Files,{initialization}): Change
25906         Ada bind file prefix on VMS from b$ to b__.
25907
25908         * gnatlink.adb (Process_Args): Call Add_Src_Search_Dir for -I in
25909         --GCC so that Get_Target_Parameters can find system.ads.
25910         (Gnatlink): Call Get_Target_Parameters in mainline.
25911         Initialize standard packages for Targparm.
25912         Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target.
25913         (Process_Args): Also Check for object files with target object
25914         extension.
25915         (Make_Binder_File_Names): Create with target object extension.
25916         (Make_Binder_File_Names): Change Ada bind file prefix on VMS from b$
25917         to b__.
25918
25919         * mlib-prj.adb: Change some Hostparm.OpenVMS checks to
25920         Targparm.OpenVMS_On_Target.
25921         ({declaration},Build_Library,Check_Library): Change Ada bind file
25922         prefix on VMS from b$ to b__.
25923
25924         * osint-b.adb: Change some Hostparm.OpenVMS checks to
25925         Targparm.OpenVMS_On_Target.
25926         (Create_Binder_Output): Change Ada bind file prefix on VMS from b$ to
25927         b__.
25928
25929         * targext.c: New file.
25930
25931         * Makefile.in: add support for vxworks653 builds
25932         (../../vxaddr2line): gnatlink with targext.o.
25933         (TOOLS_LIBS): Move targext.o to precede libgnat.
25934         (init.o, initialize.o): Minor clean up in dependencies.
25935         (GNATLINK_OBJS): Add targparm.o, snames.o
25936         Add rules fo building targext.o and linking it explicitly with all
25937         tools.
25938         Also add targext.o to gnatlib.
25939
25940         * Make-lang.in: Add rules for building targext.o and linking it in
25941         with gnat1 and gnatbind.
25942         Add entry for exp_sel.o.
25943
25944         * osint.adb Change some Hostparm.OpenVMS checks to
25945         Targparm.OpenVMS_On_Target.
25946         (Object_File_Name): Use target object suffix.
25947
25948         * osint.ads (Object_Suffix): Remove, no longer used.
25949         (Target_Object_Suffix): Initialize with target object suffix.
25950
25951         * rident.ads: Add special exception to license.
25952
25953         * targparm.adb (Get_Target_Parameters): Set the value of
25954         Multi_Unit_Index_Character after OpenVMS_On_Target gets its definitive
25955         value.
25956         (Get_Target_Parameters): Set OpenVMS_On_Target if openvms.
25957
25958         * targparm.ads: Add special exception to license.
25959
25960         * g-os_lib.ads, g-os_lib.adb (Get_Target_Debuggable_Suffix): New
25961         function.
25962         (Copy_File): Make sure from file is closed if error on to file
25963         (Get_Target_Executable_Suffix, Get_Target_Object_Suffix): New functions.
25964
25965         * make.adb (Object_Suffix): Intialize with Get_Target_Object_Suffix.
25966         (Executable_Suffix): Intialize with Get_Target_Executable_Suffix.
25967
25968         * osint-c.adb (Set_Output_Object_File_Name): Initialize extension with
25969         target object suffix.
25970
25971 2005-12-09  Jose Ruiz  <ruiz@adacore.com>
25972             Quentin Ochem  <ochem@adacore.com>
25973             Florian Villoing  <villoing@adacore.com>
25974
25975         * a-taster.ads, a-taster.adb: New files.
25976
25977         * a-elchha.adb (Last_Chance_Handler): Change the task termination soft
25978         link to the version that does nothing. This way the task termination
25979         routine is not executed twice for the environment task when finishing
25980         because of an unhandled exception.
25981
25982         * a-exextr.adb (Notify_Unhandled_Exception): Call the task termination
25983         handler because of an unhandled exception.
25984
25985         * a-taside.adb (Abort_Tasks): Call the Abort_Tasks procedure from
25986         System.Tasking.Utilities instead of that in System.Tasking.Stages.
25987
25988         * s-finimp.adb (initialization code): Modify the soft link for the
25989         finalization of the global list instead of Adafinal.
25990
25991         * s-soflin.ads, s-soflin.adb (Task_Termination_NT): Add this
25992         non-tasking version of the soft link for task termination. We do
25993         nothing since if we are using the non-tasking version it
25994         means that the task termination functionality is not used.
25995         (Null_Finalize_Global_List): Add this null version for the procedure
25996         in charge of finalizing the global list for controlled objects.
25997         (Null_Adafinal): Remove this procedure. Adafinal_NT has been created
25998         instead for handling run-time termination in a more flexible way.
25999         (Adafinal_NT): This new procedure will take care of finalizing the
26000         global list for controlled objects if needed, but no tasking
26001         finalization.
26002
26003         * s-tarest.adb (Task_Lock): Do not try to lock again the
26004         Global_Task_Lock if we already own it. Otherwise, we get blocked in
26005         some run-time operations.
26006         (Task_Unlock): Do not try to actually unlock the Global_Task_Lock
26007         until all nested locks have been released.
26008         (Task_Wrapper): Call the fall-back task termination handler. It
26009         applies to all tasks but the environment task.
26010         (Finalize_Global_Tasks): Add the call for the task termination
26011         procedure for the environment task.
26012         (Task_Wrapper): suppress warnings around declaration of
26013         Secondary_Stack_Address.
26014
26015         * s-tasini.adb (Final_Task_Unlock): Global_Task_Lock_Nesting has been
26016         moved to the Common_ATCB record.
26017         (Task_Lock): Global_Task_Lock_Nesting has been moved to the
26018         Common_ATCB record.
26019         (Task_Unlock): Global_Task_Lock_Nesting has been moved to the
26020         Common_ATCB record.
26021
26022         * s-taskin.adb (Initialize_ATCB): Initialize Global_Task_Lock_Nesting,
26023         Fall_Back_Handler, and Specific_Handler.
26024
26025         * s-taskin.ads (Cause_Of_Termination): Redefine this type here, already
26026         defined in Ada.Task_Termination, to avoid circular dependencies.
26027         (Termination_Handler): Redefine this type here, alredy defined in
26028         Ada.Task_Termination, for avoiding circular dependencies.
26029         (Common_ATCB): Add the Fall_Back_Handler and Specific_Handler required
26030         for storing task termination handlers. In addition,
26031         Global_Task_Lock_Nesting has been moved from Ada_Task_Control_Block to
26032         Common_ATCB because it is used by both the regular and the restricted
26033         run times.
26034         (Ada_Task_Control_Block): Move Global_Task_Lock_Nesting from here to
26035         Common_ATCB because it is used by both the regular and the restricted
26036         run times.
26037         (Common_ATCB): Added a dynamic task analyzer field.
26038
26039         * s-tassta.adb (Abort_Tasks): Move the code in charge of checking
26040         potentially blocking operations to System.Tasking.Utilities.Abort_Tasks.
26041         (Task_Wrapper): Call the task termination handler. It applies to all
26042         tasks but the environment task.
26043         (Finalize_Global_Tasks): Call the task termination procedure for the
26044         environment task. The call to Finalize_Global_List is now performed
26045         using the soft links mechanism.
26046         (Task_Wrapper): added dynamic stack analysis.
26047
26048         * s-tasuti.adb (Abort_Tasks): The code in charge of checking
26049         potentially blocking operations has been moved from
26050         System.Tasking.Stages.Abort_Tasks to this procedure. There can be
26051         direct calls to System.Tasking.Utilities.Abort_Tasks that do not pass
26052         through System.Tasking.Stages.Abort_Tasks, and we do not want to miss
26053         this run-time check.
26054
26055         * s-solita.adb (Task_Termination_Handler_T): Add this task-safe version
26056         of task termination procedure.
26057         (Init_Tasking_Soft_Links): Install the task-safe version of the soft
26058         link for the task termination procedure.
26059
26060         * bindusg.adb: (Bindusg): Added documentation for -u option.
26061
26062         * bindgen.adb (Get_Main_Ada) Added handling of dynamic stack analysis.
26063         (Get_Main_C): Add handling of dynamic stack analysis.
26064         (Gen_Output_File_C): Add external functions for dynamic stack analysis.
26065
26066         * Makefile.rtl: Add entry for a-taster (Ada.Task_Termination).
26067         (GNATRTL_NONTASKING_OBJS) Added entries for dynamic stack analysis
26068         (GNATRTL_NONTASKING_OBJS): Add AltiVec files.
26069
26070         * opt.ads: Added flags used by dynamic stack measurement.
26071         (Max_Line_Length): Remove (not used anymore)
26072
26073         * s-io.ads, s-io.adb (Standard_Error): new subprogram
26074         (Standart_Output): new subprogram
26075         (Set_Output): new subprogram
26076         (Put): now uses the value of Current_Out to know if the output has to be
26077         send to stderr or stdout.
26078
26079         * s-stausa.ads: Complete implementation.
26080
26081         * switch-b.adb: Added handling of -u switch for dynamic stack analysis.
26082
26083         * impunit.adb (Non_Imp_File_Names_05): Add Ada.Task_Termination to the
26084         list of Ada 05 files.
26085         (GNAT Library Units): Add AltiVec files.
26086
26087         * g-allein.ads, g-alleve.adb, g-alleve.ads, g-altcon.adb,
26088         g-altcon.ads, g-altive.ads, g-alveop.adb, g-alveop.ads
26089         g-alvety.ads, g-alvevi.ads: New files providing altivec API.
26090
26091 2005-12-09  Nicolas Setton  <setton@adacore.com>
26092
26093         * adaint.c (__gnat_locate_regular_file): Return immediately if
26094         file_name is empty.
26095
26096 2005-12-09  Javier Miranda  <miranda@adacore.com>
26097             Hristian Kirtchev  <kirtchev@adacore.com>
26098
26099         * a-tags.ads, a-tags.adb (Offset_To_Top): Moved from the package body
26100         to the specification because the frontend generates code that uses this
26101         subprogram.
26102         (Set_Interface_Table): Add missing assertion.
26103         Update documentation describing the run-time structure.
26104         (Displace): New subprogram that displaces the pointer to the object
26105         to reference one of its secondary dispatch tables.
26106         (IW_Membership): Modified to use the new table of interfaces.
26107         (Inherit_TSD): Modified to use the new table of interfaces.
26108         (Register_Interface_Tag): Use the additional formal to fill the
26109         contents of the new table of interfaces.
26110         (Set_Interface_Table): New subprogram that stores in the TSD the
26111         pointer to the table of interfaces.
26112         (Set_Offset_To_Top): Use the additional formal to save copy of
26113         the offset value in the table of interfaces.
26114         Update structure of GNAT Primary and Secondary dispatch table diagram.
26115         Add comment section on GNAT dispatch table prologue.
26116         (Offset_To_Signature): Update the constant value of the Signature field.
26117         (Dispatch_Table): Update comment on hidden fields in the prologue.
26118         (Get_Entry_Index, Get_Prim_Op_Kind, Get_Offset_Index, OSD,
26119         Set_Entry_Index, Set_Offset_Index, Set_Prim_Op_Kind, SSD, TSD): Change
26120         the type of formal parameter T to Tag, introduce additional assertions.
26121         (Get_Num_Prim_Ops, Set_Num_Prim_Ops): Remove an unnecessary type
26122         conversion.
26123         (Get_Tagged_Kind, Set_Tagged_Kind): New bodies.
26124
26125         * exp_ch6.adb (Register_Interface_DT_Entry): Remove the Thunk_Id actual
26126         in all the calls to Expand_Interface_Thunk. Instead of referencing the
26127         record component containing the tag of the secondary dispatch table we
26128         have to use the Offset_To_Top run-time function to get this information;
26129         otherwise if the pointer to the base of the object has been displace
26130         we get a wrong value if we use the 'position attribute.
26131
26132         * exp_disp.adb (Expand_Interface_Thunk): Remove the Thunk_Id actual in
26133         all the calls to Expand_Interface_Thunk.
26134         (Make_Secondary_DT): Secondary dispatch tables do not have a table of
26135         interfaces; hence the call to Set_Interface_Table was clearly wrong.
26136         (Collect_All_Interfaces): Modify the internal subprogram Collect to
26137         ensure that the interfaces implemented by the ancestors are placed
26138         at the header of the generated list.
26139         (Expand_Interface_Conversion): Handle the case in which the displacement
26140         associated with the interface conversion is not statically known. In
26141         this case we generate a call to the new run-time subprogram Displace.
26142         (Make_DT): Generate and fill the new table of interfaces.
26143         (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Add entries for
26144         Get_Tagged_Kind and Set_Tagged_Kind.
26145         (Tagged_Kind): New function that determines the tagged kind of a type
26146         with respect to limitedness and concurrency and returns a reference to
26147         RE_Tagged_Kind.
26148         (Make_Disp_Asynchronous_Select_Body, Make_Disp_Conditional_Select_Body,
26149         Make_Disp_Timed_Select_Body): Correctly retrieve the pointer to the
26150         primary dispatch table for a type.
26151         (Make_DT, Make_Secondary_DT): Set the tagged kind in the primary and
26152         secondary dispatch table respectively of a tagged type.
26153
26154         * exp_disp.ads (Expand_Interface_Thunk): Remove Thunk_Id formal.
26155         (Expand_Interface_Conversion): New subprogram to indicate if the
26156         displacement of the type conversion is statically known.
26157         (DT_Access_Action): Add values Get_Tagged_Kind and Set_Tagged_Kind.
26158
26159         * rtsfind.ads (RE_Offset_To_Top): New entity
26160         (RTU_Id): Add Ada_Task_Termination to the list so that it is made
26161         accessible to users.
26162         (Re_Displace): New entity
26163         (RE_Interface_Data): New entity
26164         (RE_Set_Interface_Data): New_Entity
26165         (RE_Id, RE_Unit_Table): Add entry for RE_Get_Tagged_Kind,
26166         Set_Tagged_Kind, RE_Tagged_Kind, RE_TK_Abstract_Limited_Tagged,
26167         RE_TK_Abstract_Tagged, RE_TK_Limited_Tagged, RE_TK_Protected,
26168         RE_TK_Tagged, RE_TK_Task.
26169
26170         * exp_ch3.adb (Init_Secondary_Tags): Modify the subprogram
26171         Init_Secondary_Tags_Internal to allow its use with interface types and
26172         also to generate the code for the new additional actual required
26173         by Set_Offset_To_Top.
26174         (Build_Init_Statements): In case of components associated with abstract
26175         interface types there is no need to generate a call to its IP.
26176         (Freeze_Record_Type): Generate Select Specific Data tables only for
26177         concurrent types.
26178         (Make_Predefined_Primitive_Specs, Predefined_Primitive_Bodies): Generate
26179         the bodies and specifications of the predefined primitive operations
26180         dealing with dispatching selects and abort, 'Callable, 'Terminated only
26181         for concurrent types.
26182
26183         * exp_sel.ads, exp_sel.adb: New files.
26184
26185         * exp_ch9.adb (Build_Protected_Entry, Expand_N_Protected_Body,
26186         Expand_N_Protected_Type_Declaration, Make_Initialize_Protection): Handle
26187         properly protected objects and attach handler in the case of the
26188         restricted profile.
26189         Move embeded package Select_Expansion_Utilities into a separate external
26190         package.
26191         (Expand_N_Asynchronous_Select, Expand_N_Conditional_Select,
26192         Expand_N_Timed_Entry_Call): Correct calls external package Exp_Sel.
26193         (Build_K, Build_S_Assignment): New subprograms, part of the select
26194         expansion utilities.
26195         (Expand_N_Asynchronous_Select, Expand_N_Conditional_Entry_Call,
26196         Expand_N_Timed_Entry_Call): Optimize expansion of select statements
26197         where the trigger is a dispatching procedure of a limited tagged type.
26198
26199 2005-12-09  Olivier Hainque  <hainque@adacore.com>
26200
26201         * decl.c (gnat_to_gnu_entity, renaming object case): Don't early expand
26202         pointer initialization values. Make a SAVE_EXPR instead. Add comments
26203         about the use and expansion of SAVE_EXPRs in the various possible
26204         renaming handling cases.
26205         (components_to_record, compare_field_bitpos): Sort by DECL_UID, not by
26206         abusing DECL_FCONTEXT.
26207
26208 2005-12-09  Matthew Heaney  <heaney@adacore.com>
26209
26210         * a-convec.adb (Merge): Added assertions to check whether vector params
26211         are sorted.
26212
26213         * a-coinve.adb (Merge): Added assertions to check whether vector params
26214         are sorted.
26215
26216         * a-cohama.ads (Cursor'Write): raises Program_Error per latest AI-302
26217         draft.
26218         (Cursor'Read): raises PE
26219
26220         * a-cohama.adb (Insert.New_Node): Uses box-style syntax to init elem
26221         to its default value.
26222
26223         * a-cihama.adb: Manually check whether cursor's key and elem are
26224         non-null
26225
26226         * a-cidlli.ads, a-cidlli.adb (Splice): Changed param name and param mode
26227         (Merge): Assert that target and source lists are in order
26228         (Swap): Declare non-const temporaries, to pass to Splice
26229
26230         * a-cdlili.ads: (Splice): Changed param name and param mode
26231
26232         * a-cdlili.adb: (Splice): Changed param name and param mode
26233         (Merge): Assert that target and source lists are in order
26234         (Swap): Declare non-const temporaries, to pass to Splice
26235
26236         * a-ciorma.ads, a-coorma.ads: (Read): declare Stream param as not null
26237         (Write): declare Stream param as not null
26238
26239         * a-ciorma.adb, a-coorma.adb: All explicit raise statements now include
26240         an exception message.
26241
26242 2005-12-09  Thomas Quinot  <quinot@adacore.com>
26243             Robert Dewar  <dewar@adacore.com>
26244
26245         * hostparm.ads (Max_Line_Length): Set to Types.Column_Number'Last - 1,
26246         which is the absolute maximum length we can support.
26247
26248         * frontend.adb: For the processing of configuration pragma files,
26249         remove references to Opt.Max_Line_Length, which is not checked anymore.
26250
26251         * namet.ads (Name_Buffer): Adjust size to reflect increase on max line
26252         length.
26253
26254         * scn.adb, scng.adb:
26255         Always check line length against the absolute supported maximum,
26256         Hostparm.Max_Line_Length.
26257
26258         * stylesw.adb (Set_Style_Check_Options, case M): The maximum supported
26259         value for the maximum line length is Max_Line_Length (not
26260         Column_Number'Last).
26261         Minor error msg update
26262         (Set_Style_Check_Options): New interface returning error msg
26263         Minor code reorganization (processing for 'M' was out of alpha order)
26264
26265         * switch-c.adb: New interface for Set_Style_Check_Options
26266
26267         * stylesw.ads (Set_Style_Check_Options): New interface returning error
26268         msg.
26269
26270 2005-12-09  Javier Miranda  <miranda@adacore.com>
26271
26272         * exp_aggr.adb (Build_Record_Aggr_Code): Default-initialialized records
26273         with IP subprogram were only supported if there were limited types.
26274
26275         * sem_aggr.adb (Resolve_Record_Aggregate): Default-initialialized
26276         records with IP subprogram were only supported if there were limited
26277         types.
26278
26279 2005-12-09  Olivier Hainque  <hainque@adacore.com>
26280             Eric Botcazou  <ebotcazou@adacore.com>
26281
26282         * trans.c (tree_transform, emit_check): Adjust calls to
26283         build_call_raise, passing the now expected GNAT_NODE argument.
26284
26285         * gigi.h (build_call_raise): Add a GNAT_NODE argument to convey better
26286         source line information than what the current global locus indicates
26287         when appropriate.
26288
26289         * utils2.c (build_simple_component_ref): Return 0 if the offset of the
26290         field has overflowed.
26291         (build_call_raise): Add a GNAT_NODE argument to convey better source
26292         line information than what the current global locus indicates when
26293         appropriate.
26294         (build_component_ref): Adjust call to build_call_raise.
26295
26296 2005-12-09  Pascal Obry  <obry@adacore.com>
26297
26298         * g-diopit.adb (Find): Fix test to exit the iterator and make sure that
26299         the iterator is quitting iteration on parent directory.
26300
26301 2005-12-09  Javier Miranda  <miranda@adacore.com>
26302
26303         * exp_ch5.adb (Expand_N_Assignment_Statement): In case of tagged types
26304         and the assignment to a class-wide object, before the assignment we
26305         generate a run-time check to ensure that the tag of the Target is
26306         covered by the tag of the source.
26307
26308 2005-12-09  Robert Dewar  <dewar@adacore.com>
26309
26310         * exp_imgv.adb (Expand_Image_Attribute): Generate extra boolean
26311         parameter in call to Image_Wide_Character.
26312
26313         * s-imgwch.ads, s-imgwch.adb (Image_Wide_Character): Add boolean
26314         parameter Ada_2005 to deal with annoying FFFE/FFFF inconsistency.
26315         (Image_Wide_Character): Add boolean parameter Ada_2005 to deal with
26316         annoying FFFE/FFFF inconsistency.
26317
26318 2005-12-09  Robert Dewar  <dewar@adacore.com>
26319             Javier Miranda  <miranda@adacore.com>
26320             Ed Schonberg  <schonberg@adacore.com>
26321
26322         * exp_util.ads, exp_util.adb (Is_Ref_To_Bit_Packed_Slice): Handle case
26323         of type conversion.
26324         (Find_Interface): New subprogram that given a tagged type and one of its
26325         component associated with the secondary table of an abstract interface
26326         type, return the entity associated with such abstract interface type.
26327         (Make_Subtype_From_Expr): If type has unknown discriminants, always use
26328         base type to create anonymous subtype, because entity may be a locally
26329         declared subtype or generic actual.
26330         (Find_Interface): New subprogram that given a tagged type and one of its
26331         component associated with the secondary table of an abstract interface
26332         type, return the entity associated with such abstract interface type.
26333
26334         * sem_res.adb (Resolve_Type_Conversion): Handle the case in which the
26335         conversion cannot be handled at compile time. In this case we pass this
26336         information to the expander to generate the appropriate code.
26337
26338 2005-12-09  Robert Dewar  <dewar@adacore.com>
26339             Ed Schonberg  <schonberg@adacore.com>
26340             Gary Dismukes  <dismukes@adacore.com>
26341             Javier Miranda  <miranda@adacore.com>
26342             Hristian Kirtchev  <kirtchev@adacore.com>
26343
26344         * einfo.adb (Itype_Printed): New flag
26345         (Is_Limited_Type): Derived types do not inherit limitedness from
26346         interface progenitors.
26347         (Is_Return_By_Reference_Type): Predicate does not apply to limited
26348         interfaces.
26349
26350         * einfo.ads (Itype_Printed): New flag
26351         Move Is_Wrapper_Package to proper section
26352         Add missing Inline for Is_Volatile
26353
26354         * output.ads, output.adb (Write_Erase_Char): New procedure
26355         (Save/Restore_Output_Buffer): New procedures
26356         (Save/Restore_Output_Buffer): New procedures
26357
26358         * sprint.ads, sprint.adb (Write_Itype): Handle case of record itypes
26359         Add missing support for anonymous access type
26360         (Write_Id): Insert calls to Write_Itype
26361         (Write_Itype): New procedure to output itypes
26362
26363         * par-ch12.adb (P_Formal_Derived_Type_Definition): In Ada 2005, handle
26364         use of "limited" in declaration.
26365
26366         * sinfo.ads, sinfo.adb:
26367         Formal derived types can carry an explicit "limited" indication.
26368
26369         * sem_ch3.adb: Add with and use of Targparm.
26370         (Create_Component): If Frontend_Layout_On_Target is True and the
26371         copied component does not have a known static Esize, then reset
26372         the size and positional fields of the new component.
26373         (Analyze_Component_Declaration): A limited component is
26374         legal within a protected type that implements an interface.
26375         (Collect_Interfaces): Do not add to the list the interfaces that
26376         are implemented by the ancestors.
26377         (Derived_Type_Declaration): If the parent of the full-view is an
26378         interface perform a transformation of the tree to ensure that it has
26379         the same parent than the partial-view. This simplifies the job of the
26380         expander in order to generate the correct object layout, and it is
26381         needed because the list of interfaces of the full-view can be given in
26382         any order.
26383         (Process_Full_View): The parent of the full-view does not need to be
26384         a descendant of the parent of the partial view if both parents are
26385         interfaces.
26386         (Analyze_Private_Extension_Declaration): If declaration has an explicit
26387         "limited" the parent must be a limited type.
26388         (Build_Derived_Record_Type): A derived type that is explicitly limited
26389         must have limited ancestor and progenitors.
26390         (Build_Derived_Type): Ditto.
26391         (Process_Full_View): Verify that explicit uses of "limited" in partial
26392         and full declarations are consistent.
26393         (Find_Ancestor_Interface): Remove function.
26394         (Collect_Implemented_Interfaces): New procedure used to gather all
26395         implemented interfaces by a type.
26396         (Contain_Interface): New function used to check whether an interface is
26397         present in a list.
26398         (Find_Hidden_Interface): New function used to determine whether two
26399         lists of interfaces constitute a set equality. If not, the first
26400         differing interface is returned.
26401         (Process_Full_View): Improve the check for the "no hidden interface"
26402         rule as defined by AI-396.
26403
26404 2005-12-09  Robert Dewar  <dewar@adacore.com>
26405
26406         * freeze.adb (Freeze_Record_Type): Only test for useless pack on record
26407         types, not on record subtypes.
26408         (Freeze_Entity): Code cleanup. Add barrier to the loop
26409         that generates the references for primitive operations. This allows to
26410         remove an unnecessary exception handler.
26411         Code reformatting and comment clean ups.
26412
26413 2005-12-09  Vincent Celier  <celier@adacore.com>
26414
26415         * gnatcmd.adb (GNATCmd): GNAT CHECK accepts switch -U
26416         If GNAT CHECK is called with a project file, but with no
26417         source on the command line, call gnatcheck with all the compilable
26418         sources of the project.
26419         Take into account the new command Check, for gnatcheck. Treat as for
26420         other ASIS tools: take into account project, specific package Check and
26421         Compiler switches.
26422         For ASIS tools, add the switches in package Compiler for
26423         the invocation of the compiler.
26424
26425         * prj-attr.adb: Add package Check and its attributes
26426
26427         * vms_conv.ads (Command_Type): New command Check, for gnatcheck
26428
26429         * vms_conv.adb (Initialize): Change Params of command Check to
26430         unlimited files.
26431         Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target.
26432         Add data for new command Check
26433
26434         * vms_data.ads: Add project related qualifiers for GNAT CHECK and GNAT
26435         ELIM.
26436         Add qualifiers for Check command options
26437         (Command_Type): New command Check
26438
26439 2005-12-09  Thomas Quinot  <quinot@adacore.com>
26440
26441         * mlib-utl.adb (Ar): Use Output.Buffer_Max to determine whether a
26442         command line switch overruns the output buffer.
26443
26444 2005-12-09  Robert Dewar  <dewar@adacore.com>
26445
26446         * sem_prag.adb: Processing for new pragma Complete_Representation
26447         (Analyze_Pragma, case Debug): Implement two argument form.
26448
26449         * par-prag.adb: Entry for new pragma Complete_Representation
26450         (Prag, case Debug): Recognize two argument form of pragma Debug
26451         New interface for Set_Style_Check_Options.
26452
26453         * sem_ch13.adb: Implement new pragma Complete_Representation.
26454
26455         * snames.adb, snames.ads, snames.h: Entry for new pragma
26456         Complete_Representation.
26457
26458 2005-12-09  Gary Dismukes  <dismukes@adacore.com>
26459
26460         * sem_cat.adb (Validate_RCI_Subprogram_Declaration): Revise test for
26461         available user-specified stream attributes on limited parameters to
26462         also test the type directly rather than only its underlying type (for
26463         Ada 95) and, in the case of Ada 2005, to check that the user-specified
26464         attributes are visible at the point of the subprogram declaration.
26465         For Ada 2005, the error message is modified to indicate that the
26466         type's stream attributes must be visible (again, only for -gnat05).
26467
26468 2005-12-09  Ed Schonberg  <schonberg@adacore.com>
26469
26470         * sem_ch12.adb (Subtypes_Match): Handle properly Ada05 arrays of
26471         anonymous access types.
26472
26473         * sem_eval.adb (Subtypes_Statically_Match): Implement new rules for
26474         matching of anonymous access types and anonymous access to subprogram
26475         types. 'R'M 4.9.1 (2/2).
26476
26477 2005-12-09  Ed Schonberg  <schonberg@adacore.com>
26478
26479         * sem_ch4.adb (Remove_Abstract_Operations): Do not apply preference
26480         rule prematurely when operands are universal, remaining ambiguities
26481         will be removed during resolution.
26482         Code cleanup.
26483
26484         * sem_type.adb (Disambiguate): In Ada95 mode, discard interpretations
26485         that are Ada 2005 functions.
26486         (Has_Abstract_Interpretation): Subsidiary to
26487         Remove_Conversions, to remove ambiguities caused by abstract operations
26488         on numeric types when operands are universal.
26489
26490 2005-12-09  Robert Dewar  <dewar@adacore.com>
26491
26492         * sem_ch6.adb (Analyze_Subprogram_Body): Properly check categorization
26493         for case where spec is categorized.
26494
26495 2005-12-09  Javier Miranda  <miranda@adacore.com>
26496
26497         * sem_ch8.adb (Find_Type): In case of tagged types that are concurrent
26498         types use the corresponding record type. This was not needed before
26499         the implementation of Ada 2005 synchronized types because
26500         concurrent types were never tagged types in Ada 95.
26501
26502 2005-12-09  Ed Schonberg  <schonberg@adacore.com>
26503
26504         * sem_ch9.adb (Analyze_Delay_Alternative, Analyze_Delay_Until): Use the
26505         first subtype of the type of the expression to verify that it is a
26506         legal Time type.
26507
26508 2005-12-09  Robert Dewar  <dewar@adacore.com>
26509
26510         * sem_util.ads, sem_util.adb (Full_Qualified_Name): Now provides
26511         decoded names.
26512
26513 2005-12-09  Quentin Ochem  <ochem@adacore.com>
26514             Robert Dewar  <dewar@adacore.com>
26515             Ed Falis  <falis@adacore.com>
26516             Florian Villoing  <villoing@adacore.com>
26517             Thomas Quinot  <quinot@adacore.com>
26518             Arnaud Charlet  <charlet@adacore.com>
26519
26520         * gnat_ugn.texi: Created section "Stack Related Tools"
26521         Moved "Stack Overflow Checking" subsection from "Switches for gcc" to
26522         "Stack Related Tools"
26523         Added subsection "Static Stack Usage Analysis"
26524         Added subsection "Dynamic Stack Usage Analysis"
26525         Include documentation of itypes in sprint listing (-gnatG)
26526         Documented gnatbind -D switch (default sec stack size for fixed sec
26527         stacks).
26528         Added Interrupt_State and Persistent_BSS to list of configuration
26529         pragmas.
26530         Add missing doc for maximum value of nnn in -gnatyMnnn
26531
26532         * gnat_rm.texi: Document the AltiVec binding.
26533         Add documentation for pragma Complete_Representation
26534         Shortened an overly long line (> 79 chars)
26535         Clarify documentation of unchecked conversion in implementation
26536         defined cases.
26537         Document two argument form of pragma Debug
26538
26539         * types.ads (Column_Number): Update documentation.
26540
26541         * exp_ch7.ads (Make_Adjust_Call): Document the special processing for
26542         library level Finalize_Storage_Only objects (these are not attached to
26543         any finalization list).
26544
26545         * system-mingw.ads: (Underlying_Priorities): Update comment.
26546
26547 2005-12-09  Robert Dewar  <dewar@adacore.com>
26548
26549         * i-c.adb, i-cexten.ads, i-cobol.adb, i-cobol.ads, i-cpoint.ads,
26550         i-cpp.adb, i-cpp.ads, i-cstrea.ads, i-cstrin.adb, i-cstrin.ads,
26551         inline.adb, interfac.ads, i-os2err.ads, i-os2lib.ads, i-os2syn.ads,
26552         i-os2thr.ads, itypes.adb, itypes.adb, itypes.ads, krunch.ads,
26553         krunch.adb, lib.adb, lib.ads, lib-list.adb, lib-load.adb,
26554         lib-load.ads, lib-sort.adb, live.adb, make.ads, i-cstrea-vms.adb,
26555         interfac-vms.ads, makegpr.adb, indepsw-gnu.adb, indepsw.ads,
26556         s-wchcon.ads, sdefault.ads, sem_ch10.adb, sem_eval.ads: Minor
26557         reformatting.
26558
26559 2005-12-09  Robert Dewar  <dewar@adacore.com>
26560
26561         * s-vaflop-vms-alpha.adb: (Ne_F): New function
26562         (Ne_G): New function
26563
26564         * exp_ch4.adb (Expand_Allocator_Expression): Factor duplicated code
26565         for tag assignment.
26566         (Rewrite_Comparison): Handle case where operation is not a comparison
26567         and ignore, and also handle type conversion case.
26568
26569 2005-12-09  Thomas Quinot  <quinot@adacore.com>
26570
26571         * exp_aggr.ads: Fix typo in comment.
26572         ???-mark Convert_Aggr_In_Assignment as needing documentation.
26573
26574 2005-12-09  Gary Dismukes  <dismukes@adacore.com>
26575
26576         * layout.adb: Replace various uses of byte by storage unit throughout.
26577         (Get_Max_SU_Size): Name changed from Get_Max_Size. In the case of a
26578         static size, convert to storage units before returning, to conform to
26579         spec.
26580
26581 2005-12-09  Matthew Gingell  <gingell@adacore.com>
26582
26583         * g-exctra.ads: Fix typo in comment.
26584
26585 2005-12-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
26586
26587         * utils.c: Minor reformatting.
26588
26589 2005-12-09  Robert Dewar  <dewar@adacore.com>
26590
26591         * g-soccon.ads:
26592         Further comment fixes to make the status of the default file clear
26593
26594         * s-bitops.adb: Clarify comment for Bits_Array
26595
26596 2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
26597
26598         * Make-lang.in (ada.install-normal): Remove.
26599
26600 2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
26601
26602         * Make-lang.in: Remove all dependencies on s-gtype.
26603
26604 2005-12-05  Richard Guenther  <rguenther@suse.de>
26605
26606         * utils.c (convert): Use fold_convert where appropriate.
26607
26608 2005-12-05  Paolo Bonzini  <bonzini@gnu.org>
26609
26610         * Makefile.in (gnatlib): Fix regex, using \. instead of . when
26611         a period is meant.
26612
26613 2005-12-02  Richard Guenther  <rguenther@suse.de>
26614
26615         * trans.c (gnat_gimplify_expr): Use buildN instead of build.
26616
26617 2005-12-01  Roger Sayle  <roger@eyesopen.com>
26618
26619         * utils.c (max_size): Only test for TREE_OVERFLOW on INTEGER_CST
26620         nodes.
26621
26622 2005-11-23  Laurent Guerby  <laurent@guerby.net>
26623
26624         * mlib-prj.adb (Build_Library): Initialize Delete.
26625
26626 2005-11-21  Joel Sherrill  <joel.sherrill@oarcorp.com>
26627
26628         * socket.c: Add extern int h_errno for rtems since networking header
26629         files are not available at this point in a tool bootstrap. Newlib
26630         only has basic C library header files.
26631
26632 2005-11-19  Richard Guenther  <rguenther@suse.de>
26633         Roger Sayle  <roger@eyesopen.com>
26634
26635         PR ada/23717
26636         * misc.c (internal_error_function): Don't use vsprintf to format
26637         the error message text, instead use pp_format_text and the new
26638         pretty printer APIs.  This allows handling of %qs, %w, etc.
26639
26640 2005-11-18  Laurent Guerby  <laurent@guerby.net>
26641
26642         PR ada/24857
26643         * Makefile.in: Use s-auxdec-empty for RTEMS.
26644
26645 2005-11-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
26646
26647         PR ada/22333
26648         * trans.c (gnat_gimplify_expr, case ADDR_EXPR): Always make
26649         a temporary if taking the address of something that is neither
26650         reference, declaration, or constant, since the gimplifier
26651         can't handle that case.
26652
26653 2005-11-17  Laurent Guerby  <laurent@guerby.net>
26654
26655         PR ada/24857
26656         * s-auxdec-empty.ads, s-auxdec-empty.adb: New files.
26657
26658 2005-11-16  Richard Guenther  <rguenther@suse.de>
26659
26660         * Makefile.in: Add EH_MECHANISM=-gcc to s390(x) linux.
26661
26662 2005-11-16  Joel Sherrill  <joel.sherrill@oarcorp.com>
26663
26664         PR ada/24855
26665         * raise-gcc.c: Add missing stdarg.h include.
26666
26667 2005-11-16  Richard Guenther  <rguenther@suse.de>
26668
26669         * Make-lang.in (ada/decl.o): Add $(EXPR_H) dependency.
26670         (ada/misc.o): Likewise.
26671
26672 2005-11-14  Thomas Quinot  <quinot@adacore.com>
26673
26674         * g-soccon.ads: Minor reformatting. Update comments.
26675
26676         * gsocket.h: Include <sys/times.h> in the VxWorks case, in order to
26677         gain visibility on the declaration of struct timeval.
26678
26679         * g-soccon-freebsd.ads,
26680         g-soccon-darwin.ads,
26681         g-soccon-tru64.ads,
26682         g-soccon-aix.ads,
26683         g-soccon-irix.ads,
26684         g-soccon-hpux.ads,
26685         g-soccon-solaris.ads,
26686         g-soccon-vms.ads,
26687         g-soccon-mingw.ads,
26688         g-soccon-vxworks.ads (SIZEOF_tv_sec, SIZEOF_tv_usec): New constants.
26689
26690         * g-soccon-hpux-ia64.ads, g-soccon-linux-ppc.ads,
26691         g-soccon-solaris-64.ads, g-soccon-linux-64.ads,
26692         g-soccon-linux-x86.ads: New files.
26693
26694         * g-socthi-mingw.adb:
26695         (Socket_Error_Message): Remove redundant use of GNAT.Sockets.Constants
26696
26697         * g-socthi-vxworks.ads, g-socthi-vms.ads, g-socthi-mingw.ads
26698         (time_t, suseconds_t): New types constructed to match the tv_sec
26699         and tv_usec fields of C struct timeval.
26700         (Timeval): Construct structure in terms of the new types.
26701         (Host_Errno): New function (imported from socket.c), returns last hosts
26702         database error.
26703
26704         * g-socthi-vxworks.adb:  Add error handling circuitry.
26705
26706         * g-socket.ads, g-socket.adb (To_Timeval): Reflect change of type for
26707         components of struct timeval.
26708         (Get_Host_By_Name, Get_Host_By_Address): Fix error reporting circuitry.
26709         (Check_Selector): In error conditions, clear internal socket sets to
26710         avoid a memory leak.
26711         (Get_Socket_Option, Set_Socket_Option): Support for Multicast_If,
26712         Send_Timeout, Receive_Timeout.
26713
26714         * g-socthi.ads (time_t, suseconds_t): New types constructed to match
26715         the tv_sec and tv_usec fields of C struct timeval.
26716         (Timeval): Construct structure in terms of the new types.
26717         (Host_Errno): New function (imported from socket.c), returns last hosts
26718         database error.
26719
26720         * socket.c (__gnat_get_h_errno): New function to retrieve h_errno, the
26721         hosts database last error code.
26722
26723         * gen-soccon.c: Complete value expansion should not be performed on
26724         TARGET, as it has the form of a math expression, and some components
26725         may be platform-defined macros.
26726         For VxWorks, generate the OK and ERROR values.
26727         New constants giving the sizes of the components of C struct timeval.
26728
26729 2005-11-14  Robert Dewar  <dewar@adacore.com>
26730             Ed Schonberg  <schonberg@adacore.com>
26731
26732         PR ada/18434
26733         * types.ads: Include All_Checks in Suppress_Array
26734
26735         * checks.adb (Check_Needed): Remove kludge for a/=b rewritten as
26736         not(a=b), since we no longer do this rewriting, and hence it is not
26737         needed.
26738         (Elaboration_Checks_Suppressed): Add special casing to
26739         deal with different cases of static and dynamic elaboration checks (all
26740         checks does not count in the first case, but does in the second).
26741         (Expr_Known_Valid): Do not assume that the result of any arbitrary
26742         function call is valid, since this is not the case.
26743         (Ensure_Valid): Do not apply validity check to a real literal
26744         in a universal or fixed context
26745
26746         * exp_ch4.adb (Expand_N_Op_Ne): Don't expand a/=b to not(a=b) for
26747         elementary types using the operator in standard. It is cleaner not to
26748         modify the programmers intent, especially in the case of floating-point.
26749         (Rewrite_Comparison): Fix handling of /= (this was always wrong, but
26750         it did not matter because we always rewrote a/=b to not(a=b).
26751         (Expand_Allocator_Expression): For an allocator expression whose nominal
26752         subtype is an unconstrained packed type, convert the expression to its
26753         actual constrained subtype.
26754         Implement warning for <= or >= where < or > not possible
26755         Fix to Vax_Float tests (too early in many routines, causing premature
26756         Vax_Float expansions.
26757
26758         * sem_prag.adb (Analyze_Pragma, case Obsolescent): Allow this pragma
26759         to be used with packages and generic packages as well as with
26760         subprograms.
26761         (Suppress): Set All_Checks, but not Elaboration_Check, for case
26762         of pragma Suppress (All_Checks)
26763         (Analyze_Pragma, case Warnings): Implement first argument allowed to be
26764         a string literal for precise control over warnings.
26765         Avoid raise of pragma in case of unrecognized pragma and just return
26766         instead.
26767
26768         * sem_prag.ads: Minor reformatting
26769
26770         * switch-c.adb (Scan_Front_End_Switches): Replace "raise Bad_Switch;"
26771         with call to new procedure Bad_Switch. Call Scan_Pos with new parameter
26772         Switch. Do not handle any exception.
26773         Include -gnatwx as part of -gnatg (warn on redundant parens)
26774         Allow optional = after -gnatm
26775         (Scan_Front_End_Switches): The -gnatp switch sets All_Checks, but no
26776         longer sets Elaboration_Checks.
26777         Code to set warning mode moved to Sem_Warn
26778         so that it can be shared by pragma processing.
26779
26780         * s-mastop-tru64.adb (Pop_Frame): Remove redundant parentheses in if
26781         statement.
26782
26783         * s-taprop-solaris.adb:
26784         Change some <= to =, to avoid new warning
26785
26786         * a-exexda.adb, prj-proc.adb:
26787         Fix obvious typo (Num_Tracebacks compared <= 0 instead of < 0)
26788         Fix obvious typo (Total_Errors_Detected <= 0 should be = 0)
26789
26790 2005-11-14  Robert Dewar  <dewar@adacore.com>
26791
26792         * exp_vfpt.adb: Handle /= case
26793         (Expand_Vax_Conversion): Properly recognize Conversion_OK flag
26794         so that we do not get duplicate scaling for fixed point conversions.
26795
26796         * s-vaflop.ads, s-vaflop.adb: (Ne_F): New function
26797
26798 2005-11-14  Matthew Gingell  <gingell@adacore.com>
26799
26800         * system-lynxos-ppc.ads, system-lynxos-x86.ads:
26801         Increase default priority on Lynx from 15 to 17, and meet the Ada
26802         requirement that Default_Priority be ((Priority'First +
26803         Priority'Last) / 2) by increasing the range of Interrupt_Priority.
26804
26805 2005-11-14  Vincent Celier  <celier@adacore.com>
26806
26807         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
26808         mlib-tgt-hpux.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
26809         mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-alpha.adb,
26810         mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb,
26811         mlib-tgt-darwin.adb, mlib-tgt.adb, mlib-tgt.ads,
26812         mlib-tgt-lynxos.adb (DLL_Prefix): New function
26813
26814 2005-11-14  Doug Rupp  <rupp@adacore.com>
26815
26816         * system-vms.ads, system-vms_64.ads: ADA$GNAT: New exported object in
26817         private part.
26818
26819 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
26820
26821         * s-traces-default.adb, s-trafor-default.ads,
26822         s-tratas-default.adb: Fix compilation errors.
26823
26824 2005-11-14  Jose Ruiz  <ruiz@adacore.com>
26825
26826         * s-taprop-posix.adb (Initialize_Lock): Destroy mutex attribute before
26827         raising the exception so the memory used is freed.
26828
26829 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
26830
26831         * adaint.h, adaint.c (__gnat_is_cross_compiler): New constant.
26832         (Gnat_Install_Locks, __gnatlib_install_locks): Removed, no longer used.
26833         (convert_address): Update comments and list of platforms using this.
26834
26835         * s-tasini.adb (Gnat_Install_Locks, __gnatlib_install_locks): Removed,
26836         no longer used.
26837
26838 2005-11-14  Pascal Obry  <obry@adacore.com>
26839             Vincent Celier  <celier@adacore.com>
26840
26841         * gnatdll.adb (Parse_Command_Line): Remove redundant use of
26842         GNAT.Command_Line.
26843
26844         * memroot.adb: Remove redundant with/use clause on
26845         System.Storage_Elements.
26846
26847 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
26848
26849         * a-except.adb (Zero_Cost_Exceptions): Removed, no longer used.
26850         (builtin_longjmp, Process_Raise_Exceeption): Move setjmp/longjmp
26851         related code to a-exexpr.adb
26852         (Save_Occurrence_And_Private): Move GCC EH related code to
26853         a-exexpr-gcc.adb
26854         (Raise_Current_Excep): Add new variable Id with pragma
26855         volatile, to ensure that the variable lives on stack.
26856
26857         * a-exexpr-gcc.adb, raise-gcc.c: New file.
26858
26859         * a-exexpr.adb (builtin_longjmp, Propagate_Exception): Moved here code
26860         from a-except.adb.
26861         Move GCC EH related code to a-exexpr-gcc.adb
26862
26863         * Makefile.in: Add or update g-soccon LIBGNAT pairs for Linux/PPC and
26864         64-bit Solaris
26865         Split the Linux version of g-soccon into separate variants for 32 and 64
26866         bit platforms.
26867         (gnatlib): Use $(AR_FOR_TARGET) and $(RANLIB_FOR_TARGET)
26868         vice $(AR) and $(RANLIB). Remove use of host variable $(RANLIB_FLAGS).
26869         install-gnatlib: Use $(RANLIB_FOR_TARGET) vice $(RANLIB). Remove use
26870         of host variable $(RANLIB_FLAGS).
26871         (alpha64-dec-*vms*): Fix translations for 64 bit compiler.
26872         Code clean up: remove unused/obsolete targets.
26873         (EH_MECHANISM): New variable introduced to differenciate between the
26874         two EH mechanisms statically.
26875         (gnatlib-zcx, gnatlib-sjlj): Force EH_MECHANISM manually.
26876         (LIBGNAT_OBJS): Add raise-gcc.o
26877         (LIBGNAT_TARGET_PAIRS for ppc-vxworks): Use an specialized version of
26878         s-osinte.adb, s-tpopsp.adb, and system.ads for the run time that
26879         supports VxWorks 6 RTPs.
26880         (EXTRA_GNATRTL_NONTASKING_OBJS for ppc-vxworks): Remove the use of
26881         i-vxworks and i-vxwoio from the run time that supports VxWorks 6 RTPs.
26882
26883         * raise.c: Move all GCC EH-related routines to raise-gcc.c
26884
26885 2005-11-14  Jose Ruiz  <ruiz@adacore.com>
26886
26887         * s-tassta.adb (Create_Task): Move the code in charge of resetting the
26888         deferral level, when abort is not allowed, to a later stage (the
26889         Task_Wrapper).
26890         (Task_Wrapper): If Abort is not allowed, reset the deferral level since
26891         it will not get changed by the generated code. It was previously done
26892         in Create_Task.
26893
26894 2005-11-14  Thomas Quinot  <quinot@adacore.com>
26895             Olivier Hainque  <hainque@adacore.com>
26896             Eric Botcazou  <ebotcazou@adacore.com>
26897
26898         * decl.c:
26899         Factor common code to build a storage type for an unconstrained object
26900         from a fat or thin pointer type and a constrained object type.
26901         (annotate_value): Handle BIT_AND_EXPR.
26902         (annotate_rep): Don't restrict the back annotation of inherited
26903         components to the type_annotate_only case.
26904         (gnat_to_gnu_entity) <E_Array_Type>: Do not invoke create_type_decl if
26905         we are not defining the type.
26906         <E_Record_Type>: Likewise.
26907         (gnat_to_gnu_entity) <object, renaming>: Adjust comments and structure
26908         to get advantage of the new maybe_stabilize_reference interface, to
26909         ensure that what we reference is indeed stabilized instead of relying
26910         on assumptions on what the stabilizer does.
26911         (gnat_to_gnu_entity) <E_Incomplete_Type>: If the entity is an incomplete
26912         type imported through a limited_with clause, use its non-limited view.
26913         (Has_Stdcall_Convention): New macro, to centralize the Windows vs others
26914         differentiation.
26915         (gnat_to_gnu_entity): Use Has_Stdcall_Convention instead of a spread mix
26916         of #if sections + explicit comparisons of convention identifiers.
26917         (gnat_to_gnu_entity) <E_Variable>: Decrement force_global if necessary
26918         before early-returning for certain types when code generation is
26919         disabled.
26920         (gnat_to_gnu_entity) <object>: Adjust comment attached to the
26921         nullification of gnu_expr we do for objects with address clause and
26922         that we are not defining.
26923         (elaborate_expression_1): Do not create constants when creating
26924         variables needed by the debug info: the dwarf2 writer considers that
26925         CONST_DECLs is used only to represent enumeration constants, and emits
26926         nothing for them.
26927         (gnat_to_gnu_entity) <object>: When turning a non-definition of an
26928         object with an address clause into an indirect reference, drop the
26929         initializing expression.
26930         Include "expr.h".
26931         (STACK_CHECK_BUILTIN): Delete.
26932         (STACK_CHECK_PROBE_INTERVAL): Likewise.
26933         (STACK_CHECK_MAX_FRAME_SIZE): Likewise.
26934         (STACK_CHECK_MAX_VAR_SIZE): Likewise.
26935         (gnat_to_gnu_entity): If gnat_entity is a renaming, do not mark the tree
26936         corresponding to the renamed object as ignored for debugging purposes.
26937
26938         * trans.c (tree_transform, case N_Attribute_Reference, case Attr_Size &
26939         related): For a prefix that is a dereference of a fat or thin pointer,
26940         if there is an actual subtype provided by the front-end, use that
26941         subtype to build an actual type with bounds template.
26942         (tree_transform, case N_Free_Statement): If an Actual_Designated_Subtype
26943         is provided by the front-end, use that subtype to compute the size of
26944         the deallocated object.
26945         (gnat_to_gnu): When adding a statement into an elaboration procedure,
26946         check for a potential violation of a No_Elaboration_Code restriction.
26947         (maybe_stabilize_reference): New function, like gnat_stabilize_reference
26948         with extra arguments to control whether to recurse through non-values
26949         and to let the caller know if the stabilization has succeeded.
26950         (gnat_stabilize_reference): Now a simple wrapper around
26951         maybe_stabilize, for common uses without restriction on lvalues and
26952         without need to check for the success indication.
26953         (gnat_to_gnu, call_to_gnu): Adjust calls to gnat_stabilize_reference, to
26954         pass false instead of 0 as the FORCE argument which is a bool.
26955         (Identifier_to_gnu): Remove checks ensuring that an renamed object
26956         attached to a renaming pointer has been properly stabilized, as no such
26957         object is attached otherwise.
26958         (call_to_gnu): Invoke create_var_decl to create the temporary when the
26959         function uses the "target pointer" return mechanism.
26960         Reinstate conversion of the actual to the type of the formal
26961         parameter before any other specific treatment based on the passing
26962         mechanism. This turns out to be necessary in order for PLACEHOLDER
26963         substitution to work properly when the latter type is unconstrained.
26964
26965         * gigi.h (build_unc_object_type_from_ptr): New subprogram, factoring a
26966         common pattern.
26967         (maybe_stabilize_reference): New function, like gnat_stabilize_reference
26968         with extra arguments to control whether to recurse through non-values
26969         and to let the caller know if the stabilization has succeeded.
26970
26971         * utils2.c (gnat_build_constructor): Only sort the fields for possible
26972         static output of record constructor if all the components are constant.
26973         (gnat_build_constructor): For a record type, sort the list of field
26974         initializers in increasing bit position order.
26975         Factor common code to build a storage type for an unconstrained object
26976         from a fat or thin pointer type and a constrained object type.
26977         (build_unary_op) <ADDR_EXPR>: Always recurse down conversions between
26978         types variants, and process special cases of VIEW_CONVERT expressions
26979         as their NOP_EXPR counterpart to ensure we get to the
26980         CORRESPONDING_VARs associated with CONST_DECls.
26981         (build_binary_op) <MODIFY_EXPR>: Do not strip VIEW_CONVERT_EXPRs
26982         on the right-hand side.
26983
26984         * utils.c (build_unc_object_type_from_ptr): New subprogram, factoring
26985         a common pattern.
26986         (convert) <VIEW_CONVERT_EXPR>: Return the inner operand directly if we
26987         are converting back to its original type.
26988         (convert) <JM input>: Fallthrough regular conversion code instead of
26989         extracting the object if converting to a type variant.
26990         (create_var_decl): When a variable has an initializer requiring code
26991         generation and we are at the top level, check for a potential violation
26992         of a No_Elaboration_Code restriction.
26993         (create_var_decl): call expand_decl for CONST_DECLs, to set MODE, ALIGN
26994         SIZE and SIZE_UNIT which we need for later back-annotations.
26995         * utils.c: (convert) <STRING_CST>: Remove obsolete code.
26996         <VIEW_CONVERT_EXPR>: Do not lift the conversion if the target type
26997         is an unchecked union.
26998         (pushdecl): Set DECL_NO_STATIC_CHAIN on imported nested functions.
26999         (convert) <VIEW_CONVERT_EXPR>: When the types have the same
27000         main variant, just replace the VIEW_CONVERT_EXPR.
27001         <UNION_TYPE>: Revert 2005-03-02 change.
27002
27003         * repinfo.h, repinfo.ads: Add tcode for BIT_AND_EXPR.
27004
27005         * repinfo.adb (Print_Expr, Rep_Value): Handle Bit_And_Expressions.
27006
27007 2005-11-14  Matthew Heaney  <heaney@adacore.com>
27008
27009         * a-crbtgo.ads, a-crbtgo.adb, a-coorse.ads, a-coorse.adb, a-convec.ads,
27010         a-convec.adb, a-coinve.ads, a-coinve.adb, a-cohama.ads, a-cohama.adb,
27011         a-ciorse.ads, a-ciorse.adb, a-cihama.ads, a-cihama.adb, a-cidlli.ads,
27012         a-cidlli.adb, a-cdlili.ads, a-cdlili.adb, a-coormu.adb, a-ciormu.adb,
27013         a-cihase.adb, a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads,
27014         a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-ciorma.adb, a-coorma.adb:
27015         Compiles against the spec for ordered maps described in sections
27016         A.18.6 of the most recent (August 2005) AI-302 draft.
27017
27018 2005-11-14  Olivier Hainque  <hainque@adacore.com>
27019
27020         * cuintp.c (UI_To_gnu): Use a proper type for intermediate computations
27021         to ensure bias adjustments take place when need be and to prevent
27022         occurrences of intermediate overflows.
27023
27024 2005-11-14  Matthew Gingell  <gingell@adacore.com>
27025             Olivier Hainque  <hainque@adacore.com>
27026
27027         * tb-gcc.c (trace_callback): Work around problem with _Unwind_GetIP on
27028         ia64 HP-UX.
27029
27030         * tracebak.c (ia64 configuration): Enable _Unwind_Backtrace driven
27031         tracebacks on ia64 HP-UX and provide explanatory comment.
27032         Enable backtraces on ia64 GNU/Linux.
27033         (x86 configuration): Bump FRAME_LEVEL to 1 to ensure we retrieve a real
27034         base pointer from builtin_frame_address. Adjust BASE_SKIP accordingly.
27035
27036 2005-11-14  Hristian Kirtchev  <kirtchev@adacore.com>
27037             Javier Miranda  <miranda@adacore.com>
27038
27039         * rtsfind.ads, exp_util.adb, exp_util.ads, exp_disp.adb, exp_disp.ads,
27040         exp_ch7.adb, sem_ch9.adb, snames.adb, snames.ads,
27041         exp_ch9.adb, exp_ch9.ads, exp_ch6.adb, exp_ch3.adb, exp_ch3.ads,
27042         einfo.ads, einfo.adb: Complete support for Ada 2005 interfaces.
27043
27044         * a-tags.ads, a-tags.adb: Major rewrite and additions to implement
27045         properly new Ada 2005 interfaces (AI-345) and add run-time checks (via
27046         assertions).
27047
27048         * exp_dbug.ads, exp_dbug.adb (Get_Secondary_DT_External_Name): New
27049         subprogram that generates the external name associated with a
27050         secondary dispatch table.
27051         (Get_Secondary_DT_External_Name): New subprogram that generates the
27052         external name associated with a secondary dispatch table.
27053
27054 2005-11-14  Emmanuel Briot  <briot@adacore.com>
27055
27056         * xref_lib.adb (Parse_Identifier_Info): It is possible for an entity
27057         line in the ALI file to include both an instantiation reference, and a
27058         returned value.
27059
27060 2005-11-14  Vincent Celier  <celier@adacore.com>
27061
27062         * clean.adb (Check_Project): Look for Ada code in extending project,
27063         even if Ada is not specified as a language.
27064         Use new function DLL_Prefix for DLL_Name
27065         (Clean_Interface_Copy_Directory): New procedure
27066         (Clean_Library_Directory): New procedure
27067         (Clean_Directory): Remove procedure, no longer used
27068         (Clean_Project): Do not delete any file in an externally built project
27069
27070         * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Add the object
27071         directory of an extending project, even when there are no Ada source
27072         present.
27073         (Ada_Objects_Path.Add): Add Library_ALI_Dir, not Library_Dir to the path
27074         (Set_Ada_Paths.Add.Recursive_Add): Ditto
27075
27076         * mlib-prj.adb (Check_Library): For all library projects, get the
27077         library file timestamp.
27078         (Build_Library): Copy ALI files in Library_ALI_Dir, not in Library_Dir
27079         (Build_Library): Use new function DLL_Prefix for the DLL_Name
27080         (Clean): Remove procedure, no longer used
27081         (Ultimate_Extension_Of): New function
27082         (Build_Library): When cleaning the library directory, only remove an
27083         existing library file and any ALI file of a source of the project.
27084         When cleaning the interface copy directory, remove any source that
27085         could be a source of the project.
27086
27087         * prj.ads, prj.adb (Project_Empty): Add values of new components
27088         Library_TS and All_Imported_Projects.
27089         (Project_Empty): Add values for new components of Project_Data:
27090         Library_ALI_Dir and Display_Library_ALI_Dir
27091
27092         * prj-attr.adb: New project level attribute name Library_ALI_Dir
27093
27094         * prj-nmsc.adb (Check_Library_Attributes): Take into account new
27095         attribute Library_ALI_Dir.
27096         (Check_Library_Attributes): The library directory cannot be the same as
27097         any source directory of the project tree.
27098         (Check_Stand_Alone_Library): The interface copy directory cannot be
27099         the same as any source directory of the project tree.
27100
27101         * mlib.adb: Use Prj.Com.Fail, instead of Osint.Fail directly, to delete
27102         all temporary files.
27103
27104 2005-11-14  Robert Dewar  <dewar@adacore.com>
27105             Ed Schonberg  <schonberg@adacore.com>
27106
27107         * sem_elab.adb: Change name Is_Package to Is_Package_Or_Generic_Package
27108         (Check_Elab_Call): A call within a protected body is never an
27109         elaboration call, and does not require checking.
27110         (Same_Elaboration_Scope): Take into account protected types for both
27111         entities.
27112         (Activate_Elaborate_All_Desirable): New procedure
27113
27114         * ali.ads, ali.adb: Implement new AD/ED for Elaborate_All/Elaborate
27115         desirable
27116
27117         * binde.adb: Implement new AD/ED for Elaborate_All/Elaborate desirable
27118         (Elab_Error_Msg): Use -da to include internal unit links, not -de.
27119
27120         * lib-writ.ads, lib-writ.adb:
27121         Implement new AD/ED for Elaborate_All/Elaborate desirable
27122         Use new Elaborate_All_Desirable flag in N_With_Clause node
27123
27124         * sinfo.ads, sinfo.adb (Actual_Designated_Subtype): New attribute for
27125         N_Free_Statement nodes.
27126         Define new class N_Subprogram_Instantiation
27127         Add Elaborate_Desirable flag to N_With_Clause node
27128         Add N_Delay_Statement (covering two kinds of delay)
27129
27130         * debug.adb: Introduce d.f flag for compiler
27131         Add -da switch for binder
27132
27133 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
27134             Cyrille Comar  <comar@adacore.com>
27135
27136         * exp_aggr.adb (Build_Record_Aggr_Code): Do not create master entity
27137         for task component, in the case of a limited aggregate. The enclosed
27138         object declaration will create it earlier. Otherwise, in the case of a
27139         nested aggregate, the object may appear in the wrong scope.
27140         (Convert_Aggr_In_Object_Decl): Create a transient scope when needed.
27141         (Gen_Assign): If the component being assigned is an array type and the
27142         expression is itself an aggregate, wrap the assignment in a block to
27143         force finalization actions on the temporary created for each row of the
27144         enclosing object.
27145         (Build_Record_Aggr_Code): Significant rewrite insuring that ctrl
27146         structures are initialized after all discriminants are set so that
27147         they can be accessed even when their offset is dynamic.
27148
27149 2005-11-14  Robert Dewar  <dewar@adacore.com>
27150             Hristian Kirtchev  <kirtchev@adacore.com>
27151
27152         * sem_attr.adb: Implement Machine_Rounding attribute
27153         (Analyze_Access_Attribute): The access attribute may appear within an
27154         aggregate that has been expanded into a loop.
27155         (Check_Task_Prefix): Add semantic check for attribute 'Callable and
27156         'Terminated whenever the prefix is of a task interface class-wide type.
27157         (Analyze_Attribute): Add semantic check for attribute 'Identity whenever
27158         the prefix is of a task interface class-wide type.
27159
27160         * s-vaflop-vms-alpha.adb: Valid_D, Valid_F, Valid_G: Make Val constant
27161         to avoid warnings.
27162
27163         * s-fatgen.ads, s-fatgen.adb (Machine_Rounding): New function
27164         Remove pragma Inline for [Unaligned_]Valid.
27165         Add comments that Valid routines do not work for Vax_Float
27166
27167         * exp_attr.adb: Implement Machine_Rounding attribute
27168
27169         * snames.h: Add entry for Machine_Rounding attribute
27170
27171 2005-11-14  Javier Miranda  <miranda@adacore.com>
27172             Robert Dewar  <dewar@adacore.com>
27173             Hristian Kirtchev  <kirtchev@adacore.com>
27174
27175         * exp_attr.adb (Expand_N_Attribute_Reference, cases of Attribute_Size
27176         and related): For a prefix that is an explicit dereference of an
27177         access to unconstrained packed array type, annotate the dereference
27178         with an actual subtype so GIGI can make a correct size computation.
27179         (Expand_N_Attribute_Reference): In case of 'Unchecked_Access and
27180         'Unrestricted_Access, if the designated type is an interface we
27181         add a type conversion to force the displacement of the pointer
27182         to the secondary dispatch table.
27183         Use Universal_Real instead of Long_Long_Float when we need a high
27184         precision float type for the generated code (prevents gratuitous
27185         Vax_Float stuff when pragma Float_Representation (Vax_Float) used)
27186         (Expand_N_Attribute_Reference): Add support for attribute 'Callable and
27187         'Terminated for task interface class-wide objects. Generate a call to
27188         the predefined dispatching routine used to retrieve the _task_id from
27189         a task corresponding record.
27190         (Expand_Fpt_Attribute): Major change to properly handle Vax_Float
27191
27192         * sem_disp.adb: Change name Is_Package to Is_Package_Or_Generic_Package
27193         (Check_Dispatching_Operation): Protect the frontend againts
27194         previously detected errors.
27195
27196         * Makefile.rtl: Add new instantiations of system.fat_gen
27197
27198         * s-fatflt.ads, s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads:
27199         Change name of instantiated package for better consistency
27200         with newly added system.fat_gen instantiations.
27201
27202         * s-filofl.ads, s-fishfl.ads, s-fvadfl.ads, s-fvaffl.ads,
27203         s-fvagfl.ads: New files.
27204
27205 2005-11-14  Cyrille Comar  <comar@adacore.com>
27206             Thomas Quinot  <quinot@adacore.com>
27207
27208         * exp_ch5.adb (Expand_N_Assignment_Statement, Tagged_Case): For an
27209         assignment of a value of a tagged type that has been rewritten to a
27210         block statement, it is known by construction that no checks are
27211         necessary for the statements within the block: analyze it with checks
27212         suppressed.
27213         (Expand_N_If_Statement): When killing a dead then-branch in an
27214         if-statement that has elsif_parts, recompute the Current_Value node
27215         for any entity whose value is known from the condition of the first
27216         elsif_part.
27217         (Expand_N_Return_Statement): When returning a mutable record, convert
27218         the return value into its actual subtype in order to help the backend
27219         to return the actual size instead of the maximum. This is another
27220         aftermath of not returning mutable records on the sec-stack anymore.
27221
27222         * sem_ch5.ads, sem_ch5.adb (Analyze_Iteration_Scheme): Minor change to
27223         handling of error msg for suspicious reverse range iteration.
27224         (Check_Possible_Current_Value_Condition): Move declaration from body to
27225         spec, to allow this subprogram to be called from exp_ch5.
27226
27227 2005-11-14  Thomas Quinot  <quinot@adacore.com>
27228
27229         * exp_dist.adb (Append_Array_Traversal): Modify constrained case to
27230         generate a set of nested array aggregates instead of a single flat
27231         aggregate for multi-dimensional arrays.
27232
27233 2005-11-14  Pascal Obry  <obry@adacore.com>
27234
27235         * expect.c (__gnat_kill) [Win32]: Fix implementation, the pid returned
27236         by spawnve is a process handle, no need to convert. Add a parameter
27237         close to control wether the process handle must be closed.
27238         (__gnat_waitpid): Fix implementation, the pid returned by spawnve is
27239         a process handle, not need to convert.
27240         (__gnat_kill) [*]: Add dummy parameter close to match the Win32 spec.
27241
27242         * g-expect.adb: (Kill): Document the new close parameter.
27243         (Close): Do not release the process handle in the kill there as
27244         waitpid() is using it.
27245         (Send_Signal): Release the process handle.
27246
27247 2005-11-14  Robert Dewar  <dewar@adacore.com>
27248
27249         * exp_fixd.adb: Use Universal_Real instead of Long_Long_Float when we
27250         need a high precision float type for the generated code (prevents
27251         gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float)
27252         used).
27253
27254         * exp_imgv.adb: Use Universal_Real instead of Long_Long_Float when we
27255         need a high precision float type for the generated code (prevents
27256         gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float)
27257         used).
27258         (Expand_Width_Attribute): In configurable run-time, the attribute is not
27259         allowed on non-static enumeration subtypes. Force a load error to emit
27260         the correct diagnostic.
27261
27262 2005-11-14  Thomas Quinot  <quinot@adacore.com>
27263             Robert Dewar  <dewar@adacore.com>
27264             Ed Schonberg  <schonberg@adacore.com>
27265
27266         * exp_intr.adb (Expand_Unc_Deallocation): If GIGI needs an actual
27267         subtype to compute the size of the designated object at run-time,
27268         create such a subtype and store it in the Actual_Designated_Subtype
27269         attribute of the N_Free_Statement.
27270         Generate itype for classwide designated object in both cases of
27271         user-specified storage pool: specific and class-wide, not only in the
27272         specific case.
27273         Raise CE when trying to set a not null access type object to null.
27274         (Expand_Dispatching_Constructor_Call): Retrieve subprogram actual with
27275         an explicit loop, because freeze nodes make its position variable.
27276
27277         * sem_intr.adb (Check_Intrinsic_Call): Given warning for freeing not
27278         null object.
27279
27280 2005-11-14  Javier Miranda  <miranda@adacore.com>
27281
27282         * exp_strm.adb (Build_Stream_Attr_Profile, Build_Stream_Function,
27283         Build_Stream_Procedure): Add the null-excluding attribute to the first
27284         formal.
27285         This has no semantic meaning under Ada95 mode but it is a
27286         requirement under Ada05 mode.
27287
27288         * par-ch3.adb (P_Access_Definition): Addition of warning message if
27289         the null exclusion is used under Ada95 mode
27290         (P_Null_Exclusion): The qualifier has no semantic meaning in Ada 95.
27291         (P_Access_Definition): Remove assertion that forbids the use of
27292         the null-exclusion feature in Ada95.
27293
27294 2005-11-14  Robert Dewar  <dewar@adacore.com>
27295
27296         * impunit.adb: Exclude container helper units not intended for use by
27297         users.
27298
27299 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
27300
27301         * freeze.adb (Freeze_Entity): For an access formal that is an access
27302         to subprogram, freeze the anonymous subprogram type at the same time,
27303         to prevent later freezing in the wrong scope, such as the enclosing
27304         subprogram body.
27305         (Freeze_Entity): Freeze the equivalent_type of an access_to_protected_
27306         subprogram whenever available.
27307
27308 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
27309
27310         PR ada/23732
27311         * gnatvsn.ads (Library_Version): Bump to 4.1
27312
27313 2005-11-14  Robert Dewar  <dewar@adacore.com>
27314
27315         * g-debpoo.adb (Set_Valid): Use Integer_Address instead of
27316         Storage_Offset to avoid wrap around causing invalid results.
27317
27318 2005-11-14  Pascal Obry  <obry@adacore.com>
27319
27320         * gnatbind.adb (Is_Cross_Compiler): New function returning True for
27321         cross-compiler.
27322         (Scan_Bind_Arg): Fail with an error message if -M option is used
27323         on a native compiler.
27324
27325 2005-11-14  Robert Dewar  <dewar@adacore.com>
27326             Vincent Celier  <celier@adacore.com>
27327
27328         * gprep.adb: Implement -C switch to scan comments
27329
27330         * scng.adb: Scan comment symbol separately if Replace_In_Comments set
27331
27332         * scans.ads: Comment updates (including new use of Tok_Comment in
27333         preprocessing)
27334
27335         * opt.ads: Add documentation for flags that are used by gprmake,
27336         currently and in the next version of gprmake.
27337         (Verbosity_Level): New variable
27338         Add Replace_In_Comments switch
27339
27340         * vms_data.ads: Add VMS equivalent for new gnatmake switches -vl, -vm
27341         and -vm.
27342         Add /REPLACE_IN_COMMENTS for gnatprep -C switch
27343
27344 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
27345
27346         * g-regpat.adb (Fail): raise Expression_Error including the diagnostic
27347         message, friendlier.
27348
27349 2005-11-14  Robert Dewar  <dewar@adacore.com>
27350
27351         * g-spitbo.adb: (Hash): Rotate by 3 instead of 1
27352
27353 2005-11-14  Doug Rupp  <rupp@adacore.com>
27354
27355         * init.c [VMS]: Don't install __gnat_error_handler if DBG$TDBG defined.
27356
27357 2005-11-14  Robert Dewar  <dewar@adacore.com>
27358
27359         * interfac.ads: Change declarations of IEEE float types so that we no
27360         longer need a separate version of this package for VMS.
27361
27362 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
27363
27364         * lib-xref.adb (Generate_Definition, Generate_Reference): Treat the
27365         internal entity created for the declaration of a child subprogram body
27366         with no spec as coming from source, to generate proper cross-reference
27367         information.
27368
27369 2005-11-14  Vincent Celier  <celier@adacore.com>
27370
27371         * make.adb (Compile_Sources): Change verbose message to minimum
27372         verbosity level High for "is in an Ada library", "is a read-only
27373         library" and "is an internal library",
27374         (Create_Binder_Mapping_File): Path name of ALI file for library project
27375         must include the library directory, not the object directory.
27376         (Scan_Make_Arg): Make sure that Switch.M.Scan_Make_Switches is called
27377         for new switches -vl, -vm and -vh.
27378         (Verbose_Msg): Add new defaulted parameter Minimum_Verbosity
27379         (Check): Use minimum verbosity Medium for some Verbose_Msg calls
27380         (Compile_Sources): Do not attempt to compile if an ALI file is missing
27381         in a project that is externally built.
27382         (Compute_All_Imported_Projects): New procedure
27383         (Gnatmake): Check if importing libraries should be regenerated because
27384         at least an imported library is more recent.
27385         (Initialize): For each project compute the list of the projects it
27386         imports directly or indirectly.
27387         (Add_Library_Search_Dir): New procedure, used in place of
27388         Add_Lib_Search_Dir in procedure Scan_Make_Arg so that absolute paths are
27389         put in the search paths.
27390         (Add_Source_Search_Dir): New procedure, used in place of
27391         Add_Src_Search_Dir in procedure Scan_Make_Arg so that absolute paths are
27392         put in the search paths.
27393         (Mark_Directory): Resolve the absolute path the directory before marking
27394         it.
27395
27396         * switch-m.adb (Scan_Make_Switches): Replace "raise Bad_Switch;" with
27397         call to new procedure Bad_Switch. Call Scan_Pos with new parameter
27398         Switch. Do not handle any exception.
27399         (Scan_Make_Switches): Increment Ptr for new switches -vl, -vm and -vh
27400         so that the switch is recognized as valid.
27401         (Scan_Make_Switches): Implement new switches -vl, -vm and -vh.
27402
27403 2005-11-14  GNAT Script  <nobody@adacore.com>
27404
27405         * Make-lang.in: Makefile automatically updated
27406
27407 2005-11-14  Pascal Obry  <obry@adacore.com>
27408
27409         * mdll.adb (Build_Reloc_DLL): Fix parameter handling when a map file is
27410         used.
27411         (Ada_Build_Reloc_DLL): Fix parameter handling when a map file is used.
27412         In both cases the last argument was dropped.
27413
27414 2005-11-14  Eric Botcazou  <ebotcazou@adacore.com>
27415
27416         * namet.h: (Column_Numbe): New type.
27417         (Get_Column_Number): Define to sinput__get_column_number.
27418         (Instantiation): Define to sinput__instantiation.
27419         (Get_Column_Number): Declare.
27420         (Instantiation): Likewise.
27421
27422 2005-11-14  Robert Dewar  <dewar@adacore.com>
27423
27424         * par-ch10.adb (P_Compilation_Unit): Add defenses against junk unit
27425         syntax, which could cause compiler hangs.
27426
27427 2005-11-14  Vincent Celier  <celier@adacore.com>
27428
27429         * prj-ext.adb: Take into account new environment variable
27430         GPR_PROJECT_PATH. Warn if both GPR_PROJECT_PATH and ADA_PROJECT_PATH
27431         are defined.
27432         (Prj.Ext elaboration): For each directory in the ADA_PROJECT_PATH,
27433         normalize its path name, making it absolute and resolving symbolic
27434         links, and replace the original if resolved path is different.
27435
27436 2005-11-14  Vincent Celier  <celier@adacore.com>
27437
27438         * prj-part.adb (Create_Virtual_Extending_Project): Put virtual project
27439         into Prj.Tree.Tree_Private_Part.Projects_Htable for GPS.
27440
27441 2005-11-14  Emmanuel Briot  <briot@adacore.com>
27442
27443         * prj-pp.adb (Print): Do not output the with statement if the
27444         associated name is empty, which happens for virtual extending projects.
27445         (Print): Preserve the "extends all" attribute when printing the project.
27446
27447         * prj-tree.ads (String_Value_Of): Add comment about returned value for
27448         a virtual extending project.
27449
27450 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
27451
27452         * sem_aggr.adb (Resolve_Aggregate): An others choice is legal on the
27453         rhs of an assignment even if the type is unconstrained, when the
27454         context is non-expanding.
27455         In an inlined body, if the context type is private,
27456         resolve with its full view, which must be a composite type.
27457
27458 2005-11-14  Robert Dewar  <dewar@adacore.com>
27459             Ed Schonberg  <schonberg@adacore.com>
27460
27461         * sem_ch10.adb: Change name Is_Package to Is_Package_Or_Generic_Package
27462         Do not give obsolescent warning on with of subprogram (since we
27463         diagnose calls)
27464         (Analyze_With_Clause): Add test for obsolescent package
27465         (Install_Context_Clauses): If the unit is the body of a child unit, do
27466         not install twice the private declarations of the parents, to prevent
27467         circular lists of Use_Clauses in a parent.
27468         (Implicit_With_On_Parent): Do add duplicate with_clause on parent when
27469         compiling body of child unit.
27470         Use new class N_Subprogram_Instantiation
27471         (Expand_With_Clause): If this is a private with_clause for a child unit,
27472         appearing in the context of a package declaration, then the implicit
27473         with_clauses generated for parent units are private as well.
27474         (License_Check): Do not generate message if with'ed unit is internal
27475
27476 2005-11-14  Gary Dismukes  <dismukes@adacore.com>
27477             Ed Schonberg  <schonberg@adacore.com>
27478             Thomas Quinot  <quinot@adacore.com>
27479
27480         * sem_ch12.ads, sem_ch12.adb (Map_Entities): Exclude entities whose
27481         names are internal, because they will not have a corresponding partner
27482         in the actual package.
27483         (Analyze_Formal_Package): Move the setting of the formal package spec's
27484         Generic_Parent field so that it occurs prior to analyzing the package,
27485         to allow proper operation of Install_Parent_Private_Declarations.
27486         (Analyze_Package_Instantiation): Set the instantiated package entity's
27487         Package_Instantiation field.
27488         (Get_Package_Instantiation_Node): Move declaration to package spec.
27489         Retrieve the N_Package_Instantiation node when the Package_Instantiation
27490         field is present.
27491         (Check_Generic_Child_Unit): Within an inlined call, the only possible
27492         instantiation is Unchecked_Conversion, for which no parents are needed.
27493         (Inline_Instance_Body): Deinstall and record the use_clauses for all
27494         parent scopes of a scope being removed prior to inlining an instance
27495         body.
27496         (Analyze_Package_Instantiation): Do not perform front-end inlining when
27497         the current context is itself an instance within a non-instance child
27498         unit, to prevent scope stack errors.
27499         (Save_References): If the node is an aggregate that is an actual in a
27500         call, rewrite as a qualified expression to preserve some type
27501         information, to resolve possible ambiguities in the instance.
27502         (Instance_Parent_Unit): New global variable to record the ultimate
27503         parent unit associated with a generic child unit instance (associated
27504         with the existing Parent_Unit_Visible flag).
27505         (type Instance_Env): New component Instance_Parent_Unit for stacking
27506         parents recorded in the global Instance_Parent_Unit.
27507         (Init_Env): Save value of Instance_Parent_Unit in the Instance_Env
27508         stack.
27509         (Install_Spec): Save the parent unit entity in Instance_Parent_Unit when
27510         it's not a top-level unit, and only do this if Instance_Parent_Unit is
27511         not already set. Replace test of Is_Child_Unit with test of parent's
27512         scope against package Standard. Add comments and a ??? comment.
27513         (Remove_Parent): Revise condition for resetting Is_Immediately_Visible
27514         on a child instance parent to test that the parent equals
27515         Instance_Parent rather than simply checking that the unit is not a
27516         child unit.
27517         (Restore_Env): Restore value of Instance_Parent_Unit from Instance_Env.
27518         (Validate_Derived_Interface_Type_Instance): Verify that all ancestors of
27519         a formal interface are ancestors of the corresponding actual.
27520         (Validate_Formal_Interface_Type): Additional legality checks.
27521         (Analyze_Formal_Derived_Interface_Type): New procedure to handle formal
27522         interface types with ancestors.
27523         (Analyze_Formal_Package): If formal is a renaming, use renamed entity
27524         to diagnose attempts to use generic within its own declaration.
27525
27526 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
27527             Javier Miranda  <miranda@adacore.com>
27528
27529         * sem_ch3.ads, sem_ch3.adb (Build_Discriminal): Add link to original
27530         discriminant.
27531         (Build_Private_Derived_Type): The entity of the created full view of the
27532         derived type does not come from source. If after installing the private
27533         declarations of the parent scope the parent is still private, use its
27534         full view to construct the full declaration of the derived type.
27535         (Build_Derived_Record_Type): Relax the condition that controls the
27536         execution of the check that verifies that the partial view and
27537         the full view agree in the set of implemented interfaces. In
27538         addition, this test now only takes into account the progenitors.
27539         (Derive_Interface_Subprograms): No need to derive subprograms
27540         of ancestors that are interfaces.
27541         (Derive_Subprograms): Remove formal No_Predefined_Prims and the
27542         associated code.
27543         Change name Is_Package to Is_Package_Or_Generic_Package
27544         (Complete_Subprograms_Derivation): Handle the case in which the full
27545         view is a transitive derivation of the ancestor of the partial view.
27546         (Process_Full_View): Rename local subprogram Find_Interface_In_
27547         Descendant to Find_Ancestor_Interface to leave the code more clear.
27548         Remove wrong code that avoids the generation of an error message
27549         when the immediate ancestor of the partial view is an interface.
27550         In addition some minor reorganization of the code has been done to
27551         leave it more clear.
27552         (Analyze_Type_Declaration): If type has previous incomplete tagged
27553         partial view, inherit properly its primitive operations.
27554         (Collect_Interfaces): Make public, for analysis of formal
27555         interfaces.
27556         (Analyze_Interface_Declaration): New procedure for use for regular and
27557         formal interface declarations.
27558         (Build_Derived_Record_Type): Add support for private types to the code
27559         that checks if a tagged type implements abstract interfaces.
27560         (Check_Aliased_Component_Type): The test applies in the spec of an
27561         instance as well.
27562         (Access_Type_Declaration): Clean up declaration of malformed type
27563         declared as an access to its own classwide type, to prevent cascaded
27564         crash.
27565         (Collect_Interfaces): For private extensions and for derived task types
27566         and derived protected types, the parent may be an interface that must
27567         be included in the interface list.
27568         (Access_Definition): If the designated type is an interface that may
27569         contain tasks, create Master_Id for it before analyzing the expression
27570         of the declaration, which may be an allocator.
27571         (Record_Type_Declaration): Set properly the interface kind, for use
27572         in allocators, the creation of master id's for task interfaces, etc.
27573
27574 2005-11-14  Javier Miranda  <miranda@adacore.com>
27575             Ed Schonberg  <schonberg@adacore.com>
27576
27577         * sem_ch6.adb (Check_Conformance): The null-exclusion feature can be
27578         omitted in case of stream attribute subprograms.
27579         (Check_Inline_Pragma): Handle Inline and Inline_Always pragmas that
27580         appear immediately after a subprogram body, when there is no previous
27581         subprogram declaration.
27582         Change name Is_Package to Is_Package_Or_Generic_Package
27583         (Process_Formals): A non null qualifier on a non null named access
27584         type is not an error, and is a warning only if Redundant_Constructs
27585         are flagged.
27586
27587 2005-11-14  Gary Dismukes  <dismukes@adacore.com>
27588             Ed Schonberg  <schonberg@adacore.com>
27589
27590         * sem_ch7.adb (Install_Parent_Private_Declarations): New procedure
27591         nested within Analyze_Package_Specification to install the private
27592         declarations and use clauses within each of the parent units of a
27593         package instance of a generic child package.
27594         (Analyze_Package_Specification): When entering a private part of a
27595         package associated with a generic instance or formal package, the
27596         private declarations of the parent must be installed (by calling new
27597         procedure Install_Parent_Private_Declarations).
27598         Change name Is_Package to Is_Package_Or_Generic_Package
27599         (Preserve_Full_Attributes): For a synchronized type, the corresponding
27600         record is absent in a generic context, which does not indicate a
27601         compiler error.
27602
27603 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
27604
27605         * sem_ch8.adb (Analyze_Subprogram_Renaming): In a generic context, do
27606         not try to rewrite a renamed stream attribute, because the operations
27607         on the type may not have been generated.
27608         Handle properly a renaming_as_body generated for a stream operation
27609         whose default is abstract because the object type itself is abstract.
27610         (Find_Type): If the type is incomplete and appears as the prefix of a
27611         'Class reference, it is tagged, and its list of primitive operations
27612         must be initialized properly.
27613         (Chain_Use_Clauses): When chaining the use clauses that appear in the
27614         private declaration of a parent unit, prior to compiling the private
27615         part of a child unit, find on the scope stack the proper parent entity
27616         on which to link the use clause.
27617         (Note_Redundant_Use): Emit a warning when a redundant use clause is
27618         detected.
27619         (Analyze_Object_Renaming): An attribute reference is not a legal object
27620         if it is not a function call.
27621
27622 2005-11-14  Robert Dewar  <dewar@adacore.com>
27623             Ed Schonberg  <schonberg@adacore.com>
27624
27625         * sem_eval.adb: Implement d.f flag
27626         (Subtype_Statically_Match): A generic actual type has unknown
27627         discriminants when the corresponding actual has a similar partial view.
27628         If the routine is called to validate the signature of an inherited
27629         operation in a child instance, the generic actual matches the full view,
27630
27631 2005-11-14  Hristian Kirtchev  <kirtchev@adacore.com>
27632             Ed Schonberg  <schonberg@adacore.com>
27633             Robert Dewar  <dewar@adacore.com>
27634             Thomas Quinot  <quinot@adacore.com>
27635
27636         * sem_res.adb (Resolve_Call): Provide a better error message whenever
27637         a procedure call is used as a select statement trigger and is not an
27638         entry renaming or a primitive of a limited interface.
27639         (Valid_Conversion): If the operand has a single interpretation do not
27640         remove address operations.
27641         (Check_Infinite_Recursion): Skip freeze nodes when looking for a raise
27642         statement to inhibit warning.
27643         (Resolve_Unary_Op): Do not produce a warning when
27644         processing an expression of the form -(A mod B)
27645         Use Universal_Real instead of Long_Long_Float when we need a high
27646         precision float type for the generated code (prevents gratuitous
27647         Vax_Float stuff when pragma Float_Representation (Vax_Float) used)
27648         (Resolve_Concatenation_Arg): Improve error message when argument is an
27649         ambiguous call to a function that returns an array.
27650         (Make_Call_Into_Operator, Operand_Type_In_Scope): Do not check that
27651         there is an implicit operator in the given scope if we are within an
27652         instance: legality check has been performed on the generic.
27653         (Resolve_Unary_Op): Apply warnings checks on argument of Abs operator
27654         after resolving operand, to avoid false warnings on overloaded calls.
27655
27656 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
27657             Javier Miranda  <miranda@adacore.com>
27658
27659         PR ada/15604
27660         * sem_type.adb (Covers): In an inlined body, a composite type matches
27661         a private type whose full view is a composite type.
27662         (Interface_Present_In_Ancestor): Protect the frontend against
27663         previously detected errors to ensure that its compilation
27664         with assertions enabled gives the same output that its
27665         compilation without assertions.
27666         (Interface_Present_In_Ancestor): Add support for private types.
27667         Change name In_Actual to In_Generic_Actual (clean up)
27668         (Disambiguate): New predicate In_Actual, to recognize expressions that
27669         appear in the renaming declaration generated for generic actuals, and
27670         which must be resolved in the outer context.
27671
27672 2005-11-14  Robert Dewar  <dewar@adacore.com>
27673             Thomas Quinot  <quinot@adacore.com>
27674             Hristian Kirtchev  <kirtchev@adacore.com>
27675             Ed Schonberg  <schonberg@adacore.com>
27676
27677         * sem_util.ads, sem_util.adb: Change name Is_Package to
27678         Is_Package_Or_Generic_Package.
27679         (Check_Obsolescent): New procedure.
27680         (Set_Is_Public): Remove obsolete junk test.
27681         (Set_Public_Status): Do not set Is_Public on an object whose declaration
27682         occurs within a handled_sequence_of_statemets.
27683         (Is_Controlling_Limited_Procedure): Factor some of the logic, account
27684         for a parameterless procedure.
27685         (Enter_Name): Recognize renaming declarations created for private
27686         component of a protected type within protected operations, so that
27687         the source name of the component can be used in the debugger.
27688
27689 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
27690             Robert Dewar  <dewar@adacore.com>
27691
27692         * sem_warn.ads, sem_warn.adb (Publicly_Referenceable): Generic formals
27693         of a generic subprogram are not visible outside the body.
27694         (Set_Warning_Switch): New procedure (code to set warning mode moved
27695         here from Switch.C so that it can be shared by pragma processing.
27696         (Check_References): Special case warning for non-modified non-imported
27697         volatile objects.
27698         * par-prag.adb: Modify processing of pragma Warnings to accomodate new
27699         form with a string literal argument
27700
27701 2005-11-14  Javier Miranda  <miranda@adacore.com>
27702
27703         * s-finroo.ads, s-finroo.adb (Read): Addition of "not null" to the
27704         anonymous access.
27705         (Write): Addition of "not null" to the anonymous access.
27706         (Read): Addition of "not null" to the anonymous access.
27707         (Write): Addition of "not null" to the anonymous access.
27708
27709         * s-strxdr.adb, s-stratt.ads, s-stratt.adb (I_AD, I_AS, I_B, I_C, I_F,
27710         I_I, I_LF, I_LI, I_LLF, I_LLI, I_LLU, I_LU, I_SF, I_SI, I_SSI, I_SSU,
27711         I_SU, I_U, I_WC): Addition of "not null" to the anonymous access.
27712         (W_AD, W_AS, W_B, W_C, W_F, W_I, W_LF, W_LI, W_LLF, W_LLI, W_LLU,
27713         W_LU, W_SF, W_SI, W_SSI, W_SSU, W_SU, W_U, W_WC): Addition of
27714         "not null" to the anonymous access.
27715
27716 2005-11-14  Robert Dewar  <dewar@adacore.com>
27717
27718         * s-stoele.adb: Fix code for Address mod Storage_Offset for negative
27719         offset values
27720
27721 2005-11-14  Vincent Celier  <celier@adacore.com>
27722
27723         * switch.adb (Bad_Switch): New procedure
27724         (Scan_Nat, Scan_Pos): Directly call Osint.Fail with the appropriate
27725         message when in error.
27726
27727         * switch.ads (Bad_Switch, Bad_Switch_Value, Missing_Switch_Value,
27728         Too_Many_Output_Files): Remove declarations, no longer used.
27729         (Scan_Nat): New parameter Switch
27730         (Scan_Pos): Ditto
27731         (Bad_Switch): New procedure
27732
27733         * switch-b.adb (Scan_Binder_Switches): Replace "raise Bad_Switch;"
27734         with call to new procedure Bad_Switch. Call Scan_Pos and Scan_Natwith
27735         new parameter Switch. Replace "raise Too_Many_Output_Files;" with call
27736         to Osint.Fail. Do not handle any exception.
27737
27738 2005-11-14  Vincent Celier  <celier@adacore.com>
27739
27740         * tempdir.adb (Tempdir): Do not use environment variable TMPDIR if it
27741         designates a non existent directory.
27742
27743 2005-11-14  Robert Dewar  <dewar@adacore.com>
27744
27745         * xgnatugn.adb: Replace invalid membership test by 'Valid
27746
27747 2005-11-14  Vincent Celier  <celier@adacore.com>
27748
27749         * makegpr.adb (Gprmake): Do not attempt to build the global archive if
27750         there is no object directory.
27751
27752 2005-11-14  Robert Dewar  <dewar@adacore.com>
27753
27754         * usage.adb: Minor adjustment to output format, use nn instead of nnn
27755         (so that -gnateInnn does not run into next column)
27756
27757 2005-11-14  Ed Falis  <falis@adacore.com>
27758
27759         * s-bitops.adb (Bits_Array): corrected comment: "unconstrained" =>
27760         "constrained"
27761
27762 2005-11-14  Cyrille Comar  <comar@adacore.com>
27763
27764         * s-chepoo.ads: Add comments on Dereference.
27765         Remove unnecessary inherited abstract primitives.
27766         Cosmetic cleanup.
27767
27768 2005-11-14  Robert Dewar  <dewar@adacore.com>
27769
27770         * sem_cat.ads (Validate_Access_Type_Declaration): Remove declaration
27771         node parameter, not needed, since it is available as Declaration_Node.
27772
27773 2005-11-14  Geert Bosch  <bosch@adacore.com>
27774
27775         * s-exnllf.adb (Exn_LLF): Fix comment to be more precise and
27776         grammatically correct.
27777
27778 2005-11-14  Vincent Celier  <celier@adacore.com>
27779
27780         * s-fileio.ads: Correct spelling error in comment
27781
27782 2005-11-14  Cyrille Comar  <comar@adacore.com>
27783             Robert Dewar  <dewar@adacore.com>
27784             Vincent Celier  <celier@adacore.com>
27785             Ben Brosgol  <brosgol@adacore.com>
27786             Jose Ruiz  <ruiz@adacore.com>
27787             Pascal Obry  <obry@adacore.com>
27788
27789         * gnat_ugn.texi:
27790         Document that -fstack-check is needed for strict compliance with the
27791         Ada 95 Reference Manual.
27792         Correct reference to VAX systems to meet HP guidelines
27793         Add documentation for new gnatmake switches -vl, -vm and -vh
27794         Replace DEC Ada by HP Ada
27795         Replace DIGITAL by HP
27796         Remove empty section on tools in compatibility section
27797         Clarify the Windows convention semantics.
27798         Document the Win32 calling convention.
27799         The Stdcall, Win32 and DLL convention are synonyms.
27800         Add a note in -gnatR description about zero size record components
27801         Note on new >= and <= warnings for -gnatwc
27802         Document that equal sign after -gnatm is optional.
27803         Note that strip is working fine on DLL built with a Library
27804         Project. The restriction apply only to DLL built with gnatdll.
27805         Update section about the way to debug a DLL.
27806         Update information about the DLL convention.
27807         Document -C switch for gnatprep
27808         Document new attribute Library_ALI_Dir
27809         Update elaboration doc to include implicit Elaborate pragmas now
27810         generated for subprogram instantiations.
27811         Document limitation on executable names that include spaces for --GCC,
27812         --GNATBIND, and --GNATLINK switches.
27813         Document that -w causes -gnatws to be added at start of gcc switches
27814
27815         * gnat_rm.texi: Document that -mieee is needed for generating infinite
27816         and NaN values in case of overflow on machines that are not fully
27817         compliant with the IEEE floating-point standard.
27818         Create a section describing the set of compiler options needed for
27819         strict compliance with the Ada 95 Reference Manual.
27820         Add documentation for pragma Obsolescent applied to a package
27821         Clarify potential issues of mixed language programs related to the
27822         I/O buffering enabling in the elaboration of the GNAT runtime.
27823         Add extra documentation for pragma Restrictions (No_Elaboration_Code)
27824         This documentation only patch adds extra documentsion for pragma
27825         Restrictions (No_Elaboration_Code), explaining why it is not possible
27826         to document this restriction in terms of allowed source constructs.
27827         Document string literal form of pragma Warnings
27828         Document new attribute Library_ALI_Dir
27829         Add documentation on stable attributes in project files that was missing
27830
27831         * gnat-style.texi: Indicate that paragraphs within a single comment
27832         should be separated by empty comment lines
27833
27834         * ug_words: Added replacements for -gnat95 and -gnat05 (/95 and
27835         /05 respectively)
27836
27837         * bindusg.adb: Minor cleanup, put -m before -M for consistency
27838
27839 2005-11-14  Robert Dewar  <dewar@adacore.com>
27840
27841         * a-secain.adb, a-slcain.adb, a-shcain.adb, a-chtgke.ads, a-chtgke.adb,
27842         a-stwiha.adb, a-strhas.adb, a-chzla1.ads, a-chzla9.ads, a-stzbou.adb,
27843         a-stzbou.ads, a-stzfix.adb, a-stzhas.adb, a-stzmap.adb, a-stzmap.ads,
27844         a-stzsea.adb, a-stzsea.ads, a-stzsup.adb, a-stzsup.ads, a-stzunb.adb,
27845         a-stzunb.ads, a-szuzha.adb, a-szuzha.ads, a-szuzti.adb, a-szuzti.ads,
27846         a-ztcoau.adb, a-ztcoau.ads, a-ztcoio.adb, a-ztcstr.adb, a-ztcstr.ads,
27847         a-ztdeau.adb, a-ztdeau.ads, a-ztdeio.adb, a-ztdeio.ads, a-ztedit.adb,
27848         a-ztedit.ads, a-ztenau.ads, a-ztenio.adb, a-ztenio.ads, a-ztexio.adb,
27849         a-ztexio.ads, a-ztfiio.adb, a-ztfiio.ads, a-ztflau.adb, a-ztflau.ads,
27850         a-ztflio.adb, a-ztflio.ads, a-ztgeau.adb, a-ztgeau.ads, a-ztinau.adb,
27851         a-ztinau.ads, a-ztinio.adb, a-ztmoau.ads, a-ztmoio.adb, a-ztmoio.ads,
27852         a-zttest.adb, g-enblsp-vms-alpha.adb, g-enblsp-vms-alpha.adb,
27853         g-enblsp-vms-ia64.adb, g-enblsp-vms-ia64.adb, system-linux-hppa.ads,
27854         a-chacon.adb, a-chacon.ads, a-wichun.adb, a-wichun.ads, a-zchuni.adb,
27855         a-zchuni.ads, g-trasym-vms-alpha.adb, g-trasym-vms-ia64.adb,
27856         system-hpux-ia64.ads, g-soccon-unixware.ads, g-soliop-unixware.ads,
27857         g-soccon-interix.ads, g-soliop-solaris.ads, g-eacodu-vms.adb,
27858         g-expect-vms.adb, g-socthi-vms.adb, g-soliop-mingw.ads,
27859         a-intnam-unixware.ads, a-intnam-lynxos.ads, a-intnam-tru64.ads,
27860         a-intnam-aix.ads, a-intnam-linux.ads, a-intnam-linux.ads,
27861         a-intnam-dummy.ads, a-numaux-libc-x86.ads, a-intnam-interix.ads,
27862         a-intnam-solaris.ads, a-calend-vms.adb, a-calend-vms.ads,
27863         a-intnam-vms.ads, a-calend-mingw.adb, a-intnam-mingw.ads,
27864         a-intnam-vxworks.ads, a-numaux-vxworks.ads, system-unixware.ads,
27865         system-linux-ia64.ads, a-intnam-freebsd.ads, system-freebsd-x86.ads,
27866         system-lynxos-ppc.ads, system-linux-x86_64.ads, a-stunha.adb,
27867         a-cgaaso.ads, a-cgaaso.adb, a-chtgop.adb, a-cgcaso.adb, a-cgarso.adb,
27868         a-cohata.ads, a-crbtgk.adb, a-crbltr.ads, a-coprnu.adb, a-rbtgso.adb,
27869         a-intnam-darwin.ads, system-darwin-ppc.ads, gprmake.adb, makegpr.ads,
27870         system-tru64.ads, system-aix.ads, system-solaris-x86.ads,
27871         system-irix-o32.ads, s-interr-sigaction.adb, system-irix-n32.ads,
27872         s-parame-mingw.adb, system-hpux.ads, s-traceb-hpux.adb,
27873         system-linux-x86.ads, s-inmaop-dummy.adb, system-os2.ads,
27874         system-interix.ads, system-solaris-sparc.ads,
27875         system-solaris-sparcv9.ads, s-inmaop-vms.adb,
27876         s-mastop-vms.adb, expander.adb, expander.ads, s-gloloc-mingw.adb,
27877         system-mingw.ads, system-vms-zcx.ads, s-osinte-fsu.adb,
27878         s-traceb-mastop.adb, a-exextr.adb, a-exstat.adb, a-filico.ads,
27879         a-finali.ads, a-interr.ads, a-intsig.adb, a-intsig.ads,
27880         a-except.ads, a-numaux-x86.ads, a-astaco.adb, a-calend.adb,
27881         a-calend.ads, a-chahan.adb, a-chahan.ads, a-chlat9.ads,
27882         a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
27883         a-comlin.adb, a-comlin.ads, a-cwila1.ads, a-cwila9.ads,
27884         a-elchha.adb, a-decima.adb, a-decima.ads, a-diocst.ads,
27885         a-direio.adb, a-direio.ads, a-excach.adb, a-excach.adb,
27886         a-exctra.ads, ali-util.adb, a-ngcefu.adb, a-ngcoty.adb,
27887         a-ngcoty.ads, a-nudira.adb, a-nudira.ads, a-nuflra.adb,
27888         a-numaux.ads, a-reatim.ads, a-sequio.adb, a-sequio.ads,
27889         a-siocst.ads, a-ssicst.ads, a-stmaco.ads, a-storio.adb,
27890         a-strbou.adb, a-strbou.ads, a-stream.ads, a-strfix.adb,
27891         a-strmap.adb, a-strmap.ads, a-strsea.adb, a-strsea.ads,
27892         a-strsup.adb, a-strsup.ads, a-strunb.adb, a-strunb.ads,
27893         a-stwibo.adb, a-stwibo.ads, a-stwifi.adb, a-stwima.adb,
27894         a-stwima.ads, a-stwise.adb, a-stwise.ads, a-stwisu.adb,
27895         a-stwisu.ads, a-stwiun.adb, a-stwiun.ads, a-suteio.adb,
27896         a-suteio.ads, a-swmwco.ads, a-swuwti.adb, a-swuwti.ads,
27897         a-sytaco.adb, a-sytaco.ads, a-tasatt.adb, a-taside.adb,
27898         a-taside.ads, a-teioed.adb, a-textio.adb, a-textio.ads,
27899         a-ticoau.adb, a-ticoau.ads, a-ticoio.adb, a-tideau.adb,
27900         a-tideio.adb, a-tienau.adb, a-tienio.adb, a-tifiio.adb,
27901         a-tiflio.adb, a-tigeau.adb, a-tigeau.ads, a-tiinau.adb,
27902         a-tiinio.adb, a-timoau.adb, a-timoio.adb, a-timoio.ads,
27903         a-tiocst.ads, a-titest.adb, atree.adb, a-witeio.adb,
27904         a-witeio.ads, a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb,
27905         a-wtcstr.ads, a-wtdeau.adb, a-wtdeio.adb, a-wtedit.adb,
27906         a-wtedit.ads, a-wtenau.adb, a-wtenio.adb, a-wtfiio.adb,
27907         a-wtflio.adb, a-wtgeau.adb, a-wtinau.adb, a-wtinio.adb,
27908         a-wtmoau.adb, a-wtmoio.adb, a-wttest.adb, back_end.adb,
27909         bindgen.adb, butil.adb, butil.ads, checks.ads, cio.c, comperr.adb,
27910         csets.ads, cstand.adb, debug.ads, elists.ads, errno.c, errout.adb,
27911         errout.ads, erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
27912         errutil.ads, err_vars.ads, eval_fat.adb, exp_ch11.adb, exp_ch11.ads,
27913         exp_ch2.adb, exp_ch7.ads, exp_imgv.ads, exp_pakd.adb, exp_prag.adb,
27914         exp_prag.ads, exp_tss.adb, exp_tss.ads, exp_vfpt.ads, fe.h, fmap.adb,
27915         freeze.ads, frontend.adb, frontend.ads, g-arrspl.adb, g-arrspl.ads,
27916         g-awk.adb, g-awk.ads, g-boumai.ads, g-calend.adb, g-calend.ads,
27917         g-catiio.adb, g-comlin.adb, g-comlin.ads, g-comlin.ads, g-comlin.ads,
27918         g-comver.adb, g-crc32.adb, g-crc32.ads, g-ctrl_c.ads, g-curexc.ads,
27919         g-debpoo.ads, g-debuti.adb, g-diopit.adb, g-diopit.ads, g-dirope.adb,
27920         g-dirope.ads, g-dyntab.adb, g-dyntab.ads, g-excact.adb, g-excact.ads,
27921         g-except.ads, g-exctra.adb, g-exctra.ads, g-expect.ads, g-flocon.ads,
27922         g-hesorg.ads, g-io.adb, g-locfil.ads, g-md5.adb, g-md5.ads, g-md5.ads,
27923         g-moreex.adb, g-signal.ads, g-signal.adb, gnatbind.ads, gnatchop.adb,
27924         gnatcmd.adb, gnatfind.adb, gnatlbr.adb, gnatmake.ads, gnatmem.adb,
27925         gnatprep.adb, gnatprep.ads, gnatsym.adb, gnatxref.adb, g-os_lib.adb,
27926         g-os_lib.ads, g-pehage.adb, g-pehage.ads, gprep.ads, g-regexp.adb,
27927         g-regexp.ads, g-regist.adb, g-regist.ads, g-regpat.ads, g-semaph.adb,
27928         g-socthi.adb, g-soliop.ads, g-spipat.adb, g-spipat.ads, g-sptabo.ads,
27929         g-sptain.ads, g-sptavs.ads, g-string.ads, g-tasloc.adb, g-tasloc.ads,
27930         g-trasym.adb, g-trasym.ads, i-fortra.adb, i-fortra.ads, inline.adb,
27931         layout.adb, live.adb, make.ads, makeutl.ads, makeutl.adb, mdll-fil.adb,
27932         mdll-fil.ads, mdll-utl.ads, memroot.ads, memtrack.adb, mlib.ads,
27933         mlib-fil.adb, mlib-fil.ads, mlib-prj.ads, mlib-utl.adb, mlib-utl.ads,
27934         nlists.adb, nlists.ads, osint.adb, osint.ads, osint-c.adb, osint-l.adb,
27935         osint-l.ads, osint-m.ads, output.adb, par.adb, par.adb, par.ads,
27936         par-ch11.adb, par-ch12.adb, par-ch2.adb, par-ch4.adb, par-ch5.adb,
27937         par-ch6.adb, par-ch9.adb, par-endh.adb, par-labl.adb, par-load.adb,
27938         par-tchk.adb, prep.adb, prepcomp.adb, prepcomp.ads, prj-attr.ads,
27939         prj-com.ads, prj-dect.adb, prj-dect.ads, prj-env.ads, prj-err.ads,
27940         prj-ext.ads, prj-makr.adb, prj-makr.ads, prj-nmsc.ads, prj-pars.adb,
27941         prj-pars.ads, prj-part.ads, prj-pp.ads, prj-proc.ads, prj-strt.adb,
27942         prj-strt.ads, prj-tree.adb, prj-util.adb, prj-util.ads, rtsfind.adb,
27943         sem.adb, sem.ads, sem_case.adb, sem_case.ads, sem_ch11.adb,
27944         sem_ch4.adb, sem_ch6.ads, sem_ch7.ads, sem_dist.ads, sem_elab.ads,
27945         sem_elim.ads, sem_eval.ads, sem_intr.ads, sem_maps.adb, sem_maps.ads,
27946         sem_maps.ads, sem_res.ads, sem_type.ads, sfn_scan.adb, sfn_scan.ads,
27947         s-imgwch.ads, s-imgwiu.adb, s-imgwiu.ads, s-inmaop.ads, sinput.adb,
27948         sinput.ads, s-pack03.adb, s-pack03.ads, s-pack05.adb, s-pack05.ads,
27949         s-pack06.adb, s-pack06.ads, s-pack07.adb, s-pack07.ads, s-pack09.adb,
27950         s-pack09.ads, s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads,
27951         s-pack12.adb, s-pack12.ads, s-pack13.adb, s-pack13.ads, s-pack14.adb,
27952         s-pack14.ads, s-pack15.adb, s-pack15.ads, s-pack17.adb, s-pack17.ads,
27953         s-pack18.adb, s-pack18.ads, s-pack19.adb, s-pack19.ads, s-pack20.adb,
27954         s-pack20.ads, s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads,
27955         s-pack23.adb, s-pack23.ads, s-pack24.adb, s-pack24.ads, s-pack25.adb,
27956         s-pack25.ads, s-pack26.adb, s-pack26.ads, s-pack27.adb, s-pack27.ads,
27957         s-pack28.adb, s-pack28.ads, s-pack29.adb, s-pack29.ads, s-pack30.adb,
27958         s-pack30.ads, s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads,
27959         s-pack34.adb, s-pack34.ads, s-pack35.adb, s-pack35.ads, s-pack36.adb,
27960         s-pack36.ads, s-pack37.adb, s-pack37.ads, s-pack38.adb, s-pack38.ads,
27961         s-pack39.adb, s-pack39.ads, s-pack40.adb, s-pack40.ads, s-pack41.adb,
27962         s-pack41.ads, s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads,
27963         s-pack44.adb, s-pack44.ads, s-pack45.adb, s-pack45.ads, s-pack46.adb,
27964         s-pack46.ads, s-pack47.adb, s-pack47.ads, s-pack48.adb, s-pack48.ads,
27965         s-pack49.adb, s-pack49.ads, s-pack50.adb, s-pack50.ads, s-pack51.adb,
27966         s-pack51.ads, s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads,
27967         s-pack54.adb, s-pack54.ads, s-pack55.adb, s-pack55.ads, s-pack56.adb,
27968         s-pack56.ads, s-pack57.adb, s-pack57.ads, s-pack58.adb, s-pack58.ads,
27969         s-pack59.adb, s-pack59.ads, s-pack60.adb, s-pack60.adb, s-pack60.ads,
27970         s-pack61.adb, s-pack61.ads, s-pack62.adb, s-pack62.ads, s-pack63.adb,
27971         s-pack63.ads, s-parint.adb, s-parint.adb, s-parint.ads, sprint.ads,
27972         s-purexc.ads, s-restri.ads, s-restri.adb, s-scaval.adb, s-scaval.ads,
27973         s-secsta.adb, s-secsta.ads, s-sequio.adb, s-sequio.ads, stand.ads,
27974         s-tasuti.adb, s-traceb.adb, s-traceb.ads, stringt.adb, stringt.ads,
27975         styleg.ads, s-valboo.adb, s-valboo.ads, s-valcha.adb, s-valcha.ads,
27976         s-valdec.adb, s-valdec.ads, s-valint.adb, s-valint.ads, s-valint.ads,
27977         s-vallld.adb, s-vallld.ads, s-vallli.adb, s-vallli.ads, s-valllu.adb,
27978         s-valllu.ads, s-valrea.adb, s-valrea.ads, s-valuns.adb, s-valuns.ads,
27979         s-valuti.adb, s-valuti.ads, s-valwch.ads, s-veboop.adb, s-veboop.ads,
27980         s-vercon.adb, s-vercon.ads, s-wchcnv.adb, s-wchcnv.ads, s-wchcon.ads,
27981         s-wchjis.adb, s-wchjis.ads, s-wchstw.adb, s-wchstw.adb, s-wchstw.ads,
27982         s-wchwts.adb, s-wchwts.ads, s-widboo.adb, s-widboo.ads, s-widcha.adb,
27983         s-widcha.ads, s-widenu.adb, s-widenu.ads, s-widlli.adb, s-widlli.ads,
27984         s-widllu.adb, s-widllu.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb,
27985         s-wwdcha.ads, s-wwdenu.adb, s-wwdenu.ads, symbols.adb, symbols.ads,
27986         table.ads, targparm.adb, targparm.ads, tb-alvms.c, tb-alvxw.c,
27987         tbuild.adb, tree_io.ads, treepr.adb, treeprs.adt, ttypef.ads,
27988         ttypes.ads, types.adb, uintp.adb, uintp.ads, uname.ads, urealp.ads,
27989         usage.ads, validsw.ads, vxaddr2line.adb, widechar.adb, widechar.ads,
27990         xeinfo.adb, xnmake.adb, xref_lib.ads, xr_tabls.adb, xr_tabls.ads,
27991         xsinfo.adb, xtreeprs.adb, xsnames.adb, vms_conv.ads, vms_conv.adb,
27992         a-dirval.ads, a-dirval.adb, a-dirval-mingw.adb, a-direct.ads,
27993         a-direct.adb, indepsw.ads, prj-attr-pm.ads, system-linux-ppc.ads,
27994         a-numaux-darwin.ads, a-numaux-darwin.adb,
27995         a-swuwha.ads, a-stunha.ads: Minor reformatting
27996
27997 2005-11-14  Robert Dewar  <dewar@adacore.com>
27998
27999         PR ada/18434
28000         * osint-m.adb: Add pragma Elaborate_All for Osint
28001
28002 2005-11-10  Eric Botcazou  <ebotcazou@adacore.com>
28003
28004         PR ada/23995
28005         * trans.c (call_to_gnu): Restore statement lost in translation.
28006
28007 2005-11-08  Eric Botcazou  <ebotcazou@adacore.com>
28008
28009         * init.c: Use the Linux-specific section for the IA-64/Linux target.
28010         (__gnat_adjust_context_for_raise): Add conditional code so that the
28011         IA-64 is also supported.
28012
28013 2005-11-03  James E Wilson  <wilson@specifix.com>
28014
28015         PR ada/23427
28016         * trans.c (gnat_to_gnu): Use TYPE_SIZE_UNIT not TYPE_SIZE in
28017         TREE_OVERFLOW check.
28018
28019 2005-09-21  Olivier Hainque  <hainque@adacore.com>
28020
28021         PR ada/22418
28022         * decl.c (maybe_pad_type): Use proper bitsizetype for XVZ objects,
28023         as we create them to store a size in bits.
28024
28025 2005-10-21  Eric Botcazou  <ebotcazou@adacore.com>
28026
28027         PR ada/21937
28028         PR ada/22328
28029         PR ada/22381
28030         PR ada/22383
28031         PR ada/22419
28032         PR ada/22420
28033         * utils2.c (build_return_expr): New helper function.
28034         * gigi.h (build_return_expr): Declare it.
28035         * trans.c (Subprogram_Body_to_gnu): Use build_return_expr instead
28036         of manually building the RETURN_EXPR tree.
28037         (call_to_gnu): Pass MODIFY_EXPR through build_binary_op.
28038         (gnat_to_gnu) <N_Return_Statement>: Pass MODIFY_EXPR through
28039         build_binary_op for the "target pointer" case.  Use build_return_expr
28040         instead of manually building the RETURN_EXPR tree.
28041
28042 2005-09-16  Laurent Guerby  <laurent@guerby.net>
28043
28044         PR ada/23788
28045         * s-tpinop.ads: Make this unit Preelaborate.
28046
28047 2005-09-16  Andreas Jaeger  <aj@suse.de>
28048
28049         * socket.c: Add string.h for memcpy.
28050
28051 2005-09-05  Arnaud Charlet  <charlet@adacore.com>
28052
28053         * dec-io.ads, dec-io.adb: Removed, no longer used.
28054
28055 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
28056
28057         * a-calend-mingw.adb: Add call to OS_Primitives.Initialize;
28058
28059         * s-taprop-mingw.adb, s-taprop-vms.adb, s-taprop-solaris.adb,
28060         s-taprop-os2.adb, s-taprop-irix-athread.adb, s-taprop-linux.adb,
28061         s-taprop-hpux-dce.adb, s-taprop-irix.adb, s-taprop-tru64.adb,
28062         s-taprop-lynxos.adb: Move with clauses outside Warnings Off now that
28063         dependent units are Preelaborate.
28064         (Initialize): Call Interrupt_Managemeent.Initialize and
28065         OS_Primitives.Initialize to ensure proper initialization of this unit.
28066         Remove use of System.Soft_Links
28067         Make this unit Preelaborate.
28068
28069         * s-stache.ads, s-taspri-vxworks.ads, s-taspri-mingw.ads,
28070         s-taspri-vms.ads, s-tasinf-solaris.ads, s-taspri-os2.ads,
28071         s-taspri-lynxos.ads, s-taspri-hpux-dce.ads, s-taspri-tru64.ads,
28072         s-tasinf-tru64.ads, s-tasinf-irix.ads, s-tasinf-irix-athread.ads,
28073         s-proinf-irix-athread.adb, s-proinf-irix-athread.ads,
28074         s-tratas.ads, s-tasinf.ads: Minor reformatting.
28075         Add pragma Preelaborate, since these packages are suitable for this
28076         categorization.
28077         Update comments.
28078
28079         * s-traent-vms.ads, s-intman-dummy.adb,
28080         s-taprop-dummy.adb: Make this unit Preelaborate.
28081
28082         * s-osprim-vxworks.adb, s-osprim-vms.adb, s-osprim-vms.ads,
28083         s-osprim-mingw.adb, s-intman-vxworks.ads, s-intman-vxworks.adb,
28084         s-intman-vms.adb, s-intman-mingw.adb, s-intman-vms.ads,
28085         s-osprim-unix.adb, s-osprim-os2.adb, s-osprim-solaris.adb,
28086         s-intman-solaris.adb, s-intman-irix-athread.adb,
28087         s-intman-irix.adb: Mark this unit Preelaborate.
28088         (Initialize): New procedure.
28089         Update comments.
28090
28091         * s-taspri-linux.ads: Removed.
28092
28093         * s-tpopsp-solaris.adb (Initialize): Create the key in this procedure,
28094         as done by other implementations (e.g. posix).
28095
28096         * s-taprop.ads (Timed_Delay): Update spec since the caller now is
28097         responsible for deferring abort.
28098         Mark this unit Preelaborate.
28099
28100         * s-taprob.adb, s-tarest.adb: Call System.Tasking.Initialize to ensure
28101         proper initialization of the tasking run-time.
28102
28103         * s-tasdeb.ads: Mark this unit Preelaborate.
28104         (Known_Tasks): Add explicit default value to avoid elaboration code.
28105
28106         * s-inmaop-vms.adb (Elaboration code): Add call to
28107         Interrupt_Management.Initialize since the elaboration code depends on
28108         proper initialization of this package.
28109
28110         * s-intman.ads, s-inmaop-posix.adb, s-intman-posix.adb,
28111         s-osprim.ads, s-taprop-posix.adb, s-taspri-posix.ads,
28112         s-osprim-posix.adb: Make this unit Preelaborate.
28113
28114         * a-calend.adb: Add call to OS_Primitives.Initialize
28115
28116         * a-elchha.adb: Update use of Except.Id.Full_Name.
28117         Minor reformatting.
28118         Remove use of Ada.Exceptions.Traceback when possible, cleaner.
28119
28120         * a-dynpri.adb, a-sytaco.adb, a-sytaco.ads:
28121         Move with clauses outside Warnings Off now that dependent units are
28122         Preelaborate.
28123         Use raise xxx with "..."; Ada 2005 form.
28124
28125         * a-taside.ads, a-taside.adb:
28126         Remove some dependencies, to make it easier to make this unit truly
28127         Preelaborate.
28128         Rewrite some code to be conformant with Preelaborate rules.
28129
28130         * g-os_lib.adb: Remove non-preelaborate code so that this unit can be
28131         marked Preelaborate in the future.
28132
28133         * s-proinf.ads, g-string.ads, s-auxdec.ads, s-auxdec-vms_64.ads: Make
28134         these units Preelaborate.
28135
28136         * s-exctab.adb: Update use of Except.Id.Full_Name.
28137
28138         * s-soflin.ads, s-soflin.adb: Mark this unit Preelaborate_05.
28139         (Set_Exc_Stack_Addr_Soft, Get_Exc_Stack_Addr_NT, Set_Exc_Stack_Addr_NT,
28140         Set_Exc_Stack_Addr): Removed, no longer used.
28141         Remove reference to *Machine_State_Addr*, no longer needed.
28142
28143         * s-stalib.ads: Mark this unit as Preelaborate[_05].
28144         (Exception_Data): Full_Name is now a System.Address so that this unit
28145         can be made Preelaborate.
28146         Clean up/simplify code thanks to Full_Name being a System.Address.
28147         Remove obsolete pragma Suppress (All_Checks), no longer needed.
28148
28149         * s-taskin.ads, s-taskin.adb:
28150         Move with clauses outside Warnings Off now that dependent units are
28151         Preelaborate.
28152         Make this unit Preelaborate.
28153         (Initialize): New proceduure, replace elaboration code and makes the
28154         set up of the tasking run-time cleaner.
28155         (Detect_Blocking): Now a function instead of a deferred boolean, to
28156         obey Preelaborate rules.
28157
28158         * s-tassta.adb (Finalize_Global_Tasks): Remove Get/Set_Exc_Stack_Addr
28159         soft links, no longer used.
28160
28161         * s-traces.ads, s-traent.ads: Add pragma Preelaborate, since these
28162         packages are suitable for this categorization.
28163
28164         * s-solita.adb: Replace use of Ada.Exception by raise xxx with "..."
28165         since we compile run-time sources in Ada 2005 mode.
28166         (Timed_Delay_T): Call Abort_Defer/Undefer around Timed_Delay, to
28167         avoid having s-taprop*.adb depend on s-soflin and to avoid code
28168         duplication.
28169         Remove reference to *Machine_State_Addr*, no longer needed.
28170
28171 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
28172
28173         * s-mastop-tru64.adb, s-mastop-irix.adb, s-mastop-vms.adb
28174         (Enter_Handler, Set_Signal_Machine_State): Removed, no longer used.
28175         Remove reference to System.Exceptions.
28176
28177         * s-mastop-x86.adb: Removed, no longer used.
28178
28179         * s-traceb-mastop.adb: Adjust calls to Pop_Frame.
28180
28181         * a-excach.adb: Minor reformatting.
28182
28183         * a-except.ads, a-except.adb: Remove global Warnings (Off) pragma, and
28184         instead fix new warnings that were hidden by this change.
28185         (AAA, ZZZ): Removed, replaced by...
28186         (Code_Address_For_AAA, Code_Address_For_ZZZ): ... these functions, who
28187         are used instead of constants, to help make Ada.Exception truly
28188         preelaborate.
28189         (Rcheck_*, Raise_Constraint_Error, Raise_Program_Error,
28190         Raise_Storage_Error): File is now a System.Address, to simplify code.
28191         (Elab code): Removed, no longer used.
28192         (Null_Occurrence): Remove Warnings Off and make this construct
28193         preelaborate.
28194         Remove code related to front-end zero cost exception handling, since
28195         it is no longer used.
28196         Remove -gnatL/-gnatZ switches.
28197
28198         * a-exexda.adb (Append_Info_Exception_Name, Set_Exception_C_Msg):
28199         Update use of Except.Msg.
28200
28201         * gnat1drv.adb, inline.adb, bindgen.adb, debug.adb, exp_ch11.ads,
28202         freeze.adb, frontend.adb, lib.adb, exp_ch11.adb: Remove code related
28203         to front-end zero cost exception handling, since it is no longer used.
28204         Remove -gnatL/-gnatZ switches.
28205
28206         * lib-writ.ads: Minor reformatting
28207         Remove doc of UX
28208
28209         * Makefile.rtl: Remove references to s-except*, s-mastop-x86*
28210
28211         * Make-lang.in: Remove references to s-except.ads
28212
28213         * s-except.ads: Removed, no longer used.
28214
28215         * s-mastop.ads, s-mastop.adb:
28216         (Enter_Handler, Set_Signal_Machine_State): Removed, no longer used.
28217         Remove reference to System.Exceptions.
28218
28219         * raise.h, usage.adb, targparm.adb, targparm.ads, switch-m.adb,
28220         switch-b.adb: Remove code related to front-end zero cost exception
28221         handling, since it is no longer used.
28222         Remove -gnatL/-gnatZ switches.
28223
28224 2005-09-01  Robert Dewar  <dewar@adacore.com>
28225             Gary Dismukes  <dismukes@adacore.com>
28226             Javier Miranda  <miranda@adacore.com>
28227
28228         * exp_ch4.adb (Expand_N_In): Replace test of expression in its own
28229         type by valid test and generate warning.
28230         (Tagged_Membership): Generate call to the run-time
28231         subprogram IW_Membership in case of "Iface_CW_Typ in Typ'Class"
28232         Change formal name Subtype_Mark to Result_Definition in several calls to
28233         Make_Function_Specification.
28234         (Expand_Allocator_Expression): Add tests for suppression of the AI-344
28235         check for proper accessibility of the operand of a class-wide allocator.
28236         The check can be left out if checks are suppressed or if the expression
28237         has a specific tagged type whose level is known to be safe.
28238
28239         * exp_ch5.adb (Expand_N_Assignment_Statement): Simplify the code that
28240         generates the run-time check associated with null-excluding entities.
28241         (Expand_N_Return_Statement): Add tests to determine if the accessibility
28242         check on the level of the return expression of a class-wide function
28243         can be elided. The check usually isn't needed if the expression has a
28244         specific type (unless it's a conversion or a formal parameter). Also
28245         add a test for whether accessibility checks are suppressed. Augment
28246         the comments to describe the conditions for performing the check.
28247
28248 2005-09-01  Hristian Kirtchev  <kirtchev@adacore.com>
28249             Javier Miranda  <miranda@adacore.com>
28250             Gary Dismukes  <dismukes@adacore.com>
28251             Ed Schonberg  <schonberg@adacore.com>
28252
28253         * a-tags.adb (IW_Membership): Give support to
28254         "Iface_CW_Typ in T'Class". For this purpose the functionality of this
28255         subprogram has been extended to look for the tag in the ancestors tag
28256         table.
28257         Update the structure of the GNAT Dispatch Table to reflect the
28258         additional two tables used in dispatching selects.
28259         Introduce appropriate array types and record components in
28260         Type_Specific_Data to reflect the two tables.
28261         (Get_Entry_Index, Set_Entry_Index): Retrieve and set the entry index in
28262         the TSD of a tag, indexed by position.
28263         (Get_Prim_Op_Kind, Set_Prim_Op_Kind): Retrieve and set the primitive
28264         operation kind in the TSD of a tag, indexed by position.
28265
28266         * a-tags.ads: Introduce an enumeration type to capture different
28267         primitive operation kinds. Define a constant reflecting the number of
28268         predefined primitive operations.
28269         (Get_Entry_Index, Set_Entry_Index): Set and retrieve the entry index
28270         of an entry wrapper.
28271         (Get_Prim_Op_Kind, Set_Prim_Op_Kind): Set and retrieve the kind of
28272         callable entity of a primitive operation.
28273
28274         * exp_ch3.adb (Freeze_Record_Type): Generate the declarations of the
28275         primitive operations used in dispatching selects for limited
28276         interfaces, limited tagged, task and protected types what implement a
28277         limited interface.
28278         (Freeze_Type): Generate the bodies of the primitive operations used in
28279         dispatching selects for limited tagged, task and protected types that
28280         implement a limited interface. Generate statements to populate the two
28281         auxiliary tables used for dispatching in select statements.
28282         (Freeze_Record_Type): Add call to initialize the dispatch table entries
28283         associated with predefined interface primitive operations.
28284         (Build_Dcheck_Function): Change Set_Subtype_Mark to
28285         Set_Result_Definition.
28286         (Build_Variant_Record_Equality): Change Subtype_Mark to
28287         Result_Definition.
28288         (Freeze_Enumeration_Type): Change Subtype_Mark to Result_Definition.
28289         (Predef_Spec_Or_Body): Change Subtype_Mark to Result_Definition.
28290         (Build_Assignment): Simplify the code that adds the run-time-check.
28291         (Expand_N_Object_Declaration): Code cleanup.
28292
28293         * exp_ch7.adb (Make_Clean): Select the appropriate type for locking
28294         entries when there is a protected type that implements a limited
28295         interface.
28296
28297         * exp_ch9.adb: Add package Select_Expansion_Utilities that contains
28298         common routines used in expansion of dispatching selects.
28299         (Add_Private_Declarations): Select the appropriate protection type when
28300         there is a protected type that implements a limited interface.
28301         (Build_Parameter_Block): Generate a wrapped parameter block.
28302         (Build_Protected_Subprogram_Body): Select the appropriate type for
28303         locking entries when there is a protected type that implements a
28304         limited interface.
28305         (Build_Wrapper_Spec): Set the flag and wrapped entity for procedures
28306         classified as entry wrappers.
28307         (Expand_N_Asynchronous_Select): Add support for expansion of dispatching
28308         asynchronous selects.
28309         (Expand_N_Conditional_Entry_Call): Add support for expansion of
28310         dispatching conditional selects.
28311         (Expand_N_Protected_Type_Declaration): Select the appropriate type for
28312         protection when there is a protected type that implements limited
28313         interfaces.
28314         (Expand_N_Timed_Entry_Call): Add support for expansion of dispatching
28315         timed selects.
28316         (Extract_Dispatching_Call): Extract the entity of the name of a
28317         dispatching call, the object parameter, actual parameters and
28318         corresponding formals.
28319         (Make_Initialize_Protection): Correct logic of protection initialization
28320         when there is a protected type that implements a limited interface.
28321         (Parameter_Block_Pack): Populate a wrapped parameter block with the
28322         values of actual parameters.
28323         (Parameter_Block_Unpack): Retrieve the values from a wrapped parameter
28324         block and assign them to the original actual parameters.
28325
28326         * exp_ch9.ads (Subprogram_Protection_Mode): New type.
28327         (Build_Protected_Sub_Specification): Change the type and name of the
28328         last formal to account for the increased variety of protection modes.
28329
28330         * einfo.ads, einfo.adb (Was_Hidden): New attribute. Present in all
28331         entities. Used to save the value of the Is_Hidden attribute when the
28332         limited-view is installed.
28333         (Is_Primitive_Wrapper, Set_Is_Primitive_Wrapper): Retrieve and change
28334         the attribute of procedures classified as entry wrappers.
28335         (Wrapped_Entity, Set_Wrapped_Entity): Retrieve and change the wrapped
28336         entity of a primitive wrapper.
28337         (Write_Entity_Flags): Output the name and value of the
28338         Is_Primitive_Wrapper attribute.
28339         (Write_Field27_Name): Output the name and entity of the field Wrapped_
28340         Entity.
28341         (Underlying_Type): If we have an incomplete entity that comes from
28342         the limited view then we return the Underlying_Type of its non-limited
28343         view if it is already available.
28344         (Abstract_Interface_Alias): Flag applies to all subrogram kinds,
28345         including operators.
28346         (Write_Field26_Name): Add entry for Overridden_Operation
28347         (Overridden_Operation): New attribute of functions and procedures.
28348
28349         * exp_disp.ads, exp_disp.adb (Default_Prim_Op_Position): Return a
28350         predefined position in the dispatch table for the primitive operations
28351         used in dispatching selects.
28352         (Init_Predefined_Interface_Primitives): Remove the hardcoded number of
28353         predefined primitive operations and replace it with
28354         Default_Prim_Op_Count.
28355         (Make_Disp_Asynchronous_Select_Spec, Make_Disp_Conditional_Select_Spec,
28356         Make_Disp_Get_Prim_Op_Kind_Spec, Make_Disp_Timed_Select_Spec): Update
28357         the names of the generated primitive operations used in dispatching
28358         selects.
28359         (Init_Predefined_Interface_Primitives): No need to inherit primitives in
28360         case of abstract interface types. They will be inherit by the objects
28361         implementing the interface.
28362         (Make_DT): There is no need to inherit the dispatch table of the
28363         ancestor interface for the elaboration of abstract interface types.
28364         The dispatch table will be inherited by the object implementing the
28365         interface.
28366         (Copy_Secondary_DTs): Add documentation.
28367         (Validate_Position): Improve this static check in case of
28368         aliased subprograms because aliased subprograms must have
28369         the same position.
28370         (Init_Predefined_Interface_Primitives): New subprogram that initializes
28371         the entries associated with predefined primitives of all the secondary
28372         dispatch tables.
28373         (Build_Anonymous_Access_Type): Removed.
28374         (Expand_Interface_Actuals): With the previous cleanup there is no need
28375         to build an anonymous access type. This allows further cleanup in the
28376         code generated by the expander.
28377         (Expand_Interface_Conversion): If the actual is an access type then
28378         build an internal function to handle the displacement. If the actual
28379         is null this function returns null because no displacement is
28380         required; otherwise performs a type conversion that will be
28381         expanded in the code that returns the value of the displaced actual.
28382         (Expand_Interface_Actuals): Avoid the generation of unnecessary type
28383         conversions that have no effect in the generated code because no
28384         displacement is required. Code cleanup; use local variables to
28385         avoid repeated calls to the subprogram directly_designated_type().
28386
28387         * exp_util.ads, exp_util.adb (Is_Predefined_Dispatching_Operation):
28388         Classify the primitive operations used in dispatching selects as
28389         predefined.
28390         (Implements_Limited_Interface): Determine whether some type either
28391         directly implements a limited interface or extends a type that
28392         implements a limited interface.
28393         (Build_Task_Image_Function): Change Subtype_Mark to Result_Definition.
28394         (Expand_Subtype_From_Expr): Do not build actual subtype if the
28395         expression is limited.
28396         (Find_Interface_Tag): Add code to handle class-wide types and
28397         entities from the limited-view.
28398
28399         * rtsfind.ads: Add entries in RE_Id and RE_Unit_Table for
28400         Get_Entry_Index, Get_Prim_Op_Kind, POK_Function, POK_Procedure,
28401         POK_Protected_Entry, POK_Protected_Function, POK_Protected_Procedure,
28402         POK_Task_Entry, POK_Task_Procedure, Prim_Op_Kind, Set_Entry_Index,
28403         Set_Prim_Op_Kind.
28404
28405         * sem_ch9.adb (Analyze_Triggering_Alternative): Check for legal type
28406         of procedure name or prefix that appears as a trigger in a triggering
28407         alternative.
28408
28409         * uintp.ads: Introduce constants Uint_11 and Uint_13.
28410
28411 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
28412
28413         * s-tataat.adb, a-tasatt.adb:
28414         Replace calls to Defer/Undefer_Abortion by Defer/Undefer_Abort.
28415
28416         * s-tasini.ads, s-tasini.adb (Defer_Abortion, Undefer_Abortion): Moved
28417         these procedures to body, and renamed Abort_Defer, Abort_Undefer.
28418         (Get_Exc_Stack_Addr, Set_Exc_Stack_Addr): Removed, no
28419         longer used.
28420
28421 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
28422             Jose Ruiz  <ruiz@adacore.com>
28423
28424         * s-taprop-vxworks.adb:
28425         Move with clauses outside Warnings Off now that dependent units are
28426         Preelaborate.
28427         (Initialize): Call Interrupt_Managemeent.Initialize to ensure proper
28428         initialization of this unit.
28429         (Specific): Add new procedures Initialize and Delete so that this
28430         package can be used for VxWorks 5.x and 6.x
28431         (ATCB_Key, ATCB_Key_Address): Moved to Specific package body to hide
28432         differences between VxWorks 5.x and 6.x
28433         Minor reformatting.
28434         (Timed_Delay): Remove calls to Defer/Undefer_Abort, now performed by
28435         caller.
28436         Use only Preelaborate-compatible constructs.
28437
28438         * s-tpopsp-vxworks.adb (ATBC_Key, ATCB_Key_Addr): Moved from
28439         Primitives.Operations.
28440         (Delete, Initialize): New procedures.
28441
28442         * s-osinte-vxworks.adb: Body used to handle differences between
28443         VxWorks 5.x and 6.x
28444         (kill, Set_Time_Slice, VX_FP_TASK): New functions.
28445
28446         * s-osinte-vxworks.ads: Minor reformatting.
28447         Add VxWworks 6.x specific functions (only called from VxWorks 6 files).
28448         (VX_FP_TASK): Now a function, to handle differences between VxWorks 5
28449         and 6.
28450         (Set_Time_Slice): New function, replacing kerneltimeSlice to share code
28451         between Vxworks 5 and 6.
28452         (taskLock, taskUnlock): Removeed, no longer used.
28453
28454         * adaint.c: The wait.h header is not located in the sys directory on
28455         VxWorks when using RTPs.
28456         (__gnat_set_env_value): Use setenv instead of putenv on VxWorks when
28457         using RTPs.
28458         (__gnat_dup): dup is available on Vxworks when using RTPs.
28459         (__gnat_dup2): dup2 is available on Vxworks when using RTPs.
28460
28461         * cal.c: Use the header time.h for Vxworks 6.0 when using RTPs.
28462
28463         * expect.c: The wait.h header is not located in the sys directory on
28464         VxWorks when using RTPs.
28465
28466 2005-09-01  Thomas Quinot  <quinot@adacore.com>
28467
28468         * g-soccon-vms.adb: Renamed to g-soccon-vms.ads
28469
28470         * g-soccon-vms.ads: Renamed from g-soccon-vms.adb
28471
28472         * g-soccon.ads, g-soccon-tru64.ads, g-soccon-aix.ads,
28473         g-soccon-darwin.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
28474         g-soccon-solaris.ads, g-soccon-mingw.ads, g-soccon-vxworks.ads,
28475         g-soccon-freebsd.ads: Add new constants:
28476          IP_MULTICAST_IF
28477          SO_RCVTIMEO/SO_SNDTIMEO
28478          IOV_MAX
28479
28480         * gen-soccon.c:
28481         Move all target-specific file inclusions and macro definitions to
28482         gsocket.h, in order to ensure that any C code in socket.c will see a
28483         set of constants that is consistent with the contents of g-soccon.ads.
28484
28485         * gsocket.h: Code imported from gen-soccon.c:
28486         Move all target-specific file inclusions and macro definitions to
28487         gsocket.h, in order to ensure that any C code in socket.c will see a set
28488         of constants that is consistent with the contents of g-soccon.ads.
28489         This change also makes gen-soccon self-contained (removing dependencies
28490         upon GCC internal headers).
28491
28492         * g-socket.adb (Send_Vector): Make calls to Writev at most IOV_MAX
28493         iovecs at a time.
28494         (To_Inet_Addr): Now a procedure instead of a function, more efficient.
28495
28496         * socket.c: Minor reformatting.
28497
28498 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
28499             Thomas Quinot  <quinot@adacore.com>
28500
28501         * fname-sf.adb, mlib-tgt.ads,
28502         back_end.adb, casing.adb, g-debpoo.adb, g-excact.adb, g-spipat.adb,
28503         g-spipat.ads, g-thread.adb, lib-list.adb, makeutl.adb, mlib.adb,
28504         osint.adb, par-ch10.adb, par-load.adb, prep.adb, prj.adb, prj-attr.ads,
28505         prj-env.ads, prj-err.adb, prj-err.ads, prj-ext.adb, prj-ext.ads,
28506         prj-makr.adb, prj-makr.ads, prj-pars.ads, prj-part.adb, prj-strt.adb,
28507         prj-tree.ads, prj-util.ads, sem_dist.adb, sinput-c.ads, sinput-l.ads,
28508         sinput-p.ads, styleg-c.ads, xr_tabls.adb, prj-attr-pm.ads,
28509         makegpr.adb: Remove redundant use_clauses.
28510
28511 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
28512
28513         * s-stoele.ads, s-stopoo.ads, s-stratt.ads, s-strops.ads, s-unstyp.ads,
28514         s-valboo.ads, s-valcha.ads, s-valdec.ads, s-valenu.ads, s-valint.ads,
28515         s-vallld.ads, s-vallli.ads, s-valllu.ads, s-valrea.ads, s-valuns.ads,
28516         s-valuti.ads, s-valwch.ads, s-veboop.ads, s-vector.ads, s-vercon.ads,
28517         s-wchcnv.ads, s-wchcon.ads, s-wchjis.ads, s-wchstw.ads, s-wchwts.ads,
28518         s-widboo.ads, s-widcha.ads, s-widenu.ads, s-widlli.ads, s-widllu.ads,
28519         s-widwch.ads, s-wwdcha.ads, s-wwdenu.ads, s-wwdwch.ads, system.ads,
28520         table.ads, types.ads, system-vms_64.ads, s-crtl-vms64.ads,
28521         s-addope.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
28522         s-vxwork-x86.ads, system-linux-ppc.ads, i-vxwork-x86.ads,
28523         a-numaux-darwin.ads, a-crbtgo.ads, a-crbtgk.ads, a-crbltr.ads,
28524         a-coprnu.ads, a-convec.ads, a-contai.ads, a-coinve.ads, a-cohata.ads,
28525         a-cohama.ads, a-cihama.ads, a-cidlli.ads, a-cdlili.ads,
28526         a-numaux-libc-x86.ads, a-numaux-vxworks.ads, system-linux-ia64.ads,
28527         system-freebsd-x86.ads, system-unixware.ads, system-lynxos-ppc.ads,
28528         system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
28529         s-vxwork-alpha.ads, system-aix.ads, system-vxworks-sparcv9.ads,
28530         system-solaris-x86.ads, system-irix-o32.ads, system-irix-n32.ads,
28531         s-parame-hpux.ads, system-hpux.ads, system-vxworks-m68k.ads,
28532         s-vxwork-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
28533         s-vxwork-mips.ads, system-os2.ads, system-interix.ads,
28534         s-vxwork-ppc.ads, system-solaris-sparc.ads, s-vxwork-sparcv9.ads,
28535         system-solaris-sparcv9.ads, s-parame-vms.ads, system-vms.ads,
28536         s-osinte-mingw.ads, system-mingw.ads, s-parame-vms-restrict.ads,
28537         system-vms-zcx.ads, s-parame-ae653.ads, system-vxworks-ppc.ads,
28538         s-parame-vxworks.ads, system-vxworks-alpha.ads, interfac-vms.ads,
28539         a-numaux-x86.ads, a-astaco.ads, a-chahan.ads, a-charac.ads,
28540         a-chlat1.ads, a-chlat9.ads, a-colire.adb, a-colire.ads, a-comlin.ads,
28541         a-cwila1.ads, a-cwila9.ads, ada.ads, a-decima.ads, a-exextr.adb,
28542         a-filico.ads, a-finali.ads, a-interr.ads, a-ioexce.ads, a-dynpri.ads,
28543         a-ngcefu.ads, a-ngcefu.adb, a-ngcoty.adb, a-ngcoty.ads, a-ngelfu.ads,
28544         a-nudira.adb, a-nudira.ads, a-nuflra.adb, a-numaux.ads, a-numeri.ads,
28545         a-reatim.adb, a-stmaco.ads, a-storio.ads, a-strbou.ads, a-stream.ads,
28546         a-strfix.ads, a-string.ads, a-strmap.ads, a-strsea.ads, a-strsup.ads,
28547         a-strunb.ads, a-stunau.ads, a-stwibo.ads, a-stwifi.ads, a-stwima.ads,
28548         a-stwise.ads, a-stwisu.ads, a-stwiun.ads, a-swmwco.ads, a-textio.ads,
28549         csets.ads, debug.ads, dec.ads, g-curexc.ads, get_targ.ads,
28550         g-except.ads, system-linux-hppa.ads, a-chacon.ads, a-widcha.ads,
28551         a-zchara.ads, system-hpux-ia64.ads, a-ciorma.ads, a-coorma.ads,
28552         a-ciormu.ads, a-coormu.ads, a-rbtgso.ads, a-chzla1.ads, a-chzla9.ads,
28553         a-stzbou.ads, a-stzfix.ads, a-stzmap.ads, a-stzsea.ads, a-stzsup.ads,
28554         a-stzunb.ads, a-swunau.ads, a-szunau.ads, gnat.ads, g-regpat.ads,
28555         g-speche.ads, g-spitbo.ads, g-table.ads, g-tasloc.ads, g-trasym.ads,
28556         i-c.ads, i-cpoint.ads, i-cpp.ads, i-cstrin.ads, i-fortra.ads,
28557         interfac.ads, i-os2err.ads, i-os2lib.ads, i-os2syn.ads, i-os2thr.ads,
28558         i-vxwork.ads, output.ads, s-arit64.ads, s-atacco.ads, s-boarop.ads,
28559         s-casuti.ads, s-crtl.ads, s-exctab.ads, s-exnint.ads, s-exnllf.ads,
28560         s-exnlli.ads, s-expint.ads, s-explli.ads, s-expllu.ads, s-expmod.ads,
28561         s-expuns.ads, s-fatflt.ads, s-fatgen.ads, s-fatlfl.ads, s-fatllf.ads,
28562         s-fatsfl.ads, s-finimp.ads, s-finroo.ads, s-fore.ads, s-geveop.ads,
28563         s-htable.ads, s-imgbiu.ads, s-imgboo.ads, s-imgcha.ads, s-imgdec.ads,
28564         s-imgenu.ads, s-imgint.ads, s-imgllb.ads, s-imglld.ads, s-imglli.ads,
28565         s-imgllu.ads, s-imgllw.ads, s-imgrea.ads, s-imguns.ads, s-imgwch.ads,
28566         s-imgwiu.ads, s-io.ads, s-maccod.ads, s-mantis.ads, s-memcop.ads,
28567         s-pack03.ads, s-pack05.ads, s-pack06.ads, s-pack07.ads, s-pack09.ads,
28568         s-pack10.ads, s-pack11.ads, s-pack12.ads, s-pack13.ads, s-pack14.ads,
28569         s-pack15.ads, s-pack17.ads, s-pack18.ads, s-pack19.ads, s-pack20.ads,
28570         s-pack21.ads, s-pack22.ads, s-pack23.ads, s-pack24.ads, s-pack25.ads,
28571         s-pack26.ads, s-pack27.ads, s-pack28.ads, s-pack29.ads, s-pack30.ads,
28572         s-pack31.ads, s-pack33.ads, s-pack34.ads, s-pack35.ads, s-pack36.ads,
28573         s-pack37.ads, s-pack38.ads, s-pack39.ads, s-pack40.ads, s-pack41.ads,
28574         s-pack42.ads, s-pack43.ads, s-pack44.ads, s-pack45.ads, s-pack46.ads,
28575         s-pack47.ads, s-pack48.ads, s-pack49.ads, s-pack50.ads, s-pack51.ads,
28576         s-pack52.ads, s-pack53.ads, s-pack54.ads, s-pack55.ads, s-pack56.ads,
28577         s-pack57.ads, s-pack58.ads, s-pack59.ads, s-pack60.ads, s-pack61.ads,
28578         s-pack62.ads, s-pack63.ads, s-parame.ads, s-pooglo.ads, s-pooloc.ads,
28579         s-poosiz.ads, s-powtab.ads, s-purexc.ads, s-sopco3.ads, s-sopco4.ads,
28580         s-sopco5.ads: Minor reformatting: reindent pragma Pure/Preelaborate
28581         and always use the no parameter form for consistency.
28582
28583         * gnat-style.texi: Document rules about Preelaborate/Pure pragmas.
28584
28585 2005-09-01  Robert Dewar  <dewar@adacore.com>
28586
28587         * binde.adb: Minor reformatting
28588         (Find_Elab_Order): Output warning if -p used with static elab order
28589
28590 2005-09-01  Robert Dewar  <dewar@adacore.com>
28591
28592         * checks.adb (Check_Needed): New procedure, deals with removing checks
28593         based on analysis of short-circuited forms. Also generates warnings for
28594         improper use of non-short-circuited forms.
28595         Code clean ups.
28596
28597 2005-09-01  Robert Dewar  <dewar@adacore.com>
28598
28599         * a-ztexio.adb, a-textio.adb, a-witeio.adb: Replace bad range checks
28600         with 'Valid tests.
28601
28602 2005-09-01  Robert Dewar  <dewar@adacore.com>
28603
28604         * errout.ads, errout.adb (Fix Error_Msg_F): Fix implementation to meet
28605         spec.
28606         Implement new insertion char < (conditional warning)
28607         * errutil.adb, erroutc.adb: Implement new insertion char <
28608         (conditional warning).
28609         * sem_elab.adb, prj-dect.adb, erroutc.ads, err_vars.ads
28610         (Error_Msg_Warn): New variable for < insertion char.
28611         * prj-nmsc.adb: Implement new errout insertion char < (conditional
28612         warning).
28613         (Check_For_Source): Change value of Source_Id only after the current
28614         source has been dealt with.
28615
28616 2005-09-01  Robert Dewar  <dewar@adacore.com>
28617             Doug Rupp  <rupp@adacore.com>
28618
28619         * exp_attr.adb: Handle vax fpt for 'Valid attribute
28620         * exp_vfpt.ads, exp_vfpt.adb: (Expand_Vax_Valid): New procedure
28621         * s-vaflop-vms-alpha.adb, s-vaflop.ads, s-vaflop.adb
28622         (Valid_D, Valid_F, Valid_G): New functions
28623
28624 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
28625             Hristian Kirtchev  <kirtchev@adacore.com>
28626             Javier Miranda  <miranda@adacore.com>
28627
28628         * exp_ch6.adb (Expand_Call): If an actual is a function call rewritten
28629         from object notation, the original node is unanalyzed and carries no
28630         semantic information, so that accessiblity checks must be performed on
28631         the type of the actual itself.
28632         (Expand_N_Subprogram_Declaration): Change last actual parameter for
28633         compatibility with Build_Protected_Sub_Specification.
28634         (Check_Overriding_Inherited_Interfaces): Add suport to handle
28635         overloaded primitives.
28636         (Register_Interface_DT_Entry): Use the new name of the formal
28637         the the calls to Expand_Interface_Thunk
28638
28639         * exp_dbug.ads: Augment comments on encoding of protected types to
28640         include the generation of dispatching subprograms when the type
28641         implements at least one interface.
28642
28643         * lib.ads: Extend information in Load_Stack to include whether a given
28644         load comes from a Limited_With_Clause.
28645
28646         * lib-load.adb (From_Limited_With_Chain): New predicate to determine
28647         whether a potential circularity is harmless, because it includes units
28648         loaded through a limited_with clause. Extends previous treatment which
28649         did not handle properly arbitrary combinations of limited and
28650         non-limited clauses.
28651
28652 2005-09-01  Nicolas Setton  <setton@adacore.com>
28653
28654         * exp_dbug.adb (Get_Encoded_Name): Fixed bug that caused biaised types
28655         to be encoded as typ___XBLU_lowerbound__upperbound instead of
28656         typ___XB_lowerbound__upperbound.
28657
28658 2005-09-01  Thomas Quinot  <quinot@adacore.com>
28659
28660         * exp_dist.adb (Add_RACW_TypeCode, Add_RAS_TypeCode): Do not generate
28661         dummy access formal for RACW/RAS TypeCode TSS.
28662         (Build_TypeCode_Call): Do not generate dummy null access actual for
28663         calls to the TypeCode TSS.
28664
28665 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
28666
28667         * exp_intr.adb (Expand_Source_Name): For Enclosing_Entity, generate
28668         fully qualified name, to distinguish instances with the same local name.
28669
28670         * g-souinf.ads (Enclosing_Entity): Document that entity name is now
28671         fully qualified.
28672
28673 2005-09-01  Robert Dewar  <dewar@adacore.com>
28674
28675         * exp_pakd.adb (Create_Packed_Array_Type): Properly handle very large
28676         packed arrays.
28677
28678 2005-09-01  Jerome Lambourg  <lambourg@adacore.com>
28679
28680         * g-expect.adb (Non_Blocking_Spawn): Initialize the filters field to
28681         (Free): New deallocation procedure for filter elements
28682         (Close): Deallocate any existing filter for the concerned connection
28683
28684 2005-09-01  Laurent Pautet  <pautet@adacore.com>
28685
28686         * g-pehage.ads, g-pehage.adb (Select_Char_Position): When no character
28687         position set is provided, we compute one in order to reduce the maximum
28688         length of the keys.  This computation first selects a character
28689         position between 1 and the minimum length of the keys in order to
28690         avoid reducing one of the keys to an empty string.
28691         (Initialize, Compute): When the ratio V to K is too low, the algorithm
28692         does not converge. The initialization procedure now comes with a
28693         maximum number of iterations such that when exceeded, an exception is
28694         raised in Compute. The user can initialize this ratio to another value
28695         and try again
28696         Reformating and updated headers.
28697
28698 2005-09-01  Javier Miranda  <miranda@adacore.com>
28699
28700         * itypes.ads, itypes.adb (Create_Null_Excluding_Itype): New subprogram
28701         that given an entity T creates and returns an Itype that duplicates the
28702         contents of T. The returned Itype has the null-exclusion
28703         attribute set to True, and its Etype attribute references T
28704         to keep the association between the two entities.
28705         Update copyright notice
28706
28707         * sem_aggr.adb (Check_Can_Never_Be_Null,
28708         Aggregate_Constraint_Checks, Resolve_Aggregate,
28709         Resolve_Array_Aggregate, Resolve_Record_Aggregate): Code cleanup.
28710
28711         * sem_ch5.adb (Analyze_Assignment): Code cleanup.
28712
28713 2005-09-01  Gary Dismukes  <dismukes@adacore.com>
28714             Robert Dewar  <dewar@adacore.com>
28715             Hristian Kirtchev  <kirtchev@adacore.com>
28716
28717         * layout.adb (SO_Ref_From_Expr): Change Subtype_Mark to
28718         Result_Definition.
28719
28720         * par-ch6.adb (P_Subprogram): Handle parsing of Access_Definitions in
28721         function specs.
28722         Call Set_Result_Definition instead of Set_Subtype_Mark.
28723         (P_Subprogram_Specification): Add parsing of anonymous access result
28724         plus null exclusions. Call Set_Result_Definition instead of
28725         Set_Subtype_Mark.
28726
28727         * par-ch3.adb: Add support for LIMITED NEW for Ada 2005 AI-419
28728         (P_Access_Type_Definition): Add parsing for an anonymous access result
28729         subtype, plus parsing for null exclusions. Call Set_Result_Definition
28730         instead of Set_Subtype_Mark.
28731
28732         * sinfo.adb: Add support for LIMITED NEW for Ada 2005 AI-419
28733         (Null_Exclusion_Present): Allow this flag for N_Function_Specification.
28734         (Result_Definition): New function for N_Function_Specifications.
28735         (Subtype_Mark): No longer allowed for N_Access_Function_Definition and
28736         N_Function_Specification.
28737         (Set_Null_Exclusion_Present): Allow this flag for
28738         N_Function_Specification.
28739         (Set_Result_Definition): New procedure for N_Function_Specifications.
28740         (Set_Subtype_Mark): No longer allowed for N_Access_Function_Definition
28741         and N_Function_Specification.
28742
28743         * sinfo.ads: Update grammar rules for 9.7.2: Entry_Call_Alternative,
28744         Procedure_Or_Entry_Call; 9.7.4: Triggering_Statement.
28745         Add support for LIMITED NEW for Ada 2005 AI-419
28746         Update the syntax of PARAMETER_AND_RESULT_PROFILE to reflect the new
28747         syntax for anonymous access results.
28748         Replace Subtype_Mark field by Result_Definition in
28749         N_Function_Specification and N_Access_Definition specs.
28750         Add Null_Exclusion_Present to spec of N_Function_Specification.
28751         (Result_Definition): New function for N_Function_Specification and
28752         N_Access_Function_Definition.
28753         (Set_Result_Definition): New procedure for N_Function_Specification and
28754         N_Access_Function_Definition.
28755
28756         * sprint.adb (S_Print_Node_Actual): Change Subtype_Mark calls to
28757         Result_Definition for cases of N_Access_Function_Definition and
28758         N_Function_Specification.
28759         Print "not null" if Null_Exclusion_Present on N_Function_Specification.
28760
28761 2005-09-01  Vincent Celier  <celier@adacore.com>
28762
28763         * lib-writ.adb: Update Copyright notice
28764         (Write_With_Lines): On platforms where file names are case-insensitive,
28765         record the file names in lower case.
28766         (Write_ALI): For D lines, on platforms where file names are
28767         case-insensitive, record the file names in lower case.
28768
28769 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
28770             Emmanuel Briot  <briot@adacore.com>
28771
28772         * lib-xref.adb (Output_Overridden_Op): Display information on
28773         overridden operation.
28774
28775         * lib-xref.ads: Add documentation on overridden operations.
28776
28777         * ali.ads (Xref_Entity_Record): Add support for storing the overriding
28778         information.
28779
28780         * ali.adb (Get_Typeref): New subprogram. Adds support for parsing the
28781         overriding entity information.
28782
28783 2005-09-01  Vincent Celier  <celier@adacore.com>
28784
28785         * mlib-prj.adb (Copy_Interface_Sources): Copy all interface sources,
28786         including those that are inherited.
28787
28788 2005-09-01  Robert Dewar  <dewar@adacore.com>
28789
28790         * opt.ads, opt.adb: Add new switches Debug_Pragmas_Enabled[_Config]
28791
28792         * par-prag.adb: Implement new pragma Debug_Policy
28793
28794         * sem_prag.adb Implement new pragma Debug_Policy
28795         (Analyze_Pragma, case Pack): do not let pragma Pack override an explicit
28796         Component_Size attribute specification. Give warning for ignored pragma
28797         Pack.
28798
28799         * snames.h, snames.ads, snames.adb: Introduce entries in
28800         Preset_Names for Name_Disp_Asynchronous_Select,
28801         Name_Disp_Conditional_Select, Name_Disp_Get_Prim_Op_Kind,
28802         Name_Disp_Timed_Select.
28803         New pragma Debug_Policy
28804
28805         * switch-c.adb (Scan_Front_End_Switches): Set Ada 2005 mode
28806         explicitly.
28807         Switch -gnata also sets Debug_Pragmas_Enabled
28808
28809         * sem.adb, par.adb (Set_Opt_Config_Switch): Add parameter Main_Unit to
28810         handle an explicit -gnata when compiling predefined files.
28811
28812 2005-09-01  Vincent Celier  <celier@adacore.com>
28813
28814         * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Do not add the object
28815         directories of projects that have no Ada sources.
28816
28817 2005-09-01  Robert Dewar  <dewar@adacore.com>
28818
28819         * scng.adb (Check_End_Of_Line): Count characters, rather than bytes
28820         (makes a difference for wide characters)
28821
28822         * widechar.adb, widechar.ads:
28823         Add Wide_Char_Byte_Count feature to count chars vs bytes
28824
28825 2005-09-01  Thomas Quinot  <quinot@adacore.com>
28826             Ed Schonberg  <schonberg@adacore.com>
28827             Robert Dewar  <dewar@adacore.com>
28828
28829         * sem_attr.adb (Resolve_Attribute, case 'Address): For an illegal
28830         'Address attribute reference with an overloaded prefix, use the
28831         location of the prefix (not the location of the attribute reference) as
28832         the error location.
28833         (Analyze_Attribute, case 'Size): The name of an enumeration literal, or
28834         a function renaming thereof, is a valid prefix for 'Size (where it is
28835         intepreted as a function call).
28836         (Statically_Denotes_Entity): New predicate to determine whether the
28837         prefix of an array attribute can be considered static.
28838
28839         PR ada/9087
28840         (Eval_Attr): Fix failure to evaluate Component_Size for
28841         unconstrained arrays (resulted in wrong value in packed case, since
28842         back end cannot handle this case)
28843
28844 2005-09-01  Robert Dewar  <dewar@adacore.com>
28845
28846         * sem_cat.adb (Check_Categorization_Dependencies): Add more detail to
28847         error msgs for most common cases.
28848         Use new errout insertion char < (conditional warning)
28849
28850 2005-09-01  Javier Miranda  <miranda@adacore.com>
28851             Ed Schonberg  <schonberg@adacore.com>
28852
28853         * sem_ch10.adb (In_Chain): Moved from the scope of a subprogram to
28854         become local to the whole package.
28855         (Install_Limited_Withed_Unit): Instead of unchaining real entities if
28856         the package was already analyzed the new algorithm "replaces" the
28857         real entities by the shadow ones. This is required to ensure that
28858         the order of these entities in the homonym chains does not change;
28859         otherwise we can have undefined references at linking time because
28860         in case of conflicts the external name of the entities will have
28861         a suffix that depends on the order of the entities in the chain.
28862         (Remove_Limited_With_Clause): Complementary code that completes the
28863         new algorithm and replaces the shadow entities by the real ones.
28864         (Install_Limited_Withed_Unit): When unchaining entities before the
28865         installation of the shadow entities, only regular entities of the
28866         public part must be taken into account. This is required to
28867         keep this routine in synch with the work done by Remove_Limited_
28868         With_Clause
28869         (Install_Limited_With_Clause): Introduce implicit limited_with_clause
28870         even if unit is analyzed, because the analysis of the unit is
28871         idempotent in any case, and the limited view of the unit may have to
28872         be installed for proper visibility.
28873         (Expand_Limited_With_Clause): Even if the unit in the implicit
28874         with_clause has been analyzed already, a limited view of the package
28875         must be built for the current context, if it does not exist yet.
28876
28877 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
28878             Javier Miranda  <miranda@adacore.com>
28879             Gary Dismukes  <dismukes@adacore.com>
28880
28881         * sem_ch12.adb (Instantiate_Subprogram_Body): When creating the
28882         defining entity for the instance body, make a new defining identifier
28883         rather than copying the entity of the spec, to prevent accidental
28884         sharing of the entity list.
28885         (Check_Private_View): When exchanging views of private types, build the
28886         list of exchanged views as a stack, to ensure that on exit the exchanges
28887         are undone in the proper order.
28888         (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation):
28889         Restore the compilation environment in case of instantiation_error.
28890         (Analyze_Generic_Subprogram_Declaration): Handle creation of type entity
28891         for an anonymous access result.
28892         (Instantiate_Generic_Subprogram): Subtype_Mark => Result_Definition
28893         (Formal_Entity): Handle properly the case of a formal package that
28894         denotes a generic package renaming.
28895
28896 2005-09-01  Thomas Quinot  <quinot@adacore.com>
28897
28898         * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Reject the
28899         clause if the array aggregate is surrounded by parentheses.
28900
28901 2005-09-01  Cyrille Comar  <comar@adacore.com>
28902             Gary Dismukes  <dismukes@adacore.com>
28903             Ed Schonberg  <schonberg@adacore.com>
28904             Javier Miranda  <miranda@adacore.com>
28905
28906         * sem_ch3.ads, sem_ch3.adb (Analyze_Object_Declaration): Go to the
28907         underlying type
28908         to check if a type is Constrained in cases related to code generation
28909         (rather than semantic checking) since otherwise we do not generate
28910         similar code for mutable private types depending if their
28911         discriminants are visible or not.
28912         (Check_Abstract_Overriding): Do not complain about failure to override
28913         the primitive operations used in dispatching selects since they will
28914         always be overriden at the freeze point of the type.
28915         (Access_Definition): Separate out handling for resetting the scope
28916         of an anonymous access function result type. Retrieve the scope
28917         of the associated function rather than using Current_Scope, which
28918         does not have a consistent value (depends on whether we're in the
28919         middle of analyzing formal parameters). Add ??? comment about
28920         finding a cleaner way to handle the special cases of scope setting.
28921         (Process_Incomplete_Dependents): A protected operation is never a
28922         dispatching operation (only its wrapper may be).
28923         (Build_Derived_Record_Type): In case of tagged private types that
28924         implement interfaces add derivation of predefined primitive
28925         operations.
28926         (Derive_Subprograms): Replace the Is_Interface_Derivation parameter
28927         by two parameters that are used in case of derivation from abstract
28928         interface types: No_Predefined_Prims is used to avoid the derivation
28929         of predefined primitives from the interface, and Predefined
28930         Prims_Only is used to complete the derivation predefined primitives
28931         in case of private tagged types implementing interfaces.
28932         Fix typo in comments
28933         (Find_Interface_In_Descendant): Protect the frontend against
28934         wrong code with large circularity chains.
28935         (Is_Private_Overriding): Add support for entities overriding interface
28936         subprograms. The test failed because Entities associated with overriden
28937         interface subprograms are always marked as hidden (and used to build
28938         the secondary dispatch table); in this case the overriden entity is
28939         available through the field abstract_interface_alias (cf. override_
28940         dispatching_operation)
28941         (Access_Definition): Set the scope of the type to Current_Scope for the
28942         case of a function with an anonymous access result type.
28943         (Access_Subprogram_Declaration): Handle creation of the type entity for
28944         an access-to-function type with an anonymous access result.
28945         (Check_Anonymous_Access_Types): Change Subtype_Mark to Result_Definition
28946         in handling for N_Access_Function_Definition.
28947         (Analyze_Subtype_Declaration): Modify the text of error message.
28948         (Derived_Type_Declaration): Modify the text of error message.
28949         (Process_Subtype): Modify the text of error message plus cleanup
28950         of one redundant error message.
28951         (Analyze_Component_Declaration): Code cleanup.
28952         (Analyze_Object_Declaration): Code cleanup.
28953         (Analyze_Subtype_Declaration): Propagate the null-exclusion
28954         attribute in case of access types. Code cleanup.
28955         (Array_Type_Declaration): Code cleanup.
28956         (Process_Discriminants): Create the new null-excluding itype
28957         if required. Code cleanup.
28958         (Process_Subtype): Create the new null-excluding itype if
28959         required. Code cleanup.
28960         (Build_Derived_Record_Type): Code cleanup to avoid calling
28961         twice the subprogram derive_subprograms in case of private
28962         types that implement interfaces. In this particular case the
28963         subprogram Complete_Subprograms_Derivation already does the
28964         job associated with the second call.
28965
28966         * exp_strm.adb (Build_Elementary_Input_Call): Add an explicit
28967         conversion to the full view when generating an operation for a
28968         discriminant whose type may currently be private.
28969
28970 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
28971             Javier Miranda  <miranda@adacore.com>
28972
28973         * sem_ch4.adb (Transform_Object_Operation): In a context off the form
28974         V (Obj.F), the rewriting does not involve the indexed component, but
28975         only the selected component itself.
28976         Do not apply the transformation if the analyzed node is an actual of a
28977         call to another subprogram.
28978         (Complete_Object_Operation): Retain the entity of the
28979         dispatching operation in the selector of the rewritten node. The
28980         entity will be used in the expansion of dispatching selects.
28981         (Analyze_One_Call): Improve location of the error message associated
28982         with interface.
28983         (Analyze_Selected_Component): No need to resolve prefix when it is a
28984         function call, resolution is done when parent node is resolved, as
28985         usual.
28986         (Analyze_One_Call): Add a flag to suppress analysis of the first actual,
28987         when attempting to resolve a call transformed from its object notation.
28988         (Try_Object_Operation, Transform_Object_Operastion): Avoid makind copies
28989         of the argument list for each interpretation of the operation.
28990         (Try_Object_Operation): The designated type of an access parameter may
28991         be an incomplete type obtained through a limited_with clause, in which
28992         case the primitive operations of the type are retrieved from its full
28993         view.
28994         (Analyze_Call): If this is an indirect call, and the return type of the
28995         access_to_subprogram is incomplete, use its full view if available.
28996
28997 2005-09-01  Javier Miranda  <miranda@adacore.com>
28998             Gary Dismukes  <dismukes@adacore.com>
28999
29000         * sem_ch6.ads, sem_ch6.adb (Check_Conformance): In case of anonymous
29001         access types the null-exclusion and access-to-constant attributes must
29002         also match.
29003         (Analyze_Return_Statement): When the result type is an anonymous access
29004         type, apply a conversion of the return expression to the access type
29005         to ensure that appropriate accessibility checks are performed.
29006         (Analyze_Return_Type): For the case of an anonymous access result type,
29007         generate the Itype and set Is_Local_Anonymous_Access on the type.
29008         Add ??? placeholder for check to disallow returning a limited object
29009         in Ada 2005 unless it's an aggregate or a result of a function call.
29010         Change calls from Subtype_Mark to Result_Definition.
29011         (Analyze_Subprogram_Body): Change formal Subtype_Mark to
29012         Result_Definition in call to Make_Function_Specification.
29013         (Build_Body_To_Inline): Change Set_Subtype_Mark to
29014         Set_Result_Definition.
29015         (Make_Inequality_Operator): Change formal Subtype_Mark to
29016         Result_Definition in call to Make_Function_Specification.
29017         (Process_Formals): Create the new null-excluding itype if required.
29018         (New_Overloaded_Entity): For an entity overriding an interface primitive
29019         check if the entity also covers other abstract subprograms in the same
29020         scope. This is required to handle the general case, that is, overriding
29021         other interface primitives and overriding abstract subprograms inherited
29022         from some abstract ancestor type.
29023         (New_Overloaded_Entity): For an overriding entity that comes from
29024         source, note the operation that it overrides.
29025         (Check_Conformance, Type_Conformant): Addition of one new formal
29026         to skip controlling formals in the analysis. This is used to
29027         handle overloading of abstract interfaces.
29028         (Base_Types_Match): Add missing case for types imported from
29029         limited-with clauses
29030         (New_Overloaded_Entity): Add barrier to protect the use of
29031         the "alias" attribute.
29032
29033 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
29034
29035         * sem_ch8.adb (Analyze_Renamed_Entry): For a renaming_as_declaration,
29036         verify that the procedure and the entry are mode conformant.
29037         (Analyze_Subprogram_Renaming): Emit a warning if an operator is renamed
29038         as a different operator, which is often a cut-and-paste error.
29039
29040 2005-09-01  Javier Miranda  <miranda@adacore.com>
29041             Ed Schonberg  <schonberg@adacore.com>
29042
29043         * sem_disp.adb (Check_Controlling_Formals): Anonymous access types
29044         used in controlling parameters exclude null because it is necessary to
29045         read the tag to dispatch, and null has no tag.
29046         (Override_Dispatching_Operation): If the previous operation is inherited
29047         from an interface, it becomes hidden  and does not participate in later
29048         name resolution.
29049
29050 2005-09-01  Javier Miranda  <miranda@adacore.com>
29051             Ed Schonberg  <schonberg@adacore.com>
29052             Gary Dismukes  <dismukes@adacore.com>
29053
29054         * sem_res.adb (Resolve_Membership_Op): In case of the membership test
29055         "Iface_CW_Typ in T'Class" we have nothing else to do in the frontend;
29056         the expander will generate the corresponding run-time check to evaluate
29057         the expression.
29058         (Resolve_Call): Check for legal type of procedure name or prefix that
29059         appears as a trigger in a triggering alternative.
29060         (Valid_Conversion): If expression is ambiguous and the context involves
29061         an extension of System, remove System.Address interpretations.
29062         (Resolve_Qualified_Expression): Reject the case of a specific-type
29063         qualification applied to a class-wide argument. Enhance comment
29064         to explain checking of Original_Node.
29065         (Resolve_Type_Conversion): The location of the error message was not
29066         general enough to handle the general case and hence it has been removed.
29067         In addition, this patch improves the text of the message.
29068         (Resolve_Type_Conversion): Add missing support for access to interface
29069         types.
29070         (Resolve_Type_Conversion): If the target is a class-wide interface type,
29071         do not expand if the expression is the actual in a call, because proper
29072         expansion will take place when the call itself is expanded.
29073         (Resolve_Allocator): If the context is an unchecked conversion, the
29074         allocator inherits its storage pool, if any, from the target type of
29075         the conversion.
29076
29077 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
29078             Javier Miranda  <miranda@adacore.com>
29079
29080         * sem_type.adb (Add_One_Interp): If a candidate operation is an
29081         inherited interface operation that has an implementation, use the
29082         implementation to avoid spurious ambiguities.
29083         (Interface_Present_In_Ancestor): In case of concurrent types we can't
29084         use the Corresponding_Record_Typ attribute to look for the interface
29085         because it is set by the expander (and hence it is not always
29086         available). For this reason we traverse the list of interfaces
29087         (available in the parent of the concurrent type).
29088         (Interface_Present_In_Ancestor): Handle entities from the limited view
29089
29090 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
29091
29092         * sem_util.ads, sem_util.adb (Gather_Components): Omit interface tags
29093         from the list of required components.
29094         (Is_Controlling_Limited_Procedure): Determine whether an entity is a
29095         primitive procedure of a limited interface with a controlling first
29096         parameter.
29097         (Is_Renamed_Entry): Determine whether an entry is a procedure renaming
29098         of an entry.
29099         (Safe_To_Capture_Value): A value (such as non_null) is not safe to
29100         capture if it is generated in the second operand of a short-circuit
29101         operation.
29102         Do not capture values for variables with address clauses.
29103         (Is_Object_Reference): Treat a function call as an object reference only
29104         if its type is not Standard_Void_Type.
29105
29106 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
29107
29108         * sem_warn.adb (Warn_On_Known_Condition): Refine warning when applied
29109         to a variable that is statically known to be constant.
29110
29111 2005-09-01  Geert Bosch  <bosch@adacore.com>
29112             Robert Dewar  <dewar@adacore.com>
29113
29114         * ttypef.ads (VAXDF_Safe_First): Use correct value for constant.
29115         (VAXGF_Safe_First): Idem.
29116
29117 2005-09-01  Robert Dewar  <dewar@adacore.com>
29118             Arnaud Charlet  <charlet@adacore.com>
29119
29120         * g-dirope.ads: Minor reformatting
29121         Document that bounds of result of Base_Name match the input index
29122         positions.
29123         Add documentation on environment variable syntax for Expand_Path
29124
29125         * gnat_ugn.texi: Update documentation to include mention of -m switches
29126         Document new treatment of wide characters in max line length
29127         style check.
29128         Remove -gnatL/-gnatZ switches, no longer used.
29129         Add note on pragmas Assertion_Policy and Debug_Policy in discussion
29130         of -gnata switch.
29131
29132         * gnat_rm.texi: Add doc for two argument form of pragma
29133         Float_Representation.
29134         Add documentation for pragma No_Strict_Aliasing
29135         Add note that explicit component clause overrides pragma Pack.
29136         Add documentation of pragma Debug_Policy
29137
29138 2005-09-01  Matthew Heaney  <heaney@adacore.com>
29139
29140         * a-cihase.adb, a-coorse.ads, a-coorse.adb, a-cohama.adb,
29141         a-ciorse.ads, a-ciorse.adb, a-cihama.adb, a-cdlili.adb,
29142         a-cidlli.adb, a-chtgop.adb, a-cihase.adb, a-cihase.ads,
29143         a-cohase.adb, a-cohase.adb, a-cohase.ads: Synchronized with latest
29144         draft (Draft 13, August 2005) of Ada Amendment 1.
29145
29146 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
29147
29148         * Makefile.in: Adjust the libgnat target pairs for Xscale to ARM.
29149         Note that the platform-specific version of g-soccon.ads for VMS is now
29150         named g-soccon-vms.ads (it was previously g-soccon-vms.adb, although it
29151         really is a package spec).
29152         Replace s-taspri-linux.ads by s-taspri-posix.ads
29153         Remove references to s-mastop-x86.adb
29154
29155         * system-vxworks-xscale.ads: Removed, no longer used.
29156         * s-vxwork-xscale.ads: Removed, no longer used.
29157
29158 2005-09-01  Robert Dewar  <dewar@adacore.com>
29159
29160         * a-dirval-mingw.adb, a-direct.adb, a-coinve.adb,
29161         g-dynhta.adb, g-dynhta.ads, cstand.adb, exp_smem.adb, g-debuti.ads,
29162         g-dirope.adb, g-table.adb, lib-sort.adb, sem_maps.adb,
29163         exp_fixd.adb, exp_aggr.adb, a-intnam-mingw.ads, a-intnam-vxworks.ads,
29164         g-arrspl.adb, g-arrspl.ads, g-awk.adb, g-awk.ads, g-boubuf.ads,
29165         g-boubuf.ads, g-boubuf.ads, g-bubsor.ads, g-bubsor.adb, g-busora.adb,
29166         g-busora.ads, g-busorg.adb, g-busorg.ads, g-calend.adb, g-calend.ads,
29167         g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads, g-cgi.adb,
29168         g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads, g-cgideb.adb, g-cgideb.ads,
29169         g-comlin.adb, g-comver.ads, g-semaph.ads, g-socthi.ads,
29170         sem_ch7.adb, a-direio.adb, a-caldel.ads, i-cstrea-vms.adb,
29171         a-ztedit.adb, a-ztenau.adb, g-socthi-vms.adb, g-socthi-vms.ads,
29172         g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vxworks.ads,
29173         a-intnam-irix.ads, a-intnam-irix.ads, a-intnam-hpux.ads,
29174         a-intnam-os2.ads, a-intnam-os2.ads, a-caldel-vms.adb, a-calend-vms.adb,
29175         a-calend-vms.ads, g-heasor.adb, g-heasor.ads, g-hesora.adb,
29176         g-hesora.ads, g-hesorg.adb, g-hesorg.ads, g-htable.adb, g-htable.ads,
29177         g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads, g-locfil.ads,
29178         g-memdum.adb, g-memdum.ads, g-traceb.adb, g-traceb.ads, i-cobol.adb,
29179         i-cobol.ads, i-cstrea.ads, i-cstrin.adb, a-wtedit.adb, a-tifiio.adb,
29180         a-wtenau.adb, a-wtenau.adb, a-teioed.adb: Minor reformatting
29181
29182 2005-08-29  Arnaud Charlet  <charlet@adacore.com>
29183
29184         PR ada/23187
29185         * adaint.c
29186         (GNAT_MAXPATH_LEN): Use default value if MAXPATHLEN is undefined.
29187
29188 2005-08-29  Arnaud Charlet  <charlet@adacore.com>
29189             Doug Rupp  <rupp@adacore.com>
29190
29191         * s-stalib.adb: Add missing pragma Warnings (On) to reenable Warnings
29192         when needed.
29193         (Inside_Elab_Final_Code): Moved to init.c to avoid having to keep
29194         this code in the GNAT run-time.
29195
29196         * decl.c, fe.h: Replace GCC_ZCX by Back_End_Exceptions.
29197
29198         PR ada/21053
29199         * init.c (__gnat_error_handler [many]): Mark "msg" as const
29200         (__gnat_error_handler [HPUX]): Mark siginfo parameter as unused
29201
29202         (__gnat_inside_elab_final_code): Moved here from
29203         Standard_Library and only defined for the compiler.
29204         __gnat_error_handler [VMS]: Adjust sigargs to account for PC & PSL.
29205         (__gnat_inum_to_ivec): Do not define this function on VxWorks when
29206         using RTPs because directly vectored Interrupt routines are not
29207         supported on this configuration.
29208         (getpid): Do not redefine this function on VxWorks when using RTPs
29209         because this primitive is well supported by the RTP libraries.
29210         (copy_msg): Correct the code that checks for buffer overflow.
29211         Discovered during code reading.
29212
29213 2005-08-29  Olivier Hainque  <hainque@adacore.com>
29214
29215         * decl.c (gnat_to_gnu_entity) <E_Variable>: When allocating storage for
29216         a library level mutable variable with an initializer, tell
29217         build_allocator to ignore the initializer's size. It may not be large
29218         enough for all the values that might be assigned to the variable later
29219         on.
29220
29221 2005-08-29  Arnaud Charlet  <charlet@adacore.com>
29222             Eric Botcazou  <ebotcazou@adacore.com>
29223
29224         * trans.c: Protect < in error msg with quote
29225         Replace GCC_ZCX by Back_End_Exceptions.
29226         (addressable_p) <COMPONENT_REF>: Also return 1 if the field
29227         has been sufficiently aligned in the record.
29228
29229 2005-08-15  James E. Wilson  <wilson@specifix.com>
29230
29231         * system-linux-alpha.ads: Change ia64 to alpha.
29232
29233 2005-08-01  Kazu Hirata  <kazu@codesourcery.com>
29234
29235         * decl.c, utils.c: Fix comment typos.
29236
29237 2005-07-29  Kazu Hirata  <kazu@codesourcery.com>
29238
29239         * decl.c, init.c, initialize.c: Fix comment typos.
29240
29241 2005-07-20  Giovanni Bajo  <giovannibajo@libero.it>
29242
29243         Make CONSTRUCTOR use VEC to store initializers.
29244         * decl.c (gnat_to_gnu_entity): Update to cope with VEC in
29245         CONSTRUCTOR_ELTS.
29246         * trans.c (extract_values): Likewise.
29247         * utils.c (convert, remove_conversions): Likewise.
29248         * utils2.c (contains_save_expr_p, build_binary_op, build_unary_op,
29249         gnat_build_constructor): Likewise.
29250
29251 2005-07-09  Andrew Pinski  <pinskia@physics.uc.edu>
29252
29253         * decl.c (components_to_record): Use DECL_FCONTEXT instead of
29254         DECL_SECTION_NAME.
29255         (compare_field_bitpos): Likewise.
29256
29257 2005-07-09  Andrew Pinski  <pinskia@physics.uc.edu>
29258
29259         * utils.c (create_var_decl): Only set DECL_COMMON on
29260         VAR_DECLs. Only set SET_DECL_ASSEMBLER_NAME on
29261         VAR_OR_FUNCTION_DECL_P.
29262
29263 2005-07-08  Daniel Berlin  <dberlin@dberlin.org>
29264
29265         * utils.c (create_param_decl): DECL_ARG_TYPE_AS_WRITTEN is
29266         removed.
29267
29268 2005-07-07  Pascal Obry  <obry@adacore.com>
29269
29270         * g-socthi-mingw.adb (C_Inet_Addr): New body used to convert the
29271         returned type on Windows.
29272
29273         * g-socthi-mingw.ads (C_Inet_Addr): Remove pragma Import for this
29274         routine.
29275
29276         * g-socket.adb (Inet_Addr): Check for empty Image and raises an
29277         exception in this case.
29278         Simplify the code as "Image (Image'Range)" = "Image".
29279
29280 2005-07-07  Vincent Celier  <celier@adacore.com>
29281
29282         * bindgen.adb (Gen_Output_File_C): When switch -a was specified, put
29283         the destructor/constructor attributes for <lib>final/<lib>init.
29284
29285         * gnatbind.adb (Gnatbind): Allow -a to be used in conjunction with -C
29286
29287 2005-07-07  Eric Botcazou  <ebotcazou@adacore.com>
29288
29289         * decl.c (gnat_to_gnu_entity) <E_Procedure>: Do not strip the padding
29290         type if the parameter is not passed by copy but reference by default.
29291
29292 2005-07-07  Javier Miranda  <miranda@adacore.com>
29293
29294         * exp_ch3.adb (Build_Record_Init_Proc/Freeze_Record_Type):
29295         Reimplementation of the support for abstract interface types in order
29296         to leave the code more clear and easy to maintain.
29297
29298         * exp_ch6.adb (Freeze_Subprogram): Reimplementation of the support for
29299         abstract interface types in order to leave the code clearer and easier
29300         to maintain.
29301
29302         * exp_disp.ads, exp_disp.adb (Fill_DT_Entry): Part of its functionality
29303         is now implemented by the new subprogram Fill_Secondary_DT_Entry.
29304         (Fill_Secondary_DT_Entry): Generate the code necessary to fill the
29305         appropriate entry of the secondary dispatch table.
29306         (Make_DT): Add code to inherit the secondary dispatch tables of
29307         the ancestors.
29308
29309         * exp_util.adb (Find_Interface_Tag/Find_Interface_ADT): Instead of
29310         implementing both functionalities by means of a common routine, each
29311         routine has its own code.
29312
29313 2005-07-07  Javier Miranda  <miranda@adacore.com>
29314
29315         * freeze.adb (Freeze_Entity): Check wrong uses of tag incomplete types.
29316
29317         * par-ch3.adb (P_Type_Declaration): Give support to tagged incomplete
29318         types:
29319         --
29320           type DEFINING_IDENTIFIER [DISCRIMINANT_PART] [IS TAGGED];
29321         --
29322
29323         * sem_attr.adb (Check_Not_Incomplete_Type): Additional checks for wrong
29324         use of tag incomplete types.
29325
29326         * sem_ch3.adb (Analyze_Incomplete_Type): Add mininum decoration to
29327         give support to tagged incomplete types.
29328
29329         * sem_ch5.adb (Analyze_Case_Statement): In generated code, if the
29330         expression is a discriminant reference and its type is private, as can
29331         happen within a stream operation for a mutable record, use the full
29332         view of the type to resolve the case alternatives.
29333         (Analyze_Assignment): Check wrong dereference of incomplete types.
29334
29335         * sem_ch6.adb (Process_Formals): Allow the use of tagged incomplete
29336         types.
29337
29338         * sem_res.adb (Resolve_Explicit_Dereference): Allow the use of tagged
29339         incomplete types.
29340
29341         * sinfo.adb (Taggged_Present/Set_Taggged_Present): Applicable to
29342         N_Incomplete_Type_Declaration nodes.
29343
29344         * sinfo.ads (N_Incomplete_Type_Declaration): Addition of attribute
29345         Tag_Present to give support to tagged incomplete types:
29346         --
29347           type DEFINING_IDENTIFIER [DISCRIMINANT_PART] [IS TAGGED];
29348         --
29349
29350 2005-07-07  Olivier Hainque  <hainque@adacore.com>
29351
29352         PR ada/22301
29353         * raise.c: Only include unwind.h if IN_RTS, and provide dummy type
29354         definitions for the Unwind wrappers in the compiler case.
29355
29356 2005-07-07  Ed Schonberg  <schonberg@adacore.com>
29357             Javier Miranda  <miranda@adacore.com>
29358
29359         * par-load.adb (Load): If a child unit is loaded through a limited_with
29360         clause, each parent must be loaded as a limited unit as well.
29361
29362         * sem_ch10.adb (Previous_Withed_Unit): Better name for
29363         Check_Withed_Unit. Return true if there is a previous with_clause for
29364         this unit, whether limited or not.
29365         (Expand_Limited_With_Clause): Do not generate a limited_with_clause on
29366         the current unit.
29367         (Is_Visible_Through_Renamings): New local subprogram of install_limited
29368         _withed_unit that checks if some package installed through normal with
29369         clauses has a renaming declaration of package whose limited-view is
29370         ready to be installed. This enforces the check of the rule 10.1.2 (21/2)
29371         of the current Draft document for Ada 2005.
29372         (Analyze_Context): Complete the list of compilation units that
29373         are allowed to contain limited-with clauses. It also contains
29374         checks that were previously done by Install_Limited_Context_Clauses.
29375         This makes the code more clear and easy to maintain.
29376         (Expand_Limited_With_Clause) It is now a local subprogram of
29377         Install_Limited_Context_Clauses, and contains the code that adds
29378         the implicit limited-with clauses for parents of child units.
29379         This functionality was prevously done by Analyze_Context.
29380
29381         * sem_ch4.adb (Analyze_Selected_Component): Check wrong use of
29382         incomplete type.
29383
29384         * sem_ch7.adb (Analyze_Package_Declaration): Check if the package has
29385         been erroneously named in a limited-with clause of its own context.
29386         In this case the error has been previously notified by Analyze_Context.
29387
29388 2005-07-07  Ed Schonberg  <schonberg@adacore.com>
29389
29390         * sem_ch8.adb (Find_Direct_Name): Handle properly the case of a
29391         generic package that contains local declarations with the same name.
29392         (Analyze_Object_Renaming): Check wrong renaming of incomplete type.
29393
29394 2005-07-07  Bernard Banner  <banner@adacore.com>
29395
29396         * tracebak.c: Refine tracebacks to use Unwind_Backtrace scheme on
29397         ia64 platform only on platforms that you the GCC unwind library
29398         rather than the system unwind library.
29399
29400 2005-07-07  Thomas Quinot  <quinot@adacore.com>
29401
29402         * expect.c: Minor reformatting
29403
29404 2005-07-07  Sergey Rybin  <rybin@adacore.com>
29405
29406         * vms_data.ads: Add VMS qualifiers for new gnatpp switch
29407         --no-separate-is
29408
29409         * gnat_ugn.texi: Add description for new gnatpp option
29410         (--no-separate-is)
29411
29412 2005-07-04  Thomas Quinot  <quinot@adacore.com>
29413
29414         * g-expect-vms.adb, g-expect.ads, g-expect.adb
29415         (Get_Command_Output): New subprogram to launch a process and get its
29416         standard output as a string.
29417
29418 2005-07-04  Eric Botcazou  <ebotcazou@adacore.com>
29419             Olivier Hainque  <hainque@adacore.com>
29420
29421         * s-mastop-tru64.adb (Pop_Frame): Use exc_lookup_function_entry to
29422         fetch a code-range descriptor associated with the machine state. On
29423         failure set the machine state's PC to 0; on success, pass the
29424         descriptor to exc_virtual_unwind.
29425
29426         * init.c (Tru64 section): New function __gnat_set_code_loc.
29427
29428 2005-07-04  Vincent Celier  <celier@adacore.com>
29429
29430         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
29431         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
29432         mlib-tgt-mingw.adb, mlib-tgt-darwin.adb (Build_Dynamic_Library):
29433         Remove all auto-initialization code, as this is now done through the
29434         constructor mechanism.
29435
29436         * adaint.h, adaint.c (__gnat_binder_supports_auto_init,
29437         __gnat_sals_init_using_constructors): New functions.
29438
29439         * bindgen.adb (Gen_Output_File_Ada): Generate pragmas
29440         Linker_Constructor and Linker_Destructor when switch -a is used.
29441
29442         * bindusg.adb: Add line for new switch -a
29443
29444         * gnatbind.adb (Gnatbind_Supports_Auto_Init): New Boolean function
29445         (Gnatbind): When switch -a is used, check if it is allowed
29446
29447         * switch-b.adb (Scan_Binder_Switches): Process new switch -a
29448
29449 2005-07-04  Joel Brobecker  <brobecker@adacore.com>
29450
29451         * a-tags.adb (Type_Specific_Data): Define Tags_Table as a small array.
29452         This prevents us from hitting a limitation during the debug info
29453         generation when using stabs.
29454         (Prims_Ptr): Likewise.
29455
29456 2005-07-04  Gary Dismukes  <dismukes@adacore.com>
29457             Ed Schonberg  <schonberg@adacore.com>
29458             Javier Miranda  <miranda@adacore.com>
29459
29460         * checks.adb (Null_Exclusion_Static_Checks): In the case of
29461         N_Object_Declaration, only perform the checks if the Object_Definition
29462         is not an Access_Definition.
29463
29464         * sem_ch3.adb (Access_Subprogram_Declaration): Add test for the case
29465         where the parent of an the access definition is an N_Object_Declaration
29466         when determining the Associated_Node_For_Itype and scope of an
29467         anonymous access-to-subprogram type.
29468
29469         * exp_ch6.adb (Expand_N_Subprogram_Declaration): Set the
29470         Corresponding_Spec on the body created for a null procedure. Add ???
29471         comment. Remove New_Copy_Tree call on body argument to
29472         Set_Body_To_Inline.
29473
29474         * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): For an out parameter with
29475         discriminants, use the type of the actual as well, because the
29476         discriminants may be read by the called subprogram.
29477
29478         * sem_ch3.adb (Access_Type_Declaration): If the designated type is an
29479         access type we do not need to handle non-limited views.
29480         (Build_Derived_Record_Type): Additional check to check that in case of
29481         private types, interfaces are only allowed in private extensions.
29482
29483 2005-07-04  Eric Botcazou  <ebotcazou@adacore.com>
29484
29485         * decl.c (prepend_attributes) <Pragma_Linker_Constructor>: New case.
29486         <Pragma_Linker_Destructor>: Likewise.
29487
29488         * einfo.ads (Has_Gigi_Rep_Item): Document Pragma_Linker_Constructor and
29489         Pragma_Linker_Destructor.
29490
29491         * gigi.h (attr_type): Add ATTR_LINK_CONSTRUCTOR and
29492         ATTR_LINK_DESTRUCTOR.
29493         (static_ctors, static_dtors): New variables.
29494
29495         * misc.c (gnat_expand_body): Output current function as constructor
29496         and destructor if requested.
29497
29498         * par-prag.adb: Add processing for pragma Linker_Constructor and
29499         Linker_Destructor.
29500
29501         * sem_prag.adb (Find_Unique_Parameterless_Procedure): New function
29502         extracted from Check_Interrupt_Or_Attach_Handler.
29503         (Check_Interrupt_Or_Attach_Handler): Invoke it.
29504         Implement pragma Linker_Constructor and Linker_Destructor with the
29505         help of Find_Unique_Parameterless_Procedure.
29506         Replace Name_Alias with Name_Target for pragma Linker_Alias.
29507
29508         * snames.h, snames.ads, snames.adb:
29509         Add Name_Linker_Constructor and Name_Linker_Destructor.
29510         Add Pragma_Linker_Constructor and Pragma_Linker_Destructor.
29511         * snames.adb: Remove Name_Alias.
29512
29513         * trans.c: Include cgraph.h.
29514         (build_global_cdtor): New function.
29515         (Compilation_Unit_to_gnu): Build global constructor and destructor if
29516         needed.
29517         (tree_transform) <N_Identifier>: Substitute renaming of view-conversions
29518         of objects too.
29519         (addressable_p) <COMPONENT_REF>: Unconditionally test
29520         DECL_NONADDRESSABLE_P on STRICT_ALIGNMENT platforms.
29521
29522         * utils.c (process_attributes) <ATTR_LINK_ALIAS>: Do not assemble the
29523         variable if it is external.
29524
29525         (static_ctors, static_dtors): New global variables.
29526         (process_attributes) <ATTR_LINK_CONSTRUCTOR>: New case.
29527         <ATTR_LINK_DESTRUCTOR>: Likewise.
29528         (end_subprog_body): Chain function as constructor and destructor
29529         if requested.
29530
29531         * exp_util.adb (Force_Evaluation): Unconditionally invoke
29532         Remove_Side_Effects with Variable_Ref set to true.
29533         (Remove_Side_Effects): Handle scalar types first. Use a renaming
29534         for non-scalar types even if Variable_Ref is true and for class-wide
29535         expressions.
29536
29537 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
29538
29539         * exp_attr.adb (Mod): Evaluate condition expression with checks off,
29540         to prevent spurious warnings.
29541
29542 2005-07-04  Thomas Quinot  <quinot@adacore.com>
29543
29544         * exp_dist.adb (Build_TypeCode_Call): Remove incorrect processing for
29545         Itypes. Itypes are really unexpected there.
29546         (Build_TypeCode_Function): Generalise special processing for Itypes to
29547         handle the case of numeric implicit base types as well as enumerated
29548         ones.
29549
29550 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
29551
29552         * exp_intr.adb (Expand_Unc_Deallocation): If the designated type is
29553         controlled, indicate the expected type of the dereference that is
29554         created for the call to Deep_Finalize, to prevent spurious errors when
29555         the designated type is private and completed with a derivation from
29556         another private type.
29557
29558 2005-07-04  Vincent Celier  <celier@adacore.com>
29559
29560         * make.adb (Change_To_Object_Directory): When unable to change the
29561         current dir to the object directory, output the full path of the
29562         directory.
29563
29564 2005-07-04  Matthew Gingell  <gingell@adacore.com>
29565
29566         * Makefile.in: Replace indepsw-linux.adb by indepsw-gnu.adb
29567
29568         * indepsw-linux.adb: Replace by...
29569
29570         * indepsw-gnu.adb: ...this new file
29571
29572 2005-07-04  Vincent Celier  <celier@adacore.com>
29573
29574         * mlib-prj.adb (Auto_Initialize): New constant String
29575         (SALs_Use_Constructors): New Boolean function
29576         (Build_Library): Call gnatbind with Auto_Initialize switch when
29577         SALs_Use_Constructors returns True.
29578
29579         * mlib-tgt.ads: Minor reformatting
29580
29581         * mlib-utl.ads: Minor reformatting
29582
29583         * opt.ads: (Use_Pragma_Linker_Constructor): New Boolean flag
29584
29585 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
29586
29587         * par-ch9.adb (P_Task, P_Protected): Indicate that single task and
29588         single protected declarations can have an interface list.
29589         (P_Entry_Declaration): Add handler for Error_Resync, which can be raised
29590         with seriously malformed entry declarations, and lead to compilation
29591         abandoned messages.
29592
29593 2005-07-04  Javier Miranda  <miranda@adacore.com>
29594
29595         * par-load.adb: Load the context items in two rounds.
29596
29597 2005-07-04  Robert Dewar  <dewar@adacore.com>
29598
29599         * scng.adb: Do not consider Mod used as an attribute to be a keyword
29600
29601 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
29602             Javier Miranda  <miranda@adacore.com>
29603
29604         * sem_ch10.adb (Build_Limited_Views): A type declared with a private
29605         type extension needs a limited view.
29606         Remove previous restriction on private types available through the
29607         limited-view (only tagged private types were previously allowed).
29608         (Install_Withed_Unit): In the code that implements the
29609         legality rule given in AI-377, exclude a child unit with the name
29610         Standard, because it is a homonym of the Standard environment package.
29611
29612 2005-07-04  Thomas Quinot  <quinot@adacore.com>
29613
29614         * sem_ch4.adb (Transform_Object_Operation): For an actual that is an
29615         overloaded function call, carry interpretations from the original tree
29616         to the copy.
29617
29618 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
29619
29620         * sem_ch6.adb (Conforming_Types): If the types are anonymous access
29621         types check whether some designated type is a limited view, and use
29622         the non-limited view if available.
29623
29624 2005-07-04  Gary Dismukes  <dismukes@adacore.com>
29625
29626         * sem_eval.adb (Subtypes_Statically_Match): Use the discriminant
29627         constraint of full view of a private view T1 if present, when T2 is a
29628         discriminated full view.
29629
29630 2005-07-04  Thomas Quinot  <quinot@adacore.com>
29631
29632         * sem_res.adb (Resolve_Actuals): Do not resolve the expression of an
29633         actual that is a view conversion of a bit packed array reference.
29634
29635 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
29636
29637         * sem_type.adb (Covers): Verify that Corresponding_Record_Type is
29638         present before checking whether an interface type covers a synchronized
29639         type.
29640
29641 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
29642
29643         * sem_util.adb (Is_Object_Reference): An indexed or selected component
29644         whose prefix is an implicit dereference is an object reference. Removes
29645         spurious errors when compiling with -gnatc.
29646
29647 2005-07-04  Robert Dewar  <dewar@adacore.com>
29648
29649         PR ada/22039
29650         * s-sopco3.ads, s-sopco4.ads, s-sopco5.ads: Minor documentation fix
29651
29652 2005-07-04  Matthew Gingell  <gingell@adacore.com>
29653
29654         * tracebak.c: Enable tracebacks on ia64 platforms
29655
29656 2005-07-04  Vincent Celier  <celier@adacore.com>
29657
29658         * vms_conv.adb (Initialize): Allow multiple ALI files to be given to
29659         the GNAT BIND command, as gnatbind accepts multiples ALI files with
29660         the -L or -n switches.
29661
29662 2005-07-04  Vincent Celier  <celier@adacore.com>
29663
29664         * makegpr.adb (Build_Global_Archive): Make sure the list of sources is
29665         correctly computed and the main project data is not modified while
29666         doing so.
29667         (Add_C_Plus_Plus_Link_For_Gnatmake): Always link with the C++ compiler
29668         (Choose_C_Plus_Plus_Link_Process): Do not generate shell script
29669         c++linker as this does not work on some platforms.
29670
29671 2005-07-04  Matthew Heaney  <heaney@adacore.com>
29672
29673         * a-convec.ads, a-coinve.ads: Declaration of subtype Extended_Index
29674         was changed.
29675         * a-coinve.adb: Perform constraint checks explicitly.
29676
29677 2005-07-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
29678             Thomas Quinot  <quinot@adacore.com>
29679
29680         * Make-lang.in: (ada/targtyps.o): Add missing TREE_H dependency.
29681         new target gen-soccon.
29682
29683 2005-07-04  Robert Dewar  <dewar@adacore.com>
29684
29685         * s-mastop-irix.adb, s-mastop-vms.adb: Minor reformatting
29686
29687 2005-07-04  Thomas Quinot  <quinot@adacore.com>
29688
29689         * g-socket.ads (Check_Selector): Minor rewording of comment.
29690
29691 2005-07-04  Vincent Celier  <celier@adacore.com>
29692
29693         * vms_data.ads: Add VMS qualifiers for new gnatpp switch --eol=
29694
29695 2005-07-04  Thomas Quinot  <quinot@adacore.com>
29696
29697         * gen-soccon.c: Add constants SO_SNDTIMEO and SO_RCVTIMEO.
29698
29699 2005-07-04  Sergey Rybin  <rybin@adacore.com>
29700
29701         * gnat_ugn.texi: Add description of --eol gnatpp option
29702
29703 2005-07-04  Eric Botcazou  <ebotcazou@adacore.com>
29704             Thomas Quinot  <quinot@adacore.com>
29705
29706         * gnat_rm.texi: Add a note that pragma Unreferenced is not appropriate
29707         if the user wants all calls of a subprogram to be flagged,
29708         independently of whether they are made from within the same unit or
29709         another unit.
29710         Mention restriction for pragma Linker_Alias on some platforms.
29711         Document pragma Linker_Constructor and Linker_Destructor.
29712         Rewrite documentation of Weak_External, Linker_Section and
29713         Linker_Alias pragmas.
29714
29715 2005-07-04  Arnaud Charlet  <charlet@adacore.com>
29716
29717         * s-stausa.ads, s-stausa.adb: New files.
29718
29719 2005-06-30  Kelley Cook
29720
29721         * all files:  Update FSF address in copyright headers.
29722         * gen-soccon.co (main): Output new FSF address in generated files.
29723
29724 2005-06-28  Paul Brook  <paul@codesourcery.com>
29725
29726         * misc.c (gnat_init_gcc_eh): Call default_init_unwind_resume_libfunc.
29727
29728 2005-06-14  Olivier Hainque  <hainque@adacore.com>
29729             Eric Botcazou  <ebotcazou@adacore.com>
29730
29731         * s-mastop-irix.adb (Pop_Frame): Revert shorcuts avoiding calls to
29732         exc_unwind, now that we are generating proper .debug_frame output for
29733         that target.
29734
29735         * tracebak.c: Remove the mips-irix section, as we are now using the
29736         s-mastop based unwinder again.
29737         Under SPARC/Solaris, take into account the stack bias to compute the
29738         frame offset.  The stack bias is 0 for the V8 ABI and 2047 for the V9
29739         ABI.
29740
29741 2005-06-14  Doug Rupp  <rupp@adacore.com>
29742
29743         * g-trasym-vms.adb: renamed g-trasym-vms-alpha.adb
29744
29745         * g-trasym-vms-alpha.adb, g-trasym-vms-ia64.adb: New files
29746
29747 2005-06-14  Pascal Obry  <obry@adacore.com>
29748
29749         * a-strhas.ads, a-secain.adb, a-secain.ads, a-rbtgso.ads, a-cgaaso.adb,
29750         a-cgaaso.ads, a-cgarso.adb, a-cgcaso.adb, a-cgarso.ads, a-cgcaso.ads,
29751         a-contai.ads, a-coprnu.ads, a-coprnu.adb: Fix header style (spaces in
29752         package name).
29753
29754         * a-intnam-lynxos.ads, a-intnam-unixware.ads, a-intnam-tru64.ads,
29755         a-intnam-aix.ads, a-intnam-irix.ads, a-excpol-interix.adb,
29756         a-intnam-hpux.ads, a-intnam-linux.ads, a-intnam-dummy.ads,
29757         a-intnam-os2.ads, a-numaux-libc-x86.ads, a-intnam-interix.ads,
29758         a-intnam-solaris.ads, a-caldel-vms.adb, a-calend-vms.ads,
29759         a-intnam-vms.ads, a-excpol-abort.adb, a-intnam-mingw.ads,
29760         a-intnam-vxworks.ads, a-numaux-vxworks.ads, s-osinte-unixware.adb,
29761         s-osinte-unixware.ads, s-osinte-lynxos-3.adb, s-osinte-lynxos-3.ads,
29762         s-osinte-hpux.ads, s-osinte-solaris-posix.ads, a-intnam-freebsd.ads,
29763         s-osinte-freebsd.adb, s-osinte-freebsd.ads, s-osinte-lynxos.adb,
29764         s-osinte-lynxos.ads, s-tpopsp-lynxos.adb, s-osinte-tru64.adb,
29765         s-osinte-tru64.ads, s-tpopsp-posix-foreign.adb, s-vxwork-alpha.ads,
29766         s-osinte-aix.adb, s-osinte-aix.ads, s-osinte-aix-fsu.ads,
29767         s-osinte-irix.adb, s-osinte-irix.ads, s-interr-sigaction.adb,
29768         s-osinte-irix-athread.ads, s-osinte-hpux-dce.adb,
29769         s-osinte-hpux-dce.ads, s-osinte-posix.adb, s-osinte-linux.ads,
29770         s-vxwork-m68k.ads, s-osinte-linux-fsu.ads, s-vxwork-mips.ads,
29771         s-osinte-dummy.ads, s-interr-dummy.adb, s-osinte-os2.adb,
29772         s-osinte-os2.ads, s-osprim-os2.adb, s-osinte-interix.ads,
29773         s-osprim-unix.adb, s-vxwork-ppc.ads, s-osinte-solaris.adb,
29774         s-osinte-solaris.ads, s-osprim-solaris.adb, s-tpopsp-solaris.adb,
29775         s-vxwork-sparcv9.ads, s-osinte-solaris-fsu.ads, s-interr-vms.adb,
29776         s-osinte-vms.adb, s-osinte-vms.ads, s-osprim-vms.adb,
29777         s-osprim-vms.ads, s-tpopde-vms.adb, s-tpopde-vms.ads,
29778         s-osprim-mingw.adb, s-vxwork-xscale.ads, s-interr-vxworks.adb,
29779         s-osinte-vxworks.adb, s-osinte-vxworks.ads, s-osprim-vxworks.adb,
29780         s-tfsetr-vxworks.adb, s-tpopsp-vxworks.adb, s-intman-posix.adb,
29781         s-osinte-fsu.adb, s-osprim-posix.adb, s-tfsetr-default.adb,
29782         s-tpopsp-posix.adb, s-traces-default.adb, s-trafor-default.adb,
29783         s-trafor-default.ads, s-tratas-default.adb, a-numaux-x86.adb,
29784         a-numaux-x86.ads, a-astaco.adb, a-astaco.ads, a-caldel.adb,
29785         a-caldel.ads, a-charac.ads, a-chlat1.ads, a-chlat9.ads, a-colien.adb,
29786         a-colien.ads, a-colire.adb, a-colire.ads, a-comlin.adb, a-cwila1.ads,
29787         a-cwila9.ads, ada.ads, a-decima.adb, a-diocst.ads, a-direio.adb,
29788         a-dynpri.adb, a-dynpri.ads, a-excpol.adb, a-flteio.ads, a-fwteio.ads,
29789         a-inteio.ads, a-interr.adb, a-intnam.ads, a-intsig.adb, a-intsig.ads,
29790         a-ioexce.ads, a-iwteio.ads, a-lfteio.ads, a-lfwtio.ads, a-liteio.ads,
29791         a-liwtio.ads, a-llftio.ads, a-llfwti.ads, a-llitio.ads, a-lliwti.ads,
29792         a-ncelfu.ads, a-ngcefu.adb, a-ngcefu.ads, a-ngcoty.adb, a-ngelfu.adb,
29793         a-ngelfu.ads, a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads,
29794         a-nllcty.ads, a-nllefu.ads, a-nscefu.ads, a-nscoty.ads, a-nselfu.ads,
29795         a-nucoty.ads, a-nudira.adb, a-nuelfu.ads, a-nuflra.adb, a-numaux.ads,
29796         a-numeri.ads, a-reatim.adb, a-retide.adb, a-retide.ads, a-sequio.adb,
29797         a-sequio.ads, a-sfteio.ads, a-sfwtio.ads, a-siocst.ads, a-siteio.ads,
29798         a-siwtio.ads, a-ssicst.ads, a-ssitio.ads, a-ssiwti.ads, a-stmaco.ads,
29799         a-storio.adb, a-strbou.adb, a-strfix.adb, a-string.ads, a-strmap.adb,
29800         a-strsea.adb, a-strsup.adb, a-strunb.ads, a-ststio.adb, a-stunau.adb,
29801         a-stunau.ads, a-stwibo.adb, a-stwifi.adb, a-stwifi.ads, a-stwima.adb,
29802         a-stwise.adb, a-stwisu.adb, a-suteio.adb, a-suteio.ads, a-swuwti.adb,
29803         a-swuwti.ads, a-teioed.adb, a-ticoau.adb, a-ticoau.ads, a-ticoio.adb,
29804         a-tideau.adb, a-tideio.adb, a-tienau.adb, a-tienio.adb, a-tifiio.adb,
29805         a-tiflio.adb, a-tigeau.adb, a-tigeau.ads, a-tiinio.adb, a-timoau.adb,
29806         a-timoio.adb, a-timoio.ads, a-tiocst.ads, a-titest.adb, a-titest.ads,
29807         a-witeio.adb, a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads,
29808         a-wtcstr.ads, a-wtdeau.adb, a-wtdeio.adb, a-wtenau.adb, a-wtenio.adb,
29809         a-wtfiio.adb, a-wtflio.adb, a-wtgeau.adb, a-wtinau.adb, a-wtinio.adb,
29810         a-wtinio.ads, a-wtmoau.adb, a-wtmoio.adb, a-wttest.adb, calendar.ads,
29811         dec.ads, dec-io.adb, dec-io.ads, directio.ads, errno.c, g-bubsor.adb,
29812         g-bubsor.ads, g-busora.adb, g-busora.ads, g-busorg.adb, g-busorg.ads,
29813         g-casuti.adb, g-casuti.ads, g-debuti.ads, g-heasor.adb, g-heasor.ads,
29814         g-hesora.adb, g-hesora.ads, g-hesorg.adb, g-hesorg.ads, g-htable.adb,
29815         g-htable.ads, g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads,
29816         g-memdum.adb, g-memdum.ads, g-sestin.ads, g-signal.ads, g-signal.adb,
29817         gnat.ads, g-souinf.ads, g-speche.adb, g-speche.ads, g-table.adb,
29818         g-table.ads, g-thread.adb, g-thread.ads, ioexcept.ads, i-vxwoio.adb,
29819         i-vxwoio.ads, math_lib.adb, s-assert.adb, s-assert.ads, s-asthan.ads,
29820         s-bitops.adb, s-bitops.ads, s-boarop.ads, s-carsi8.adb, s-carsi8.ads,
29821         s-carun8.adb, s-carun8.ads, s-casi16.adb, s-casi16.ads, s-casi32.adb,
29822         s-casi32.ads, s-casi64.adb, s-casi64.ads, s-casuti.adb, s-casuti.ads,
29823         s-caun16.adb, s-caun16.ads, s-caun32.adb, s-caun32.ads, s-caun64.adb,
29824         s-caun64.ads, s-direio.adb, s-direio.ads, sequenio.ads, s-errrep.adb,
29825         s-errrep.ads, s-exnint.adb, s-exnint.ads, s-exnllf.adb, s-exnllf.ads,
29826         s-exnlli.adb, s-exnlli.ads, s-expint.adb, s-expint.ads, s-explli.adb,
29827         s-explli.ads, s-expllu.adb, s-expllu.ads, s-expmod.adb, s-expmod.ads,
29828         s-expuns.adb, s-expuns.ads, s-fore.adb, s-fore.ads, s-geveop.adb,
29829         s-geveop.ads, s-htable.adb, s-htable.ads, s-imgbiu.adb, s-imgbiu.ads,
29830         s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads, s-imgdec.adb,
29831         s-imgdec.ads, s-imgenu.adb, s-imgenu.ads, s-imgint.adb, s-imgint.ads,
29832         s-imgllb.adb, s-imgllb.ads, s-imglld.adb, s-imglld.ads, s-imglli.adb,
29833         s-imglli.ads, s-imgllu.adb, s-imgllu.ads, s-imgllw.adb, s-imgllw.ads,
29834         s-imgrea.ads, s-imguns.adb, s-imguns.ads, s-imgwiu.adb, s-imgwiu.ads
29835         s-interr.ads, s-io.adb, s-mantis.adb, s-mantis.ads, s-osprim.ads,
29836         s-pack03.adb, s-pack03.ads, s-pack05.adb, s-pack05.ads, s-pack06.adb,
29837         s-pack06.ads, s-pack07.adb, s-pack07.ads, s-pack09.adb, s-pack09.ads,
29838         s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads, s-pack12.adb,
29839         s-pack12.ads, s-pack13.adb, s-pack13.ads, s-pack14.adb, s-pack14.ads,
29840         s-pack15.adb, s-pack15.ads, s-pack17.adb, s-pack17.ads, s-pack18.adb,
29841         s-pack18.ads, s-pack19.adb, s-pack19.ads, s-pack20.adb, s-pack20.ads,
29842         s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads, s-pack23.adb,
29843         s-pack23.ads, s-pack24.adb, s-pack24.ads, s-pack25.adb, s-pack25.ads,
29844         s-pack26.adb, s-pack26.ads, s-pack27.adb, s-pack27.ads, s-pack28.adb,
29845         s-pack28.ads, s-pack29.adb, s-pack29.ads, s-pack30.adb, s-pack30.ads,
29846         s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads, s-pack34.adb,
29847         s-pack34.ads, s-pack35.adb, s-pack35.ads, s-pack36.adb, s-pack36.ads,
29848         s-pack37.adb, s-pack37.ads, s-pack38.adb, s-pack38.ads, s-pack39.adb,
29849         s-pack39.ads, s-pack40.adb, s-pack40.ads, s-pack41.adb, s-pack41.ads,
29850         s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads, s-pack44.adb,
29851         s-pack44.ads, s-pack45.adb, s-pack45.ads, s-pack46.adb, s-pack46.ads,
29852         s-pack47.adb, s-pack47.ads, s-pack48.adb, s-pack48.ads, s-pack49.adb,
29853         s-pack49.ads, s-pack50.adb, s-pack50.ads, s-pack51.adb, s-pack51.ads,
29854         s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads, s-pack54.adb,
29855         s-pack54.ads, s-pack55.adb, s-pack55.ads, s-pack56.adb, s-pack56.ads,
29856         s-pack57.adb, s-pack57.ads, s-pack58.adb, s-pack58.ads, s-pack59.adb,
29857         s-pack59.ads, s-pack60.adb, s-pack60.ads, s-pack61.adb, s-pack61.ads,
29858         s-pack62.adb, s-pack62.ads, s-pack63.adb, s-pack63.ads, s-scaval.adb,
29859         s-scaval.ads, s-sequio.adb, s-sequio.ads, s-stache.adb, s-stache.ads,
29860         s-stratt.adb, s-stratt.ads, s-strcom.adb, s-strcom.ads, s-strops.adb,
29861         s-strops.ads, s-taasde.ads, s-tadeca.adb, s-tadeca.ads, s-tadert.adb,
29862         s-tadert.ads, s-taenca.adb, s-taenca.ads, s-taprob.adb, s-taprob.ads,
29863         s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads, s-tasini.adb,
29864         s-tasini.ads, s-taskin.adb, s-taskin.ads, s-tasque.adb, s-tasque.ads,
29865         s-tasren.ads, s-tasres.ads, s-tassta.adb, s-tassta.ads, s-tasuti.adb,
29866         s-tasuti.ads, s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
29867         s-tpoben.adb, s-tpoben.ads, s-tpobop.ads, s-tporft.adb, s-tposen.ads,
29868         s-traces.adb, s-traces.ads, s-tratas.adb, s-tratas.ads, s-valint.ads,
29869         s-unstyp.ads, s-veboop.adb, s-veboop.ads, s-vector.ads, s-vercon.adb,
29870         s-vercon.ads, s-wchcnv.adb, s-wchcnv.ads, s-wchjis.adb, s-wchjis.ads,
29871         s-wchstw.adb, s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, s-widboo.adb,
29872         s-widboo.ads, s-widcha.adb, s-widcha.ads, s-widenu.adb, s-widenu.ads,
29873         s-widlli.adb, s-widlli.ads, s-widllu.adb, s-widllu.ads, s-wwdcha.ads,
29874         s-wwdenu.adb, s-wwdwch.ads, text_io.ads, s-stchop.ads, s-stchop.adb,
29875         s-stchop-vxworks.adb, a-intnam-darwin.ads, s-osinte-darwin.adb,
29876         s-osinte-darwin.ads, s-vxwork-x86.ads, a-numaux-darwin.ads,
29877         a-numaux-darwin.adb, a-chzla1.ads, a-chzla9.ads, a-lfztio.ads,
29878         a-liztio.ads, a-llfzti.ads, a-llizti.ads, a-sfztio.ads, a-siztio.ads,
29879         a-ssizti.ads, a-stzbou.adb, a-stzfix.adb, a-stzfix.ads, a-stzmap.adb,
29880         a-stzsea.adb, a-stzsup.adb, a-swunau.adb, a-swunau.ads, a-szuzti.adb,
29881         a-szuzti.ads, a-tiunio.ads, a-wwunio.ads, a-ztcoau.adb, a-ztcoau.ads,
29882         a-ztcoio.adb, a-ztcoio.ads, a-ztcstr.ads, a-ztdeau.adb, a-ztdeio.adb,
29883         a-ztenio.adb, a-ztexio.adb, a-ztfiio.adb, a-ztflio.adb, a-ztgeau.adb,
29884         a-ztinau.adb, a-ztinio.adb, a-ztinio.ads, a-ztmoau.adb, a-ztmoio.adb,
29885         a-zttest.adb, a-zzunio.ads, g-utf_32.adb: Fix header style.
29886         "GNU Ada" to GNAT, use proper casing for RUN-TIME.
29887
29888 2005-06-14  Jose Ruiz  <ruiz@adacore.com>
29889             Arnaud Charlet  <charlet@adacore.com>
29890
29891         * a-sytaco.ads, a-sytaco.adb (Suspension_Object): These objects are no
29892         longer protected objects. They have been replaced by lower-level
29893         suspension objects made up by a mutex and a condition variable (or
29894         their equivalent given a particular OS) plus some internal data to
29895         reflect the state of the suspension object.
29896         (Initialize, Finalize): Add this initialization procedure for
29897         Suspension_Object, which is a controlled type.
29898         (Finalize): Add the finalization procedure for Suspension_Object,
29899         which is a controlled type.
29900
29901         * a-sytaco-vxworks.ads, a-sytaco-vxworks.adb: Remove this version of
29902         Ada.Synchronous_Task_Control because there is no longer a need for a
29903         VxWorks specific version of this package. Target dependencies
29904         has been moved to System.Task_Primitives.Operations.
29905
29906         * s-osinte-mingw.ads (pCRITICAL_SECTION): Remove this type which is no
29907         longer needed.
29908         (InitializeCriticalSection, EnterCriticalSection,
29909         LeaveCriticalSection, DeleteCriticalSection): Replace the type
29910         pCriticalSection by an anonymous access type so that we avoid problems
29911         of accessibility to local objects.
29912
29913         * s-taprop.ads, s-taprop-posix.adb, s-taprop-vxworks.adb,
29914         s-taprop-mingw.adb, s-taprop-vms.adb, s-taprop-solaris.adb,
29915         s-taprop-os2.adb, s-taprop-dummy.adb, s-taprop-hpux-dce.adb,
29916         s-taprop-linux.adb, s-taprop-irix.adb, s-taprop-irix-athread.adb,
29917         s-taprop-tru64.adb, s-taprop-lynxos.adb (Elaboration Code): No longer
29918         set the environment task mask here.
29919         (Current_State): Add this function that returns the state of the
29920         suspension object.
29921         (Set_False): Add this procedure that sets the state of the suspension
29922         object to False.
29923         (Set_True): Add this procedure that sets the state of the suspension
29924         object to True, releasing the task that was suspended, if any.
29925         (Suspend_Until_True): Add this procedure that blocks the calling task
29926         until the state of the object is True. Program_Error is raised if
29927         another task is already waiting on that suspension object.
29928         (Initialize): Add this procedure for initializing the suspension
29929         object. It initializes the mutex and the condition variable which are
29930         used for synchronization and queuing, and it sets the internal state
29931         to False.
29932         (Finalize): Add this procedure for finalizing the suspension object,
29933         destroying the mutex and the condition variable.
29934
29935         * s-taspri-posix.ads, s-taspri-vxworks.ads, s-taspri-mingw.ads,
29936         s-taspri-vms.ads, s-taspri-solaris.ads, s-taspri-os2.ads,
29937         s-taspri-dummy.ads, s-taspri-hpux-dce.ads, s-taspri-linux.ads,
29938         s-taspri-tru64.ads, s-taspri-lynxos.ads (Suspension_Object): New object
29939         which provides a low-level abstraction (using operating system
29940         primitives) for Ada.Synchronous_Task_Control.
29941         This object is made up by a mutex (for ensuring mutual exclusion), a
29942         condition variable (for queuing threads until the condition is
29943         signaled), a Boolean (State) indicating whether the object is open,
29944         and a Boolean (Waiting) reflecting whether there is a task already
29945         suspended on this object.
29946
29947         * s-intman.ads, s-intman-irix.adb, s-intman-irix-athread.adb,
29948         s-intman-dummy.adb, s-intman-solaris.adb, s-intman-vms.adb,
29949         s-intman-vms.ads, s-intman-mingw.adb,
29950         (Initialize_Interrupts): Removed, no longer used.
29951
29952         * s-inmaop-posix.adb, s-inmaop-vms.adb, s-inmaop-dummy.adb,
29953         (Setup_Interrupt_Mask): New procedure.
29954
29955         * s-intman-vxworks.ads, s-intman-vxworks.adb:  Update comments.
29956
29957         * s-inmaop.ads (Setup_Interrupt_Mask): New procedure
29958
29959         * s-interr.adb: Add explicit call to Setup_Interrupt_Mask now that
29960         this is no longer done in the body of s-taprop
29961         (Server_Task): Explicitely test for Pending_Action in case
29962         System.Parameters.No_Abort is True.
29963
29964         * s-taasde.adb: Add explicit call to Setup_Interrupt_Mask now that this
29965         is no longer done in the body of s-taprop
29966
29967 2005-06-14  Robert Dewar  <dewar@adacore.com>
29968
29969         * system-unixware.ads, system-linux-ia64.ads, system-freebsd-x86.ads,
29970         system-lynxos-ppc.ads, system-lynxos-x86.ads, system-linux-x86_64.ads,
29971         system-tru64.ads, system-aix.ads, system-vxworks-sparcv9.ads,
29972         system-vxworks-xscale.ads, system-solaris-x86.ads, system-irix-o32.ads,
29973         system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
29974         system-linux-x86.ads, system-vxworks-mips.ads, system-vxworks-mips.ads,
29975         system-os2.ads, system-interix.ads, system-solaris-sparc.ads,
29976         system-solaris-sparcv9.ads, system-vms.ads, system-mingw.ads,
29977         system-vms-zcx.ads, system-vxworks-ppc.ads, system.ads,
29978         system-darwin-ppc.ads, system-vxworks-x86.ads, system-linux-ppc.ads,
29979         system-linux-hppa.ads, system-vms_64.ads,
29980         system-vxworks-alpha.ads: Minor comment update for
29981         AI-362 (unit is Pure).
29982
29983         * a-chahan.ads, a-chahan.adb: Move Wide_Wide functions to Conversions
29984         Add pragma Pure_05 for AI-362
29985         Make remaining conversion functions obsolescent in Ada 95
29986
29987         * impunit.adb: Change a-swunha to a-swuwha and a-szunha to a-szuzha
29988         Make Ada.Wide_Characters[.Unicode] available in Ada 95 mode
29989         Add entries for a-wichun and a-zchuni
29990         Add a-widcha a-zchara for AI-395
29991         Add a-chacon (Ada.Characters.Conversions) to list of Ada 2005 routines
29992
29993         * Makefile.rtl: Change a-swunha to a-swuwha and a-szunha to a-szuzha
29994         Add entries for a-wichun.o and a-zchuni.o
29995         Entries for a-widcha.o and a-zchara.o
29996         Add entry for a-chacon.o
29997
29998         * a-ztenau.adb: Add with of Ada.Characters.Conversions
29999
30000         * a-chacon.ads, a-chacon.adb: New files.
30001
30002         * a-taside.adb, a-exstat.adb, a-excach.adb: Add warnings off to allow
30003         categorization violations.
30004
30005         * a-strmap.ads: Add pragma Pure_05 for AI-362
30006         * a-strmap.ads: Add note on implicit categorization for AI-362
30007
30008         * a-tgdico.ads, a-taside.ads: Add pragma Preelaborate_05 for AI-362
30009
30010         * par-prag.adb: Dummy entry for pragma Persistent_BSS
30011         Set Ada_Version_Explicit, for implementation of AI-362
30012         Add processing for pragma Pure_05 and Preelaborate_05
30013         Add entry for Assertion_Policy pragma
30014
30015         * sem.adb: Make sure predefined units are compiled with GNAT_Mode true
30016         when needed for proper processing of categorization stuff
30017
30018         * sem_cat.adb:
30019         For several cases, make errors in preealborate units warnings,
30020         instead of errors, if GNAT_Mode is set. For AI-362.
30021
30022         * sem_elab.adb (Check_Elab_Call): Call to non-static subprogram in
30023         preelaborate unit is now warning if in GNAT mode
30024
30025         * s-stoele.ads: Document AI-362 for pragma preelaborate
30026
30027 2005-06-14  Doug Rupp  <rupp@adacore.com>
30028
30029         * s-parame-vms.ads, s-parame-hpux.ads, s-parame-vms-restrict.ads,
30030         s-parame-ae653.ads, s-parame.ads, s-parame-vxworks.ads:
30031         Default_Exception_Msg_Max_Length: new parameter.
30032
30033         * a-except.ads: (Exception_Msg_Max_Length): Set to
30034         System.Parameters.Default_Exception_Msg_Max_Length
30035         Add pragma Preelaborate_05 for AI-362
30036         Add warnings off to allow categorization violations for AI-362
30037
30038 2005-06-14  Vincent Celier  <celier@adacore.com>
30039
30040         * gnatsym.adb: Adapt to modification of package Symbols: procedure
30041         Process is now in package Processing.
30042
30043         * symbols.ads, symbols.adb:
30044         (Processing): New package, containing procedure Process
30045
30046         * symbols-vms-alpha.adb:
30047         Replaced by symbols-vms.adb and symbols-processing-vms-alpha.adb
30048
30049         * symbols-vms.adb, symbols-processing-vms-alpha.adb,
30050         symbols-processing-vms-ia64.adb: New files.
30051
30052 2005-06-14  Pascal Obry  <obry@adacore.com>
30053
30054         * mlib-tgt-mingw.adb (Build_Dynamic_Library): Replace the previous
30055         implementation. This new version generates the proper DllMain routine
30056         to initialize the SAL. The DllMain is generated in Ada and compiled
30057         before being added as option to the library build command.
30058
30059 2005-06-14  Doug Rupp  <rupp@adacore.com>
30060             Pascal Obry  <obry@adacore.com>
30061
30062         * adaint.c (__gnat_to_canonical_file_spec): Check for error returns in
30063         call to decc$translate_vms.
30064         (__gnat_locate_regular_file): Check if the path_val contains quotes. We
30065         need to remove those quotes before catenating the filename.
30066         (__gnat_locate_exec_on_path): improvements to the Win32 section:
30067         * avoid allocating the memory twice for better efficiency;
30068         * allocate 32K buffer for environment expansion as suggested by MSDN;
30069         * prepend ".;" to the path so that current directory is searched too.
30070
30071 2005-06-14  Robert Dewar  <dewar@adacore.com>
30072
30073         * a-except.adb (Exception_Identity): return Null_Id for null occurrence
30074         instead of raising CE (AI-241)
30075         Add warnings off to allow categorization violations for AI-362
30076
30077 2005-06-14  Robert Dewar  <dewar@adacore.com>
30078
30079         * ali-util.adb, gnatbind.adb: Remove references to
30080         Force_RM_Elaboration_Order.
30081
30082         * switch-b.adb: Remove recognition of -f switch
30083
30084 2005-06-14  Pascal Obry  <obry@adacore.com>
30085
30086         * a-stzunb.adb, a-stwiun.adb, a-strunb.adb (Realloc_For_Chunk): New
30087         implementation which is slightly more efficient.
30088
30089 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
30090             Javier Miranda  <miranda@adacore.com>
30091             Ed Schonberg  <schonberg@adacore.com>
30092             Hristian Kirtchev  <kirtchev@adacore.com>
30093
30094         * exp_ch4.adb (Expand_Allocator_Expression): When an initialized
30095         allocator's designated type is a class-wide type, and compiling for
30096         Ada 2005, emit a run-time check that the accessibility level of the
30097         type given in the allocator's expression is not deeper than the level
30098         of the allocator's access type.
30099
30100         (Tagged_Membership): Modified to gives support to abstract interface
30101         types.
30102
30103         * a-tags.ads, a-tags.adb (type Type_Specific_Data): Add component
30104         Access_Level.
30105         (Descendant_Tag): New predefined function
30106         (Is_Descendant_At_Same_Level): New predefined function
30107         (Get_Access_Level): New private function
30108         (Set_Access_Level): New private procedure
30109         (IW_Membership): New function. Given the tag of an object and the tag
30110         associated with an interface, evaluate if the object implements the
30111         interface.
30112         (Register_Interface_Tag): New procedure used to initialize the table of
30113         interfaces used by the IW_Membership function.
30114         (Set_Offset_To_Top): Initialize the Offset_To_Top field in the prologue
30115         of the dispatch table.
30116         (Inherit_TSD): Modified to copy the table of ancestor tags plus the
30117         table of interfaces of the parent.
30118         (Expanded_Name): Raise Tag_Error if the passed tag equals No_Tag.
30119         (External_Tag): Raise Tag_Error if the passed tag equals No_Tag.
30120         (Parent_Tag): Return No_Tag in the case of a root-level tagged type,
30121         and raise Tag_Error if the passed tag equalis No_Tag, to conform with
30122         Ada 2005 semantics for the new predefined function.
30123
30124         * exp_attr.adb (Expand_N_Attribute, case Attribute_Input): Generate
30125         call to Descendant_Tag rather than Internal_Tag.
30126         (Expand_N_Attribute, case Attribute_Output): Emit a check to ensure that
30127         the accessibility level of the attribute's Item parameter is not deeper
30128         than the level of the attribute's prefix type. Tag_Error is raised if
30129         the check fails. The check is only emitted for Ada_05.
30130         (Find_Stream_Subprogram): If a TSS exists on the type itself for the
30131         requested stream attribute, use it.
30132         (Expand_N_Attribute_Reference): If the designated type is an interface
30133         then rewrite the referenced object as a conversion to force the
30134         displacement of the pointer to the secondary dispatch table.
30135         (Expand_N_Attribute_Reference, case 'Constrained): Return false if this
30136         is a dereference of an object with a constrained partial view.
30137
30138         * exp_ch5.adb (Expand_N_Return_Statement): When a function's result
30139         type is a class-wide type, emit a run-time check that the accessibility
30140         level of the returned object is not deeper than the level of the
30141         function's master (only when compiling for Ada 2005).
30142
30143         * exp_disp.ads, exp_disp.adb (Ada_Actions, Action_Is_Proc,
30144         Action_Nb_Arg): Add entries for new Get_Access_Level and
30145         Set_Access_Level routines in these tables.
30146         (Make_DT): Generate a call to set the accessibility level of the
30147         tagged type in its TSD.
30148         (Make_DT): Code cleanup. The functionality of generating all the
30149         secondary dispatch tables has been moved to freeze_record_type.
30150         (Make_Abstract_Interface_DT): Minor code cleanup.
30151         (Set_All_DT_Position): Code cleanup. As part of the code cleanup
30152         this subprogram implements a new algorithm that provides the
30153         same functionality and it is more clear in case of primitives
30154         associated with abstract interfaces.
30155         (Set_All_Interfaces_DTC_Entity): Removed. As part of the code
30156         clean up, the functionality of this subprogram is now provided
30157         by Set_All_DT_Position.
30158         (Write_DT): New subprogram: a debugging procedure designed to be called
30159         within gdb to display the dispatch tables associated with a tagged
30160         type.
30161         (Collect_All_Interfaces): New subprogram that collects the whole list
30162         of interfaces that are directly or indirectly implemented by a tagged
30163         type.
30164         (Default_Prim_Op_Position): New subprogram that returns the fixed
30165         position in the dispatch table of the default primitive operations.
30166         (Expand_Interface_Actuals): New subprogram to generate code that
30167         displaces all the actuals corresponding to class-wide interfaces to
30168         reference the interface tag of the actual object.
30169         (Expand_Interface_Conversion): New subprogram. Reference the base of
30170         the object to give access to the interface tag associated with the
30171         secondary dispatch table.
30172         (Expand_Interface_Thunk): New subprogram that generates the code of the
30173         thunk. This is required for compatibility with the C+ ABI.
30174         (Make_Abstract_Interface_DT): New subprogram that generate the
30175         declarations for the secondary dispatch tables associated with an
30176         abstract interface.
30177         (Set_All_Interfaces_DTC_Entity): New subprogram that sets the DTC_Entity
30178         attribute for each primitive operation covering interface subprograms
30179         (Expand_Dispatching_Call, Fill_DT_Entry, Make_DT, Set_All_DT_Position):
30180         These subprograms were upgraded to give support to abstract interfaces
30181
30182         * rtsfind.ads (type RE_Id): Add RE_Descendant_Tag,
30183         RE_Is_Descendant_At_Same_Level, RE_Get_Access_Level, and
30184         RE_Set_Access_Level.
30185         (RE_Unit_Table): Add entries for new Ada.Tags operations.
30186         Add support to call the followig new run-time subprograms:
30187         IW_Membership, Register_Interface_Tag, and Set_Offset_To_Top
30188
30189         * sem_ch3.adb (Constant_Redeclaration): Allow a deferred constant to
30190         match its full declaration when both have an access definition with
30191         statically matching designated subtypes.
30192         (Analyze_Component_Declaration): Delete commented out code that was
30193         incorrectly setting the scope of an anonymous access component's type.
30194         (Process_Discriminants): Set Is_Local_Anonymous_Access for the type of
30195         an access discriminant when the containing type is nonlimited.
30196         (Make_Incomplete_Type_Declaration): Create an incomplete type
30197         declaration for a record type that includes self-referential access
30198         components.
30199         (Check_Anonymous_Access_Types): Before full analysis of a record type
30200         declaration, create anonymous access types for each self-referential
30201         access component.
30202         (Analyze_Component_Declaration, Array_Type_Declaration): Indicate that
30203         an access component in this context is a Local_Anonymous_Access, for
30204         proper accessibility checks.
30205         (Access_Definition): Set properly the scope of the anonymous access type
30206         created for a stand-alone access object.
30207         (Find_Type_Of_Object): An object declaration may be given with an access
30208         definition.
30209         (Complete_Subprograms_Derivation): New subprogram used to complete
30210         type derivation of private tagged types implementing interfaces.
30211         In this case some interface primitives may have been overriden
30212         with the partial-view and, instead of re-calculating them, they
30213         are included in the list of primitive operations of the full-view.
30214         (Build_Derived_Record_Type): Modified to give support to private
30215         types implemening interfaces.
30216         (Access_Definition): Reject ALL on anonymous access types.
30217         (Build_Derived_Record_Type): In the case of Ada 2005, allow a tagged
30218         type derivation to occur at a deeper accessibility level than the
30219         parent type.
30220         For the case of derivation within a generic body however, disallow the
30221         derivation if the derived type has an ancestor that is a formal type
30222         declared in the formal part of an enclosing generic.
30223         (Analyze_Object_Declaration): For protected objects, remove the check
30224         that they cannot contain interrupt handlers if not declared at library
30225         level.
30226         (Add_Interface_Tag_Components): New subprogram to add the tag components
30227         corresponding to all the abstract interface types implemented by a
30228         record type or a derived record type.
30229         (Analyze_Private_Extension_Declaration, Build_Derived_Record_Type,
30230         Derived_Type_Declaration, Find_Type_Name, Inherit_Components,
30231         Process_Full_View, Record_Type_Declaration): Modified to give
30232         support to abstract interface types
30233         (Collect_Interfaces): New subprogram that collects the list of
30234         interfaces that are not already implemented by the ancestors
30235         (Process_Full_View): Set flag Has_Partial_Constrained_View appropriately
30236         when partial view has no discriminants and full view has defaults.
30237         (Constrain_Access): Reject a constraint on a general access type
30238         if the discriminants of the designated type have defaults.
30239         (Access_Subprogram_Declaration): Associate the Itype node with the inner
30240         full-type declaration or subprogram spec. This is required to handle
30241         nested anonymous declarations.
30242         (Analyze_Private_Extension_Declaration, Build_Derived_Record_Type,
30243         Derived_Type_Declaration, Find_Type_Name, Inherit_Components,
30244         Process_Full_View, Record_Type_Declaration): Modified to give
30245         support to abstract interface types
30246         (Derive_Subprograms): Addition of a new formal to indicate if
30247         we are in the case of an abstact-interface derivation
30248         (Find_Type_Of_Subtype_Indic): Moved from the body of the package
30249         to the specification because it is requied to analyze all the
30250         identifiers found in a list of interfaces
30251
30252         * debug.adb: Complete documentation of flag "-gnatdZ"
30253
30254         * exp_ch3.adb: Implement config version of persistent_bss pragma
30255         (Check_Stream_Attributes): Use Stream_Attribute_Available instead of
30256         testing for TSS presence to properly enforce visibility rules.
30257         (Freeze_Record_Type): Code cleanup. Modified to call the subprogram
30258         Make_Abstract_Interfaces_DT to generate the secondary tables
30259         associated with abstract interfaces.
30260         (Build_Init_Procedure): Modified to initialize all the tags
30261         corresponding.
30262         (Component_Needs_Simple_Initialization): Similar to other tags,
30263         interface tags do not need initialization.
30264         (Freeze_Record_Type): Modified to give support to abstract interface
30265         types.
30266         (Expand_N_Object_Declaration): Do not generate an initialization for
30267         a scalar temporary marked as internal.
30268
30269         * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): Handle properly an
30270         in-out parameter that is a component in an initialization procedure,
30271         whose constraint might depend on discriminants, and that may be
30272         misaligned because of packing or representation clauses.
30273         (Is_Legal_Copy): New predicate to determine whether a possibly
30274         misaligned in-out actual can actually be passed by copy/return. This
30275         is an error in case the type is by_reference, and a warning if this is
30276         the consequence of a DEC import pragma on the subprogram.
30277         (Expand_Call, Freeze_Subprogram): Modified to give support to abstract
30278         interface types
30279         (Expand_Inlined_Call): Mark temporary generated for the return value as
30280         internal, so that no useless scalar normalization is generated for it.
30281         (Expand_N_Subprogram_Declaration): Save unanalyzed body so calls to
30282         null procedure can always be inlined.
30283         (Expand_N_Subprogram_Declaration): If this is the declaration of a null
30284         procedure, generate an explicit empty body for it.
30285
30286         * exp_util.ads, exp_util.adb (Find_Interface_ADT): New subprogram.
30287         Given a type implementing an interface, returns the corresponding
30288         access_disp_table value.
30289         (Find_Interface_Tag): New subprogram. Given a type implementing an
30290         interface, returns the record component containing the tag of the
30291         interface.
30292         (Find_Interface_Tag): New overloaded subprogram. Subsidiary to the
30293         previous ones that return the corresponding tag and access_disp_table
30294         entities.
30295         (Is_Predefined_Dispatching_Operation): Determines if a subprogram
30296         is a predefined primitive operation.
30297         (Expand_Subtype_From_Expr): If the expression is a selected component
30298         within an initialization procedure, compute its actual subtype, because
30299         the component may depend on the discriminants of the enclosing record.
30300
30301         * i-cpp.ads, i-cpp.adb:
30302         This package has been left available for compatibility with previous
30303         versions of the frontend. As part of the new layout this is now a
30304         dummy package that uses declarations available at a-tags.ads
30305
30306         * par-ch3.adb (P_Identifier_Declarations): Give an error for use of
30307         "constant access" and "aliased [constant] access" when not compiling
30308         with -gnat05.
30309         Suppress Ada 2005 keyword warning if -gnatwY used
30310         (P_Identifier_Declarations): Add support for object declarations with
30311         access definitions.
30312         (Private_Extension_Declaration): Complete the documentation
30313         (P_Derived_Type_Def_Or_Private_Ext_Decl): Fill the inteface_list
30314         attribute in case of private extension declaration
30315         (P_Type_Declaration): Mark as "abstract" the type declarations
30316         corresponding with protected, synchronized and task interfaces
30317         (P_Declarative_Items): "not" and "overriding" are overriding indicators
30318         for a subprogram or instance declaration.
30319
30320         * sem_ch12.adb (Analyze_Subprogram_Instantiation): Verify that an
30321         instantiation that is a dispatching operation has controlling access
30322         parameters that are null excluding.
30323         Save and restore Ada_Version_Explicit, for implementation of AI-362
30324         (Validate_Derived_Type_Instance): Add check for abstract interface
30325         types.
30326         (Analyze_Formal_Package): Establish Instantiation source for the copy of
30327         the generic that is created to represent the formal package.
30328         (Analyze_Package_Instantiation): Instantiate body immediately if the
30329         package is a predefined unit that contains inlined subprograms, and
30330         we are compiling for a Configurable_Run_Time.
30331         (Instantiate_Formal_Subprogram): Indicate that null default subprogram
30332         If the program has a null default, generate an empty body for it.
30333
30334         * sem_ch6.adb, sem_ch9.adb (Analyze_Subprograms_Declaration): Update
30335         error message condition, null procedures are correctly detected now.
30336         (New_Overloaded_Entity): Bypass trivial overriding indicator check
30337         for subprograms in the context of protected types. Instead, the
30338         indicator is examined in Sem_Ch9 while analysing the subprogram
30339         declaration.
30340         (Check_Overriding_Indicator): Check consistency of overriding indicator
30341         on subprogram stubs as well.
30342         (Analyze_Subprogram_Declaration): Diagnose null procedures declared at
30343         the library level.
30344         (Analize_Subprogram_Specification): When analyzing a subprogram in which
30345         the type of the first formal is a concurrent type, replace this type
30346         by the corresponding record type.
30347         (Analyze_Subprogram_Body): Undo the previous work.
30348         (Analyze_Procedure_Call): If the call has the form Object.Op, the
30349         analysis of the prefix ends up analyzing the call itself, after which
30350         we are done.
30351         (Has_Interface_Formals): New subprogram subsidiary to analyze
30352         subprogram_specification that returns true if some non
30353         class-wide interface subprogram is found
30354         (New_Overloaded_Entity): Modified to give support to abstract
30355         interface types
30356         (Conforming_Types): In Ada 2005 mode, conformance checking of anonymous
30357         access to subprograms must be recursive.
30358         (Is_Unchecked_Conversion): Improve the test that recognizes
30359         instantiations of Unchecked_Conversion, and allows them in bodies that
30360         are to be inlined by the front-end. When the body comes from an
30361         instantiation, a reference to Unchecked_Conversion will be an
30362         Expanded_Name, even though the body has not been analyzed yet.
30363         Replace Is_Overriding and Not_Overriding in subprogram_indication with
30364         Must_Override and Must_Not_Override, to better express intent of AI.
30365         (Analyze_Subprogram_Body): If an overriding indicator is given, check
30366         that it is consistent with the overrinding status of the subprogram
30367         at this point.
30368         (Analyze_Subprogram_Declaration): Indicate that a null procedure is
30369         always inlined.
30370         If the subprogram is a null procedure, indicate that it does not need
30371         a completion.
30372
30373         * sem_disp.adb (Check_Controlling_Type): Give support to entities
30374         available through limited-with clauses.
30375         (Check_Dispatching_Operation): A stub acts like a body, and therefore is
30376         allowed as the last primitive of a tagged type if it has no previous
30377         spec.
30378         (Override_Dispatching_Operation, Check_Dispatching_Operation): Modified
30379         to give support to abstract interface types
30380
30381         * sem_res.adb (Valid_Conversion): Perform an accessibility level check
30382         in the case where the target type is an anonymous access type of an
30383         object or component (that is, when Is_Local_Anonymous_Access is true).
30384         Prevent the special checks for conversions of access discriminants in
30385         the case where the discriminant belongs to a nonlimited type, since
30386         such discriminants have their accessibility level defined in the same
30387         way as a normal component of an anonymous access type.
30388         (Resolve_Allocator): When an allocator's designated type is a class-wide
30389         type, check that the accessibility level of type given in the
30390         allocator's expression or subtype indication is not statically deeper
30391         than the level of the allocator's access type.
30392         (Check_Discriminant_Use): Diagnose discriminant given by an expanded
30393         name in a discriminant constraint of a record component.
30394         (Resolve_Explicit_Dereference): Do not check whether the type is
30395         incomplete when the dereference is a use of an access discriminant in
30396         an initialization procedure.
30397         (Resolve_Type_Conversion): Handle conversions to abstract interface
30398         types.
30399         (Valid_Tagged_Conversion): The conversion of a tagged type to an
30400         abstract interface type is always valid.
30401         (Valid_Conversion): Modified to give support to abstract interface types
30402         (Resolve_Actuals): Enable full error reporting on view conversions
30403         between unrelated by_reference array types.
30404         The rule for view conversions of arrays with aliased components is
30405         weakened in Ada 2005.
30406         Call to obsolescent subprogram is now considered to be a violation of
30407         pragma Restrictions (No_Obsolescent_Features).
30408         (Check_Direct_Boolean_Operator): If the boolean operation has been
30409         constant-folded, there is nothing to check.
30410         (Resolve_Comparison_Op, Resolve_Equality_Op, Resolve_Boolean_Op): Defer
30411         check on possible violation of restriction No_Direct_Boolean_Operators
30412         until after expansion of operands, to prevent spurious errors when
30413         operation is constant-folded.
30414
30415         * sem_type.ads, sem_type.adb (Covers, Intersect_Types, Specific_Type,
30416         Has_Compatible_Type): Modified to give support to abstract interface
30417         types.
30418         (Interface_Present_In_Ancestor): New function to theck if some ancestor
30419         of a given type implements a given interface
30420
30421         * sem_ch4.adb (Analyze_Call): Handle properly an indirect call whose
30422         prefix is a parameterless function that returns an access_to_procedure.
30423         (Transform_Object_Operation): Handle properly function calls of the
30424         form Obj.Op (X), which prior to analysis appear as indexed components.
30425         (Analyze_One_Call): Complete the error notification to help new Ada
30426         2005 users.
30427         (Analyze_Allocator): For an allocator without an initial value, where
30428         the designated type has a constrained partial view, a discriminant
30429         constraint is illegal.
30430
30431 2005-06-14  Robert Dewar  <dewar@adacore.com>
30432
30433         * a-textio.adb (Set_Col): Fix two errors noticed recently, having to
30434         do with treatment of Set_Col when positioned at end of line character.
30435
30436 2005-06-14  Robert Dewar  <dewar@adacore.com>
30437
30438         * atree.adb: (Elist*): Protect against uninitialized field
30439
30440 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
30441
30442         * checks.adb (Install_Null_Excluding_Check): Do not generate checks
30443         for an attribute reference that returns an access type.
30444         (Apply_Discriminant_Check): No need for check if (designated) type has
30445         constrained partial view.
30446
30447         (Apply_Float_Conversion_Check): Generate a short-circuit expression for
30448         both bound checks, rather than a conjunction.
30449         (Insert_Valid_Check): If the expression is an actual that is an indexed
30450         component of a bit-packed array, force expansion of the packed element
30451         reference, because it is specifically inhibited elsewhere.
30452
30453 2005-06-14  Vincent Celier  <celier@adacore.com>
30454
30455         * clean.adb (Clean_Project): Correctly delete executable specified as
30456         absolute path names.
30457
30458         * make.adb (Gnatmake): Allow relative executable path names with
30459         directory information even when project files are used.
30460         (Change_To_Object_Directory): Fail gracefully when unable to change
30461         current working directory to object directory of a project.
30462         (Gnatmake): Remove exception handler that could no longer be exercized
30463         (Compile_Sources.Compile): Use deep copies of arguments, as some of them
30464         may be deallocated by Normalize_Arguments.
30465         (Collect_Arguments): Eliminate empty arguments
30466
30467         * gnatcmd.adb (All_Projects): New Boolean flag, initialized to False,
30468         and set to True when -U is used for GNAT PRETTY or GNAT METRIC.
30469         (Check_Project): Return False when Project is No_Project. Return True
30470         when All_Projects is True.
30471         (GNATCmd): Recognize switch -U for GNAT PRETTY and GNAT METRIC and set
30472         All_Projects to True.
30473         Minor reformatting
30474
30475 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
30476             Javier Miranda  <miranda@adacore.com>
30477             Thomas Quinot  <quinot@adacore.com>
30478             Robert Dewar  <dewar@adacore.com>
30479             Hristian Kirtchev  <kirtchev@adacore.com>
30480             Gary Dismukes  <dismukes@adacore.com>
30481
30482         * einfo.ads, einfo.adb (Is_Local_Anonymous_Access): New flag on
30483         anonymous access types, to indicate that the accessibility level of
30484         the type is determined by that of the enclosing declaration.
30485         (Has_Persistent_BSS): New flag
30486         (Set_Is_Primitive_Wrapper): Upgrade the barrier to allow the usage
30487         of this attribute with functions.
30488         (Is_Primitive_Wrapper): Remove the barrier.
30489         (Has_Specified_Stream_Input, Has_Specified_Stream_Output,
30490         Has_Specified_Stream_Read, Has_Specified_Stream_Write):
30491         New subprograms.
30492         (Set_Has_Specified_Stream_Input, Set_Has_Specified_Stream_Output,
30493         Set_Has_Specified_Stream_Read, Set_Has_Specified_Stream_Write):
30494         New subprograms.
30495         (Is_Pure_Unit_Access_Type): New flag
30496         (Abstract_Interfaces): Complete the assertion to cover all usages.
30497         (Set_Is_Interface): Complete the assertion to cover all usages.
30498         (Is_Primitive_Wrapper): New attribute.
30499         (Is_Obsolescent): Now applies to all entities (though it is only set
30500         for subprograms currently)
30501         New flag:  Has_Constrained_Partial_View, to implemente Ada 2005 AI-363,
30502         which solves various problems concerning access subtypes.
30503         (Has_Persistent_BSS): New flag
30504         (Is_Primitive_Wrapper, Set_Primitive_Wrapper): Code cleanup.
30505         Remove these subprograms because this attribute is currently
30506         not used.
30507         New entity flags:
30508         Has_Specified_Stream_Input (Flag190)
30509         Has_Specified_Stream_Output (Flag191)
30510         Has_Specified_Stream_Read (Flag192)
30511         Has_Specified_Stream_Write (Flag193)
30512         Present in all type and subtype entities. Set for a given view if the
30513         corresponding stream-oriented attribute has been defined by an
30514         attribute definition clause. When such a clause occurs, a TSS is set
30515         on the underlying full view; the flags are used to track visibility of
30516         the attribute definition clause for partial or incomplete views.
30517         (Is_Pure_Unit_Access_Type): New flag
30518         Clarify use of Is_Internal.
30519         (Is_Primitive_Wrapper): New attribute present in primitive subprograms
30520         internally generated to wrap the invocation of tasks and protected
30521         types that implement interfaces.
30522         (Implementation_Base_Type): Documentation correction
30523         (Is_Obsolescent): Now applies to all entities (though it is only set
30524         for subprograms currently)
30525         New flag:  Has_Constrained_Partial_View, to implement Ada 2005 AI-363,
30526         which solves various problems concerning access subtypes.
30527
30528         * exp_ch9.adb (Type_Conformant_Parameters): Introduce mode conformance
30529         for examined parameters. Identify unequal parameter list lengths as
30530         non-conformant parameters.
30531         (Overriding_Possible): Do not check for "All" qualifier in declaration
30532         of controlling access parameter, following prescription of AI-404.
30533         (Build_Entry_Wrapper_Spec, Build_Entry_Wrapper_Body): New subprograms
30534         that build the procedure body that wraps an entry invocation
30535         (Build_Corresponding_Record, Build_Protected_Sub_Specification,
30536         Expand_N_Protected_Body, Expand_N_Protected_Type_Declaration,
30537         Expand_N_Task_Body, Expand_N_Task_Type_Declaration): Modified to
30538         give support to abstract interface types
30539
30540         * freeze.adb (Freeze_Entity): Issue error message if
30541         Is_Pure_Unit_Access_Type set, unless we are in Ada 2005 mode and the
30542         type has no storage pool (Ada 2005) AI-366.
30543         Also modified to give support to abstract interface types
30544         (Freeze_Subprogram): Issue an error for a dispatching subprogram with an
30545         Inline_Always pragma.
30546
30547         * par-ch9.adb (P_Task_Items): Reserved words "not" or "overriding" may
30548         now begin an entry declaration.
30549         (P_Entry_Or_Subprogram_With_Indicator): New procedure in
30550         P_Protected_Operation_Declaration_Opt. Parse an entry declaration or
30551         a subprogram declaration preceded by an overriding indicator.
30552         (P_Protected_Operation_Declaration_Opt): Add case for parsing entry
30553         declarations or subprogram declarations preceded by reserved words
30554         "not" or "overriding".
30555         (P_Entry_Declaration): Update comment. Parse and check overriding
30556         indicator, set semantic flags of entry declarations.
30557         (P_Task): New error message in case of private applied
30558         to a task type declaration.
30559         (P_Protected): New error message in case of private applied
30560         to a task type declaration.
30561
30562         * sem_ch7.adb (Preserve_Full_Attributes): Modified to handle the case
30563         in which the full view of a type implementing an interface is a
30564         concurrent type.
30565         (Has_Overriding_Pragma): Remove obsolete implementation of AI-218.
30566         Declare_Inherited_Private_Subprograms): If an explicit operation
30567         overrides an operation that is inherited in the private part, mark the
30568         explicit one as overriding, to enable overriding indicator checks.
30569         (Preserve_Full_Attributes): Propagate Is_Unchecked_Union attribute from
30570         full view to partial view, to simplify handling in back-end.
30571
30572         * sprint.adb: Print interface lists where needed: derived types,
30573         protected types, task types.
30574         output "is null" for null procedures. Part of implementation of
30575
30576         * sem_cat.adb (Validate_Access_Type_Declaration): Implement AI-366
30577         relaxation of rules for access types in pure, shared passive partitions.
30578
30579         * exp_strm.adb (Build_Mutable_Record_Read_Procedure): Reorganize to
30580         first read discriminants into temporary objects, performing checks on
30581         the read values, then possibly performing discriminant checks on the
30582         actual (if it is constrained), and only finally reading the components
30583         into a constrained temporary object.
30584         (Build_Elementary_Input_Call): Adjust the specific circuitry for the
30585         case of reading discriminants of a mutable record type to recognize
30586         the new form of the code generated by
30587         Build_Mutable_Record_Read_Procedure.
30588
30589         * exp_tss.ads, exp_tss.adb (Make_Init_Proc_Name): Reimplement in terms
30590         of a simple call to Make_TSS_Name.
30591         (Make_TSS_Name_Local): Add the TSS name as the last thing in the name
30592         buffer, in order for Is_TSS to work correctly on local TSS names.
30593
30594         * sem_attr.ads, sem_attr.adb (Resolve_Attribute, case 'Access): Use flag
30595         Is_Local_Anonymous_Access to check legaliy of attributes in the
30596         context of  access components and stand-alone access objects.
30597         (Stream_Attribute_Available): In Ada 95 mode, a stream attribute is
30598         treated as available for a limited private type if there is an
30599         attribute_definition_clause that applies to its full view, but not in
30600         other cases where the attribute is available for the full view
30601         (specifically, the sole fact that the full view is non-limited does not
30602         make the attribute available for the partial view).
30603         (Build_Access_Subprogram_Type): Diagnose attempt to apply 'access to a
30604         non-overloaded intrinsic subprogram.
30605         (Check_Stream_Attribute): Reject an attribute reference for an
30606         unavailable stream attribute even if the prefix is not a limited type
30607         (case of a 'Input attribute reference for an abstract, non-classwide
30608         type)
30609         (Stream_Attribute_Available): New function to determine whether a stream
30610         attribute is available at a place.
30611         (Check_Attribute): Use Stream_Attribute_Available instead of just
30612         testing for TSS presence on the implementation base type.
30613         (Analyze_Attribute): Modified to give support to task interfaces.
30614         (Analyze_Access_Attribute): Add error check for use of an Access (or
30615         Unrestricted_Access) attribute with a subprogram marked as
30616         Inline_Always.
30617         (Analyze_Attribute, case Attribute_Address): Add error check for use of
30618         an Address attribute with a subprogram marked as Inline_Always.
30619         Update Eval_Attribute to handle new value of Width from AI-395
30620
30621         * sem_ch13.adb (Analyze_Stream_TSS_Definition): New subprogram.
30622         (Analyze_Attribute_Definition_Clause, cases Input, Output, Read, Write):
30623         Factor common code across the stream-oriented attribute circcuits into
30624         a new subprogram, Analyze_Stream_TSS_Definition. The new uniform
30625         processing is functionally identical to the previous duplicated one,
30626         except that an expression that denotes an abstract subprogram will now
30627         be rejected, as mandated by AI-195 item 5.
30628
30629         * sem_util.ads, sem_util.adb (Type_Access_Level): Use flag
30630         Is_Local_Anonymous_Access to apply accessibility checks to access
30631         components and stand-alone access objects.
30632         (Has_Discriminant_Dependent_Constraint): Moved to spec for use
30633         elsewhere.
30634         (Is_Potentially_Persistent_Type): New function
30635         (Is_Dependent_Component_Of_Mutable_Object): If the enclosing object is
30636         a heap-object whose type has a constrained partial view, the object is
30637         unconstrained and the component may depend on a discriminant, making its
30638         renaming illegal.
30639
30640         * sinfo.ads, sinfo.adb
30641         (Must_Not_Override): Flag applicable to N_Entry_Declaration.
30642         (Must_Override): Flag applicable to N_Entry_Declaration.
30643         Indicate that interface_list can appear in single task and single
30644         protected declarations.
30645         Replace Is_Overriding and Not_Overriding with Must_Override and
30646         Must_Not_Override, to better express intent of AI.
30647         Is_Overriding, Not_Overriding: Ada2005 flags that indicate the presence
30648         of an overriding indicator in a subprogram or instance.
30649         Ada 2005 (AI-248) Null_Present can appear in a procedure specification.
30650         Add the overriding indicator [[not] overriding] construct to the
30651         following grammar productions:
30652          ENTRY_DECLARATION
30653          GENERIC_INSTANTIATION
30654          SUBPROGRAM_SPECIFICATION
30655
30656         * par-ch10.adb (P_Compilation_Unit): Subprogram declaration or body
30657         can start with an overriding indicator.
30658
30659         * par-ch6.adb (P_Subprogram): Recognize overriding indicator, and set
30660         flags accordingly on subrogram specifications or instances.
30661
30662         * sem_ch8.adb:
30663         (Analyze_Subprogram_Renaming): For a renaming_as_body, verify that the
30664         overriding_indicator, if present, is consistent with status of spec.
30665         Improve error message for null-excluding checks on controlling access
30666         parameters.
30667         (Check_In_Previous_With_Clause): Protect the frontend against
30668         previously reported critical errors in the context clauses.
30669         Save and restore Ada_Version_Explicit, for implementation of AI-362
30670         (Analyze_Subprogram_Renaming): If the new entity is a dispatching
30671         operation verify that controlling formals of the renamed entity that
30672         are access parameters are explicitly non-null.
30673         (Find_Expanded_Name): Improve error message when prefix is an illegal
30674         reference to a private child unit.
30675
30676         * exp_imgv.adb, s-imgwch.ads, s-imgwch.adb, s-valwch.adb,
30677         s-valwch.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb, s-wwdwch.adb:
30678         Rewrite to correspond to new wide character names in AI-395
30679
30680         * par-ch12.adb (P_Formal_Subprogram_Declaration): Recognize null
30681         default procedures.
30682
30683 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
30684             Robert Dewar  <dewar@adacore.com>
30685
30686         * errout.ads, errout.adb (Error_Msg_NW): Only emit warning on user
30687         code, not on the bodies of predefined operations, to cut down on
30688         spurious noise.
30689
30690 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
30691
30692         * exp_aggr.adb (Aggr_Size_OK): An array with no components can always
30693         be expanded in place. The size computation does not require a
30694         subtraction, which would raise an exception on a compiler built with
30695         assertions when the upper bound is Integer'first.
30696         (Flatten): For an array of composite components, take into account the
30697         size of the components to determine whether it is safe to expand the
30698         array into a purely positional representation.
30699
30700 2005-06-14  Thomas Quinot  <quinot@adacore.com>
30701
30702         * exp_ch2.adb (Param_Entity): Take the case of an expanded_name
30703         denoting a formal parameter into account.
30704
30705 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
30706
30707         * exp_ch7.adb (Find_Node_To_Be_Wrapped): If the node appears within
30708         the entry_call alternative of a conditional entry call, wrap the
30709         conditional entry call itself.
30710
30711 2005-06-14  Nicolas Setton  <setton@adacore.com>
30712             Ed Schonberg  <schonberg@adacore.com>
30713
30714         * exp_dbug.ads, exp_dbug.adb (Get_Variant_Part): Fix the encoding of
30715         the "simple_choice" member in a variant record, in accordance with the
30716         description in the package spec: the information output for a constant
30717         should be "S number", not "SS number".
30718         (Get_Encoded_Name): Return at once if not generating code. Avoids name
30719         overflow problem when compiling with -gnatct, for ASIS/gnatmetrics.
30720
30721 2005-06-14  Thomas Quinot  <quinot@adacore.com>
30722
30723         * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): For an
30724         RACW without any primitives, do not generate the if statement for
30725         dispatching by name in the PolyORB/DSA case, as it would be malformed
30726         (it would have an Elsif_Parts list that is not No_List, but with a
30727         length of 0).
30728
30729 2005-06-14  Robert Dewar  <dewar@adacore.com>
30730
30731         * exp_intr.adb, par-ch5.adb: Minor fix to error message text
30732
30733 2005-06-14  Jose Ruiz  <ruiz@adacore.com>
30734
30735         * fe.h: Add entry for Opt.Exception_Locations_Suppressed so that gigi
30736         can determine whether pragma Suppress_Exception_Locations is in effect.
30737
30738         * utils2.c (build_call_raise): Do not pass the file name to the
30739         exception handler if pragma Suppress_Exception_Locations is in effect.
30740         (build_allocator): Add and process arg IGNORE_INIT_TYPE.
30741
30742 2005-06-14  Emmanuel Briot  <briot@adacore.com>
30743
30744         * g-debpoo.adb (Deallocate, Dereference): Improve output.
30745
30746 2005-06-14  Nicolas Roche  <roche@adacore.com>
30747
30748         * g-diopit.adb (Wildcard_Iterator): Return directly if Path is equal
30749         to ""
30750         (Next_Level): Fix minor bug in handling of ../dir case
30751         (Read): Add dir separator to Directory name so that "" is understood as
30752          "/"
30753
30754 2005-06-14  Pascal Obry  <obry@adacore.com>
30755
30756         * g-dynhta.ads, g-dynhta.adb (Reset): Free the table itself after
30757         releasing the items.
30758
30759 2005-06-14  Vincent Celier  <celier@adacore.com>
30760             Cyrille Comar  <comar@adacore.com>
30761
30762         * g-os_lib.ads, g-os_lib.adb (Non_Blocking_Spawn): Two new versions
30763         with output file descriptor and with output file name.
30764         (Dup, Dup2): Now global procedures as they are used by two subprograms
30765         (Copy): Allocate the 200K buffer on the heap rather than on the stack.
30766
30767 2005-06-14  Thomas Quinot  <quinot@adacore.com>
30768
30769         PR ada/6717
30770         * g-socket.ads, g-socket.adb (Inet_Addr): Special case the all-ones
30771         broadcast address.
30772         (Create_Selector): Bind listening socket used to create the signalling
30773         socket pair to 127.0.0.1 to limit the scope for 'theft' of connection.
30774         Set listen backlog to 1 to ensure that we detect socket theft by a
30775         failure of our own connect(2) call.
30776         (Check_Selector): Improve documentation of the selector mechanism.
30777         (Broadcast_Inet_Addr): New constant.
30778
30779 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
30780
30781         * layout.adb (Discrimify): Remove resetting of Vtype to the underlying
30782         type which turns out to be an incomplete and incorrect fix.
30783         (Layout_Array_Type): Use Underlying_Type when checking whether the scope
30784         of the type is declared in a record (for determination of insertion
30785         type).
30786         (SO_Ref_From_Expr): Test whether Vtype denotes a partial or full view of
30787         a private type and ensure that the primary entity is used for the type
30788         of the newly created function's V formal by taking the Etype of the
30789         view.
30790
30791 2005-06-14  Javier Miranda  <miranda@adacore.com>
30792             Jose Ruiz  <ruiz@adacore.com>
30793             Robert Dewar  <dewar@adacore.com>
30794             Ed Schonberg  <schonberg@adacore.com>
30795
30796         * lib-load.ads, lib-load.adb (Load_Unit): Addition of a new parameter
30797         that indicates if we are parsing a compilation unit found in a
30798         limited-with clause.
30799         It is use to avoid the circularity check.
30800
30801         * par.ads, par.adb (Par): Addition of a new parameter to indicate if
30802         we are parsing a compilation unit found in a limited-with clause. This
30803         is use to avoid the circularity check.
30804
30805         * par-load.adb (Load): Indicate Lib.Load_Unit if we are loading the
30806         unit as a consequence of parsing a limited-with clause. This is used
30807         to avoid the circularity check.
30808
30809         * sem_ch10.adb: Suppress Ada 2005 unit warning if -gnatwY used
30810         (Analyze_Context): Limited-with clauses are now allowed
30811         in more compilation units.
30812         (Analyze_Subunit_Context, Check_Parent): Protect the frontend
30813         againts previously reported critical errors in context clauses
30814         (Install_Limited_Withed_Unit): Code cleanup plus static detection
30815         of two further errors: renamed subprograms and renamed packages
30816         are not allowed in limited with clauses.
30817         (Install_Siblings): Do not install private_with_clauses on the package
30818         declaration for a non-private child unit.
30819         (Re_Install_Parents): When a parent of the subunit is reinstalled,
30820         reset visibility of child units properly.
30821         (Install_Withed_Unit): When a child unit appears in a with_clause of its
30822         parent, it is immediately visible.
30823
30824 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
30825             Emmanuel Briot  <briot@adacore.com>
30826
30827         * lib-xref.ads, lib-xref.adb (Generate_Definition): Treat any entity
30828         declared within an inlined body as referenced, to prevent spurious
30829         warnings.
30830         (Output_One_Ref): If an entity renames an array component, indicate in
30831         the ALI file that this aliases (renames) the array. Capture as well
30832         function renamings that rename predefined operations.
30833         Add information about generic parent for package and subprogram
30834         instances.
30835         (Get_Type_Reference): For a subtype that is the renaming of an actual in
30836         an instantiation, use the first_subtype to ensure that we don't generate
30837         cross-reference information for internal types.
30838         For objects and parameters of a generic private type, retain the '*'
30839         indicator to distinguish such an entity from its type.
30840
30841         * ali.ads (Xref_Entity_Record): New fields Iref_File_Num and Iref_Line,
30842         to store information about instantiated entities.
30843
30844         * ali.adb (Scan_ALI): Add support for parsing the reference to the
30845         generic parent
30846
30847         * xref_lib.adb (Skip_To_Matching_Closing_Bracket): New subprogram
30848         (Parse_Identifier_Info, Parse_Token): Add support for the generic parent
30849         information.
30850
30851 2005-06-10  Doug Rupp  <rupp@adacore.com>
30852             Arnaud Charlet  <charlet@adacore.com>
30853             Olivier Hainque  <hainque@adacore.com>
30854             Jose Ruiz  <ruiz@adacore.com>
30855
30856         * Make-lang.in: Add initialize.o when needed.
30857         Remove obsolete references to RT_FLAGS.
30858         Add missing dependencies for sdefault.o
30859
30860         * initialize.c: New file.
30861
30862         * init.c [VMS] Declare ADA$ externs weak to fix build problem in IVMS.
30863         [VMS] cond_signal_table: Fix problem in declaration.
30864         [VMS] __gnat_error_handler: rewrite.
30865         Move all __gnat_initialize() routines to initialize.c
30866         Specialize the former "hpux" section to "hppa hpux", as this is what the
30867         section really is here for and we now have other hpux ports that need
30868         different contents.
30869         (__gnat_adjust_context_for_raise) i386-linux: First version of this
30870         function for this target. Adjust PC by one in the machine context. This
30871         adjustment was previously done in the MD_FALLBACK_FRAME_STATE_FOR, but
30872         it is more reliable to do that in the signal handler itself.
30873         (__gnat_install_handler) i386-linux: Set SA_SIGINFO in the sigaction
30874         flags, so that the handler is passed the context structure to adjust
30875         prior to the raise.
30876         (__gnat_error_handler) i386-linux: Adjust the signature to match what a
30877         SA_SIGINFO sigaction should look like. Call
30878         __gnat_adjust_context_for_raise before actually raising. Cleanup unused
30879         Machine_State_Operations stuff.
30880         Add conditional code so that the x86_64 is also supported.
30881
30882 2005-06-14  Pascal Obry  <obry@adacore.com>
30883
30884         * mdll.adb (Get_Dll_Name): New routine that returns the DLL name given
30885         the library name.
30886
30887 2005-06-14  Robert Dewar  <dewar@adacore.com>
30888
30889         * opt.ads, opt.adb: New flags for persistent_bss mode
30890         Add Ada_Version_Explicit, for implementation of AI-362
30891         Add Assertions_Enabled_Config and associated handling
30892         Needed since setting can be changed with Assertion_Policy pragma
30893         Add new flag Warn_On_Ada_2005_Compatibility
30894
30895         * switch-c.adb: Recognize -gnatwy/Y
30896         Set Ada_Version_Explicit, for implementation of AI-362
30897         The -gnatg switch now includes -gnatyu
30898
30899         * usage.adb: Add -gnatwy/Y
30900         Remove wrong asterisk on -gnatwX line
30901         Add line for -gnatyu switch
30902
30903 2005-06-14  Vincent Celier  <celier@adacore.com>
30904
30905         * osint.adb (Add_Default_Search_Dirs): Put source and object
30906         directories of project files before directories coming from
30907         ADA_INCLUDE_PATH and ADA_OBJECTS_PATH.
30908
30909 2005-06-14  Robert Dewar  <dewar@adacore.com>
30910
30911         PR ada/15613
30912         * par-ch2.adb (Scan_Pragma_Argument): New procedure
30913         (P_Pragma): Implement RM 2.8(4) check for no pos args after named args
30914
30915 2005-06-14  Vincent Celier  <celier@adacore.com>
30916
30917         * prep.adb (Preprocess): Ignore error when scanning the first token of
30918         a line.
30919
30920 2005-06-14  Vincent Celier  <celier@adacore.com>
30921
30922         * prj-nmsc.adb (Suffix_For): Change default suffix for C++ to ".cpp"
30923         (Check_Stand_Alone_Library): If the specified reference symbol file does
30924         not exist, only issue a warning when the symbol policy is not
30925         Controlled. And, when symbol policy is Compliant, set the symbol
30926         policy to Autonomous.
30927
30928 2005-06-14  Vincent Celier  <celier@adacore.com>
30929
30930         * prj-part.adb (Pre_Parse_Context_Clause): Call Set_Is_Not_Last_In_List
30931         when the project file in a with clause is not the last one, that is the
30932         project file name is followed by a comma.
30933         * prj-pp.adb: (First_With_In_List): New Boolean global variable
30934         (Print): Issue list of project files separated by commas in with clauses
30935         according to the values returned by Is_Not_Last_In_List.
30936         * prj-tree.ads, prj-tree.adb: (Is_Not_Last_In_List): New function
30937         (Set_Is_Not_Last_In_List): New procedure
30938
30939 2005-06-14  Eric Botcazou  <ebotcazou@adacore.com>
30940
30941         * s-atacco.ads: Put a pragma No_Strict_Aliasing on Object_Pointer.
30942
30943 2005-06-14  Robert Dewar  <dewar@adacore.com>
30944
30945         * scng.adb: Add call to new Check_EOF routine
30946         (Accumulate_Checksum): Properly handle wide wide char >= 2 ** 24
30947         Add some comments regarding wide character handling
30948
30949         * style.ads, styleg.ads, styleg.adb: Implement new style switch -gnatyu
30950
30951         * stylesw.ads, stylesw.adb: Implement new style switch -gnatyu
30952
30953         * g-utf_32.ads, g-utf_32.adb (Is_UTF_32_Non_Graphic): Other_Format
30954         characters are now considered graphic characters and hence yield false
30955         in this call.
30956
30957         * nmake.adt: Modify header so that xnmake does not generate output
30958         files with multiple blank lines.
30959
30960         * treeprs.adt: Remove a blank line so that output from xtreeprs does
30961         not have an extra blank line
30962
30963 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
30964
30965         * sem_aggr.adb (Aggregate_Constraint_Checks): Apply a conversion to the
30966         expression when the component type is an anonymous access type to
30967         ensure that appropriate accessibility checks are done.
30968
30969         * sem_ch5.adb (Analyze_Assignment): Apply a implicit conversion to the
30970         expression of an assignment when the target object is of an anonymous
30971         access type. This ensures that required accessibility checks are done.
30972         (One_Bound): Move the check for type Universal_Integer to
30973         Process_Bounds.
30974         (Process_Bounds): Check whether the type of the preanalyzed range is
30975         Universal_Integer, and in that case set Typ to Integer_Type prior
30976         to setting the type of the original range and the calls to One_Bound.
30977
30978 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
30979
30980         * sem_case.adb (Expand_Others_Choice): Improve warning.
30981
30982 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
30983
30984         * sem_eval.adb (Subtypes_Statically_Match): Use discriminant
30985         constraint of full view if present, when other type is discriminated.
30986         (Eval_Relational_Op): Recognize tests of pointer values against Null,
30987         when the pointer is known to be non-null, and emit appropriate warning.
30988
30989 2005-06-14  Robert Dewar  <dewar@adacore.com>
30990             Ed Schonberg  <schonberg@adacore.com>
30991
30992         PR ada/10671
30993         * sem_prag.adb: Implement pragma Persistent_BSS
30994         Remove obsolete pragma Persistent_Data, Persistent_Object
30995         Set Ada_Version_Explicit, for implementation of AI-362
30996         Test Ada_Version_Explicit for Preelaborate_05 and Pure_05
30997         Add processing for pragma Pure_05 and Preelaborate_05
30998         Add processing for Assertion_Policy pragma
30999         Add pragma identifiers for Assert
31000         (Analyze_Pragma, case Assert): Check number of arguments
31001         (Process_Inline): Additional guard against an illegal program, where the
31002         argument of the pragma is undefined, and warnings on redundant
31003         constructs are enabled.
31004         (Analyze_Pragma, case Obsolescent): Allow an optional second argument
31005         Ada_05 to this pragma, specifying that the pragma is only active in
31006         Ada_05 mode.
31007         (Check_Arg_Order): New procedure
31008         Add appropriate calls to this procedure throughout
31009         Also throughout, check entity name before doing any other checks
31010
31011         * snames.h snames.ads, snames.adb: Add pragma Persistent_BSS
31012         Remove obsolete pragma Persistent_Data, Persistent_Object
31013         Add entries for pragma Pure_05 and Preelaborate_05
31014         Add entries for Assertion_Policy pragma and associated names
31015         Add some names for pragma argument processing
31016
31017         * tbuild.ads, tbuild.adb: (Make_Linker_Section_Pragma): New function
31018
31019 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
31020
31021         * sem_warn.adb (Warn_On_Known_Condition): If the constant expression
31022         appears within a negation (either from source or as a rewriting of
31023         inequality) adjust text of warning accordingly.
31024
31025 2005-06-14  Thomas Quinot  <quinot@adacore.com>
31026
31027         * s-strxdr.adb: Follow AI95-00132
31028
31029 2005-06-14  Arnaud Charlet  <charlet@adacore.com>
31030
31031         * s-tasren.adb (Exceptional_Complete_Rendezvous): Fix race condition.
31032
31033 2005-06-14  Arnaud Charlet  <charlet@adacore.com>
31034             Jose Ruiz  <ruiz@adacore.com>
31035
31036         * s-tposen.adb, s-tpobop.adb
31037         (Exceptional_Complete_Rendezvous): Save the occurrence and not only
31038         the exception id.
31039         (PO_Do_Or_Queue): Before queuing a task on an entry queue we check that
31040         there is no violation of the Max_Entry_Queue_Length restriction (if it
31041         has been set); Program_Error is raised otherwise.
31042         (Requeue_Call): Before requeuing the task on the target entry queue we
31043         check that there is no violation of the Max_Entry_Queue_Length
31044         restriction (if it has been set); Program_Error is raised otherwise.
31045
31046 2005-06-14  Robert Dewar  <dewar@adacore.com>
31047
31048         * styleg.adb: Fix several remaining problems in -gnatyu switch
31049         Blank line count not reset at start
31050         Scanning outside source buffer in some cases
31051         Confusing message for blanks at end of file
31052         Non-empty blank lines not recognized
31053
31054         * nmake.adt: Modify header so that xnmake does not generate output
31055         files with multiple blank lines.
31056
31057         * treeprs.adt: Remove a blank line so that output from xtreeprs does
31058         not have an extra blank line
31059
31060 2005-06-14  Sergey Rybin  <rybin@adacore.com>
31061
31062         * styleg-c.adb (Body_With_No_Spec): Remove ':' from warning message.
31063
31064 2005-06-14  Doug Rupp  <rupp@adacore.com>
31065             Vincent Celier  <celier@adacore.com>
31066
31067         * vms_conv.ads, vms_conv.adb: Remove "Library" command.
31068         Update copyright.
31069
31070         * vms_data.ads: Add entry for -gnaty/Y [NO]ADA_2005_COMPATIBILITY
31071         Remove "Library" command.
31072         Change keyword for style check -gnatyd from NOCRLF to
31073         DOS_LINE_ENDINGS.
31074         Remove useless second style check keyword NONE
31075         Remove help documentation for inexistent style check keyword
31076         RM_COLUMN_LAYOUT.
31077         Add help documentation for style check keywords DOS_LINE_ENDINGS,
31078         UNNECESSARY_BLANK_LINES and XTRA_PARENS
31079         Add UNNECESSARY_BLANK_LINES for -gnatyu
31080         Add qualifiers /ALL_PROJECTS (-U) for GNAT PRETTY and GNAT METRIC
31081
31082         * ug_words: Add entry for -gnaty/Y [NO]ADA_2005_COMPATIBILITY
31083
31084 2005-06-14  Vincent Celier  <celier@adacore.com>
31085
31086         * makegpr.adb (Compile_Link_With_Gnatmake): Invoke gnatmake with -d if
31087         gprmake was invoked with -d.
31088         (Compile_Sources): If -d was used, output the "completed ..." message
31089         for each compilation.
31090         (Scan_Arg): Recognize new switch -d
31091         When -c and at least one main is specified, set
31092         Unique_Compile to True to guarantee that no other sources will be
31093         compiled.
31094
31095 2005-06-14  Matthew Heaney  <heaney@adacore.com>
31096
31097         * a-swunha.ads, a-swunha.adb: Removed. Replaced by a-swuwha.ad[sb]
31098         * a-swuwha.ads, a-swuwha.adb: New files
31099
31100         * a-szunha.ads, a-szunha.adb: Removed, replaced by a-szuzha.ad[sb]
31101         * a-szuzha.ads, a-szuzha.adb: New files.
31102
31103         * a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb, a-crbtgk.ads,
31104         a-crbtgk.adb, a-crbltr.ads, a-coorse.ads, a-coorse.adb, a-convec.ads,
31105         a-convec.adb, a-coinve.ads, a-coinve.adb, a-cohata.ads, a-cohama.ads,
31106         a-cohama.adb, a-ciorse.ads, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
31107         a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cdlili.ads,
31108         a-cdlili.adb, a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cohase.adb,
31109         a-cohase.ads, a-ciorma.ads, a-coorma.ads, a-ciormu.ads, a-coormu.ads,
31110         a-swunha.adb, a-stunha.adb, a-ciorma.adb, a-coorma.adb, a-shcain.ads,
31111         a-shcain.adb, a-chtgke.ads, a-chtgke.adb, a-stwiha.ads, a-stwiha.adb,
31112         a-strhas.adb, a-stzhas.adb: synchronized to the latest version of the
31113         Ada 2005 RM.
31114
31115 2005-06-10  Eric Botcazou  <ebotcazou@adacore.com>
31116             Olivier Hainque  <hainque@adacore.com>
31117             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
31118             Pascal Obry  <obry@adacore.com>
31119
31120         * gigi.h: (build_allocator): Add arg IGNORE_INIT_TYPE.
31121
31122         * trans.c (call_to_gnu): Issue a warning for users of Starlet when
31123         making a temporary around a procedure call because of non-addressable
31124         actual parameter.
31125         (process_freeze_entity): If entity is a private type, capture size
31126         information that may have been computed for the full view.
31127         (tree_transform, case N_Allocator): If have initializing expression,
31128         check type for Has_Constrained_Partial_View and pass that to
31129         build_allocator.
31130         (tree_transform, case N_Return_Statement): Pass extra arg to
31131         build_allocator.
31132
31133         * decl.c (annotate_value): Remove early return if -gnatR is not
31134         specified.
31135         (gnat_to_gnu_field): Don't make a packable type for a component clause
31136         if the position is byte aligned, the field is aliased, and the clause
31137         size isn't a multiple of the packable alignment. It serves no useful
31138         purpose packing-wise and would be rejected later on.
31139         (gnat_to_gnu_entity, case object): Pass extra arg to build_allocator.
31140
31141         PR ada/20515
31142         (gnat_to_gnu_entity): Remove use of macro _WIN32 which is wrong in the
31143         context of cross compilers. We use TARGET_DLLIMPORT_DECL_ATTRIBUTES
31144         instead.
31145         (create_concat_name): Idem.
31146
31147 2005-06-10  Robert Dewar  <dewar@adacore.com>
31148             Eric Botcazou  <ebotcazou@adacore.com>
31149             Ben Brosgol  <brosgol@adacore.com>
31150             Cyrille Comar  <comar@adacore.com>
31151             Sergey Rybin  <rybin@adacore.com>
31152             Pascal Obry  <obry@adacore.com>
31153
31154         * gnat_rm.texi: Add documentation for pragma Persistent_BSS
31155         Document second argument (Ada_05) of pragma Obsolescent
31156         Add note that call to subprogram marked with pragma Obsolescent
31157         is now considered to be a violation of program Restrictions
31158         (No_Obsolescent_Features).
31159         (Implementation Defined Pragmas) <Machine_Attribute>: Make it clear
31160         that only machine-dependent attributes are supported.
31161
31162         * gnat_ugn.texi:
31163         Commented out menu lines and empty section for gnatclean examples
31164         Document -gnatwy/Y
31165         Fix some over long lines
31166         Clarify and enhance documentation of ADA_PROJECT_PATH.
31167         Rework section 2.11.2(3) about linking with a non-GNU compiler.
31168         Mention new switch -fcallgraph-info.
31169         Mention new switch -fstack-usage.
31170         For gnatpp, replace '-notab' with '-N' and add this option to Index
31171         Corrected VMS example.
31172         VMS keyword for style check -gnatyd is DOS_LINE_ENDINGS, no NOCRLF
31173         Minor reformatting
31174         Add documentation for -gnatyu switch (unnecessary blank lines)
31175         Document new switch -U for GNAT PRETTY and GNAT METRIC
31176         Add note about Stdcall being handled as C convention on non Windows OS.
31177         Remove some junk typo in description of gnatbind -S switch
31178         Remove reference to Extensions_Allowed pragma
31179         Document the new order of the directories to be searched (source and
31180         object directories of project files before directories in ADA_*_PATH
31181         environment variables.
31182
31183         * g-trasym.ads: Document that IRIX is supported
31184
31185 2005-06-10  Arnaud Charlet  <charlet@adacore.com>
31186
31187         * Makefile.in: Add initialize.o when needed.
31188         Adapt to new VMS package body Symbols and subunits
31189         No specialized version of a-sytaco is needed for VxWorks.
31190
31191         * a-wichun.ads, a-wichun.adb, a-zchuni.ads, a-zchuni.adb: New files.
31192         * a-zchara.ads, a-widcha.ads: New files.
31193
31194         * system-hpux-ia64.ads: New file.
31195
31196         * i-vxwork-x86.ads, i-vxwork.ads (intContext): Add this function which
31197         is imported from the VxWorks kernel.
31198
31199 2005-06-14  Robert Dewar  <dewar@adacore.com>
31200
31201         * g-soliop-mingw.ads, g-soccon-vms.adb, a-swmwco.ads, exp_smem.adb,
31202         fmap.adb, a-szmzco.ads, s-traent-vms.adb, s-traent-vms.ads,
31203         a-direio.ads, a-exctra.ads, a-exexda.adb, a-exextr.adb, a-stream.ads,
31204         s-restri.ads, s-restri.adb, s-traent.adb, s-traent.ads, a-slcain.adb,
31205         a-stzhas.ads, a-tiinau.adb, comperr.adb, exp_ch11.adb, g-boubuf.adb,
31206         g-calend.adb, g-debpoo.ads, g-moreex.ads, gprep.adb, g-regpat.ads,
31207         i-cexten.ads, i-os2thr.ads, makeutl.ads, memroot.adb, mlib-prj.adb,
31208         namet.adb, namet.ads, prj-makr.adb, prj-proc.adb, sem_dist.adb,
31209         sem_elim.ads, s-valint.adb, s-vallli.adb, s-vallli.adb, s-vallli.ads,
31210         s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads, scn.adb,
31211         s-tasinf.adb, targparm.adb, uname.adb, uname.ads, xnmake.adb,
31212         xsinfo.adb, a-direct.ads: Remove extra blank lines. Minor reformatting.
31213
31214 2005-06-14  Thomas Quinot  <quinot@adacore.com>
31215
31216         * xeinfo.adb: Fix typo in comment
31217
31218 2005-06-14  Javier Miranda  <miranda@adacore.com>
31219
31220         * repinfo.ads: Fix typo in comment
31221
31222 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
31223
31224         * s-finimp.adb (Parent_Tag): Delete this imported function (function
31225         Parent_Tag is now in the visible part of Ada.Tags).
31226         (Get_Deep_Controller): Call Ada.Tags.Parent_Tag directly instead of
31227         using imported function.
31228
31229 2005-06-14  Bernard Banner  <banner@adacore.com>
31230
31231         * vxaddr2line.adb: Add support for Windows hosted x86 vxworks. Should
31232         also apply for handling support for VxSim 653.
31233
31234 2005-06-14  Eric Botcazou  <ebotcazou@adacore.com>
31235
31236         * xsnames.adb: Add automatic generation of snames.h.
31237
31238 2005-06-14  Thomas Quinot  <quinot@adacore.com>
31239
31240         * gen-soccon.c: Add IP_MULTICAST_IF constant
31241         Minor reformatting and adjustments to prevent warnings.
31242
31243 2005-06-14  Pascal Obry  <obry@adacore.com>
31244
31245         * seh_init.c: Do not include <sys/stat.h>. This is not needed.
31246
31247 2005-06-03  Andrew Pinski  <pinskia@physics.uc.edu>
31248
31249         * trans.c (gnat_gimplify_expr): Call
31250         recompute_tree_invarant_for_addr_expr when we change
31251         the operand of the ADDR_EXPR.
31252
31253 2005-05-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
31254
31255         * misc.c: Don't include errors.h.
31256
31257 2005-05-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
31258
31259         * raise.c (db): Add ATTRIBUTE_PRINTF_2.
31260
31261 2005-05-29  Kazu Hirata  <kazu@cs.umass.edu>
31262
31263         * cal.c, decl.c, init.c, raise.c, trans.c, utils2.c: Fix
31264         comment typos.
31265         * gnat_rm.texi, gnat_ugn.texi: Fix typos.
31266
31267 2005-05-16  Nathanael Nerode  <neroden@gcc.gnu.org>
31268
31269         PR ada/20270
31270         * Makefile.in: Make TGT_LIB behave correctly.
31271
31272 2005-04-23  DJ Delorie  <dj@redhat.com>
31273
31274         * misc.c: Adjust warning() callers.
31275
31276 2005-04-16  Laurent Guerby  <laurent@guerby.net>
31277
31278         PR ada/18847
31279         * a-nudira.adb (Value): Check for valid string.
31280         * a-nuflra.adb (Value): Likewise.
31281
31282 2005-04-11  Richard Sandiford  <rsandifo@redhat.com>
31283
31284         * lang.opt: Refer to the GCC internals documentation instead of c.opt.
31285
31286 2005-04-10  Kazu Hirata  <kazu@cs.umass.edu>
31287
31288         * adaint.c, init.c, tracebak.c: Fix comment typos.
31289         * gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Fix typos.
31290
31291 2005-04-07  Laurent Guerby  <laurent@guerby.net>
31292             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
31293
31294         * Makefile.in: Add make ifeq define for hppa linux tasking support.
31295         * system-hpux.ads: Define Signed_Zeros to be True.
31296         * system-linux-hppa.ads, s-osinte-linux-hppa.ads: New files.
31297
31298 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
31299
31300         * adaint.c, cal.c, decl.c, gigi.h, gmem.c, init.c, link.c,
31301         raise.c, tracebak.c, trans.c, utils2.c, utils.c: Fix comment
31302         typos.
31303
31304 2005-03-30  Tom Tromey  <tromey@redhat.com>
31305
31306         * decl.c (gnat_substitute_in_type): Don't handle FILE_TYPE.
31307
31308 2005-03-30  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
31309
31310         * adaint.c (_gnat_set_close_on_exec): Mark parameters unused.
31311
31312 2005-03-29  Robert Dewar  <dewar@adacore.com>
31313
31314         * sem_res.adb (Resolve_Real_Literal): Generate warning if static
31315         fixed-point expression has value that is not a multiple of the Small
31316         value.
31317
31318         * opt.ads (Warn_On_Bad_Fixed_Value): New flag
31319
31320         * s-taprop-tru64.adb (RT_Resolution): Return an integer number of
31321         nanoseconds.
31322
31323         * ug_words: Add entry for [NO_]BAD_FIXED_VALUES for -gnatwb/-gnatwB
31324
31325 2005-03-29  Vincent Celier  <celier@adacore.com>
31326
31327         * mlib-tgt-vms-ia64.adb, mlib-tgt-vms-alpha.adb
31328         (Build_Dynamic_Library.Version_String): Return the empty string when
31329         Lib_Version is empty or when the symbol policy is not Autonomous.
31330
31331         * symbols-vms-alpha.adb (Finalize): For symbol policy Compliant, when
31332         a symbol is not in the reference symbol file, increase the Major ID
31333         and set the Minor ID to 0.
31334         Use gsmatch=lequal instead of gsmatch=equal
31335
31336 2005-03-29  Doug Rupp  <rupp@adacore.com>
31337
31338         * adaint.c (__gnat_to_canonical_file_spec [VMS]): Check for logical
31339         name and translate.
31340
31341 2005-03-29  Javier Miranda  <miranda@adacore.com>
31342
31343         * a-tags.ads, a-tags.adb (Get_TSD): Subprogram removed.
31344         (Inherit_DT): The first formal has been redefined as a Tag.
31345         This allows us the removal of the subprogram Get_TSD.
31346         (TSD): Replace the call to Get_TSD by the actual code.
31347
31348         * exp_disp.ads, exp_disp.adb: Remove support to call Get_TSD.
31349         (Make_DT): Upgrade the call to Inherit_TSD according to the
31350         new interface: the first formal is now a Tag.
31351
31352         * i-cpp.ads, i-cpp.adb (CPP_Inherit_DT): The first formal has been
31353         redefined as a Tag.
31354         This change allows us to remove the subprogram Get_TSD.
31355         (CPP_Get_TSD): Subprogram removed.
31356         (TSD): Replace the call to CPP_Get_TSD by the actual code.
31357
31358         * rtsfind.ads: Remove support to call the run-time
31359         subprogram Get_TSD
31360
31361 2005-03-29  Robert Dewar  <dewar@adacore.com>
31362
31363         * errutil.adb, errout.adb:
31364         Minor comment updates on Line_Terminator references
31365
31366         * par-ch10.adb: Add ??? comment about line terminator
31367
31368         * styleg.adb (Check_Line_Terminator): Add check for new switch -gnatyd
31369         (check dos line terminator).
31370         (Check_Line_Max_Length): New procedure, split off from the existing
31371         Check_Line_Terminator routine. Separating this out allows -gnatyf to
31372         be properly recognized.
31373
31374         * styleg.adb: Add ??? comment for line terminator reference
31375
31376         * scng.adb (Check_End_Of_Line): Fix bug of -gnatyf being ignored
31377         (Check_End_Of_Line): Add -gnatyd handling (check dos line terminators)
31378
31379         * styleg.ads (Check_Line_Terminator): Add check for new switch -gnatyd
31380         (check dos line terminator).
31381         (Check_Line_Max_Length): New procedure, split off from the existing
31382         Check_Line_Terminator routine. Separating this out allows -gnatyf to
31383         be properly recognized.
31384
31385         * stylesw.ads, stylesw.adb:
31386         Add handling for new -gnatyd switch (check dos line terminator)
31387
31388         * switch-c.adb: Recognize new -gnatyd switch (check dos line terminator)
31389         Recognize -gnatwb/-gnatwB switches
31390         Include Warn_On_Bad_Fixed_Value for -gnatg
31391
31392         * usage.adb:
31393         Add line for new -gnatyd switch (check dos line terminator)
31394
31395         * usage.adb: Add lines for -gnatwb/-gnatwB
31396
31397         * vms_data.ads: Add entry for NOCRLF (-gnatyd)
31398
31399         * vms_data.ads: [NO_]BAD_FIXED_VALUES synonym for -gnatwb/-gnatwB
31400
31401         * gnat_ugn.texi: Fix overlong lines
31402         Document new -gnatyd switch
31403         Document new -gnatwb/-gnatwB switches
31404
31405 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
31406
31407         * exp_ch4.adb (Has_Unconstrained_UU_Component): Use the base type in
31408         order to retrieve the component list of the type, before examining
31409         individual components.
31410
31411         * sem_type.adb (Covers): Types are compatible if one is the base type
31412         of the other, even though their base types might differ when private
31413         views are involved.
31414
31415 2005-03-29  Thomas Quinot  <quinot@adacore.com>
31416
31417         * exp_dist.adb (Add_RAST_Features, PolyORB version): Set the From_Any,
31418         To_Any and TypeCode TSSs on RAS types directly using Set_TSS, instead
31419         of using Set_Renaming_TSS. This ensures that the TSS bodies are not
31420         analyzed if expansion is disabled (which could otherwise cause spurious
31421         error messages if expansion has been disabled due to previous
31422         (unrelated) errors).
31423
31424         * sem_prag.adb (Analyze_Pragma, case Asynchronous): If RAS expansion
31425         is disabled, the entity denoted by the argument is the access type
31426         itself, not an underlying record type, so there is no need to go back
31427         to the Corresponding_Remote_Type.
31428
31429 2005-03-29  Gary Dismukes  <dismukes@adacore.com>
31430             Robert Dewar  <dewar@adacore.com>
31431
31432         * exp_intr.adb (Expand_Dispatching_Constructor_Call): New procedure to
31433         expand a call to an instance of
31434         Ada.Tags.Generic_Dispatching_Constructor into a dispatching call to the
31435         Constructor actual of the instance. A class-wide membership
31436         check is also generated, to ensure that the tag passed to the instance
31437         denotes a type in the class.
31438         (Expand_Intrinsic_Call): Call Expand_Dispatching_Constructor in the case
31439         of Name_Generic_Dispatching_Constructor.
31440
31441         * Makefile.rtl: Add a-tgdico.ads to the list of library units (new Ada
31442         05 unit for AI-260-02).
31443
31444         * a-tgdico.ads: New file.
31445
31446         * impunit.adb (Non_Imp_File_Names_05): Add entry "a-tgdico" for new
31447         predefined Ada 05 generic unit Ada.Tags.Generic_Dispatching_Constructor.
31448
31449         * snames.ads, snames.adb (Preset_Names): Add entry for
31450         Generic_Dispatching_Constructor.
31451
31452         PR ada/20300
31453         * sem_ch8.adb (Find_Direct_Name): Go to root type for check of
31454         character type cases.
31455         (Analyze_Subprogram_Renaming): Add special handling for
31456         the case of renaming of stream attributes when the renaming denotes a
31457         generic formal subprogram association for an abstract formal subprogram.
31458         Check that the attribute is a primitive stream attribute (and not
31459         a class-wide stream attribute) and then rewrite the attribute name
31460         as the name of the appropriate compiler-generated stream primitive.
31461
31462 2005-03-29  Robert Dewar  <dewar@adacore.com>
31463
31464         * exp_util.adb (Remove_Side_Effects): Properly propagate arguments to
31465         recursive calls.
31466         (Is_Possibly_Unaligned_Object): Correct typo that
31467         resulted in inaccurate result for unaligned scalars within records.
31468
31469 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
31470
31471         * freeze.adb (Freeze_Record_Type): If the type of the component is an
31472         itype whose parent is controlled and not yet frozen, do not create a
31473         freeze node for the itype if expansion is disabled.
31474
31475 2005-03-29  Vincent Celier  <celier@adacore.com>
31476
31477         * make.adb (Gnatmake): Don't fail if the main project file is declared
31478         as having no Ada sources. Do not display message "no sources to
31479         compile" in quiet output.
31480
31481 2005-03-29  Doug Rupp  <rupp@adacore.com>
31482
31483         * Makefile.in [VMS] (EXTRA_GNATTOOLS): Add vms_help and gnat.hlp as
31484         extra tools.
31485
31486 2005-03-29  Robert Dewar  <dewar@adacore.com>
31487
31488         * par-ch12.adb (P_Generic): Give better msg for illegal private generic
31489         child.
31490
31491 2005-03-29  Robert Dewar  <dewar@adacore.com>
31492
31493         * par-ch3.adb (P_Type_Declaration): Fix bad error recovery after
31494         missing TYPE Improve the error message generated when compiling a
31495         limited interface in Ada83 or Ada95 mode.
31496
31497 2005-03-29  Robert Dewar  <dewar@adacore.com>
31498
31499         * par-ch4.adb (P_Name): When a bad attribute is returned, return error,
31500         rather than proceed ahead using a junk attribute name.
31501
31502 2005-03-29  Vincent Celier  <celier@adacore.com>
31503
31504         * prj.ads, prj.adb: (Project_Data): Add new component Display_Name
31505
31506         * prj-part.adb (Parse_Single_Project): Set the location of a project
31507         on its defining identifier, rather than on the reserved word "project".
31508
31509         * prj-proc.adb (Expression): Adapt to the fact that default of external
31510         references may be string expressions, not always literal strings.
31511         (Recursive_Process): Set Display_Name equal to Name
31512         when Location is No_Location, that is when there is no actual file.
31513         Get the Display_Name of the project from the source, when it is not a
31514         virtual project.
31515         (Process): Use the Display_Name in error messages
31516
31517         * prj-strt.adb (External_Reference): Allow default to be string
31518         expressions, not only literal strings.
31519
31520 2005-03-29  Vincent Celier  <celier@adacore.com>
31521
31522         * prj-nmsc.adb (Check_Stand_Alone_Library): Do not forbid the symbol
31523         file and the reference symbol file to be the same file.
31524
31525 2005-03-29  Thomas Quinot  <quinot@adacore.com>
31526
31527         * sem_cat.adb (Validate_Remote_Types_Type_Conversion): Perform check to
31528         forbid conversion of a local access-to-subprogram type to a remote one.
31529
31530         * sem_util.adb (Wrong_Type): For a record type that is the expanded
31531         equivalent type for a remote access-to-subprogram type, go back to the
31532         original RAS entity when displaying an error message, so the casing is
31533         the original source casing.
31534
31535 2005-03-29  Robert Dewar  <dewar@adacore.com>
31536
31537         * sem_ch11.adb (Analyze_Raise_Statement): Change message for warning
31538         on param update.
31539
31540 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
31541
31542         * sem_ch4.adb (Analyze_Selected_Component): Do not generate an actual
31543         subtype if code is being pre-analyzed, to prevent un-expanded
31544         references to protected formals, among others.
31545         (Analyze_Explicit_Dereference): If the overloaded prefix includes some
31546         interpretation that can be a call, include the result of the call as a
31547         possible interpretation of the dereference.
31548
31549         * sem_ch5.adb (Process_Bounds): Determine type of range by
31550         pre-analyzing a copy of the original range, and then analyze the range
31551         with the expected type.
31552
31553         * sem_res.adb (Check_Parameterless_Call): For an explicit dereference
31554         with an overloaded prefix where not all interpretations yield an
31555         access to subprogram, do not rewrite node as a call.
31556         (Resolve_Explicit_Dereference): Recognize the previous case and rewrite
31557         the node as a call once the context identifies the interpretation of
31558         the prefix whose call yields the context type.
31559         (Valid_Conversion): For the case of a conversion between
31560         local access-to-subprogram types, check subtype conformance using
31561         Check_Subtype_Conformant instead of Subtype_Conformant, to have a more
31562         detailed error message.
31563
31564 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
31565
31566         * sem_ch6.adb (Set_Formal_Mode): If the subtype has a non_null
31567         indicator, indicate that the formal can never be null.
31568         (Process_Formals): If a formal has a non_null indicator, insert the
31569         resulting subtype immediately before the enclosing subprogram decl,
31570         and not at the beginning of the corresponding declarative part, to
31571         prevent access before elaboration (Ada2005).
31572
31573 2005-03-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
31574
31575         PR ada/19956
31576         * utils.c (finish_record_type): Use variable_size when setting sizes.
31577
31578 2005-03-29  Robert Dewar  <dewar@adacore.com>
31579
31580         * xtreeprs.adb, xnmake.adb: Use Stream_IO instead of Text_IO to
31581         guarantee Unix style line terminators for the output files, even when
31582         running on windows.
31583
31584 2005-03-29  Robert Dewar  <dewar@adacore.com>
31585
31586         * a-direct.ads, a-direct.adb (Start_Search): Free allocated search
31587         buffer if an exception is raised.
31588
31589 2005-03-29  Ed Falis  <falis@adacore.com>
31590
31591         * cio.c: Undefine putchar and getchar for VTHREADS: incompatible with
31592         VxWorks 653 1.4
31593
31594 2005-03-29  Robert Dewar  <dewar@adacore.com>
31595
31596         * sem_util.ads: Minor reformatting
31597         * gnat_rm.texi: Minor editing.
31598
31599 2005-03-29  Eric Botcazou  <ebotcazou@adacore.com>
31600
31601         * decl.c (gnat_to_gnu_entity) <E_Variable>: Rework comment.
31602         * trans.c (tree_transform) <N_Identifier>: Use correct predicates.
31603
31604 2005-03-24  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
31605
31606         * adaint.c (__gnat_portable_spawn): Adjust cast.
31607
31608 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
31609
31610         * misc.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
31611
31612 2005-03-17  Pascal Obry  <obry@adacore.com>
31613
31614         * adaint.h, adaint.c (__gnat_waitpid): Moved to expect.c where it is
31615         used.
31616
31617         * expect.c (__gnat_waitpid): Moved here from adaint.c.
31618         Reimplement under Win32 using Win32 API.
31619
31620         (__gnat_kill) [Win32]: Properly close the process handle before leaving
31621         this routine.
31622
31623 2005-03-17  Eric Botcazou  <ebotcazou@adacore.com>
31624
31625         * ada-tree.h: (DECL_RENAMING_GLOBAL_P): New predicate.
31626         (DECL_RENAMED_OBJECT): New accessor macro.
31627         (SET_DECL_RENAMED_OBJECT): New setter macro.
31628
31629         * decl.c (gnat_to_gnu_entity) <E_Variable>: Stabilize the renamed
31630         object in all cases.  Attach the renamed object to the VAR_DECL.
31631         (gnat_to_gnu_field): Do not lift the record wrapper if the size of the
31632         field is not prescribed.
31633
31634         * misc.c (gnat_handle_option): Handle -gnatO separately.
31635         (gnat_print_decl) <VAR_DECL>: New case.
31636         Print the DECL_RENAMED_OBJECT node.
31637
31638         * lang.opt:  Declare separate -gnatO option.
31639
31640         * trans.c (tree_transform) <N_Identifier>: If the object is a renaming
31641         pointer, replace it with the renamed object.
31642         <N_Validate_Unchecked_Conversion>: Warn for a conversion to a fat
31643         pointer type if the source is not a fat pointer type whose underlying
31644         array has the same non-zero alias set as that of the destination array.
31645
31646 2005-03-17  Javier Miranda  <miranda@adacore.com>
31647
31648         * a-tags.ads, a-tags.adb (Get_Expanded_Name): Removed.
31649         (Get_Inheritance_Depth): Removed.
31650         (Set_Inheritance_Depth): Removed.
31651
31652         * rtsfind.ads, exp_disp.ads, exp_disp.adb: Remove support to call the
31653         subprogram Get_Expanded_Name because it is not referenced by the
31654         frontend.
31655
31656         * i-cpp.ads, i-cpp.adb (CPP_Get_Expanded_Name): Removed.
31657         (CPP_Get_Inheritance_Depth): Removed.
31658         (CPP_Set_Inheritance_Depth): Removed.
31659
31660         * tbuild.ads, tbuild.adb (Make_DT_Component): Removed.
31661
31662 2005-03-17  Robert Dewar  <dewar@adacore.com>
31663
31664         * checks.adb (Apply_Array_Size_Check): Completely remove this for GCC
31665         3, since we now expect GCC 3 to do all the work.
31666
31667 2005-03-17  Javier Miranda  <miranda@adacore.com>
31668
31669         * einfo.adb (First_Private_Entity, Set_First_Private_Entity): Addition
31670         of one barrier to avoid wrong usage of this attribute.
31671
31672         * sem_ch12.adb (Formal_Entity): Fix erroneous usage of the attribute
31673         First_Private_Entity.
31674
31675         * sem_ch7.adb (Install_Visible_Declarations): Add a barrier to protect
31676         the subprogram against wrong usage.
31677         Adapt the code to traverse the entities in the
31678         scope of a record_type because in addition to its usage regarding
31679         packages, this subprogram is also called by Expand_N_Freeze_Entity
31680         to install the visible declarations of the enclosing scope of a
31681         record_type_with_private to establish the proper visibility before
31682         freezing the entity and related subprograms.
31683
31684 2005-03-17  Ed Schonberg  <schonberg@adacore.com>
31685
31686         * exp_ch2.adb (In_Assignment_Context): Recognize slice assignments to
31687         entry formals.
31688
31689 2005-03-17  Thomas Quinot  <quinot@adacore.com>
31690
31691         * exp_ch3.adb (Check_Attr): New subprogram.
31692         (Check_Stream_Attribute): Move the code for 13.13.2(9/1) enforcement
31693         into a new Check_Attr subprogram, in order to provide a more
31694         explanatory error message (including the name of the missing attribute).
31695         (Stream_Operation_OK): Renamed from Stream_Operations_OK. This
31696         subprogram determines whether a default implementation exists for a
31697         given stream attribute.
31698         (Make_Predefined_Primitive_Specs, Predefined_Primitive_Bodies):
31699         Determine whether to generate a default implementation for each stream
31700         attribute separately, as this depends on the specific attribute.
31701
31702         * exp_strm.adb (Make_Field_Attribute): For the case of an illegal
31703         limited extension where a stream attribute is missing for a limited
31704         component (which will have been flagged in Exp_Ch3.Sem_Attr), do not
31705         generate a bogus reference to the missing attribute to prevent
31706         cascaded errors. Instead, generate a null statement.
31707
31708         * sem_attr.adb (Check_Stream_Attribute): A stream attribute is
31709         available for a limited type if it has been specified for an ancestor
31710         of the type.
31711
31712 2005-03-17  Ed Schonberg  <schonberg@adacore.com>
31713
31714         * exp_ch6.adb (Expand_Inlined_Call): handle the case when the renamed
31715         entity is an operator.
31716
31717 2005-03-17  Thomas Quinot  <quinot@adacore.com>
31718
31719         * exp_dist.adb (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist
31720         spec, to make this predicate available to other units.
31721
31722         * rtsfind.adb (Check_RPC): Use Sem_Dist.Get_PCS_Name instead of
31723         reimplementing it.
31724
31725         * sem_ch8.adb: Disable expansion of remote access-to-subprogram types
31726         when no distribution runtime library is available.
31727
31728         * sem_res.adb, sem_dist.adb: Disable expansion of remote
31729         access-to-subprogram types when no distribution runtime library is
31730         available.
31731         (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist spec, to make this
31732         predicate available to other units.
31733
31734         * sem_dist.ads (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist
31735         spec, to make this predicate available to other units.
31736
31737 2005-03-17  Vincent Celier  <celier@adacore.com>
31738
31739         * make.adb (Insert_Project_Sources): Make sure the Q is always
31740         initialized.
31741
31742         * prj-nmsc.adb (Check_Ada_Naming_Scheme_Validity): Check Naming against
31743         the default for the tree, not the global default naming.
31744
31745         * prj-proc.adb (Recursive_Process): No need to put the default naming
31746         in the project data, it's already there.
31747
31748 2005-03-17  Doug Rupp  <rupp@adacore.com>
31749
31750         * Makefile.in: (ia64-hp-*vms*): Use s-crtl-vms64.ads.
31751
31752         * 5xcrtl.ads: Renamed to...
31753         * s-crtl-vms64.ads: ...this new file
31754
31755 2005-03-17  Robert Dewar  <dewar@adacore.com>
31756
31757         PR ada/19519
31758         * namet.adb (Copy_One_Character): Set proper wide character encoding
31759         for upper half character if we have upper half encoding.
31760
31761 2005-03-17  Robert Dewar  <dewar@adacore.com>
31762
31763         * par.adb (Par): Improved msg for attempt to recompile predefined unit
31764
31765 2005-03-17  Thomas Quinot  <quinot@adacore.com>
31766
31767         * sem_ch13.adb (New_Stream_Function, New_Stream_Procedure): For a
31768         tagged limited type, the TSS is a newly built renaming declaration:
31769         insert it using Set_TSS, not Copy_TSS.
31770
31771 2005-03-17  Javier Miranda  <miranda@adacore.com>
31772
31773         * sem_ch4.adb (Try_Primitive_Operation, Class_Wide_Operation and
31774         Try_Object_Operation): Analyze the object that is accessible
31775         through the prefix of the subprogram call before we apply
31776         the transformation of the object-operation notation.
31777
31778 2005-03-17  Jose Ruiz  <ruiz@adacore.com>
31779
31780         * s-taprob.adb (Initialize_Protection): Initialize the protected
31781         object's owner to Null_Task.
31782         (Lock): If pragma Detect_Blocking is in effect and the caller of this
31783         procedure is already the protected object's owner then Program_Error
31784         is raised. In addition the protected object's owner is updated.
31785         (Lock_Read_Only): If pragma Detect_Blocking is in effect and the caller
31786         of this procedure is already the protected object's owner then
31787         Program_Error is raised.
31788         In addition the protected object's owner is updated.
31789         (Unlock): Remove the ownership of the protected object.
31790
31791         * s-taprob.ads (Protection): Add the field Owner, used to store the
31792         protected object's owner.
31793         This component is needed for detecting one type of potentially blocking
31794         operations (external calls on a protected subprogram with the same
31795         target object as that of the protected action). Document the rest of
31796         the components.
31797
31798         * s-tposen.adb, s-tpoben.adb (Initialize_Protection_Entries):
31799         Initialize the protected object's owner to Null_Task.
31800         (Lock_Read_Only_Entries): If pragma Detect_Blocking is in effect and the
31801         caller of this procedure is already the protected object's owner then
31802         Program_Error is raised.
31803         Do not raise Program_Error when this procedure is called from a
31804         protected action.
31805         (Unlock_Entries): Remove the ownership of the protected object.
31806         (Lock_Entries): If pragma Detect_Blocking is in effect and the caller
31807         of this procedure is already the protected object's owner then
31808         Program_Error is raised.
31809         Do not raise Program_Error when this procedure is called from
31810         a protected action.
31811
31812         * s-tposen.ads, s-tpoben.ads (Protection_Entries): Add the field Owner,
31813         used to store the protected object's owner.
31814
31815         * s-tpobop.adb (Protected_Entry_Call): If pragma Detect_Blocking is in
31816         effect and this procedure (a potentially blocking operation) is called
31817         from whithin a protected action, Program_Error is raised.
31818         (Timed_Protected_Entry_Call): If pragma Detect_Blocking is in effect
31819         and this procedure (a potentially blocking operation) is called from
31820         whithin a protected action, Program_Error is raised.
31821
31822 2005-03-17  Vincent Celier  <celier@adacore.com>
31823             Nicolas Setton  <setton@adacore.com>
31824
31825         * mlib-tgt-darwin.adb (Build_Dynamic_Library): Remove the "-fini"
31826         switch, not supported by the linker on Darwin. Add '_' before
31827         <library>init, as this character is added unconditionally by the
31828         compiler.
31829         (Is_Archive_Ext): Replace the wrong library extension ".dyld" by the
31830         correct one ".dylib". This fixes detection of the archive files when
31831         building library projects.
31832
31833 2005-03-17  Vincent Celier  <celier@adacore.com>
31834
31835         * switch-m.adb (Normalize_Compiler_Switches): Recognize switches
31836         -gnat83, -gnat95 and -gnat05.
31837
31838 2005-03-17  Vasiliy Fofanov  <fofanov@adacore.com>
31839
31840         * gnat_ugn.texi: Document gnatmem restriction
31841
31842 2005-03-17  Thomas Quinot  <quinot@adacore.com>
31843
31844         * snames.adb: Document new TSS names introduced by exp_dist/exp_tss
31845         cleanup
31846
31847 2005-03-17  Robert Dewar  <dewar@adacore.com>
31848
31849         * s-interr.ads, s-interr.adb, sem_ch3.adb, prj.ads, prj.adb,
31850         a-interr.adb, a-interr.ads, s-interr-sigaction.adb, s-interr-dummy.adb,
31851         s-interr-vms.adb, s-interr-vxworks.adb: Minor reformatting
31852
31853         * casing.adb: Comment improvements
31854
31855 2005-03-17  Pascal Obry  <obry@adacore.com>
31856
31857         * g-expect.adb: Minor reformatting.
31858
31859 2005-03-15  Zack Weinberg  <zack@codesourcery.com>
31860
31861         * Make-lang.in (doc/gnat_ugn_unw.info, doc/gnat_rm.info)
31862         (doc/gnat_ugn_unw.dvi, doc/gnat_rm.dvi): Add gcc-vers.texi
31863         to dependencies.
31864
31865 2005-03-15  Vincent Celier  <celier@adacore.com>
31866
31867         * mlib-tgt-darwin.adb (Library_Exist_For, Library_File_Name_For):
31868         Add new parameter In_Tree to specify the project tree: needed
31869         by the project manager. Adapt to changes in project manager
31870         using new parameter In_Tree.
31871
31872 2005-03-15  Jakub Jelinek  <jakub@redhat.com>
31873
31874         * Make-lang.in (ada/treeprs.ads, ada/einfo.h, ada/sinfo.h,
31875         ada/nmake.adb, ada/nmake.ads): Use unique subdirectories of
31876         ada/bldtools to avoid make -jN failures.
31877
31878 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
31879
31880         * trans.c (gnat_to_gnu) <N_Return_Statement>: Set gnu_result
31881         to NULL_TREE on entry.
31882
31883 2005-03-15  Robert Dewar  <dewar@adacore.com>
31884
31885         * system-unixware.ads, system-linux-ia64.ads, system-freebsd-x86.ads,
31886         system-lynxos-ppc.ads, system-lynxos-x86.ads, system-linux-x86_64.ads,
31887         system-tru64.ads, system-aix.ads, system-vxworks-sparcv9.ads,
31888         system-vxworks-xscale.ads, system-solaris-x86.ads, system-irix-o32.ads,
31889         system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
31890         system-linux-x86.ads, system-vxworks-mips.ads, system-os2.ads,
31891         system-interix.ads, system-solaris-sparc.ads,
31892         system-solaris-sparcv9.ads, system-vms.ads, system-mingw.ads,
31893         system-vms-zcx.ads, system-vxworks-ppc.ads, system-vxworks-alpha.ads,
31894         system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
31895         system-linux-ppc.ads, system-linux-alpha.ads, system-linux-sparc.ads,
31896         system-linux-s390.ads, system-linux-s390x.ads: Add line defining
31897         Compiler_System_Version to be False.
31898
31899         * opt.ads: Add new flag Opt.Address_Is_Private
31900
31901         * targparm.ads, targparm.adb: Set new flag Opt.Address_Is_Private
31902         Add new parameter Compiler_System_Version to avoid checking for
31903         completeness of parameters when compiler is compiling itself.
31904         Allows old versions of GNAT to be compiled with new compiler.
31905
31906 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
31907
31908         * s-osinte-tru64.ads, s-osinte-tru64.adb (Get_Stack_Base): New function
31909         (Hide_Yellow_Zone): New procedure to hide the Yellow Zone of the
31910         calling thread.
31911         (Stack_Base_Available): New flag.
31912         (Get_Page_Size): New overloaded functions imported from C.
31913         (PROT_NONE, PROT_READ, PROT_WRITE, PROT_EXEC, PROT_ALL,
31914         PROT_ON, PROT_OFF): New constants.
31915         (mprotect): New function imported from C.
31916         (pthread_teb_t): New record type.
31917
31918         * s-taprop-tru64.adb: (Enter_Task): Invoke Hide_Yellow_Zone.
31919         (Create_Task): Account for the Yellow Zone and the guard page.
31920
31921 2005-03-15  Vincent Celier  <celier@adacore.com>
31922
31923         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
31924         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
31925         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb,
31926         mlib-tgt-vxworks.adb, mlib-tgt-lynxos.adb (Library_Exist_For,
31927         Library_File_Name_For): Add new parameter In_Tree
31928         to specify the project tree: needed by the project manager.
31929         Adapt to changes in project manager using new parameter In_Tree.
31930         Remove local imports, use functions in System.CRTL.
31931
31932         * make.adb, clean.adb, gnatcmd.adb (Project_Tree): New constant needed
31933         to use the project manager.
31934
31935         * makeutl.ads, makeutl.adb (Linker_Options_Switches): New parameter
31936         In_Tree to designate the project tree. Adapt to changes in the project
31937         manager, using In_Tree.
31938
31939         * mlib-prj.ads, mlib-prj.adb (Build_Library, Check_Library,
31940         Copy_Interface_Sources): Add new parameter In_Tree to specify the
31941         project tree: needed by the project manager.
31942         (Build_Library): Check that Arg'Length >= 6 before checking if it
31943         contains "--RTS=...".
31944
31945         * mlib-tgt.ads, mlib-tgt.adb (Library_Exist_For,
31946         Library_File_Name_For): Add new parameter In_Tree to specify the
31947         project tree: needed by the project manager.
31948
31949         * prj.ads, prj.adb: Major modifications to allow several project trees
31950         in memory at the same time.
31951         Change tables to dynamic tables and hash tables to dynamic hash
31952         tables. Move tables and hash tables from Prj.Com (in the visible part)
31953         and Prj.Env (in the private part). Move some constants from the visible
31954         part to the private part. Make other constants deferred.
31955         (Project_Empty): Make it a variable, not a function
31956         (Empty_Project): Add parameter Tree. Returns the data with the default
31957         naming data of the project tree Tree.
31958         (Initialize): After updating Std_Naming_Data, copy its value to the
31959         component Naming of Project Empty.
31960         (Register_Default_Naming_Scheme): Use and update the default naming
31961         component of the project tree, instead of the global variable
31962         Std_Naming_Data.
31963         (Standard_Naming_Data): Add defaulted parameter Tree. If project tree
31964         Tree is not defaulted, return the default naming data of the Tree.
31965         (Initial_Buffer_Size): Constant moved from private part
31966         (Default_Ada_Spec_Suffix_Id, Default_Ada_Body_Suffix_Id, Slash_Id); new
31967         variables initialized in procedure Initialize.
31968         (Add_To_Buffer): Add two in out parameters to replace global variables
31969         Buffer and Buffer_Last.
31970         (Default_Ada_Spec_Suffix, Default_Body_Spec_Suffix, Slash): New
31971         functions.
31972         Adapt to changes to use new type Project_Tree_Ref and dynamic tables and
31973         hash tables.
31974         (Initialize, Reset, register-Default_Namng-Scheme): Add a new parameter
31975         for the project tree.
31976         (Project_Tree_Data, Project_Tree_Ref, No_Project): Declare types and
31977         constant at the beginning of the package spec, so that they cane be used
31978         in subprograms before their full declarations.
31979         (Standard_Naming_Data): Add defaulted parameter of type Project_Node_Ref
31980         (Empty_Project): Add parameter of type Project_Node_Ref
31981         (Private_Project_Tree_Data): Add component Default_Naming of type
31982         Naming_Data.
31983         (Buffer, Buffer_Last): remove global variables
31984         (Add_To_Buffer): Add two in out parameters to replace global variables
31985         Buffer and Buffer_Last.
31986         (Current_Packages_To_Check): Remove global variable
31987         (Empty_Name): Move to private part
31988         (No-Symbols): Make it a constant
31989         (Private_Project_Tree_Data): New type for the private part of the
31990         project tree data.
31991         (Project_Tree_Data): New type for the data of a project tree
31992         (Project_Tree_Ref): New type to designate a project tree
31993         (Initialize, Reset, register-Default_Namng-Scheme): Add a new parameter
31994         for the project tree.
31995
31996         * prj-attr.ads: Add with Table; needed, as package Prj no longer
31997         imports package Table.
31998
31999         * prj-com.adb: Remove empty, no longer needed body
32000
32001         * prj-com.ads: Move most of the content of this package to package Prj.
32002
32003         * prj-dect.ads, prj-dect.adb (Parse): New parameters In_Tree to
32004         designate the project node tree and Packages_To_Check to replace
32005         global variable Current_Packages_To_Check.
32006         Add new parameters In_Tree and Packages_To_Check to local subprograms,
32007         when needed. Adapt to changes in project manager with project node tree
32008         In_Tree.
32009
32010         * prj-env.ads, prj-env.adb: Add new parameter In_Tree to designate the
32011         project tree to most subprograms. Move tables and hash tables to
32012         private part of package Prj.
32013         Adapt to changes in project manager using project tree In_Tree.
32014
32015         * prj-makr.adb (Tree): New constant to designate the project node tree
32016         Adapt to change in project manager using project node tree Tree
32017
32018         * prj-nmsc.ads, prj-nmsc.adb (Check_Stand_Alone_Library): Correctly
32019         display the Library_Src_Dir and the Library_Dir.
32020         Add new parameter In_Tree to designate the project node tree to most
32021         subprograms. Adapt to changes in the project manager, using project tree
32022         In_Tree.
32023         (Check_Naming_Scheme): Do not alter the casing on platforms where
32024         the casing of file names is not significant.
32025         (Check): Add new parameter In_Tree to designate the
32026
32027         * prj-pars.ads, prj-pars.adb (Parse): Add new parameter In_Tree to
32028         designate the project tree.
32029         Declare a project node tree to call Prj.Part.Parse and Prj.Proc.Process
32030
32031         * prj-part.ads, prj-part.adb (Buffer, Buffer_Last): Global variables,
32032         to replace those that were in the private part of package Prj.
32033         Add new parameter In__Tree to designate the project node tree to most
32034         subprograms. Adapt to change in Prj.Tree with project node tree In_Tree.
32035         (Post_Parse_Context_Clause): When specifying the project node of a with
32036         clause, indicate that it is a limited with only if there is "limited"
32037         in the with clause, not necessarily when In_Limited is True.
32038         (Parse): Add new parameter In_Tree to designate the project node tree
32039
32040         * prj-pp.ads, prj-pp.adb (Pretty_Print): Add new parameter In_Tree to
32041         designate the project node tree. Adapt to change in Prj.Tree with
32042         project node tree In_Tree.
32043
32044         * prj-proc.ads, prj-proc.adb (Recursive_Process): Specify the project
32045         tree In_Tree in the call to function Empty_Process to give its initial
32046         value to the project data Processed_Data.
32047         Add new parameters In_Tree to designate the project tree and
32048         From_Project_Node_Tree to designate the project node tree to several
32049         subprograms. Adapt to change in project manager with project tree
32050         In_Tree and project node tree From_Project_Node_Tree.
32051
32052         * prj-strt.ads, prj-strt.adb (Buffer, Buffer_Last): Global variables,
32053         to replace those that were in the private part of package Prj.
32054         Add new parameter In_Tree to designate the project node tree to most
32055         subprograms. Adapt to change in Prj.Tree with project node tree In_Tree.
32056
32057         * prj-tree.ads, prj-tree.adb: Add new parameter of type
32058         Project_Node_Tree_Ref to most subprograms.
32059         Use this new parameter to store project nodes in the designated project
32060         node tree.
32061         (Project_Node_Tree_Ref): New type to designate a project node tree
32062         (Tree_Private_Part): Change table to dynamic table and hash tables to
32063         dynamic hash tables.
32064
32065         * prj-util.ads, prj-util.adb: Add new parameter In_Tree to designate
32066         the project tree to most subprograms. Adapt to changes in project
32067         manager using project tree In_Tree.
32068
32069         * makegpr.adb (Project_Tree): New constant needed to use project
32070         manager.
32071
32072 2005-03-15  Olivier Hainque  <hainque@adacore.com>
32073
32074         * s-intman-posix.adb (Notify_Exception): Adjust signature, as handler
32075         for sigactions with SA_SIGINFO set. Call
32076         __gnat_adjust_context_for_raise before raising, to perform the
32077         potentially required adjustments to the machine context for the GCC
32078         unwinder.
32079
32080         * raise.h (__gnat_adjust_context_for_raise): New prototype.
32081
32082         * init.c (__gnat_adjust_context_for_raise) HPUX: Initial revision.
32083         Adjust PC by one in the provided machine context.
32084         (__gnat_install_handler) HPUX: Set SA_SIGINFO in the sigaction flags,
32085         so that the handler is passed the context structure to adjust prior to
32086         the raise.
32087         (__gnat_error_handler) HPUX: Adjust the signature to match what an
32088         SA_SIGINFO sigaction should look like. Call
32089         __gnat_adjust_context_for_raise before actually raising.
32090         (__gnat_adjust_context_for_raise): Default noop to help PC
32091         adjustments before raise from signal handlers.
32092         (__gnat_error_handler): Indirectly call a predicate function to
32093         determine if a condition should be resignaled or not.
32094         (__gnat_set_resignal_predicate): User interface to modify the predicate.
32095         (__gnat_default_resignal_p): Default GNAT predicate.
32096
32097 2005-03-15  Doug Rupp  <rupp@adacore.com>
32098
32099         * adaint.c: Prefix #include of VMS system header files with vms/
32100         [VMS] (HOST_EXECUTABLE_SUFFIX, HOST_OBJECT_SUFFIX): Define for VMS.
32101         Do not define a dummy function "convert_addresses" under Darwin,
32102         not needed.
32103
32104         * tb-alvms.c, expect.c: Prefix #include of VMS system header files
32105         with vms/
32106
32107 2005-03-15  Nicolas Setton  <setton@adacore.com>
32108
32109         * tracebak.c: Under Darwin, use the same unwinding mechanisms as under
32110         PPC/AIX.
32111
32112 2005-03-15  Robert Dewar  <dewar@adacore.com>
32113
32114         * a-reatim.ads, a-reatim.adb: Add functions Minutes and Seconds for
32115         AI-386.
32116
32117         * a-retide.ads: Minor comment changes
32118
32119 2005-03-15  Robert Dewar  <dewar@adacore.com>
32120
32121         * a-stzunb.adb, a-stzunb.adb a-stzunb.ads, a-stzunb.ads,
32122         a-stwiun.ads, a-stwiun.adb, a-strunb.ads, a-strunb.adb: Move
32123         Realloc_For_Chunk to private part of package.
32124         New subprograms for AI-301
32125
32126         * a-szuzti.adb, a-suteio.adb, a-swuwti.adb: Improve efficiency of
32127         Get_Line procedure.
32128         Avoid unnecessary use of Get/Set_Wide_String
32129
32130 2005-03-15  Robert Dewar  <dewar@adacore.com>
32131
32132         PR ada/13470
32133         * a-stunau.ads, a-stunau.adb:
32134         Change interface to allow efficient (and correct) implementation
32135         The previous changes to allow extra space in unbounded strings had
32136         left this interface a bit broken.
32137
32138         * a-suteio.adb: Avoid unnecessary use of Get/Set_String
32139
32140         * g-spipat.ads, g-spipat.adb: New interface for Get_String
32141         Minor reformatting (function specs)
32142
32143         * g-spitbo.adb: New interface for Get_String
32144
32145         * g-spitbo.ads: Minor reformatting
32146
32147         * a-swunau.ads, a-swunau.adb: New interface for Get_Wide_String
32148
32149         * a-szunau.ads, a-szunau.adb: New interface for Get_Wide_Wide_String
32150
32151 2005-03-15  Javier Miranda  <miranda@adacore.com>
32152             Robert Dewar  <dewar@adacore.com>
32153             Thomas Quinot  <quinot@adacore.com>
32154             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
32155
32156         * atree.ads, atree.adb: Add support for Elist24 field
32157
32158         * atree.h: Fix wrong definition of Field27
32159         Add support for Elist16 field
32160         Add support for Elist24 field
32161
32162         * einfo.ads, einfo.adb (Abstract_Interfaces,
32163         Set_Abstract_Interfaces): New subprograms.
32164         (Abstract_Interface_Alias, Set_Abstract_Interface_Alias): New
32165         subprograms.
32166         (Access_Disp_Table, Set_Access_Disp_Table): Modified to handle a list of
32167         entities rather than a single node.
32168         (Is_Interface, Set_Is_Interface): New subprogram
32169         (First_Tag_Component): New syntesized attribute
32170         (Next_Tag_Component): New synthesized attribute
32171         (Write_Entity_Flags): Upgraded to write Is_Interface
32172         (Write_Field24_Name): Upgraded to write Abstract_Interfaces
32173         (Write_Field25_Name): Upgraded to write Abstract_Interface_Alias
32174         (Task_Body_Procedure): New subprogram to read this attribute.
32175         (Set_Task_Body_Procedure): New subprogram to set this attribute.
32176         (Has_Controlled_Component): Now applies to all entities.
32177         This is only a documentation change, since it always worked to apply
32178         this to other than composite types (yielding false), but now this is
32179         official.
32180         Update documentation on Must_Be_Byte_Aligned for new spec
32181
32182         * tbuild.adb, exp_dist.adb, exp_disp.adb, exp_ch3.ads, exp_ch3.adb,
32183         exp_attr.adb, exp_aggr.adb, exp_ch4.adb, exp_ch5.adb: Upgrade all the
32184         uses of the Access_Disp_Table attribute to reference the first dispatch
32185         table associated with a tagged type. As
32186         part of the implementation of abstract interface types,
32187         Access_Disp_Table has been redefined to contain a list of dispatch
32188         tables (rather than a single dispatch table).
32189         Similarly, upgrade all the references to Tag_Component by the
32190         new attribute First_Tag_Component.
32191         (Find_Inherited_TSS): Moved to exp_tss.
32192         Clean up test in Expand_N_Object_Declaration for cases
32193         where we need to do a separate assignment of the initial value.
32194         (Expand_N_Object_Declaration): If the expression in the
32195         declaration of a tagged type is an aggregate, no need to generate an
32196         additional tag assignment.
32197         (Freeze_Type): Now a function that returns True if the N_Freeze_Entity
32198         is to be deleted.
32199         Bit packed array ops are only called if operands are known to be
32200         aligned.
32201         (Component_Equality): When returning an N_Raise_Program_Error statement,
32202         ensure that its Etype is set to Empty to avoid confusing GIGI (which
32203         expects that only expressions have a bona fide type).
32204         (Make_Tag_Ctrl_Assignment): Use Build_Actual_Subtype to correctly
32205         determine the amount of data to be copied.
32206
32207         * par.adb (P_Interface_Type_Definition): New subprogram that parses the
32208         new syntax rule of Ada 2005 interfaces (for AI-251 and AI-345):
32209             INTERFACE_TYPE_DEFINITION ::=
32210               [limited | task | protected | synchronized] interface
32211                 [AND interface_list]
32212
32213         * par-ch3.adb (P_Type_Declaration): Modified to give support to
32214         interfaces.
32215         (P_Derived_Type_Def_Or_Private_Ext_Decl): Modified to give support to
32216         interfaces.
32217         (P_Interface_Type_Definition): New subprogram that parses the new
32218         syntax rule of Ada 2005 interfaces
32219         (P_Identifier_Declarations): fix two occurrences of 'RENAMES' in error
32220         messages by the correct RENAMES (quotes removed).
32221
32222         * sem_prag.adb: Upgrade all the references to Tag_Component by the new
32223         attribute First_Tag_Component.
32224
32225         * sinfo.ads, sinfo.adb: Remove OK_For_Stream flag, not used, not needed
32226         (Interface_List, Set_Interface_List): New subprograms.
32227         (Interface_Present, Set_Interface_Present): New subprograms.
32228         (Limited_Present, Set_Limited_Present): Available also in derived
32229         type definition nodes.
32230         (Protected_Present, Set_Protected_Present): Available also in
32231         record type definition and
32232         derived type definition nodes.
32233         (Synchronized_Present, Set_Synchronized_Present): New subprograms.
32234         (Task_Present, Set_Task_Present): New subprogram.
32235         (Task_Body_Procedure): Removed.
32236         (Set_Task_Body_Procedure): Removed.
32237         These subprogram have been removed because the attribute
32238         Task_Body_Procedure has been moved to the corresponding task type
32239         or task subtype entity to leave a field free to store the list
32240         of interfaces implemented by a task (for AI-345)
32241         Add Expression field to N_Raise_Statement node for Ada 2005 AI-361
32242         (Null_Exclusion_Present): Change to Flag11, to avoid conflict with
32243         expression flag Do_Range_Check
32244         (Exception_Junk): Change to Flag7 to accomodate above change
32245         (Box_Present, Default_Name, Specification, Set_Box_Present,
32246         Set_Default_Name, Set_Specification): Expand the expression
32247         "X in N_Formal_Subprogram_Declaration" into the corresponding
32248         two comparisons. Required to use the csinfo tool.
32249
32250         * exp_ch11.adb (Expand_N_Raise_Statement): Deal with case where
32251         "with string" given.
32252
32253         * sem_ch11.adb (Analyze_Raise_Statement): Handle case where string
32254         expression given.
32255
32256         * par-ch11.adb (P_Raise_Statement): Recognize with string expression
32257         in 2005 mode
32258
32259         * exp_ch9.adb (Build_Task_Proc_Specification): Modified to use entity
32260         attribute Task_Body_Procedure rather than the old semantic field that
32261         was available in the task_type_declaration node.
32262
32263         * par-ch12.adb (P_Formal_Type_Definition): Modified to handle formal
32264         interface type definitions.
32265         (P_Formal_Derived_Type_Definition): Modified to handle the list of
32266         interfaces.
32267
32268         * par-ch9.adb (P_Task): Modified to handle the list of interfaces in a
32269         task type declaration.
32270         (P_Protected): Modified to handle the list of interfaces in a
32271         protected type declaration.
32272
32273 2005-03-15  Doug Rupp  <rupp@adacore.com>
32274             Vincent Celier  <celier@adacore.com>
32275
32276         * bindgen.adb (Gen_Main_C): Change WBI __posix_exit to decc$posix_exit
32277         (Gen_Output_File_C): Likewise.
32278         (Gen_Main_C): Issue #include <stdlib.h> to avoid warning
32279
32280 2005-03-15  Thomas Quinot  <quinot@adacore.com>
32281
32282         * checks.adb (Get_E_First_Or_Last): When the expression being retrieved
32283         is an N_Raise_Constraint_Error node, create a new copy of it without
32284         going through a call to Duplicate_Subexpr.
32285
32286 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
32287             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
32288             Nicolas Setton  <setton@adacore.com>
32289             Ed Schonberg  <schonberg@adacore.com>
32290
32291         PR ada/19900
32292         PR ada/19408
32293         PR ada/19140
32294         PR ada/20255
32295         * decl.c (gnat_to_gnu_field): Reject aliased components with a
32296         representation clause that prescribes a size not equal to the rounded
32297         size of their types.
32298         (gnat_to_gnu_entity, case E_Component): Always look at
32299         Original_Record_Component if Present and not the entity.
32300         (gnat_to_gnu_entity, case E_Record_Subtype): Rework handling of subtypes
32301         of tagged extension types by not making field for components that are
32302         inside the parent.
32303         (gnat_to_gnu_entity) <E_Record_Type>: Fix typo in the alignment formula
32304         (gnat_to_gnu_entity) <E_Variable>: Do not convert again the
32305         expression to the type of the object when the object is constant.
32306         Reverse defer_debug_incomplete_list before traversing it, so that trees
32307         are processed in the order at which they were added to the list. This
32308         order is important when using the stabs debug format.
32309         If we are deferring the output of debug information, also defer this
32310         output for a function return type.
32311         When adding fields to a record, prevent emitting debug information
32312         for incomplete records, emit the information only when the record is
32313         complete.
32314         (components_to_record): New parameter defer_debug.
32315         (gnat_to_gnu_entity, case E_Array_Subtype): Call copy_alias_set.
32316         (gnat_to_gnu_field_decl): New function.
32317         (substitution_list, annotate_rep): Call it.
32318         (gnat_to_gnu_entity, case E_Record_Subtype): Likewise.
32319         (gnat_to_gnu_entity, case E_Record_Type): Likewise.
32320         No longer update discriminants to not be a COMPONENT_REF.
32321         (copy_alias_set): Strip padding from input type; also handle
32322         unconstrained arrays properly.
32323
32324         * gigi.h (write_record_type_debug_info): New function.
32325         Convert to use ANSI-style prototypes. Remove unused
32326         declarations for emit_stack_check, elab_all_gnat and
32327         set_second_error_entity.
32328         (gnat_to_gnu_field_decl): New decl.
32329
32330         * utils.c (write_record_type_debug_info): New function.
32331         (finish_record_type): Delegate generation of debug information to
32332         write_record_type_debug_info.
32333         (update_pointer_to): Remove unneeded calls to rest_of_decl_compilation.
32334         (update_pointer_to): Fix pasto.
32335         (convert) <UNION_TYPE>: Accept slight type variations when
32336         converting to an unchecked union type.
32337
32338         * exp_ch13.adb (Expand_N_Freeze_Entity): If Freeze_Type returns True,
32339         replace the N_Freeze_Entity with a null statement.
32340
32341         * freeze.adb (Freeze_Expression): If the freeze nodes are generated
32342         within a constrained subcomponent of an enclosing record, place the
32343         freeze nodes in the scope stack entry for the enclosing record.
32344         (Undelay_Type): New Subprogram.
32345         (Set_Small_Size): Pass T, the type to modify; all callers changed.
32346         (Freeze_Entity, Freeze_Record_Type): Change the way we handle types
32347         within records; allow them to have freeze nodes if their base types
32348         aren't frozen yet.
32349
32350         * exp_util.adb (Remove_Side_Effects): Properly test for
32351         Expansion_Delayed and handle case when it's inside an
32352         N_Qualified_Expression.
32353
32354         * sem_ch3.adb (Derived_Type_Declaration): New predicate
32355         Comes_From_Generic, to recognize accurately that the parent type in a
32356         derived type declaration can be traced back to a formal type, because
32357         it is one or is derived from one, or because its completion is derived
32358         from one.
32359         (Constrain_Component_Type): If component comes from source and has no
32360         explicit constraint, no need to constrain in in a subtype of the
32361         enclosing record.
32362         (Constrain_Access, Constrain_Array): Allow itypes to be delayed.
32363         Minor change to propagate Is_Ada_2005 flag
32364
32365         * trans.c (gnat_to_gnu, case N_Aggregate): Verify that
32366         Expansion_Delayed is False.
32367         (assoc_to_constructor): Ignore fields that have a
32368         Corresponding_Discriminant.
32369         (gnat_to_gnu) <N_Return_Statement>: Restructure. If the
32370         function returns "by target", dereference the target pointer using the
32371         type of the actual return value.
32372         <all>: Be prepared for a null gnu_result.
32373         (processed_inline_subprograms): Check flag_really_no_inline
32374         instead of flag_no_inline.
32375         (set_second_error_entity): Remove unused function.
32376         (gnat_to_gnu, case N_Selected_Component): Call
32377         gnat_to_gnu_field_decl.
32378         (assoc_to_constructor): Likewise.
32379
32380 2005-03-15  Robert Dewar  <dewar@adacore.com>
32381             Ed Schonberg  <schonberg@adacore.com>
32382             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
32383
32384         * exp_pakd.adb (Create_Packed_Array_Type): Do not set
32385         Must_Be_Byte_Aligned for cases where we do not need to use a
32386         System.Pack_nn unit.
32387
32388         * exp_ch6.adb (Expand_Call): Call Expand_Actuals for functions as well
32389         as procedures.
32390         Needed now that we do some processing for IN parameters as well. This
32391         may well fix some unrelated errors.
32392         (Expand_Call): Handle case of unaligned objects (in particular those
32393         that come from packed arrays).
32394         (Expand_Inlined_Call): If the subprogram is a renaming as body, and the
32395         renamed entity is an inherited operation, re-expand the call using the
32396         original operation, which is the one to call.
32397         Detect attempt to inline parameterless recursive subprogram.
32398         (Represented_As_Scalar): Fix to work properly with private types
32399         (Is_Possibly_Unaligned_Object): Major rewrite to get a much more
32400         accurate estimate. Yields True in far fewer cases than before,
32401         improving the quality of code that depends on this test.
32402
32403         * exp_util.adb (Kill_Dead_Code): For a package declaration, iterate
32404         over both visible and private declarations to remove them from tree,
32405         and mark subprograms declared in package as eliminated, to prevent
32406         spurious use in subsequent compilation of generic units in the context.
32407
32408         * exp_util.ads: Minor cleanup in variable names
32409
32410         * sem_eval.ads, sem_eval.adb: Minor reformatting
32411         (Compile_Time_Known_Bounds): New function
32412
32413 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
32414
32415         * exp_ch7.adb (Convert_View): Use base types of underlying types when
32416         determining whether an unchecked conversion is needed for the argument
32417         of an initialization call.
32418
32419 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
32420
32421         * exp_intr.adb (Expand_Unc_Conversion): As a target type, use the type
32422         that appears in the instantiation rather than the internal subtype
32423         generated in the wrapper package, to avoid anomalies in gigi when the
32424         target is derived from a private type whose full view is an access type.
32425
32426 2005-03-15  Robert Dewar  <dewar@adacore.com>
32427
32428         * exp_smem.adb, sem_attr.adb: Remove OK_For_Stream flag, not used,
32429         not needed.
32430         Add documentation to replace the use of this flag
32431         Fix kludge for Maximum_Alignment on x86 so that it does not apply to
32432         the x86_64.
32433
32434 2005-03-15  Thomas Quinot  <quinot@adacore.com>
32435
32436         * exp_tss.ads, exp_tss.adb (Find_Inherited_TSS): New subprogram, moved
32437         here from exp_attr so it can be shared between exp_attr and exp_dist.
32438         (TSS_Names): Renamed from OK_TSS_Names. This array contains the list of
32439         all TSS names, not a subset thereof, and the previous name introduced
32440         an unnecessarily confusion that a distinction might exist between
32441         "OK" TSS names and some "not OK" TSS names.
32442
32443 2005-03-15  Doug Rupp  <rupp@adacore.com>
32444
32445         * gnatchop.adb (Locate_Executable): Normalize the possibly VMS style
32446         Command_Name.
32447
32448 2005-03-15  Pascal Obry  <obry@adacore.com>
32449             Eric Botcazou  <ebotcazou@adacore.com>
32450
32451         PR ada/20226
32452         PR ada/20344
32453         * init.c (__gnat_initialize): Do not call __gnat_install_SEH_handler()
32454         when IN_RTS. This is to work around a bootstrap path problem.
32455
32456         * misc.c (gnat_parse_file): Create a SEH (Structured Exception Handler)
32457         table and pass it to __gnat_install_SEH_handler().
32458         (gnat_handle_option): Accept OPT_fRTS_, not OPT_fRTS.
32459
32460         * lang.opt: Fix specification of -fRTS=.
32461
32462 2005-03-15  Doug Rupp  <rupp@adacore.com>
32463             Bernard Banner  <banner@adacore.com>
32464             Vincent Celier  <celier@adacore.com>
32465             Arnaud Charlet  <charlet@adacore.com>
32466
32467         PR ada/6852
32468         This change works fine when gnatlib is built from the gcc directory,
32469         but does not work when using the libada Makefile, since GCC_FOR_TARGET
32470         is not passed to ada/Makefile.in, so more work is needed by a
32471         Makefile/configure expert.
32472
32473         * Makefile.in(gnatlib): Use $(GCC_FOR_TARGET) for compiling library.
32474         set GMEM_LIB on ia64 linux to add optional support for gnatmem.
32475         Setup gnatlink switch -M for x86_64 linux, as it is already setup
32476         for Linux x86.
32477         (gnatlib-shared-default): Use GNATLIBCFLAGS as well.
32478         Run ranlib on libgccprefix.a
32479         Define PREFIX_OBJS for Darwin, to build libgccprefix.
32480         (ADA_INCLUDE_SRCS): Split Ada packages.
32481
32482 2005-03-15  Robert Dewar  <dewar@adacore.com>
32483
32484         * Make-lang.in: Add g-utf_32 unit for gnat and gnatbind
32485
32486         * impunit.adb: Add GNAT.UTF_32
32487
32488         * scng.adb: Use gnat.utf_32 instead of widechar for utf_32 stuff
32489
32490         * widechar.ads, widechar.adb: Remove redundant UTF-32 tables (scng
32491         now uses GNAT.UTF_32).
32492
32493         * g-utf_32.ads, g-utf_32.adb: This is a new unit with full
32494         capabilities for categorizing characters using Unicode categories
32495
32496 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
32497
32498         * sem_ch10.adb (Build_Ancestor_Name): If the ancestor is an
32499         instantiation that has been rewritten as a package body, retrieve spec
32500         to generate proper name for implicit_with_clause.
32501         (Install_Parents): Recognize a parent that is an instantiation but has
32502         been rewritten as a package declaration during analysis.
32503
32504 2005-03-15  Javier Miranda  <miranda@adacore.com>
32505             Ed Schonberg  <schonberg@adacore.com>
32506
32507         * sem_ch12.adb (Instantiate_Object): If the analysis of the actual
32508         parameter reported some error we immediately return. This improves the
32509         behaviour of the frontend in case of errors.
32510         (Install_Parent, Remove_Parent): Introduce new flag
32511         Parent_Unit_Visible, to preserve the proper visibility of the ultimate
32512         ancestor of a generic child unit, when the child is being instantiated.
32513         (Inline_Instance_Body): If we are compiling the private
32514         part or the body of a child unit, restore the proper visibility of the
32515         parents after compiling the instance body.
32516
32517 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
32518             Javier Miranda  <miranda@adacore.com>
32519
32520         PR ada/15608
32521         * sem_util.adb (Get_Task_Body_Procedure): Type may be the completion
32522         of a private type, in which case it is underlying_type that denotes
32523         the proper task. Also modified to use the new entity attribute
32524         that is directly available in the task type and task subtype entities
32525         (Build_Actual_Subtype_Of_Component): Handle properly multidimensional
32526         arrays when other dimensions than the first are constrained by
32527         discriminants of an enclosing record.
32528         (Insert_Explicit_Dereference): If the prefix is an indexed component or
32529         a combination of indexed and selected components, find ultimate entity
32530         and generate the appropriate reference for it, to suppress spurious
32531         warnings.
32532         (Note_Possible_Modification): If an entity name has no entity, return.
32533         (Is_Variable): A function call never denotes a variable.
32534         (Requires_Transient_Scope): For record types, recurse only on
32535         components, not on internal subtypes that may have been generated for
32536         constrained components.
32537
32538 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
32539
32540         * sem_ch4.adb (Analyze_Concatenation): Do not consider operators marked
32541         Eliminated as candidates for resolution. Both efficient, and avoids
32542         anomalies with operators declared in deleted code.
32543         (Process_Implicit_Dereference_Prefix): Use this procedure whenever
32544         expansion is disabled (as when compiling a generic) to prevent spurious
32545         warnings on prefixes of selected components.
32546
32547 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
32548
32549         * sem_ch6.adb (Is_Private_Declaration): Verify that the declaration is
32550         attached to a list before checking whether it appears in the private
32551         declarations of the current package.
32552         (Make_Inequality_Operator): Insert declaration in proper declarative
32553         list rather than just setting the Parent field, so that
32554         Is_Private_Declaration can handle it properly.
32555
32556 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
32557
32558         * sem_ch8.adb (Analyze_Subprogram_Renaming): In a generic, if this is
32559         a renaming a body, check that the renamed subprogram in not intrinsic.
32560         (Find_Direct_Name): If several use_visible entities hide
32561         each other, and the context is a predefined file compiled through
32562         rtsfind, keep only the entity that comes from a predefined file.
32563
32564 2005-03-15  Geert Bosch  <bosch@adacore.com>
32565
32566         * s-fatgen.adb (Valid): Extend special exceptions to account for long
32567         long float padding to also cover AMD64 and IA64.
32568
32569 2005-03-15  Gary Dismukes  <dismukes@adacore.com>
32570
32571         * s-imgwch.adb: Add with and use of Interfaces.
32572         (Img_Wide_Character): Change type of Val to Unsigned_16.
32573         (Img_Wide_Wide_Character): Change type of Val to Unsigned_32.
32574
32575 2005-03-15  Matthew Gingell  <gingell@adacore.com>
32576
32577         * sysdep.c: Implement __gnat_localtime_r as call to localtime_r on AIX.
32578
32579 2005-03-15  Robert Dewar  <dewar@adacore.com>
32580
32581         * usage.adb: Add missing lines for -gnat95 and -gnat05 switches
32582
32583         * sem_ch7.adb: Minor change to propagate Is_Ada_2005 flag
32584
32585         * i-c.adb: Clarify that AI-258 behavior is also intended in Ada 95
32586
32587 2005-03-15  Robert Dewar  <dewar@adacore.com>
32588
32589         * s-bitops.adb, s-bitops.ads,
32590         s-taprop-os2.adb, s-intman-vms.ads, s-intman-vxworks.ads,
32591         s-taprop-vxworks.adb, a-caldel.ads, a-calend.adb, a-tasatt.adb,
32592         tbuild.ads, s-finimp.adb, s-imgwch.adb, s-intman.ads, s-intman.ads,
32593         s-memory.adb, s-soflin.ads, s-taasde.ads, s-taprob.adb, s-taprop.ads,
32594         s-taprop.ads, s-tasini.adb, s-tasini.ads, s-tasini.ads, s-tasini.ads,
32595         s-taskin.ads, s-tasren.adb, s-tassta.adb, s-tassta.ads, s-tassta.ads,
32596         s-tasuti.ads, s-tataat.ads, s-tataat.ads, s-tataat.ads, s-tataat.ads,
32597         s-tpoben.adb, s-tpoben.adb, s-tpobop.ads: Update comments. Minor
32598         reformatting.
32599
32600 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
32601
32602         * utils2.c (build_binary_op): Fix typo.
32603
32604 2005-03-15  Doug Rupp  <rupp@adacore.com>
32605
32606         * s-crtl.ads (popen,pclose): New imports.
32607
32608 2005-03-15  Cyrille Comar  <comar@adacore.com>
32609
32610         * comperr.adb (Compiler_Abort): remove references to obsolete
32611         procedures in the bug boxes for various GNAT builds.
32612
32613 2005-03-15  Vincent Celier  <celier@adacore.com>
32614
32615         * snames.ads, snames.adb: Save as Unix text file, not as DOS text file
32616
32617 2005-03-15  Geert Bosch  <bosch@adacore.com>
32618             Arnaud Charlet  <charlet@adacore.com>
32619             Robert Dewar  <dewar@adacore.com>
32620             Cyrille Comar  <comar@adacore.com>
32621             Sergey Rybin  <rybin@adacore.com>
32622
32623         * gnat_ugn.texi: Remove extended inline assembly example, as it was far
32624         too specific and long-winded to be appropriate for the GNAT User's
32625         Guide.
32626         Warn about use of GCC switches not documented in the GNAT User's Guide,
32627         as these may cause generated code to not conform to Ada semantics.
32628         Remove mention of -gdwarf-2 for sparc64, since this is now the default.
32629         Add documentation for -gnat95 and -gnat05 switches
32630         Remove paragraph documenting obsolete way to refer to third party
32631         libraries.
32632         Add a few references to Ada_05 that were missing.
32633         Update documentation on -gnatZ/-gnatL.
32634         Document limitation when using -m64 under Solaris.
32635         Change the "Name Casing" subsection of the pretty-printer section
32636         according to the changes in the dictionary processing.
32637
32638         * gnat_rm.texi: Document the Ada_05 pragma.
32639         Section on record representation clauses describes the new more
32640         relaxed rules about placement of large packed bit array components.
32641         Add documentation of GNAT.UTF_32
32642
32643 2005-03-12  Daniel Berlin  <dberlin@dberlin.org>
32644
32645         * misc.c (gnat_post_options): Turn off structural
32646         aliasing for now.
32647
32648 2005-03-08  Laurent Guerby  <laurent@guerby.net>
32649
32650         * system-linux-sparc.ads: Fix typo in previous commit.
32651
32652 2005-03-07  James A. Morrison  <phython@gcc.gnu.org>
32653             Laurent Guerby  <laurent@guerby.net>
32654
32655         PR ada/20035
32656         * system-linux-sparc.ads: New.
32657         * Makefile.in: Add sparc linux entry.
32658
32659 2005-02-27  Danny Smith  <dannysmith@users.sourceforge.net>
32660
32661         * seh_init.c (__gnat_SEH_error_handler): Mark third and fourth
32662         parameters as unused.
32663
32664 2005-02-26  Nathanael Nerode  <neroden@gcc.gnu.org>
32665         Partial merge from libada-gnattools-branch:
32666
32667         2004-12-02  Nathanael Nerode  <neroden@gcc.gnu.org>
32668         * Makefile.in: Move gnattools{1,1re,2,3,4} and corresponding flags
32669         into code in gnattools/Makefile.in.  Remove direct dependencies on
32670         stamp-tools by tools clauses.
32671         2004-12-02  Nathanael Nerode  <neroden@gcc.gnu.org>
32672         * config-lang.in: Add gnattools to $lang_dirs.
32673
32674 2005-02-13  Andrew Pinski  <pinskia@physics.uc.edu>
32675
32676         PR ada/19942
32677         * utils.c (gnat_type_for_mode): Return null instead of ICE because
32678         we asked for an unknown mode.
32679
32680 2005-02-12  Richard Henderson  <rth@redhat.com>
32681
32682         * utils.c (gnat_type_for_mode): Return NULL for COMPLEX modes;
32683         validate SCALAR_INT_MODE_P before calling gnat_type_for_size.
32684
32685 2005-02-10  Andreas Jaeger  <aj@suse.de>
32686
32687         * init.c (__gnat_initialize): Mark parameter as unused.
32688
32689 2005-02-09  Doug Rupp  <rupp@adacore.com>
32690
32691         * g-expect-vms.adb (Non_Blocking_Spawn): Separate out.
32692         * g-enblsp-vms-alpha.adb g-enblsp-vms-ia64.adb: New subunits.
32693
32694 2005-02-09  Doug Rupp  <rupp@adacore.com>
32695
32696         * gnatchop.adb (dup, dup2),
32697         g-dirope.adb (closedir, opendir, rmdir): Reference via System.CRTL.
32698
32699         * gnatlbr.adb (mkdir),
32700         mlib-tgt-vms-ia64.adb (popen, plose):  Import with decc$ prefix.
32701
32702         * s-crtl.ads (closdir, dup, dup2, opendir, rmdir): Import.
32703
32704 2005-02-09  Doug Rupp  <rupp@adacore.com>
32705
32706         * s-tpopde-vms.adb: Add pragma Warnings (Off) for Task_Id conversions.
32707
32708 2005-02-09  Robert Dewar  <dewar@adacore.com>
32709             Thomas Quinot  <quinot@adacore.com>
32710             Javier Miranda  <miranda@adacore.com>
32711             Pascal Obry  <obry@adacore.com>
32712             Ed Schonberg  <schonberg@adacore.com>
32713             Doug Rupp  <rupp@adacore.com>
32714             Gary Dismukes  <dismukes@adacore.com>
32715             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
32716
32717         * g-zstspl.ads: New file.
32718
32719         * a-chahan.ads, a-chahan.adb: Add declarations from AI-285
32720
32721         * a-string.ads: Add pragma Ada_05 for wide_wide_space to get warning in
32722         Ada 95 mode
32723         Add definition of Wide_Wide_Space for AI-285
32724
32725         * impunit.ads, impunit.adb, sem_ch10.adb: Complete rewrite and new
32726         interface (to support Ada 95 and Ada 2005 units).
32727         Add Unbounded_IO files
32728         Add entries for Wide_Wide packages for AI-285
32729         Add list of containers packages to Ada 2005 unit list
32730
32731         * a-swuwti.ads, a-swuwti.adb, a-suteio.ads, a-suteio.adb: Updates to
32732         support new Unbounded_IO package cleanly.
32733
32734         * g-utf_32.ads, g-utf_32.adb: New files.
32735
32736         * Makefile.rtl: Add entry for g-utf_32
32737         Add new files for Unbounded_IO
32738         Adjust make file for new AI-285 wide wide packages
32739         Add AI-302 containers to the run time.
32740
32741         * a-stwibo.adb, a-stwibo.ads, a-stwisu.adb, a-stwisu.ads,
32742         a-strbou.ads, a-strbou.adb, a-strsup.ads, a-strsup.adb: New
32743         subprograms for AI-301.
32744
32745         * a-stwiun.adb, a-stwiun.ads: Minor reformatting.
32746
32747         * a-stunau.ads: Minor comment correction
32748
32749         * rtsfind.ads, rtsfind.adb: Add definitions for Wide_Wide attributes
32750         etc.
32751         Also extend Text_IO_Kludge to support Wide_Wide_Text_IO
32752         (Check_RPC): Update to match changes in expanded code.
32753         Clean up unused entity.
32754
32755         * exp_ch3.ads, exp_ch3.adb: Fix various places where Wide_Wide_String
32756         was not taken into account.
32757         This includes proper initialization with Normalize_Scalars.
32758         (Get_Simple_Init_Val): Major rewrite for initialize scalars and
32759         normalize scalars cases (particularly the latter) to do a better job
32760         of finding invalid representations.
32761
32762         * s-scaval.ads, s-scaval.adb: Add values for zero invalid values
32763
32764         * s-strops.ads, s-strops.adb: Remove string normalize routines, never
32765         used
32766
32767         * exp_dist.adb: Add support for wide wide character type
32768         (Expand_Receiving_Stubs_Bodies): For a package declaration that has a
32769         private part, generate stub bodies at the end of the private part,
32770         not the visible part.
32771         (Add_RACW_Primitive_Operations_And_Bodies): Add last missing code for
32772         PolyORB support.
32773         (Add_Obj_RPC_Receiver_Completion): Add PCS-specific subprograms and
32774         generic wrapper to execute final processing after completing the
32775         expansion of the RPC receiver for an RACW.
32776
32777         * snames.h, snames.ads, snames.adb: Add definitions for wide_wide
32778         packages and attributes.
32779         (Preset_Names): Addition of the new reserved words of Ada 2005,
32780         that is interface, overriding and synchronized.
32781         (Get_Pragma_Id): Give support to the use of the new reserved word
32782         "interface" as a pragma name.
32783         (Is_Pragma_Name): Give support to the use of the new reserved word
32784         "interface" as a pragma name.
32785         (Preset_Names): Add stream_size string for the Stream_Size Ada2005
32786         attribute implementation.
32787
32788         * exp_attr.adb (Expand_Attribute_Reference): Do not apply validity
32789         checks to entities that are output parameters of Asm operations.
32790         Handle the Stream_Size attribute.
32791         Add implementation of Wide_Wide_Value, Wide_Wide_Image, Wide_Wide_Width
32792
32793         * exp_imgv.ads, exp_imgv.adb: Add support for wide wide character type
32794
32795         * sem_attr.adb (Eval_Attribute): Raise compile-time constraint error
32796         for second parameter being 0.0.
32797         Add support for wide wide character type.
32798         (Analyze_Attribute, Eval_Attribute): Handle the Stream_Size attribute.
32799
32800         * s-valwch.adb, s-valwch.ads, s-imgwch.ads, s-imgwch.adb,
32801         s-wchstw.ads, s-wchstw.adb, s-wchwts.adb, s-wchwts.ads,
32802         s-widwch.adb, s-widwch.ads, s-wwdcha.adb, s-wwdcha.ads,
32803         s-wwdenu.adb, s-wwdenu.ads, s-wwdwch.adb, s-wwdwch.ads: Add support
32804         for wide wide character cases.
32805
32806         * cstand.adb: Create entities for Wide_Wide_Character and
32807         Wide_Wide_String.
32808
32809         * i-c.ads, i-c.adb: Fix not raising CE for null wide strings in
32810         accordance with AI-258.
32811         Add new declarations for 16/32 bit C character types (Part of AI285)
32812
32813         * einfo.ads, einfo.adb (Is_Obsolescent, Is_Ada_2005): New flag
32814         (Obsolescent_Warning): New field
32815         (Rep_Clause): New local subprogram used to share code. Returns the rep
32816         clause for which the name is given in parameter.
32817         (Has_Stream_Size_Clause): New routine.
32818         (Stream_Size_Clause): Idem. Implementation is based on Rep_Clause.
32819         (Address_Clause): Implementation is now using Rep_Clause.
32820         (Alignment_Clause): Idem.
32821         (Size_Clause): Idem.
32822
32823         * lib-xref.adb (Generate_Reference): Test for reference to Ada 2005
32824         entity in non-Ada 2005 mode and generate warning.
32825
32826         * par-prag.adb: Add handling of one argument form for pragma Ada_05.
32827         (Prag): Code cleanup. Remove old gnat pragma "overriding"
32828
32829         * sem_prag.adb: Add handling of one argument form for pragma Ada_05
32830         (Analyze_Pragma, case Elaborate, Elaborate_All): Do not disable warnings
32831         on the named unit if the pragma is not in the current compilation unit,
32832         so that elaboration calls in the current unit can set up an elaboration
32833         dependency on the named unit, as needed.
32834         (Analyze_Pragma, case Obsolescent): Allow pragma to be used for library
32835         subprogram as well as for subprograms declared within a package.
32836         (Analyze_Pragma, Sig_Flags): Code cleanup. Remove support for the GNAT
32837         pragma overriding.
32838
32839         * krunch.ads, krunch.adb: Add special handling of Wide_Wide (krunched
32840         to z) to avoid some instances of duplication for Wide_Wide packages.
32841
32842         * namet.ads, namet.adb: Implement encoding (WWhhhhhhhh) for wide wide
32843         characters.
32844
32845         * scn.adb: Char_Literal_Value field is now a Uint
32846
32847         * scng.adb: Significant rewrite to handle new Ada 2005 features
32848         allowing wide and wide wide characters in program text, e.g. for
32849         identifiers, as described in AI-285.
32850         (Set_Reserved): New procedure, makes setting up keywords cleaner.
32851         (Initialize_Scanner): Register the new reserved words of Ada 2005.
32852         (Scan): Give support to the new reserved words.
32853
32854         * par-ch2.adb (P_Identifier): Compiling in Ada95 mode, generate a
32855         warning notifying that interface, overriding, and synchronized are
32856         new reserved words.
32857         (P_Pragma): Allow the use of the new reserved word "interface" as
32858         a pragma name.
32859
32860         * gnatls.adb, gnatbind.adb,
32861         ali-util.adb, binde.adb, ali.ads, ali.adb: Code cleanup. Rename
32862         identifiers named "interface" to "SAL_Interface".
32863
32864         * bindgen.adb (Gen_Main_Ada): Add support for the new SEH
32865         (Structured Exception handling).
32866         (Gen_Main_C): Idem.
32867
32868         * bindgen.adb:
32869         (Gen_Main_Ada): Set the default exit code if specified.
32870         (Gen_Main_C): Likewise.
32871         Part of *DC20-006.
32872         (Gen_Output_File_C): Remove redundant output of gnat_exit_status.
32873         Code cleanup. Rename identifiers named "interface" to "SAL_Interface"
32874
32875         * switch-b.adb, bindusg.adb, opt.ads, vms_data.ads: Add handling of
32876         new -Xnnn switch.
32877
32878         * mlib-prj.adb, mlib.adb: Code cleanup. Rename one identifier that
32879         has a collision with the new Ada 2005 "interface" reserved word.
32880
32881         * par-ch3.adb (P_Defining_Identifier): Compiling in Ada95 mode,
32882         generate a warning notifying that interface, overriding, and
32883         synchronized are new reserved words.
32884
32885         * scans.ads (Token_Type): Addition of the tokens corresponding to the
32886         new reserved words of Ada 2005: Tok_Interface, Tok_Overriding
32887         and Tok_Synchronized.
32888
32889         * sem_res.adb (Resolve_Actuals): Change error messages to refer to
32890         "dispatching" rather than "primitive" operations, since dispatching
32891         calls are now allowed to abstract formal subprograms (which are not
32892         primitive).
32893         Char_Literal_Value field is now a Uint
32894         (Resolve_Slice): If the prefix is an access to an unconstrained array,
32895         compute the actual subtype of the designated object to impose the proper
32896         index constraints.
32897         (Resolve_Selected_Component): Do not insert an access check if the
32898         prefix is an access type: such a node is expanded into an explicit
32899         dereference, on which the access check is performed anyway. Removes
32900         expensive duplicate checks.
32901         (Resolve_Call): Use new flag Is_Obsolescent and field
32902         Obsolescent_Warning so that pragma Obsolescent works on library
32903         subprograms.
32904         Add support for wide wide character type
32905         (Resolve_Allocator): Replace the error message on wrong null-exclusion
32906         value by a warning message.
32907         (Resolve_Type_Conversion): If the mixed-mode expression is interpreted
32908         as fixed-point, and one of the operands is non-static and universal, it
32909         can only be an illegal exponentiation operation, in which case there is
32910         no real value to retrieve.
32911
32912         * exp_strm.adb: Add support for wide wide character type
32913         (Build_Elementary_Input_Call): Compute the size of the stream element by
32914         querying the rep chain to find the Stream_Attribute attribute value.
32915         (Build_Elementary_Write_Call): Ditto.
32916
32917         * sem_aggr.adb: Char_Literal_Value field is now a Uint
32918         Add support for wide wide character type
32919         Replace the error messages on wrong null-exclusion value by warnings
32920         as described in Ada 2005.
32921         (Resolve_Extension_Aggregate): Document the fact that the error
32922         message on class-wide expressions in extensions aggregates.
32923
32924         * sem_case.adb: Add support for wide wide character type
32925
32926         * sem_ch13.adb: Add support for wide wide character type
32927         (Analyze_Attribute_Definition_Clause): Handle the Stream_Size attribute.
32928
32929         * sem_ch3.adb: Add support for wide wide character type
32930         (Process_Subtype): If constraint is illegal for the type, set Ekind of
32931         now-useless Itype, to prevent cascaded errors on a compiler built
32932         without -gnatp.
32933
32934         * sem_ch8.adb: Add with and use of Sem_Disp.
32935         (Analyze_Subprogram_Renaming): Replace unclean uses of
32936         Corresponding_Spec with Corresponding_Formal_Spec (and delete setting
32937         of Corresponding_Spec to Empty).
32938         (Attribute_Renaming): Replace use of Corresponding_Spec with
32939         Corresponding_ Formal_Spec and simplify condition.
32940         (Use_One_Package): Check that scope of homonym of identifier is defined,
32941         before checking whether it is a wrapper package.
32942         Add support for wide wide character type
32943
32944         * sem_eval.adb: Add support for wide wide character type.
32945         (Eval_Arithmetic_Op): Check for compile time known signed integer
32946         overflow in the non-static case.
32947         (Subtypes_Statically_Match): A formal scalar type and its base type do
32948         not statically match.
32949
32950         * sem_util.adb (Collect_Primitive_Operations): Minor change of "/=" to
32951         "not in" for test of N_Formal_Subprogram_Declaration (which is now a
32952         subtype).
32953         (Unit_Declaration_Node): Ditto.
32954         (Is_Variable_Prefix):  For the case of an indexed component whose prefix
32955         has a packed array type, the prefix has been rewritten into a type
32956         conversion. Determine variable-ness from the converted expression.
32957         Handle wide wide character cases.
32958
32959         * stand.ads: Add types Wide_Wide_Character and Wide_Wide_String
32960
32961         * stringt.ads, stringt.adb: Handle full UTF-32 range.
32962         Remove ["0A"] from comment, since it can look like a line terminator.
32963         Currently we don't permit this, but this is under discussion by the
32964         ARG, and it is easy enough to use a different example.
32965
32966         * s-wchcon.ads, s-wchcnv.ads, s-wchcnv.adb: Add new subprograms for
32967         handling UTF-32 encoding for wide wide character.
32968         Implement new brackets coding ["hhhhhhhh"]
32969         Add UTF-8 encodings for full UTF-32 range
32970
32971         * ttypes.ads: Add definition of Standard_Wide_Wide_Character_Size
32972
32973         * types.h, types.ads, types.adb: Wide_Wide_Character now has full 31
32974         bit range Add full UTF-32 support.
32975         (RT_Exception_Code): Addition of CE_Null_Not_Allowed; used to
32976         notify that constraint error will be raised at run-time
32977         because a null value is assigned to a null-excluding object.
32978         Remove some obsolete declarations and make Char_Code
32979         unsigned.
32980
32981         * a-except.adb (Rcheck_30): New subprogram. Addition of the message
32982         corresponding to CE_Null_Not_Allowed, and adjust the output of all the
32983         Rcheck subprograms.
32984
32985         * checks.adb (Check_Null_Not_Allowed): Replace the error message on
32986         wrong null-exclusion value by a warning message.
32987         (Enable_Range_Check): Do range check if the prefix is an
32988         explicit dereference whose designated object is an unconstrained array.
32989         Current algorithm for removing duplicate checks is over-eager in this
32990         case.
32991
32992         * sem_ch5.adb (Analyze_Assignment): Replace the error messages on wrong
32993         null-exclusion value by a warning message
32994
32995         * atree.h, atree.ads, atree.adb: Remove Char_Code field support
32996         completely. Add support for Uint2 field
32997
32998         sem_ch2.adb, exp_ch11.adb, exp_dbug.adb,
32999         exp_prag.adb: Char_Literal_Value field is now a Uint.
33000
33001         * exp_util.adb (Insert_Actions): Replace
33002         N_Formal_Subprogram_Declaration by
33003         N_Formal_{Abstract|Concrete}_Subprogram_Declaration.
33004         Char_Literal_Value field is now a Uint.
33005
33006         * sinfo.ads, sinfo.adb (Corresponding_Formal_Spec): New function
33007         defined for subprogram renaming declarations. When set, the field
33008         indicates the defining entity of a corresponding formal subprogram
33009         when the renaming corresponds to a formal subprogram association in an
33010         instantiation.
33011         (Set_Corresponding_Formal_Spec): New procedure to return
33012         Corresponding_Formal_Spec field.
33013         Minor changes of "=" to "in" in tests of N_Formal_Subprogram_Declaration
33014         (which is now a subtype).
33015         Char_Literal_Value field is now a Uint
33016
33017         * exp_disp.ads, exp_disp.adb (Make_DT): Generate code that moves the
33018         pointer to the base of the dispatch table.
33019         Minor changes to comments.
33020         (Controlling_Type): New function for determining the tagged type
33021         associated with a tagged primitive subprogram.
33022         (Expand_Dispatching_Call): Add support for a controlling actual that is
33023         directly a value of type Ada.Tag rather than a tagged object.
33024
33025         * i-cpp.ads, i-cpp.adb, a-tags.ads, a-tags.adb: Update documentation
33026         describing the new layout.
33027         (Dispatch_Table): The expander computes the actual array size, allocates
33028         the Dispatch_Table record accordingly, and generates code that displaces
33029         the base of the record after the Typeinfo_Ptr component. The access to
33030         these components is done by means of local functions.
33031         (Offset_To_Top): New function.
33032         (Typeinfo_Ptr): New function.
33033         (Get_TSD): Modified to access the new position of the TSD.
33034         (Set_TSD): Modified to save the TSD in its new position.
33035
33036         * par-ch12.adb (P_Formal_Subprogram_Declaration): Add parsing for the
33037         case of formal abstract subprograms. Add check and message for -gnat05.
33038         Update comments.
33039
33040         * sem_ch12.adb: Add with and use for Sem_Disp.
33041         (Analyze_Associations): Minor change from "=" to "in" for use of
33042         N_Formal_Subtype_Declaration (which is now a subtype).
33043         (Set_Analyzed_Formal): Minor changes from "=" to "in" for uses of
33044         N_Formal_Subtype_Declaration (which is now a subtype).
33045         (Analyze_Formal_Subprogram): Add handling for
33046         N_Formal_Abstract_Subprogram, marking the formal as abstract and
33047         dispatching, setting the controlling status of the formal parameters
33048         and result, and issuing an error if there is no controlling type for
33049         the formal subprogram.
33050         (Instantiate_Formal_Subprogram): Rather than setting Corresponding_Spec,
33051         which is an unclean use of that field, we set the new field
33052         Corresponding_Formal_Spec to make the formal subprogram available to
33053         processing in Analyze_Subprogram_Declaration.
33054         (Analyze_Formal_{Discrete, Decimal_Fixed_Point, Fixed_Point,
33055         Floating_Point, Modular_Integer, Signed_Integer}_Type: Make formal type
33056         Constrained, so that it is is does not statically match its anonymous
33057         base type.
33058
33059         * sem_ch6.adb (Analyze_Subprogram_Specification): Include test for
33060         abstract formal subprograms in error check for functions returning
33061         abstract types. Set scope of new designator for
33062         a parameterless subprogram, so that it is available when checking the
33063         body for nested subprograms, before full analysis of said body.
33064         (Analyze_Subprogram_Body): Warn on inlining bodies with nested
33065         subprogram only if inner one comes from source.
33066         (Analyze_Function_Call): If the call is given in object notation, the
33067         analysis of the name rewrites the node and analyzes it with the proper
33068         argument list. After analyzing the name, if the call has been rewritten
33069         and the result type is set, no further analysis is needed.
33070         (Analyze_Return_Type): Subsidiary to Process_Formals: analyze subtype
33071         mark in function specification, in a context where the formals are
33072         visible and hide outer homographs.
33073
33074         * sem_disp.adb (Check_Controlling_Type): Relax the check for same scope
33075         as the tagged type for the cases of abstract formal subprograms and
33076         renamings of those.  Clean up spec comments.
33077         (Check_Dispatching_Context): Add error message to indicate "abstract
33078         procedure", covering the case of a call to a formal abstract procedure
33079         that has statically tagged operands.
33080         (Check_Dispatching_Call): Check for the case of an actual given by
33081         a tag-indeterminate function call whose type is an ancestor of the
33082         containing call's associated tagged type. This situation can occur
33083         for inherited primitives with function defaults. In this case we
33084         use the tagged type's tag directly as the controlling argument for
33085         the calls.
33086         (Expand_Call): Name change on call to Expand_Dispatch_Call.
33087
33088         * sprint.adb (Sprint_Node_Actual): Split
33089         N_Formal_Subprogram_Declaration into two alternatives for the new
33090         cases N_Formal_Abstract_Subprogram_Declaration and
33091         N_Formal_Concrete_Subprogram_Declaration.
33092         Char_Literal_Value field is now a Uint.
33093
33094         * trans.c: Get rid of junk Uint2 reference.
33095         Char_Literal_Value field is now a Uint.
33096         (gnat_to_gnu, case N_Aggregate): Check TYPE_UNCHECKED_UNION_P.
33097         (gigi): Correct third arg to gimplify_body.
33098
33099         * ada-tree.h: (TYPE_UNCHECKED_UNION_P): New flag.
33100         (TYPE_LANG_FLAG_0): Check for record or union.
33101
33102         * treepr.adb: Char_Literal_Value field is now a Uint
33103
33104         * uintp.h, uintp.ads, uintp.adb: Add new routines UI_To_CC and
33105         UI_From_CC.
33106
33107         * widechar.ads, widechar.adb (Is_UTF_32_Non_Graphic): New function
33108         Add full UTF-32 support
33109         Char_Code is now 32 bits
33110
33111         * sinput.ads, sinput.adb (Skip_Line_Terminators): Extend to deal with
33112         wide character UTF_32 line terminators.
33113         Initialize Main_Source_File to avoid error when no main
33114         source is loaded.
33115
33116         * errout.adb (Finalize): Do not check Num_SRef_Pragmas
33117         (Main_Source_File) when no main source has been loaded, to avoid
33118         potential crash.
33119
33120 2005-02-09  Robert Dewar  <dewar@adacore.com>
33121
33122         * a-strunb.ads, a-strunb.adb: Add missing pragma Ada_05 statements
33123         Fix name of Set routine
33124
33125         * a-strfix.ads, a-strfix.adb: Add new index functions from AI-301 to
33126         fixed packages.
33127
33128         * a-stwise.ads, a-stwise.adb, a-stwifi.ads, a-stwifi.adb,
33129         a-strsea.ads, a-strsea.adb: Add new index functions from AI-301 to
33130         fixed packages
33131
33132         * a-witeio.ads, a-witeio.adb, a-textio.ads, a-textio.adb: New function
33133         forms of Get_Line subprograms for AI-301.
33134
33135         * a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads,
33136         a-wtedit.adb, a-wtedit.adb, a-wtedit.ads, a-wttest.adb,
33137         a-wttest.ads, a-strmap.ads, a-strmap.adb, a-stwima.adb,
33138         a-stwima.ads: Minor reformatting.
33139
33140 2005-02-09  Doug Rupp  <rupp@adacore.com>
33141             Thomas Quinot  <quinot@adacore.com>
33142
33143         * adaint.c, adaint.h
33144         [VMS] (to_ptr32): New function.
33145         (MAYBE_TO_PTR32): New macro.
33146         (__gnat_portable_spawn,__gnat_portable_no_block_spawn): Adjust argv
33147         for pointer size.
33148         [VMS] (descriptor_s, ile_s): Use __char_ptr32 for adr field.
33149         [VMS] (#define fork()): Remove since unneccessary.
33150         (__gnat_set_close_on_exec): New routine to support
33151         GNAT.OS_Lib.Set_Close_On_Exec.
33152
33153         * g-expect.adb (Set_Up_Communications): Mark the pipe descriptors for
33154         the parent side as close-on-exec so that they are not inherited by the
33155         child.
33156
33157         * g-os_lib.ads, g-os_lib.adb (Set_Close_On_Exec): New subprogram to
33158         set or clear the FD_CLOEXEC flag on a file descriptor.
33159
33160 2005-02-09  Eric Botcazou  <ebotcazou@adacore.com>
33161             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
33162
33163         PR ada/19386
33164         * decl.c:
33165         (gnat_to_gnu_field): Do not necessarily invoke make_packable_type
33166         on the field if Pragma Component_Alignment (Storage_Unit).
33167         (gnat_to_gnu_entity, case object): Do not treat a renaming that has
33168         side-effects as if it were a constant; also make SAVE_EXPR to protect
33169         side-effects.
33170         (gnat_to_gnu_entity, case E_Record_Subtype): If have _Parent, make a
33171         UNION_TYPE.
33172         (make_dummy_type): Set TYPE_UNCHECKED_UNION_P.
33173         (components_to_record): Test it.
33174         Fix improper usage of REFERENCE_CLASS_P.
33175
33176         * utils2.c (build_binary_op, case MODIFY_EXPRP): Treat UNION_TYPE as
33177         RECORD_TYPE.
33178
33179         * utils2.c: Minor reformatting.
33180
33181         * utils.c (convert, case UNION_TYPE): Check TYPE_UNCHECKED_UNION;
33182         handle other cases like RECORD_TYPE.
33183
33184         * utils.c (gnat_pushdecl): Set TREE_NO_WARNING.
33185
33186 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
33187
33188         * exp_aggr.adb (Gen_Assign): If the expression is an aggregate for a
33189         component of an array of arrays in an assignment context, and the
33190         aggregate has component associations that require sliding on
33191         assignment, force reanalysis of the aggregate to generate a temporary
33192         before the assignment.
33193         (Must_Slide): Make global to the package, for use in Gen_Assign.
33194
33195 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
33196
33197         * exp_ch4.adb (Expand_Composite_Equality): If a component is an
33198         unchecked union with no inferable discriminants, return a
33199         Raise_Program_Error node, rather than inserting it at the point the
33200         type is frozen.
33201         (Expand_Record_Equality, Component_Equality): Handle properly the case
33202         where some subcomponent is an unchecked union whose generated equality
33203         code raises program error.
33204
33205 2005-02-09  Doug Rupp  <rupp@adacore.com>
33206
33207         * gnatbl.c: [VMS] (_POSIX_EXIT): Define.
33208         [VMS] (#define exit hack): Remove.
33209
33210 2005-02-09  Pascal Obry  <obry@adacore.com>
33211             Arnaud Charlet  <charlet@adacore.com>
33212
33213         * init.c (__gnat_initialize): Add a new parameter eh which contains the
33214         address of the exception registration. The Win32 version of this
33215         routine calls __gnat_install_SEH_handler() to initialize the SEH
33216         (Structured Exception Handling) handler.
33217         (__gnat_error_handler) [Win32]: Removed. Not needed as we use
33218         SEH (Structured Exception Handling) now.
33219         (__gnat_install_handler) [Win32]: Nothing to do now as we use SEH.
33220         (__gnat_initialize for ppc-vxworks): Adjust comments and the
33221         preprocessor condition protecting the call to the extra eh setup
33222         subprogram, which is only available for the ppc target.
33223         (__gnat_clear_exception_count): replaced reference to
33224         variable taskIdCurrent by call to taskIdSelf(), cleaner.
33225
33226         * seh_init.c: New file.
33227
33228         * Make-lang.in: (GNAT_ADA_OBJS): Add seh_init.o.
33229         (GNATBIND_OBJS): Idem.
33230
33231         * misc.c (gnat_parse_file): Update call to __gnat_initialize. This
33232         routine takes a new parameter (a pointer to the exception registration
33233         for the SEH (Structured Exception Handling) support.
33234
33235         * raise.h: (__gnat_install_SEH_handler): New prototype.
33236         Update copyright notice.
33237
33238         * s-tassta.adb (Task_Wrapper): Declare the exception registration
33239         record and initialize it by calling __gnat_install_SEH_handler.
33240
33241 2005-02-09  Vincent Celier  <celier@adacore.com>
33242
33243         * make.adb (Gnatmake): Do not fail when the main project has no object
33244         directory.
33245
33246 2005-02-09  Doug Rupp  <rupp@adacore.com>
33247
33248         * Makefile.in [VMS] (LN,LN_S): Define as cp -p
33249         Rename s-asthan-vms.adb to s-asthan-vms-alpha.adb.
33250         [VMS]: Add translations for g-enblsp.adb.
33251
33252         * s-asthan-vms.adb: Removed.
33253         * s-asthan-vms-alpha.adb: Added.
33254
33255 2005-02-09  Pascal Obry  <obry@adacore.com>
33256
33257         * Makefile.in (LIBGNAT_SRCS): Add seh_init.c.
33258         (LIBGNAT_OBJS): Add seh_init.o.
33259
33260 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
33261
33262         PR ada/16592
33263         * Makefile.in: Link all gnat tools with -static-libgcc, since
33264         -shared-libgcc is now used by default on some systems (e.g. linux with
33265         recent binutils).
33266         Remove references to Makefile.prolog/generic, no longer used.
33267
33268 2005-02-09  Vincent Celier  <celier@adacore.com>
33269
33270         * prj-makr.adb (Process_Directory): Put file name in canonical case
33271         before matching against the patterns.
33272         If gnatname has been invoked as <prefix>-gnatname
33273         then invoke the compiler as <prefix>-gcc, not just "gcc".
33274
33275 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
33276
33277         * sem_ch4.adb (Analyze_Selected_Component): Create Actual_Subtype even
33278         with expansion disabled. The actual subtype is needed among other
33279         places when the selected component appears in the context of a loop
33280         bound, and denotes a packed array.
33281         (Operator_Check): Always use the first subtype in the
33282         error message, to avoid the appearance of internal base types.
33283         (Transform_Object_Operation): Copy each actual in full
33284         to the parameter associations of the constructed call, rather than
33285         using the shallow copy mechanism of New_Copy_List. This ensures that
33286         the chaining of named associations is done properly.
33287         (Complete_Object_Operation): Rewrite node, rather than
33288         replacing it, so that we can trace back to the original selected
33289         component.
33290
33291         * sem_elab.adb (Set_Elaboration_Constraint): For initialization calls,
33292         and calls that use object notation, if the called function is not
33293         declared  in a withed unit, place the elaboration constraint on the
33294         unit in the context that makes the function accessible.
33295         (Check_Elab_Subtype_Declaration): Check whether a subtype declaration
33296         imposes an elaboration constraint between two packages.
33297
33298 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
33299
33300         * sem_ch7.adb (Uninstall_Declarations): Exchange full and private
33301         views of a private type after handling its private dependents, to
33302         maintain proper stack discipline between entry and exit from the
33303         package.
33304
33305 2005-02-09  Cyrille Comar  <comar@adacore.com>
33306
33307         * s-finimp.adb: (Finalize_List): Optimize in the no-abort case.
33308         Minor reformatting.
33309
33310 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
33311
33312         * s-tporft.adb (Register_Foreign_Thread): Initialize Task_Image[_Len]
33313         fields for foreign threads.
33314
33315 2005-02-09  Doug Rupp  <rupp@adacore.com>
33316
33317         * s-vaflop.adb: Add pragma Warnings (Off) to eliminate infinite
33318         recursion warnings when compiled with -gnatdm.
33319
33320 2005-02-09  Robert Dewar  <dewar@adacore.com>
33321
33322         * usage.adb: Add line for switch -gnat05 (allow Ada 2005 extensions)
33323         Slight fix to documentation of -gnaty with no parameters
33324
33325         * xr_tabls.ads: Add ??? comment for missing overall comment
33326
33327         * xsinfo.adb: Make default file name be sinfo.h, since this is what
33328         we now use by default.
33329
33330         * xsnames.adb: Adjust end of file test to look for five space followed
33331         by '#' instead of six spaces. The format of xsnames.adb was modified
33332         in the last update.
33333
33334         * a-numeri.ads: Add reference to AI-388 for greek letter pi
33335         identifier.
33336
33337         * clean.adb: Minor reformatting.
33338
33339         * gnat1drv.adb, gnatfind.adb, gnatlink.adb, gnatmem.adb,
33340         gnatname.adb: Minor reformatting
33341         Add 2005 to copyright output when utility is run
33342
33343         * csets.adb: Eliminate obsolete comment
33344
33345         * debug.adb, g-socket.ads, i-cobol.adb: Minor reformatting throughout
33346         Update comments.
33347
33348         * sem_eval.ads (Eval_Integer_Literal): Do not inline this, not useful.
33349
33350 2005-02-09  Sergey Rybin  <rybin@adacore.com>
33351
33352         * gnat_ugn.texi: Add to the gnatpp section the paragraph describing
33353         the difference between compact and incompact layout and add the record
33354         representation clause to the example illustrating different layouts.
33355         Add the description of '-A5' gnatpp option ("align 'AT' keywords in
33356         component clauses").
33357
33358 2005-02-09  Florian Villoing  <villoing@adacore.com>
33359
33360         * gnat_ugn.texi: Fix typos.
33361         Use @command to display 'gcc', 'gnatbind', etc. insted of @code or
33362         @file.
33363         Make proper use of @ref, @xref and @pxref to avoid duplication of "see"
33364         in the generated documentation.
33365
33366 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
33367
33368         * gnat_ugn.texi: Remove all mentions of FSU threads, which are no
33369         longer supported.
33370         Update linker wrapper when linking with non GNU C++.
33371
33372 2005-02-09  Pascal Obry  <obry@adacore.com>
33373
33374         * gnat_ugn.texi:
33375         Document the procedure to debug the DllMain routine on Windows.
33376         Add note about -funwind-tables and mixed Ada and C/C++ programming in
33377         ZCX mode.
33378         Document new BIND qualifer /RETURN_CODES=VMS.
33379
33380 2005-02-09  Ben Brosgol  <brosgol@adacore.com>
33381
33382         * gnat_ugn.texi: Wordsmithing of "GNAT and Libraries" chapter
33383         Edited gnatmetric chapter
33384
33385 2005-02-09  Robert Dewar  <dewar@adacore.com>
33386
33387         * gnat_rm.texi:
33388         Changes to document new wide wide character support
33389         For AI-285
33390         Update documentation on Normalize_Scalars and Initialize_Scalars
33391
33392 2005-02-09  Pascal Obry  <obry@adacore.com>
33393
33394         * s-taprop-mingw.adb, s-soflin.ads: Minor reformatting.
33395
33396 2005-02-09  Jose Ruiz  <ruiz@adacore.com>
33397
33398         * s-osinte-vxworks.ads (taskPriorityGet): Add this function (imported
33399         from the VxWorks kernel) that is needed for getting the active
33400         priority of the different tasks.
33401
33402         * s-atacco.ads, s-atacco.adb (Nothing): Remove this dummy procedure.
33403         Use a pragma Elaborate_Body in the spec file instead.
33404         Noticed by code reading.
33405
33406 2005-02-09  Thomas Quinot  <quinot@adacore.com>
33407
33408         * exp_util.ads: Minor correction in comment.
33409
33410 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
33411
33412         * s-taprop.ads (Initialize): Update comments. Remove pragma Inline,
33413         since this procedure is now too complex to be worth inlining.
33414
33415 2005-02-09  Richard Henderson  <rth@redhat.com>
33416
33417         * utils.c (gnat_define_builtin): Remove.
33418         (gnat_install_builtins): Use build_common_builtin_nodes.
33419
33420 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
33421
33422         * a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb, a-crbtgk.ads,
33423         a-crbtgk.adb, a-crbltr.ads, a-coprnu.ads, a-coprnu.adb,
33424         a-coorse.ads, a-coorse.adb, a-convec.ads, a-convec.adb,
33425         a-contai.ads, a-coinve.ads, a-coinve.adb, a-cohata.ads,
33426         a-cohama.ads, a-cohama.adb, a-ciorse.ads, a-ciorse.adb,
33427         a-cihama.ads, a-cihama.adb, a-cidlli.ads, a-cidlli.adb,
33428         a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads, a-cgcaso.adb,
33429         a-cgarso.ads, a-cgarso.adb, a-cdlili.ads, a-cdlili.adb,
33430         a-cgaaso.adb, a-coormu.adb, a-ciormu.adb, a-cihase.adb,
33431         a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads,
33432         a-coorma.ads, a-swunha.ads, a-stunha.ads, a-ciormu.ads,
33433         a-coormu.ads, a-rbtgso.ads, a-swunha.adb, a-stunha.adb,
33434         a-cgaaso.ads, a-ciorma.adb, a-coorma.adb, a-secain.adb,
33435         a-secain.ads, a-slcain.ads, a-slcain.adb, a-shcain.ads,
33436         a-shcain.adb, a-chtgke.ads, a-chtgke.adb, a-stwiha.ads,
33437         a-stwiha.adb, a-strhas.ads, a-strhas.adb, a-chzla1.ads,
33438         a-chzla9.ads, a-lfztio.ads, a-liztio.ads, a-llfzti.ads,
33439         a-llizti.ads, a-sfztio.ads, a-siztio.ads, a-ssizti.ads,
33440         a-stzbou.adb, a-stzbou.ads, a-stzfix.adb, a-stzfix.ads,
33441         a-stzhas.adb, a-stzhas.ads, a-stzmap.adb, a-stzmap.ads,
33442         a-stzsea.adb, a-stzsea.ads, a-stzsup.adb, a-stzsup.ads,
33443         a-stzunb.adb, a-stzunb.ads, a-swunau.adb, a-swunau.ads,
33444         a-szmzco.ads, a-szunau.adb, a-szunau.ads, a-szunha.adb,
33445         a-szunha.ads, a-szuzti.adb, a-szuzti.ads, a-tiunio.ads,
33446         a-wwunio.ads, a-ztcoau.adb, a-ztcoau.ads, a-ztcoio.adb,
33447         a-ztcoio.ads, a-ztcstr.adb, a-ztcstr.ads, a-ztdeau.adb,
33448         a-ztdeau.ads, a-ztdeio.adb, a-ztdeio.ads, a-ztedit.adb,
33449         a-ztedit.ads, a-ztenau.adb, a-ztenau.ads, a-ztenio.adb,
33450         a-ztenio.ads, a-ztexio.adb, a-ztexio.ads, a-ztfiio.adb,
33451         a-ztfiio.ads, a-ztflau.adb, a-ztflau.ads, a-ztflio.adb,
33452         a-ztflio.ads, a-ztgeau.adb, a-ztgeau.ads, a-ztinau.adb,
33453         a-ztinau.ads, a-ztinio.adb, a-ztinio.ads, a-ztmoau.adb,
33454         a-ztmoau.ads, a-ztmoio.adb, a-ztmoio.ads, a-zttest.adb,
33455         a-zttest.ads, a-zzunio.ads: New files. Part of new Ada 2005
33456         library.
33457
33458 2005-01-27  Laurent Guerby  <laurent@guerby.net>
33459
33460         * Makefile.in: Fix a-intnam.ads from previous commit,
33461         add 2005 to copyright.
33462         * a-intman-rtems.ads: Renamed to...
33463         * a-intnam-rtems.ads:
33464
33465 2005-01-27  Laurent Guerby  <laurent@guerby.net>
33466
33467         * Makefile.in: Rename GNAT RTEMS specific files.
33468         * 5rtpopsp.adb, 4rintnam.ads, 5rosinte.adb,
33469         5rosinte.ads, 5rparame.adb: Replaced by files below.
33470         * s-tpopsp-rtems.adb, a-intman-rtems.ads, s-osinte-rtems.adb,
33471         s-osinte-rtems.ads, s-parame-rtems.adb: Replace files above.
33472
33473 2005-01-27  Joel Sherrill  <joel.sherrill@oarcorp.com>
33474             Laurent Guerby  <laurent@guerby.net>
33475
33476         PR ada/19488
33477         * 5rosinte.ads: Add No_Key constant.
33478         * 5rtpopsp.adb: Initialize ATCB_Key with No_Key and fix style.
33479         * gsocket.h: Do not include <sys/socket.h> with RTEMS either.
33480
33481 2005-01-26  Laurent Guerby  <laurent@guerby.net>
33482
33483         PR ada/19414
33484         * i-cobol.adb (Valid_Numeric): Handle zero length case.
33485
33486 2005-01-20  Richard Henderson  <rth@redhat.com>
33487
33488         * Makefile.in (alpha-linux, LIBGNAT_TARGET_PAIRS): Use
33489         a-intnam-linux.ads and system-linux-alpha.ads.
33490         * a-intnam-linux-alpha.ads: Remove file.
33491         * s-osinte-linux-alpha.ads (SIGUNUSED, SIGSTKFLT, SIGLOST): New.
33492         * system-linux-alpha.ads: New file.
33493
33494 2005-01-18  Jakub Jelinek  <jakub@redhat.com>
33495
33496         PR ada/13470
33497         * a-stunau.adb (Get_String): Don't return U.Reference, but Ret that is
33498         set to the new string.
33499
33500 2005-01-18  Toon Moene  <toon@moene.indiv.nluug.nl>
33501
33502         * system-linux-ppc.ads: Set ZCX_By_Default and GCC_ZCX_Support
33503         to True.
33504
33505 2005-01-18  Richard Henderson  <rth@redhat.com>
33506
33507         * Makefile.in (LIBGNAT_TARGET_PAIRS, TOOLS_TARGET_PAIRS, MISCLIB,
33508         THREADSLIB, GNATLIB_SHARED, PREFIX_OBJS, LIBRARY_VERSION): Specialize
33509         for alpha-linux.
33510         * s-osinte-linux-alpha.ads, a-intnam-linux-alpha.ads: New files.
33511
33512 2005-01-14  Andrew Pinski  <pinskia@physics.uc.edu>
33513
33514         * system-darwin-ppc.ads (ZCX_By_Default): Change to True.
33515         (GCC_ZCX_Support): Likewise.
33516
33517 2005-01-11  Bastian Blank  <waldi@debian.org>
33518
33519         * system-linux-s390.ads: Define Preallocated_Stacks.
33520         * system-linux-s390x.ads: Likewise.
33521
33522 2005-01-04  Arnaud Charlet  <charlet@adacore.com>
33523
33524         * gnat_ugn.texi: Fix texi errors with null variables.
33525
33526 2005-01-03  Thomas Quinot  <quinot@adacore.com>
33527
33528         * gen-soccon.c: New utility program to generate g-soccon.ads
33529         automatically.
33530
33531         * socket.c, gsocket.h: Split inclusion of system header files into a
33532         gsocket.h file separated from socket.c, to allow reuse in gen-soccon.c.
33533
33534         * g-soccon.ads, g-soccon-unixware.ads, g-soccon-tru64.ads,
33535         g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
33536         g-soccon-interix.ads, g-soccon-solaris.ads, g-soccon-mingw.ads,
33537         g-soccon-vxworks.ads, g-soccon-freebsd.ads: Note that these files
33538         should not be edited by hand anymore, but should be regenerated using
33539         gen-soccon.
33540
33541 2005-01-03  Robert Dewar  <dewar@adacore.com>
33542             Ed Schonberg  <schonberg@adacore.com>
33543             Vincent Celier  <celier@adacore.com>
33544
33545         * s-atacco.ads, a-direio.adb: Protect use of 'Constrained by warnings
33546         on/off, since this is an obsolescent feature, for which we now generate
33547         a warning.
33548
33549         * sem_attr.adb (Analyze_Attribute, case Constrained): Issue warning if
33550         warning mode is set and obsolescent usage of this attribute occurs.
33551         (Resolve_Access, case 'Access): Note that GNAT uses the context type to
33552         disambiguate overloaded prefixes, in accordance with AI-235. GNAT code
33553         predates, and partly motivates, the adoption of the AI.
33554         Implement new Ada 2005 attribute Mod
33555
33556         * exp_attr.adb (Expand_N_Attribute_Reference): Implement Ada 2005
33557         attribute Mod.
33558
33559         * par-ch4.adb (P_Name): In Ada 2005 mode, recognize new attribute Mod
33560
33561         * snames.h, snames.ads, snames.adb: Add entry for No_Dependence for
33562         pragma restrictions.
33563         New entry for Ada 2005 attribute Mod.
33564
33565         * par-prag.adb:
33566         Add recognition of new pragma Restrictions No_Dependence
33567         Recognize restriction No_Obsolescent_Features at parse time
33568
33569         * bcheck.adb: Add circuitry for checking for consistency of
33570         No_Dependence restrictions.
33571
33572         * lib-writ.ads, lib-writ.adb: Output new R lines for No_Dependence
33573         restrictions.
33574
33575         * restrict.ads, restrict.adb: Add subprograms to deal with
33576         No_Dependence restrictions.
33577
33578         * rtsfind.adb: Check that implicit with's do not violate No_Dependence
33579         restrictions.
33580
33581         * sem_ch3.adb, sem_ch11.adb, sem_ch13.adb, lib-xref.adb,
33582         sem_attr.adb: Add check for new restriction No_Obsolescent_Features
33583
33584         * scn.ads, prj-err.ads, prj-err.adb, ali-util.adb, gprep.adb: Add new
33585         dummy parameter to scng instantiation.
33586         Needed for new restriction No_Obsolescent_Features
33587
33588         * scn.adb: (Obsolescent_Check): New procedure
33589         Needed for new restriction No_Obsolescent_Features
33590
33591         * scng.ads, scng.adb: Always allow wide characters in Ada 2005 mode, as
33592         specified by AI-285, needed for implementation of AI-388 (adding greek
33593         pi to Ada.Numerics).
33594         Add new generic formal to scng, needed for new restriction
33595         No_Obsolescent_Features.
33596
33597         * s-rident.ads: Add new restriction No_Obsolescent_Features.
33598
33599         * ali.ads, ali.adb: Adjustments for reading new No_Dependence
33600         restrictions lines.
33601         (Scan_ALI): When finding an unexpected character on an R line, raise
33602         exception Bad_R_Line, instead of calling Fatal_Error, so that, when
33603         Ignore_Errors is True, default restrictions are set and scanning of the
33604         ALI file continues with the next line. Also, when Bad_R_Line is raised
33605         and Ignore_Errors is True, skip to the end of le line.
33606
33607         * sem_ch10.adb: Check that explicit with's do not violate
33608         No_Dependence restrictions.
33609         (Install_Withed_Unit): Add code to implement AI-377 and diagnose
33610         illegal context clauses containing child units of instance.
33611
33612         * sem_prag.adb: Processing and checking for new No_Dependence
33613         restrictions.
33614         (Analyze_Pragma, case Psect_Object): Call Check_Arg_Is_External_Name to
33615         analyze and check the External argument.
33616
33617         * a-numeri.ads: Add greek letter pi as alternative spelling of Pi
33618
33619 2005-01-03  Robert Dewar  <dewar@adacore.com>
33620
33621         * atree.adb: Add a fifth component to entities
33622         This allows us to add 32 flags and four new fields
33623
33624         * atree.ads: Add a fifth component to entities
33625         This allows us to add 32 flags and four new fields
33626
33627         * einfo.ads, einfo.adb: Document new fields and new flags now available
33628         Add routines for printing new fields
33629
33630         * treepr.adb: Call routines to print out additional fields if present
33631
33632 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
33633
33634         * bld.ads, bld.adb, bld-io.ads, bld-io.adb, gprcmd.adb,
33635         gpr2make.ads, gpr2make.adb: Remove gpr2make, replaced by gprmake.
33636
33637         * Makefile.in: Add support to build shared Ada libraries on solaris x86
33638         Remove gpr2make, replaced by gprmake.
33639         Remove references to gnatmem and libaddr2line.
33640         Add indepsw.adb<indepsw-linux.adb to TOOLS_TARGET_PAIRS for IA64 linux.
33641         (gnatlib-shared-darwin): Add "-fno-common" to GNATLIBCFLAGS.
33642         Add support for specialized version of Ada.Numerics.Aux for Darwin: use
33643         a-numaux-darwin.ads and a-numaux-darwin.adb
33644         Enable mlib-tgt-lynxos.adb on lynxos.
33645
33646         * Make-lang.in: Remove rules for gpr2make.
33647         When generating sdefault.adb, do not call Relocate_Path
33648         on S3 for function Target_Name, as it is not a path.
33649         Remove references to gnatmem and libaddr2line.
33650
33651         * a-numaux-darwin.ads, a-numaux-darwin.adb, g-soccon-darwin.ads: New
33652         files.
33653
33654 2005-01-03  Samuel Tardieu  <tardieu@adacore.com>
33655
33656         * checks.adb (Apply_Alignment_Check): Generate a warning if an object
33657         address is incompatible with its base type alignment constraints when
33658         this can be decided statically.
33659
33660 2005-01-03  Olivier Hainque  <hainque@adacore.com>
33661
33662         * decl.c (compatible_signatures_p): New function. The intended purpose
33663         is to check if two function signatures for a call-site and a callee are
33664         compatible enough for the call to be valid. The underlying purpose is
33665         to check if a call to a mapped builtin is using the right interface.
33666         The current code actually does not check antyhing - this a placeholder
33667         for future refinements.
33668         (gnat_to_gnu_entity) <E_Subprogram_Call>: Add preliminary bits to handle
33669         builtin calls for convention Intrinsic.
33670
33671         * gigi.h (builtin_decl_for): Declare (new function).
33672
33673         * utils.c (gnat_install_builtins): Install the target specific builtins.
33674         (builtin_decl_for): New function, provide a dummy body for now.
33675
33676 2005-01-03  Geert Bosch  <bosch@adacore.com>
33677
33678         * eval_fat.adb: (Eps_Model,Eps_Denorm): Remove, no longer used.
33679         (Succ): Re-implement using Scaling, Exponent and Ceiling attributes.
33680         (Pred): Implement in terms of Succ.
33681
33682         * trans.c (convert_with_check): Reimplement conversion of float to
33683         integer.
33684
33685 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
33686             Vincent Celier  <celier@adacore.com>
33687
33688         * exp_aggr.adb (Packed_Array_Aggregate_Handled): The values of the
33689         bounds can be negative, and must be declared Int, not Nat.
33690
33691         * sem_elim.adb (Line_Num_Match): Correct wrong code when index in an
33692         array is checked after using the index in the array.
33693
33694         * makegpr.adb (Add_Switches): Check if there is a package for the
33695         processor. If there is no package, do not look for switches.
33696
33697 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
33698
33699         * exp_ch3.adb (Stream_Operations_OK): Predicate to determine when the
33700         generation of predefined stream operations (specs and bodies) should
33701         proceed. Under various restrictions these subprograms must not be
33702         generated.
33703
33704 2005-01-03  Thomas Quinot  <quinot@adacore.com>
33705
33706         * exp_dist.adb:
33707         Declare subprogram index in Build_RPC_Receiver_Body, to reduce the
33708         amount of PCS-specific code in RACW stubs generation.
33709         (Copy_Specification): Set Etype on copied formal parameter entities, as
33710         this information is needed for PolyORB stubs generation.
33711         (PolyORB_Support.Build_Subprogram_Receiving_Stubs): Remove unused
33712         variable Dynamic_Async.
33713         (Build_Subprogram_Receiving_Stubs): Make PCS-specific
33714         (Build_RPC_Receiver_Specification): Make generic again, as recent
33715         changes have allowed RPC receivers to have the same profile for both
33716         variants of the PCS.
33717         Reorganise RPC receiver generation to reduce differences between the
33718         structure of GARLIC and PolyORB RPC receivers.
33719         (Add_Receiving_Stubs_To_Declarations): Make this subprogram
33720         PCS-specific.
33721         Simplify elaboration code for RCI packages.
33722
33723         * s-parint.ads, s-parint.adb, rtsfind.ads: Reorganise RPC receiver
33724         generation to reduce differences between the structure of GARLIC and
33725         PolyORB RPC receivers.
33726
33727         * s-stratt.adb: Fix typo in comment.
33728
33729 2005-01-03  Thomas Quinot  <quinot@adacore.com>
33730
33731         * exp_ch7.ads (Make_Final_Call): Rewrite comment (was incorrectly
33732         copied from Make_Init_Call).
33733
33734         * exp_strm.adb (Build_Mutable_Record_Read_Procedure): Do component
33735         reads and assignments on a temporary variable declared with appropriate
33736         discriminants.
33737
33738 2005-01-03  Robert Dewar  <dewar@adacore.com>
33739
33740         * i-c.adb (To_C): Raise CE if string is null and Append_Null
33741
33742 2005-01-03  Robert Dewar  <dewar@adacore.com>
33743
33744         * i-cstrin.adb (Update): Do not append a null in form called with a
33745         String. This avoids unintended behavior.
33746
33747 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
33748
33749         PR ada/17527
33750         * init.c: Fix warnings on Free BSD section.
33751
33752 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
33753
33754         PR ada/16949
33755         * sinfo.ads: Fix obsolete reference to xsinfo.spt (replaced by
33756         xsinfo.adb).
33757
33758 2005-01-03  Vincent Celier  <celier@adacore.com>
33759
33760         * make.adb (Collect_Arguments_And_Compile): Do not attempt to build
33761         libraries when Unique_Compile is True (-u switch).
33762         (Gnatmake): ditto.
33763
33764 2005-01-03  Robert Dewar  <dewar@adacore.com>
33765
33766         * namet.adb (Get_Decoded_Name_With_Brackets): Fix case of not allowing
33767         upper case letter or underscore after W, as allowed by spec.
33768
33769 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
33770
33771         * s-osinte-darwin.ads, s-osinte-darwin.adb: Clean up
33772         darwin port by using proper type definitions from header files.
33773         Use SIGTERM instead of SIGABRT for SIGADAABORT.
33774
33775 2005-01-03  Robert Dewar  <dewar@adacore.com>
33776
33777         * par.adb: Enhance error message handling for configuration file
33778         pragmas.
33779
33780 2005-01-03  Robert Dewar  <dewar@adacore.com>
33781
33782         * s-arit64.adb (Double_Divide): Put back changes that got accidentally
33783         removed during the previous update (test properly for case of dividing
33784         largest negative number by -1, which generates overflow).
33785
33786 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
33787             Sergey Rybin  <rybin@adacore.com>
33788
33789         * sem_ch12.adb (Analyze_Package_Instantiation): Create a separate node
33790         to use as the defining identifier for a formal package.
33791         (Remove_Parent): If the instance takes place within (an instance of)
33792         a sibling, preserve private declarations of common parent.
33793
33794 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
33795
33796         * sem_ch4.adb (Has_Fixed_Op): New predicate in Check_Arithmetic_Pair,
33797         to determine whether one of the operands is a fixed-point type for
33798         which a user-defined multiplication or division operation might be
33799         defined.
33800
33801         * sem_res.adb (Valid_Conversion): The legality rules for conversions
33802         of access types are symmetric in Ada 2005: either designated type can
33803         be unconstrained.
33804
33805 2005-01-03  Vincent Celier  <celier@adacore.com>
33806
33807         * s-fileio.adb (Temp_File_Record): Change length of string component
33808         Name from L_tmpnam + 1 to max_path_len + 1.
33809
33810 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
33811
33812         * s-tasini.ads, s-tasini.adb (Undefer_Abortion): Handle case of
33813         Self_Id.Deferral_Level = 0.
33814         (Do_Pending_Action): Move this function to the spec.
33815
33816         * s-tasren.adb (Selective_Wait [Terminate_Selected]): Call
33817         Do_Pending_Action explicitely when needed, in case we're using
33818         No_Abort restrictions.
33819
33820         * s-tassta.adb (Create_Task): If Abort is not allowed, reset the
33821         deferral level since it will not get changed by the generated code.
33822         Keeping a default value of 1 would prevent some operations (e.g.
33823         select or delay) to proceed successfully.
33824
33825 2005-01-03  Ben Brosgol  <brosgol@adacore.com>
33826             Robert Dewar  <dewar@adacore.com>
33827             Cyrille Comar  <comar@adacore.com>
33828
33829         * ug_words, gnat_ugn.texi: Added alpha-ivms transitioning section to
33830         porting guide chapter (vms version).
33831         Revised doc title (removed "for native platforms") and subtitle.
33832         Add discussion on warning flag for obsolescent features. First we
33833         note that it applies to obsolete GNAT features, which was previously
33834         omitted. Second we contrast the behavior with that of the new
33835         Ada 2005 AI-368 restriction No_Obsolescent_Features.
33836         Preliminary rewriting of GNAT & libraries chapter in order to take
33837         into account default project locations & new project manager
33838         capabilities.
33839
33840 2005-01-03  Robert Dewar  <dewar@adacore.com>
33841
33842         * cstand.adb (Create_Operators): Clean up format and documentation of
33843         unary and binary operator result tables. No change in code, just
33844         reformatting and addition of comments.
33845
33846         * errout.ads, gnatfind.adb, s-maccod.ads, sem.adb,
33847         sem_ch2.adb: Minor reformatting
33848
33849         * atree.ads, elists.ads, lib.ads, namet.ads, nlists.ads, repinfo.ads,
33850         sinput.ads, stringt.ads, uintp.ads, urealp.ads: Minor clarification to
33851         comments for Tree_Read and Tree_Write.
33852
33853 2005-01-03  Pascal Obry  <obry@adacore.com>
33854
33855         * exp_attr.ads: Minor reformatting.
33856
33857 2005-01-03  Romain Berrendonner  <berrendo@adacore.com>
33858
33859         * comperr.adb (Compiler_Abort): Add specialized message for GAP
33860         versions.
33861
33862 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
33863
33864         * exp_pakd.adb (Create_Packed_Array_Type): Add a guard to check
33865         whether the ancestor type is private, as may be the case with nested
33866         instantiations.
33867
33868 2004-12-30  Sohail Somani  <sohail@sohailsomani.com>
33869
33870         PR ada/19128
33871         * trans.c (gnat_to_gnu): Fix typo: Use correct return variable.
33872
33873 2004-12-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
33874
33875         * trans.c (Attribute_to_gnu): Adjust call to get_inner_reference.
33876         * utils2.c (build_unary_op): Likewise.
33877
33878 2004-12-22  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
33879
33880         * trans.c (mark_visited): Set TYPE_SIZES_GIMPLIFIED.
33881
33882 2004-12-19  Richard Henderson  <rth@redhat.com>
33883
33884         * trans.c (gigi): Update gimplify_body call.
33885
33886 2004-12-09  Nathan Sidwell  <nathan@codesourcery.com>
33887
33888         * decl.c (gnat_substitute_in_type): Remove SET_TYPE case.
33889
33890 2004-12-07  Ed Falis  <falis@adacore.com>
33891
33892         * s-intman-vxworks.adb (Notify_Exception): removed useless check for
33893         current task being suspended.
33894
33895         * init.c (__gnat_clear_exception): added to reset VxWorks exception
33896         count.
33897         (__gnat_map_signal): removed test for current task being suspended.
33898
33899 2004-12-07  Gary Dismukes  <dismukes@adacore.com>
33900
33901         * a-exexpr.adb (Others_Value, All_Others_Value): Change initial values
33902         from 16#BEEF# to 16#7FFF# to avoid exceeding Integer'Last on 16-bit
33903         targets (such as AAMP).
33904
33905 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
33906
33907         * atree.adb (Visit_Itype): Create a new name for the generated itype,
33908         because the back-end may otherwise treat it as a redefinition of the
33909         old symbol.
33910
33911 2004-12-07  Eric Botcazou  <ebotcazou@adacore.com>
33912
33913         * back_end.adb (Scan_Back_End_Switches): Accept --param.
33914
33915         * lang-specs.h: Accept --param.
33916
33917 2004-12-07  Vincent Celier  <celier@adacore.com>
33918
33919         * make.adb (Check_Mains, Switches_Of): Adapt to name changes in
33920         package Prj (Current_Spec_Suffix => Ada_Spec_Suffix,
33921         Current_Body_Suffix => Ada_Body_Suffix).
33922         Take into account Externally_Built attribute.
33923
33924         * clean.adb (In_Extension_Chain): Always return False when one of the
33925         parameter is No_Project.
33926         (Clean_Project): Adapt to changes in package Prj (Lang_Ada =>
33927         Ada_Language_Index).
33928         (Gnatclean): Adapt to change in package Prj.Pars (no parameter
33929         Process_Languages for procedure Parse).
33930
33931         * gnatcmd.adb (Carg_Switches): New table.
33932         (GNATCmd): Put all switches following -cargs in the Carg_Switches table.
33933         Adapt to name changes in package Prj (Current_Spec_Suffix =>
33934         Ada_Spec_Suffix, Current_Body_Suffix => Ada_Body_Suffix).
33935
33936         * mlib-prj.adb: Adapt to changes in packages Prj and Prj.Com: type
33937         Header_Num and function Hash are now declared in package Prj,
33938         not Prj.Com.
33939
33940         * prj.adb (Suffix_Of): New function.
33941         (Set (Suffix)): New procedure.
33942         (Hash): One function moved from Prj.Com
33943         (Is_Present, Language_Processing_Data_Of): New functions
33944         (Set): Two new procedures
33945         (Add_Language_Name, Display_Language_Name): New procedures
33946
33947         * prj.ads: (Suffix_Of): New function
33948         (Set (Suffix)): New procedure
33949         Add several types and tables for multi-language support.
33950         (Header_Num): Type moved from Prj.Com
33951         (Hash): Two functions moved from Prj.Com
33952         (Is_Present, Language_Processing_Data_Of): New functions
33953         (Set): Two new procedures
33954         (Add_Language_Name, Display_Language_Name): New procedures
33955         (Naming): Component name changes:
33956         Current_Spec_Suffix => Ada_Spec_Suffix,
33957         Current_Body_Suffix => Ada_Body_Suffix. Add new components:
33958         Impl_Suffixes, Supp_Suffixes.
33959         (Project_Data): New components: Externally_Built, Supp_Languages,
33960         First_Language_Processing, Supp_Language_Processing, Default_Linker,
33961         Default_Linker_Path.
33962
33963         * prj-attr.adb: Add new attributes Ada_Roots and Externally_Built and
33964         new package Language_Processing with its attributes (Compiler_Driver,
33965         Compiler_Kind, Dependency_Option, Compute_Dependency, Include_Option,
33966         Binder_Driver, Default_Linker).
33967
33968         * prj-com.ads, prj-com.adb (Hash): Function moved to package Prj.
33969         (Header_Num): Type moved to package Prj
33970
33971         * prj-env.adb: Adapt to name changes in package Prj
33972         (Current_Spec_Suffix => Ada_Spec_Suffix,
33973         Current_Body_Suffix => Ada_Body_Suffix).
33974
33975         * prj-ext.adb: Add the default project dir (<prefix>/log/gnat) by
33976         default to the project path, except the "-" is one of the directories
33977         in env var ADA_PROJECT_PATH.
33978         (Current_Project_Path): Global variable, replacing Project_Path
33979         that was in the body of Prj.Part.
33980         (Project_Path): New function
33981         (Set_Project_Path): New procedure
33982         Initialize Current_Project_Path during elaboration of the package
33983         Remove dependency on Prj.Com, no longer needed
33984
33985         * prj-ext.ads (Project_Path): New function
33986         (Set_Project_Path): New procedure
33987
33988         * prj-nmsc.adb (Body_Suffix_Of): New function. Returns .<lang> when no
33989         suffix is defined for language <lang>.
33990         (Find_Sources, Record_Other_Sources): Use Body_Suffix_Of, instead of
33991         accessing directly the components of Naming.
33992         (Look_For_Sources): Use Set (Suffix) to set the suffix of a language.
33993         Reorganise of this package.
33994         Break procedure Check in several procedures.
33995
33996         * prj-nmsc.ads: Replace all procedures (Ada_Check,
33997         Other_Languages_Check and Language_Independent_Check) with a single
33998         procedure Check.
33999
34000         * prj-pars.ads, prj-pars.adb (Parse): Remove parameter
34001         Process_Languages, no longer needed.
34002
34003         * prj-part.adb (Project_Path): Move to the body of Prj.Ext as
34004         Current_Project_Path.
34005         Remove elaboration code, moved to the body of Prj.Ext
34006         Use new function Prj.Ext.Project_Path instead of old variable
34007         Project_Path.
34008         (Post_Parse_Context_Clause): Get Resolved_Path as a case-sensitive path.
34009         When comparing with project paths on the stack, first put the resolved
34010         path in canonical case.
34011         (Parse_Single_Project): Set the path name of the project file in the
34012         tree to the normalized path.
34013
34014         * prj-proc.ads, prj-proc.adb (Check, Recursive_Check, Process): Remove
34015         parameter Process_Languages, no longer needed.
34016         (Recursive_Check): Call Prj.Nmsc.Check, instead of Ada_Check and
34017         Other_Languages_Check.
34018
34019         * prj-tree.ads (Project_Name_And_Node): New component Canonical_Path
34020         to store the resolved canonical path of the project file.
34021         Remove dependency to Prj.Com, no longer needed
34022
34023         * prj-util.adb: Adapt to name changes in package Prj
34024         (Current_Spec_Suffix => Ada_Spec_Suffix, Current_Body_Suffix =>
34025         Ada_Body_Suffix).
34026
34027         * snames.ads, snames.adb: New standard names: Ada_Roots, Binder_Driver,
34028         Compiler_Driver, Compiler_Kind, Compute_Dependency, Default_Linker,
34029         Externally_Built, Include_Option, Language_Processing.
34030
34031         * makegpr.adb: Numerous changes due to changes in packages
34032         Prj and Prj.Nmsc.
34033
34034         * gnatls.adb: Add the default project dir (<prefix>/log/gnat) by
34035         default to the project path, except whe "-" is one of the directories
34036         in env var ADA_PROJECT_PATH.
34037         (Gnatls): In verbose mode, add the new section "Project Search Path:"
34038
34039 2004-12-07  Robert Dewar  <dewar@adacore.com>
34040
34041         * debug.adb: Document that -gnatdA automatically sets -gnatR3m
34042
34043         * gnat1drv.adb (Gnat1drv): If debug flag A set, then automatically
34044         set -gnatR3m mode.
34045
34046         * repinfo.adb (List_Rep_Info): Remove special handling of -gnatdA
34047         flag. No longer needed now that we handle this in gnat1drv.adb.
34048
34049         * repinfo.ads: Minor reformatting
34050
34051 2004-12-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
34052             Olivier Hainque  <hainque@adacore.com>
34053             Eric Botcazou  <ebotcazou@adacore.com>
34054
34055         * decl.c (maybe_pad_type): Use TYPE_SIZE_UNIT of the input type for
34056         TYPE_SIZE_UNIT of result type if SIZE is not specified.
34057         (make_aligning_type): Pass -1 as ADDRESSABLE to prevent the creation
34058         of a bitfield, which we know is useless and causes trouble because of
34059         alignment implications.
34060
34061         * utils.c (create_var_decl): Set DECL_COMMON again on targets without
34062         BSS sections.
34063         (process_attributes): Clear DECL_COMMON again when a section attribute
34064         is present.
34065         (finish_record_type): Independently track if RECORD_TYPE has SIZE and/or
34066         SIZE_UNIT already set and use to compute final SIZE and SIZE_UNIT.
34067         (create_field_decl): Special case ADDRESSABLE negative to mean
34068         "no bitfield creation", to be used by make_aligning_type. Don't
34069         restrict bitfield creation to !ADDRESSABLE any more, as some BLKmode
34070         fields claimed addressable still have to be bitfields. Use
34071         value_factor_p instead of a raw binop construction to check for the
34072         position's alignment.
34073
34074 2004-12-07  Geert Bosch  <bosch@adacore.com>
34075
34076         * eval_fat.adb: Revert previous change.
34077
34078 2004-12-07  Thomas Quinot  <quinot@adacore.com>
34079             Ed Schonberg  <schonberg@adacore.com>
34080
34081         * exp_ch4.adb (Expand_N_Indexed_Component): For an indexed component
34082         with an implicit dereference as its prefix, use
34083         Insert_Explicit_Dereference instead of merely rewriting the prefix into
34084         an explicit dereference. This ensures that a reference to the original
34085         prefix is generated, if appropriate.
34086
34087         * sem_util.adb (Insert_Explicit_Dereference): When an implicit
34088         dereference is rewritten to an explicit one, generate a reference to
34089         the entity denoted by its prefix using the original prefix node, so
34090         the dereference can be properly recorded as a read of the denoted
34091         access value, if appropriate.
34092
34093         * sem_warn.adb (Output_Unreferenced_Messages): Do not abstain from
34094         emitting 'assigned but never read' warning on a variable on the basis
34095         that it has an access type.
34096         (Check_References): Emit unreferenced warning when the scope is a
34097         subprogram body.
34098
34099 2004-12-07  Robert Dewar  <dewar@adacore.com>
34100             Ed Schonberg  <schonberg@adacore.com>
34101
34102         * exp_ch6.adb (Expand_Call): Add comment on handling of back end
34103         intrinsic
34104
34105         * exp_intr.adb (Expand_Intrinsic_Call): Ignore unrecognized intrinsic,
34106         leaving call unchanged.
34107         This deals with the case where the pragma Import specified
34108         an external name, to be handled by the back end.
34109
34110         * sem_prag.adb (Process_Import_Or_Interface): Do not check validity of
34111         subprogram which is Imported with convention Intrinsic if an
34112         External_Name argument is specified.
34113         (Process_Import_Or_Interface): Properly diagnose link name argument.
34114         (Inlining_Not_Possible): New name for Cannot_Inline, to avoid confusion
34115         with Sem_Ch6.Cannot_Inline.
34116         (Process_Inline): Provide separate warning for inapplicable inline
34117         pragma.
34118         (Cannot_Inline): Reject subprograms that have an at_end handler, so that
34119         treatment is uniform on different targets.
34120
34121 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
34122
34123         * exp_ch7.adb (Expand_Cleanup_Actions): If statement sequence of
34124         construct is rewritten, preserve end label to permit source navigation.
34125
34126 2004-12-07  Thomas Quinot  <quinot@adacore.com>
34127
34128         * exp_dist.adb (Specific_Build_General_Calling_Stubs,
34129         Specific_Build_Stub_Target): New subprograms.
34130         (Build_Subprogram_Calling_Stubs): Make this procedure independent from
34131         the PCS implementation used, using the above PCS-customized subprograms.
34132         Minor reformatting.
34133         (PolyORB_Support.Helpers): New subunit containing supporting subprograms
34134         for generation of DSA code targeted to the PolyORB PCS.
34135         (Add_Stub_Type): Rewrite to isolate the parts that are specific to one
34136         implementation of the partition communication subsystem in ancillary
34137         subprograms.
34138         (Specific_Build_Stub_Type, GARLIC_Support.Build_Stub_Type,
34139         PolyORB_Support.Build_Stub_Type): New subrograms containing the
34140         PCS-specific part of Add_Stub_Type.
34141         (Insert_Partition_Check): Use runtime library function to perform
34142         E.4(19) check.
34143
34144         * rtsfind.ads: New entity System.PolyORB_Interface.Make_Ref
34145         (RE_Same_Partition): New entity, from s-parint.
34146
34147         * s-parint.ads, s-parint.adb (Same_Partition): New subprogram.
34148
34149 2004-12-07  Gary Dismukes  <dismukes@adacore.com>
34150
34151         * gnatmem.adb, gnatname.adb, gnatsym.adb, gprcmd.adb, vms_conv.adb:
34152         Output the copyright message on a separate line from the version
34153         message.
34154
34155 2004-12-07  Joel Brobecker  <brobecker@adacore.com>
34156
34157         * g-os_lib.adb (Spawn): Explicitly initialize Saved_Error to avoid a
34158         compile-time warning.
34159
34160 2004-12-07  Robert Dewar  <dewar@adacore.com>
34161
34162         * g-regpat.adb: (Match): Change a misuse of or to or else
34163
34164 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
34165
34166         * lib-xref.adb:
34167         (Generate_Reference): Handle properly a reference to an entry formal,
34168          when an accept statement has a pragma Unreferenced for it.
34169
34170         * sem_ch9.adb (Analyze_Accept_Statement): Reset the Is_Referenced flag
34171         and the Has_Pragma_Unreferenced flag for each formal before analyzing
34172         the body, to ensure that warnings are properly emitted for each accept
34173         statement of a given task entry.
34174
34175 2004-12-07  Vasiliy Fofanov  <fofanov@adacore.com>
34176
34177         * Makefile.in: Add support for foreign threads on VMS.
34178
34179 2004-12-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
34180
34181         * misc.c (gnat_types_compatible_p, LANG_HOOKS_TYPES_COMPATIBLE_P):
34182         Remove.
34183         (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): New.
34184
34185         * adaint.h: (__gnat_dup, __gnat_dup2): Add missing decls.
34186
34187         * trans.c (Exception_Handler_to_gnu_sjlj): Also handle renamed
34188         exception.
34189         (call_to_gnu): Convert to actual DECL_ARG_TYPE, not variant of it.
34190
34191 2004-12-07  Robert Dewar  <dewar@adacore.com>
34192
34193         * nlists.adb (Prepend_Debug): Remove parameters and nest within
34194         Prepend.
34195         (Remove_Next_Debug): Same fix
34196
34197         * nlists.ads: Correct bad comments for Prev and Prev_Non_Pragma (we do
34198         maintain back pointers now, though we did not used to, and comments
34199         were out of date).
34200         (Prepend): Remove pragma Inline.
34201         (Remove_Next): Same cleanup
34202
34203 2004-12-07  Thomas Quinot  <quinot@adacore.com>
34204
34205         * sem_ch4.adb (Process_Implicit_Dereference_Prefix): New subprogram
34206         used to record an implicit dereference as a read operation on its
34207         prefix when operating under -gnatc. Necessary to avoid spurious
34208         'variable assigned but never read' warnings in that mode.
34209         (Process_Indexed_Component, Analyze_Selected_Component): When the prefix
34210         is a non-overloaded implicit dereference, call the above subprogram to
34211         ensure proper recording of references.
34212
34213 2004-12-07  Gary Dismukes  <dismukes@adacore.com>
34214
34215         * sem_ch5.adb (One_Bound): Remove call to Resolve, as the bound needs
34216         to be resolved later as part of Analyze_Iteration_Scheme's call to
34217         Make_Index.
34218
34219 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
34220
34221         * sem_ch8.adb (Find_Type): If node is a reference to 'Base and the
34222         prefix is not a scalar type, place error message on prefix, not on
34223         type entity.
34224
34225 2004-12-07  Bernard Banner  <banner@adacore.com>
34226
34227         * vxaddr2line.adb: Add support for x86 vxworks
34228
34229 2004-12-07  Thomas Quinot  <quinot@adacore.com>
34230
34231         * g-socket.ads (Get_Host_By_Address, Get_Host_By_Name): Clarify
34232         documentation of the behaviour of these functions when passed an IP
34233         address that has no record in the system hosts database and no reverse
34234         record in the DNS.
34235
34236         * cstand.adb, a-tags.ads: Fix typos in comment.
34237
34238 2004-12-07  Robert Dewar  <dewar@adacore.com>
34239
34240         * exp_ch2.adb, exp_ch3.adb, exp_ch5.adb, exp_ch8.adb,
34241         exp_ch9.adb, exp_pakd.adb, interfac.ads, sem_ch6.adb,
34242         sem_ch7.adb, sem_ch10.adb, sem_ch13.adb, sem_ch3.adb,
34243         s-poosiz.ads: Minor reformatting
34244
34245         * make.adb: Minor reformatting
34246         Add some ??? comments asking for more comments
34247
34248         * s-poosiz.adb: Minor reformatting
34249         Add comments on alignment requirement
34250
34251         * sinfo.ads: Remove obsolete comment and fix typo.
34252
34253 2004-12-07  Vincent Celier  <celier@adacore.com>
34254             Sergey Rybin  <rybin@adacore.com>
34255
34256         * gnat_ugn.texi: Update the section "The GNAT Driver and Project
34257         Files" with the new tool and package names.
34258         Reformatting to suppress most of the warnings for line too long
34259         Document the new section "Project Search Path:" in the output of
34260         gnatls -v.
34261         Add gnatmetric section
34262
34263 2004-12-07  Vincent Celier  <celier@adacore.com>
34264
34265         * vms_data.ads: Correct GNAT METRIC qualifiers: -I-, -Idir and
34266         -gnatec= are not direct switches of gnatmetric. Changed -eis to -eps
34267         and -eit to -ept. Added qualifier
34268         /ELEMENT_METRICS=CONSTRUCT_NESTING_MAX for new switch -ec.
34269
34270 2004-11-27  Andreas Schwab  <schwab@suse.de>
34271
34272         * Make-lang.in (ada/trans.o): Depend on $(EXPR_H).
34273
34274 2004-11-25  Arnaud Charlet  <charlet@adacore.com>
34275
34276         * g-socthi-mingw.ads, g-socthi-vms.ads: Remove C_Read and C_Write from
34277         internal implementation unit GNAT.Sockets.Thin,
34278         as their usage for sockets is non-portable (using the read and write
34279         functions from the system runtime library is fine on UNIX but won't
34280         work under Windows).
34281
34282         * mingw32.h: Update copyright notice.
34283
34284 2004-11-25  Arnaud Charlet  <charlet@adacore.com>
34285
34286         * ada-tree.h: Minor reformatting of previous change to avoid lines
34287         longer than 79 characters.
34288
34289 2004-11-25  Olivier Hainque  <hainque@adacore.com>
34290
34291         * tb-gcc.c: GCC infrastructure based implementation of
34292         __gnat_backtrace.
34293
34294 2004-11-24  Steven Bosscher  <stevenb@suse.de>
34295
34296         * misc.c (gnat_post_options): Don't clear
34297         flag_inline_functions.
34298
34299 2004-11-22  Andrew Pinski  <pinskia@physics.uc.edu>
34300
34301         PR ada/17986
34302         * ada-tree.h (lang_tree_node): Set chain_next to be the chain of the
34303         tree.
34304
34305 2004-11-21  Andreas Jaeger  <aj@suse.de>
34306
34307         * stylesw.adb: Change Style_Check_Subprogram_Order to
34308         Style_Check_Order_Subprograms.
34309
34310 2004-11-18  Arnaud Charlet  <charlet@adacore.com>
34311
34312         * adaint.h, adaint.c
34313         (__gnat_portable_spawn): Fix cast of spawnvp third parameter
34314         to avoid warnings.
34315         Add also a cast to kill another warning.
34316         (win32_no_block_spawn): Initialize CreateProcess's dwCreationFlags
34317         parameter with the priority class of the parent process instead of
34318         always using the NORMAL_PRIORITY_CLASS.
34319         (__gnat_dup): New function.
34320         (__gnat_dup2): New function.
34321         (__gnat_is_symbolic_link): Enable the effective body of this
34322         function when __APPLE__ is defined.
34323
34324         * g-os_lib.ads, g-os_lib.adb (Spawn): Two new procedures.
34325         Update comments.
34326
34327 2004-11-18  Olivier Hainque  <hainque@adacore.com>
34328
34329         * a-exexpr.adb (Others_Value, All_Others_Value): New variables, the
34330         address of which may be used to represent "others" and "all others"
34331         choices in exception tables, instead of the current harcoded
34332         (void *)0 and (void *)1.
34333         (Setup_Exception): Do nothing in the GNAT SJLJ case.
34334
34335         * gigi.h (others_decl, all_others_decl): New decls representing the
34336         new Others_Value and All_Others_Value objects.
34337         (struct attrib): Rename "arg" component as "args", since GCC expects a
34338         list of arguments in there.
34339
34340         * raise.c (GNAT_OTHERS, GNAT_ALL_OTHERS): Are now the address of the
34341         corresponding objects exported by a-exexpr, instead of hardcoded dummy
34342         addresses.
34343
34344         * trans.c (Exception_Handler_to_gnu_zcx): Use the address of
34345         others_decl and all_others_decl instead of hardcoded dummy addresses
34346         to represent "others" and "all others" choices, which is cleaner and
34347         more flexible with respect to the possible eh pointer encoding policies.
34348
34349         * utils.c (init_gigi_decls): Initialize others_decl and all_others_decl.
34350         (process_attributes): Account for the naming change of the "args"
34351         attribute list entry component.
34352
34353         * decl.c (build_attr_list): Rename into prepend_attributes to allow
34354         cumulating attributes for different entities into a single list.
34355         (gnat_to_gnu_entity): Use prepend_attributes to build the list of
34356         attributes for the current entity and propagate first subtype
34357         attributes to other subtypes.
34358         <E_Procedure>: Attribute arguments are attr->args and not
34359         attr->arg any more.
34360         (build_attr_list): Ditto. Make attr->args a TREE_LIST when there is an
34361         argument provided, as this is what GCC expects. Use NULL_TREE instead
34362         of 0 for trees.
34363
34364 2004-11-18  Robert Dewar  <dewar@adacore.com>
34365
34366         * a-stmaco.ads, exp_util.ads, exp_util.adb, i-cpp.ads, i-cpp.adb:
34367         Minor reformatting througout (including new function specs)
34368         Add ??? comments asking for clarification.
34369
34370 2004-11-18  Thomas Quinot  <quinot@adacore.com>
34371
34372         * butil.ads, butil.adb, bindgen.adb (Get_Unit_Name_String): Remove
34373         incomplete duplicate implementation of this subprogram from butil.
34374
34375 2004-11-18  Thomas Quinot  <quinot@adacore.com>
34376
34377         * exp_dist.adb (Build_RPC_Receiver_Body): New subprogram. This
34378         procedures factors the common processing for building an RPC receiver
34379         for an RCI package or an RACW type.
34380         Stylistic cleanup: change '/= Empty' to 'Present ()'; move body of
34381         Build_Remote_Subprogram_Proxy_Type into proper alphabetical order.
34382         (Get_PCS_Name): New subprogram. Returns the name of the PCS currently
34383         in use.
34384         (Specific_Add_RACW_Features): New subprogram. PCS-specific part of
34385         Add_RACW_Features.
34386         (Specific_Add_RAST_Features): New subprogram. PCS-specific part of
34387         Add_RAST_Features.
34388         (Assign_Subprogram_Identifier): New subprogram. Provision for assigning
34389         distribution subprogram identifiers that are either subprogram numbers
34390         or strings.
34391         (Get_Subprogram_Ids): New subprogram. Retrieve both the numeric and
34392         string distribution identifiers assigned to a given subprogram.
34393         (Get_Subprogram_Id): Reimplement in terms of Get_Subprogram_Ids.
34394         (Add_RAS_Dereference_TSS): Add comments.
34395         (Build_General_Calling_Stubs): Note that the RACW_Type formal parameter
34396         is not referenced yet because it will be used by the PolyORB DSA
34397         implementation.
34398         (Insert_Partition_Check): Remove fossile code.
34399         (First_RCI_Subprogram_Id): Document this constant.
34400         (Add_RAS_Access_TSS): Correct the setting of the Etype of the
34401         RAS_Access TSS.
34402         (Get_Pkg_Name_String): Remove subprogram. Usage occurrences are
34403         replaced with calls to Get_Library_Unit_Name_String. Previously there
34404         were several instances of the same code in different locations in the
34405         compiler; this checkin completes the replacement of all of these
34406         instances with calls to a common subprogram.
34407         Minor reformatting.
34408
34409         * sem_dist.adb: Remove comment noting that RPC receiver generation
34410         should be disabled for RACWs that implement RASs.
34411         (Process_Partition_Id): Use new subprogram Get_Library_Unit_Name_String.
34412
34413         * sem_util.ads, sem_util.adb (Has_Stream): New function
34414         (Get_Library_Unit_Name_String): New subprogram to retrieve the fully
34415         qualified name of a library unit into the name buffer.
34416         (Note_Possible_Modification): Generate a reference only
34417         if the context comes from source.
34418
34419         * snames.ads (PCS_Names): New subtype corresponding to names of
34420         supported implementations of the Partition Communication Subsystem
34421         (PCS) (i.e. the runtime library support modules for the distributed
34422         systems annex).
34423
34424 2004-11-18  Robert Dewar  <dewar@adacore.com>
34425             Ed Schonberg  <schonberg@adacore.com>
34426
34427         * einfo.ads, einfo.adb: Remove Is_Psected flag, no longer used
34428         (Has_Rep_Pragma): New function
34429         (Has_Attribute_Definition_Clause): New function
34430         (Record_Rep_Pragma): Moved here from sem_ch13.adb
34431         (Get_Rep_Pragma): Remove junk kludge for Stream_Convert pragma
34432
34433         * sem_ch13.ads, sem_ch13.adb (Record_Rep_Pragma): Moved to einfo.adb
34434
34435         * exp_prag.adb: (Expand_Pragma_Common_Object): New procedure
34436         (Expand_Pragma_Psect_Object): New procedure
34437         These procedures contain the revised and cleaned up processing for
34438         these two pragmas. This processing was formerly in Sem_Prag, but
34439         is more appropriately moved here. The cleanup involves making sure
34440         that the pragmas are properly attached to the tree, and that no
34441         nodes are improperly shared.
34442
34443         * sem_prag.adb: Move expansion of Common_Object and Psect_Object
34444         pragmas to Exp_Prag, which is more appropriate.
34445         Attach these two pragmas to the Rep_Item chain Use Rep_Item chain to
34446         check for duplicates Remove use of Is_Psected flag, no longer needed.
34447         Use new Make_String_Literal function with string.
34448
34449         * exp_attr.adb (Expand_Fpt_Attribute): The floating-point attributes
34450         that are functions return universal values, that have to be converted
34451         to the context type.
34452         Use new Make_String_Literal function with string.
34453         (Get_Stream_Convert_Pragma): New function, replaces the use of
34454         Get_Rep_Pragma, which had to be kludged to work in this case.
34455
34456         * freeze.adb: Use new Has_Rep_Pragma function
34457
34458         * exp_intr.adb, exp_ch3.adb, sem_attr.adb: Use new Make_String_Literal
34459         function with string.
34460         Use new Has_Rep_Pragma function.
34461
34462         * tbuild.ads, tbuild.adb (Make_String_Literal): New function, takes
34463         string argument.
34464
34465 2004-11-18  Robert Dewar  <dewar@adacore.com>
34466
34467         * errout.ads, errout.adb: (First_Sloc): New function
34468
34469         * par-ch5.adb (P_Condition): Check for redundant parens is now a style
34470         check (-gnatyx) instead of being included as a redundant construct
34471         warning.
34472
34473         * sem_ch6.adb: Change name Style_Check_Subprogram_Order to
34474         Style_Check_Order_Subprograms.
34475
34476         * style.ads, styleg.ads, styleg.adb, styleg-c.adb, stylesw.ads,
34477         stylesw.adb: Add Style_Check_Xtra_Parens
34478
34479         * usage.adb: Add line for -gnatyx (check extra parens)
34480
34481         * vms_data.ads: Add entry for STYLE_CHECKS=XTRA_PARENS => -gnatyx
34482
34483 2004-11-18  Ed Schonberg  <schonberg@adacore.com>
34484             Robert Dewar  <dewar@adacore.com>
34485
34486         * exp_ch4.adb (Expand_N_Selected_Component): If the component is the
34487         discriminant of a constrained subtype, analyze the copy of the
34488         corresponding constraint, because in some cases it may be only
34489         partially analyzed.
34490         Removes long-lived ??? comments.
34491
34492         * exp_ch7.adb (Establish_Transient_Scope): Remove complex code that
34493         handled controlled or secondary-stack expressions within the
34494         iteration_scheme of a loop.
34495
34496         * sem_ch5.adb (Analyze_Iteration_Scheme): Build a block to evaluate
34497         bounds that may contain functions calls, to prevent memory leaks when
34498         the bound contains a call to a function that uses the secondary stack.
34499         (Check_Complex_Bounds): Subsidiary of Analyze_Iteration_Scheme, to
34500         generate temporaries for loop bounds that might contain function calls
34501         that require secondary stack and/or finalization actions.
34502
34503         * sem_ch4.adb (Analyze_Indexed_Component_Form): If the prefix is a
34504         selected component and the selector is overloadable (not just a
34505         function) treat as function call, Analyze_Call will disambiguate if
34506         necessary.
34507         (Analyze_Selected_Component): Do not generate an actual subtype for the
34508         selected component if expansion is disabled. The actual subtype is only
34509         needed for constraint checks.
34510         (Analyze_Allocator): If restriction No_Streams is set, then do
34511         not permit objects to be declared of a stream type, or of a
34512         composite type containing a stream.
34513
34514         * restrict.ads: Remove the a-stream entry from Unit_Array, since
34515         No_Streams no longer prohibits with'ing this package.
34516
34517         * sem_ch3.adb (Build_Derived_Record_Type): If the parent type has
34518         discriminants, but the parent base has unknown discriminants, there is
34519         no discriminant constraint to inherit. Such a discrepancy can arise
34520         when the actual for a formal type with unknown discriminants is a
34521         similar private type whose full view has discriminants.
34522         (Analyze_Object_Declaration): If restriction No_Streams is set, then
34523         do not permit objects to be declared of a stream type, or of a
34524         composite type containing a stream.
34525
34526 2004-11-18  Ed Schonberg  <schonberg@adacore.com>
34527
34528         * exp_dbug.ads: Update documentation to reflect simpler encoding for
34529         protected operations.
34530
34531         * exp_ch9.adb (Build_Selected_Name): Do not include "PT" suffix in
34532         generated name, it complicates decoding in gdb and hinders debugging
34533         of protected operations.
34534         (Build_Barrier_Function_Specification): Set the Needs_Debug_Info
34535         flag for the protected entry barrier function.
34536         (Build_Protected_Entry_Specification): Set the Needs_Debug_Info
34537         flag for the protected entry function.
34538
34539 2004-11-18  Nicolas Setton  <setton@adacore.com>
34540
34541         * expect.c: Define __unix__ when __APPLE__ is defined.
34542
34543         * Makefile.in: Inform the value of the variable GMEM_LIB in the
34544         Darwin-specific section.
34545
34546         * lang-specs.h: Change the placement of the %1 marker.
34547         Works around the fact that gcc adds -fPIC by default under Darwin.
34548
34549 2004-11-18  Ed Schonberg  <schonberg@adacore.com>
34550
34551         * exp_pakd.adb (Convert_To_PAT_Type): After replacing the original
34552         type of the object with the packed array type, set the Analyzed flag
34553         on the object if it is an entity or simple indexed component, to avoid
34554         spurious type errors.
34555
34556 2004-11-18  Gary Dismukes  <dismukes@adacore.com>
34557
34558         * gnat1drv.adb, gnatbind.adb, gnatchop.adb, gnatfind.adb, gnatlink.adb,
34559         gnatls.adb, gnatxref.adb, gprep.adb: Output the copyright message on a
34560         separate line from the version message.
34561
34562 2004-11-18  Ed Falis  <falis@adacore.com>
34563
34564         * init.c (__gnat_map_signal): map SIGSEGV to Storage_Error for AE653
34565         vthreads.
34566         (init_float): Eliminate initialization of floating point status for
34567         AE653. The instructions have no effect for vThreads.
34568
34569 2004-11-18  Vincent Celier  <celier@adacore.com>
34570
34571         * make.adb (Gnatmake): Invoke gnatlink with -shared-libgcc when
34572         gnatbind is invoked with -shared.
34573
34574 2004-11-18  Jose Ruiz  <ruiz@adacore.com>
34575
34576         * s-tposen.adb (Lock_Entry): Remove the code for raising Program_Error
34577         for Detect_Blocking which is redundant with the check done within the
34578         procedure Protected_Single_Entry_Call.
34579         (Lock_Read_Only_Entry): Remove the code for raising Program_Error for
34580         Detect_Blocking which is redundant with the check done within the
34581         procedure Protected_Single_Entry_Call.
34582
34583 2004-11-18  Vincent Celier  <celier@adacore.com>
34584
34585         * makegpr.adb (Compile): Put the compiling switches (in package
34586         Compiler and on the command line) immediately after "-c", instead of
34587         at the end of the command line invocation of the compiler, when
34588         compiling a non-Ada file.
34589         (Build_Global_Archive): When there is no need to rebuild the archive,
34590         set Global_Archive_Exists, so that the archive is passed to the linker
34591         if one is needed.
34592
34593 2004-11-18  Robert Dewar  <dewar@adacore.com>
34594             Sergey Rybin  <rybin@adacore.com>
34595
34596         * gnat_ugn.texi:
34597         Remove extra paren check from list of checks for redundant constructs
34598         Add documentation of new -gnatyx style check (check extra parens)
34599         Remove paragraph about gnatelim debug options.
34600
34601         * gnat_rm.texi: Document that Ada.Streams now forbids creating stream
34602         objects rather than forbidding dependencies on the package Ada.Streams.
34603
34604         * sinfo.ads: Add ??? note that we should document pragmas passed to
34605         back end.
34606
34607         * g-expect.ads: Fix a few typos in the comments.
34608
34609 2004-11-09  Joseph S. Myers  <joseph@codesourcery.com>
34610
34611         * misc.c (gnat_handle_option): Use %< and %> for quoting in
34612         warning message.
34613
34614 2004-11-08  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
34615
34616         * a-numaux-x86.adb (Tan): Fix fdivp syntax.
34617
34618 2004-11-07  Andreas Schwab  <schwab@suse.de>
34619
34620         * Makefile.in (install-gnatlib): Remove spurious hyphen.
34621
34622 2004-11-02  Andrew Pinski  <pinskia@physics.uc.edu>
34623
34624         PR ada/18228
34625         * Makefile.in (darwin): Set soext to .dylib.
34626
34627 2004-10-26  Vincent Celier  <celier@gnat.com>
34628             Thomas Quinot   <quinot@act-europe.fr>
34629
34630         * g-socthi-vms.adb, g-socthi-mingw.adb, g-socthi-vxworks.ads:
34631         (C_Writev): Change MSG_Forced_Flags to Constants.MSG_Forced_Flags as
34632         there is no use of GNAT.Sockets.Constants.
34633         Remove remaining pragma Import for C_Write
34634         Remove C_Read and C_Write from internal implementation unit
34635         GNAT.Sockets.Thin, as their usage for sockets is non-portable (using
34636         the read and write functions from the system runtime library is fine
34637         on UNIX but won't work under Windows).
34638
34639         * g-socket.adb: (Abort_Selector): Use C_Send instead of C_Write.
34640         (Check_Selector): Use C_Recv instead of C_Read.
34641         Selectors are the GNAT.Sockets abstraction to perform a select()
34642         call on a set of descriptors. To allow abortion of an ongoing
34643         select operation, some data is written to a dedicated socket that
34644         is always monitored.
34645         Under Windows, the write and read library functions cannot operate
34646         on sockets, so we need to use send and recv instead, which is portable
34647         across all supported platforms.
34648
34649         * g-socthi.ads: Remove C_Read and C_Write from internal implementation
34650         unit GNAT.Sockets.Thin, as their usage for sockets is non-portable
34651         (using the read and write functions from the system runtime library is
34652         fine on UNIX but won't work under Windows).
34653
34654 2004-10-26  Nicolas Setton  <setton@act-europe.fr>
34655
34656         * mlib-tgt-darwin.adb: New file.
34657
34658         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
34659         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
34660         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
34661         mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb (Archive_Indexer_Options): New
34662         subprogram body.
34663
34664         * Makefile.in: Add support for building shared libraries under Darwin.
34665         (EXTRA_GNATRTL_NONTASKING_OBJS, ppc-vxworks): Add s-vxwexc.o, containing
34666         the low level EH init subprogram to be called from __gnat_initialize.
34667
34668         * mlib-tgt.ads, mlib-tgt.adb (Archive_Indexer_Options): New subprogram,
34669         indicates which options to pass to the archive indexer.
34670
34671         * mlib-utl.adb: Add support for calling ranlib with additional
34672         options. This is needed for instance under Mac OS X.
34673         (Ranlib_Options): New global variable, used to store the potential
34674         options to pass to ranlib.
34675         (Ar): Use Ranlib_Options when spawning ranlib.
34676         (Initialize): Set the value of ranlib option.
34677
34678 2004-10-26  Olivier Hainque  <hainque@act-europe.fr>
34679
34680         * s-parame-linux.adb (Minimum_Stack_Size): Adjust to return 12K
34681         instead of 8K, to reflect the real potential needs for stack-checking
34682         in the ZCX case.
34683
34684 2004-10-26  Pascal Obry  <obry@gnat.com>
34685
34686         * s-parame-mingw.adb (Default_Stack_Size): Add some comments.
34687
34688         * s-taprop-mingw.adb (Create_Task): Set initial stack size to 1024. On
34689         Windows only the initial thread stack size can be set so it is good to
34690         start we a low stack size.
34691         The OS will adjust the size as needed.
34692
34693 2004-10-26  Olivier Hainque  <hainque@act-europe.fr>
34694             Nicolas Setton  <setton@act-europe.fr>
34695
34696         * expect.c, adaint.c, link.c, sysdep.c (unix sections): Guard with
34697         "__unix__" instead of "unix".
34698         The latter is implicitly defined by gcc3.2 but not by gcc >= 3.4, so the
34699         sections were just mistakenly ignored. The former is
34700         implicitely defined by gcc2.8, gcc3.2 and gcc3.4.
34701         Update #ifdef preprocessor macro to detect the symbol __hpux__ instead
34702         of hpux. This prevents an unwanted definition of the symbol
34703         convert_addresses in adaint.o.
34704
34705 2004-10-26  Gary Dismukes  <dismukes@gnat.com>
34706
34707         * a-exexpr.adb (Setup_Key): Change initial value to 16#DEAD#, for
34708         compatibility with type Unwind_Word on 16-bit targets such as AAMP.
34709
34710 2004-10-26  Cyrille Comar  <comar@act-europe.fr>
34711
34712         * a-filico.ads, a-filico.adb: fix incorrect header.
34713
34714 2004-10-26  Javier Miranda  <miranda@gnat.com>
34715
34716         * a-ststio.ads: Fix typo in identifier
34717
34718 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
34719
34720         * sem_ch4.adb: Minor reformatting.
34721
34722 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
34723
34724         * checks.adb (Expr_Known_Valid): If floating-point validity checks are
34725         enabled, check the result of unary and binary operations when the
34726         expression is the right-hand side of an assignment.
34727
34728 2004-10-26  Vincent Celier  <celier@gnat.com>
34729
34730         * clean.adb (Delete): Do not output warnings when in quiet output and
34731         not in verbose mode.
34732         (Force_Deletions): New Boolean flag, defaulted to False
34733         (Delete): Only delete a file if it is writable, and when
34734         Force_Deletions is True.
34735         (Parse_Cmd_Line): New switch -f: set Force_Deletions to True
34736         (Usage): Line for new switch -f
34737         (Clean_Directory): Use GNAT.OS_Lib.Set_Writable instead of rolling our
34738         own.
34739
34740 2004-10-26  Eric Botcazou  <ebotcazou@act-europe.fr>
34741
34742         * decl.c (gnat_to_gnu_field): Use the type of the inner object for a
34743         JM type only if its size matches that of the wrapper.  When a size is
34744         prescribed and the field is not aliased, remove the wrapper of a JM
34745         type only if the size is not greater than that of the packed array.
34746         (gnat_to_gnu_entity): Change the extension of packed array wrappers
34747         from LJM to JM.
34748
34749 2004-10-26  Geert Bosch  <bosch@gnat.com>
34750
34751         * eval_fat.adb (Eps_Model,Eps_Denorm): Remove, no longer used.
34752         (Succ): Re-implement using Scaling, Exponent and Ceiling attributes.
34753         (Pred): Implement in terms of Succ.
34754
34755 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
34756
34757         * exp_aggr.adb (Safe_Component): An aggregate component that is an
34758         unchecked conversion is safe for in-place use if the expression of the
34759         conversion is safe.
34760         (Expand_Array_Aggregate): An aggregate that initializes an allocator may
34761         be expandable in place even if the aggregate does not come from source.
34762         (Convert_Array_Aggr_In_Allocator): New procedure to initialize the
34763         designated object of an allocator in place, rather than building it
34764         first on the stack. The previous scheme forces a full copy of the array,
34765         and may be altogether unsusable if the size of the array is too large
34766         for stack allocation.
34767
34768 2004-10-26  Robert Dewar  <dewar@gnat.com>
34769
34770         * exp_ch4.adb (Expand_N_Op_Eq): Make sure we expand a loop for array
34771         compares if the component is atomic.
34772
34773         * exp_ch5.adb (Expand_Assign_Array): Make sure we expand a loop for
34774         array assignment if the component type is atomic.
34775
34776 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
34777             Eric Botcazou  <ebotcazou@act-europe.fr>
34778
34779         * exp_ch6.adb (Expand_Actuals): If the actual for an in-out parameter
34780         is aliased and is a by_reference type, do not pass by copy.
34781         (Expand_N_Function_Call) <Rhs_Of_Assign_Or_Decl>: New function to
34782         detect whether the call is in the right side of an assignment or
34783         the expression of an object declaration.  Recurse on component
34784         association within aggregates.
34785         Call it in the condition that determines whether the temporary is
34786         necessary for correct stack-checking.
34787
34788 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
34789
34790         * exp_dist.adb (Build_General_Calling_Stubs): New formal parameter
34791         RACW_Type, used in the PolyORB version.
34792         Rename RCI_Info to RCI_Locator, for consistency between the PolyORB
34793         version and the GARLIC version.
34794
34795         * snames.ads, snames.adb, s-parint.ads, s-parint.adb:
34796         Rename RCI_Info to RCI_Locator for better consistency between the
34797         GARLIC and PolyORB versions of the distributed systems annex.
34798         (DSA_Implementation_Name): This enumeration lists the possible
34799         implementations of the Partition Communication Subsystem for the
34800         Distributed Systems Annex (DSA). The three available implementations
34801         are the dummy stub implementation (No_DSA), and two versions based on
34802         two different distribution runtime libraries: GARLIC and PolyORB. Both
34803         the GARLIC PCS and the PolyORB PCS are part of the GLADE distribution
34804         technology.
34805         Change the literal GLADE_DSA to GARLIC_DSA to accurately describe
34806         that organization.
34807
34808         * rtsfind.ads: Rename RCI_Info to RCI_Locator for better consistency
34809         between the GARLIC and PolyORB versions of the distributed systems
34810         annex.
34811         Remove RE_Unbounded_Reclaim_Pool since it is unused.
34812
34813 2004-10-26  Gary Dismukes  <dismukes@gnat.com>
34814
34815         * gnat1drv.adb: Suppress calling the back end when
34816         Frontend_Layout_On_Target is true.
34817
34818 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
34819
34820         * g-os_lib.ads, g-os_lib.adb (Set_Executable, Set_Writable,
34821         Set_Read_Only): New subprograms.
34822         These new routines allow the user to set or unset the Owner execute
34823         and Owner write permission flags on a file.
34824
34825         * makegpr.adb, mlib.adb, mlib-prj.adb: Use
34826         GNAT.OS_Lib.Set_Executable instead of rolling our own.
34827
34828 2004-10-26  Matthew Gingell  <gingell@gnat.com>
34829
34830         * i-cpp.ads, i-cpp.adb: Change layout of VTable for new C++ ABI.
34831
34832 2004-10-26  Pascal Obry  <obry@gnat.com>
34833
34834         * init.c (__gnat_error_handler) [Win32]: Instead of trying to read the
34835         memory before the faulting page we properly test the process read
34836         access for this address using appropriate Win32 routine.
34837         (HPUX sections): guard with "__hpux__" instead of "hpux".
34838
34839 2004-10-26  Robert Dewar  <dewar@gnat.com>
34840
34841         * lib-xref.adb (Generate_Reference): Don't complain about reference to
34842         entry parameter if pragma Unreferenced set, since we do not properly
34843         handle the case of multiple parameters.
34844
34845 2004-10-26  Vincent Celier  <celier@gnat.com>
34846
34847         * prj-env.adb: (Contains_ALI_Files): New Boolean function
34848         (Ada_Objects_Path.Add): For a library project, add to the object path
34849         the library directory only if there is no object directory or if the
34850         library directory contains ALI files.
34851         (Set_Ada_Paths.Add.Recursive_Add): Ditto
34852
34853 2004-10-26  Vincent Celier  <celier@gnat.com>
34854
34855         * prj-nmsc.adb (Language_Independent_Check): Do not forbid virtual
34856         extension of library projects.
34857
34858         * prj-part.adb: If env var ADA_PROJECT_PATH is not defined, project
34859         path defaults to ".:<prefix>/lib/gnat".
34860         (Parse): For an extending all project, allow direct import of a project
34861         that is virtually extended.
34862
34863         * prj-proc.adb (Imported_Or_Extended_Project_From): If a project with
34864         the specified name is directly imported, return its ID. Otherwise, if
34865         an extension of this project is imported, return the ID of the
34866         extension.
34867
34868 2004-10-26  Robert Dewar  <dewar@gnat.com>
34869
34870         * s-arit64.adb: (Le3): New function, used by Scaled_Divide
34871         (Sub3): New procedure, used by Scaled_Divide
34872         (Scaled_Divide): Substantial rewrite, avoid duplicated code, and also
34873         correct more than one instance of failure to propagate carries
34874         correctly.
34875         (Double_Divide): Handle overflow case of largest negative number
34876         divided by minus one.
34877
34878         * s-arit64.ads (Double_Divide): Document that overflow can occur in
34879         the case of a quotient value out of range.
34880         Fix comments.
34881
34882 2004-10-26  Robert Dewar  <dewar@gnat.com>
34883
34884         * s-bitops.adb (Bit_Eq): Remove redundant check.
34885
34886         * s-bitops.ads: Minor comment updates
34887         Change some occurrences of Address to System.Address
34888
34889         * s-carsi8.ads: Fix minor cut-and-paste error in comments
34890
34891 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
34892
34893         * sem_attr.adb (Resolve_Attribute, case 'Access): Apply proper
34894         accessibility check to prefix that is a protected operation.
34895
34896 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
34897
34898         * sem_ch10.adb (Optional_Subunit): If file of expected subunit is
34899         empty, post message on stub.
34900
34901 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
34902             Javier Miranda  <miranda@gnat.com>
34903
34904         * sem_ch12.adb (In_Main_Context): Predicate to determine whether the
34905         current instance appears within a unit that is directly in the context
34906         of the main unit.
34907         Used to determine whether the body of the instance should be analyzed
34908         immediately after its spec, to make its subprogram bodies available
34909         for front-end inlining.
34910         (Analyze_Formal_Array_Type): Cleanup condition that checks that range
34911         constraint is not allowed on the component type (AARM 12.5.3(3))
34912
34913 2004-10-26  Cyrille Comar  <comar@act-europe.fr>
34914
34915         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case
34916         'Storage_Pool): enhance, document & limit detection of non-sharable
34917         internal pools.
34918
34919         * impunit.adb: Make System.Pool_Global and System.Pool_Local visible.
34920
34921         * s-pooglo.ads: Add more documentation now that this pool is properly
34922         documented.
34923
34924 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
34925
34926         * sem_ch3.adb (Complete_Private_Subtype): If the full view is a task
34927         or protected type with discriminants, do not constrain the
34928         corresponding record type if the subtype declaration has no
34929         discriminant constraints. This can be the case in source code, or in
34930         the subtype declaration created to rename an actual type within an
34931         instantiation.
34932
34933 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
34934
34935         * sem_ch6.adb (Analyze_Subprogram_Body): If body is a subunit for a
34936         different kind of stub (possibly wrong name for file), do not check
34937         for conformance.
34938         (Uses_Secondary_Stack): New subsidiary to Build_Body_To_Inline. If body
34939         includes call to some function that returns an unconstrained type, do
34940         not inline.
34941
34942 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
34943
34944         * sem_elab.adb (Check_Elab_Call): Do not check a call that does not
34945         appear in the code for the main unit. Dependencies among units in the
34946         context of the main unit are established when those other units are
34947         compiled. Otherwise spurious elaboration constraints can generate
34948         incorrect elaboration circularities.
34949
34950 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
34951             Ed Schonberg   <schonberg@gnat.com>
34952
34953         * sem_util.adb (Is_Aliased_View): Defend against the case where this
34954         subprogram is called with a parameter that is not an object name. This
34955         situation arises for some cases of illegal code, which is diagnosed
34956         later, and in this case it is wrong to call Is_Aliased, as that might
34957         cause a compiler crash.
34958         (Explain_Limited_Type): Refine previous fix to include
34959         inherited components of derived types, to provide complete information.
34960
34961         * exp_ch9.adb (Set_Privals): Set the Ekind of the actual object that
34962         is the prival for a protected object.
34963         It is necessary to mark this entity as a variable, in addition to
34964         flagging it as Aliased, because Sem_Util.Is_Aliased_View has been
34965         modified to avoid checking the Aliased flag on entities that are not
34966         objects. (Checking that flag for non-objects is erroneous and could
34967         lead to a compiler crash).
34968
34969 2004-10-26  Robert Dewar  <dewar@gnat.com>
34970
34971         * s-fatgen.adb (Pred): Fix redundant test for X > 0.0, since if
34972         X_Frac = 0.5, then we know that the number X must be positive.
34973         (Succ): Remove the same redundant test, and also fix the primary test
34974         to test for X_Frac = -0.5 (used to be 0.5) which is clearly wrong.
34975         Minor reformatting
34976         (Decompose): Add fuller comments to spec
34977
34978 2004-10-26  Pascal Obry  <obry@gnat.com>
34979
34980         * tracebak.c (IS_BAD_PTR): Use IsBadCodePtr on Win32 to check for ptr
34981         validity (process must have read access). Set to 0 in all other cases.
34982         (STOP_FRAME): Now check for ptr validity to avoid a segmentation
34983         violation on Win32.
34984         (VALID_STACK_FRAME): Check for ptr validity on Win32 to avoid a
34985         segmentation violation.
34986
34987 2004-10-26  Eric Botcazou  <ebotcazou@act-europe.fr>
34988
34989         * trans.c (call_to_gnu): For an (in-)out parameter passed by reference
34990         whose type is a constructed subtype of an aliased object with an
34991         unconstrained nominal subtype, convert the actual to the constructed
34992         subtype before taking its address.
34993
34994 2004-10-26  Vincent Celier  <celier@gnat.com>
34995
34996         * a-dirval.ads, a-dirval.adb, a-dirval-vms.adb, a-dirval-mingw.adb
34997         (Is_Path_Name_Case_Sensitive): New function
34998
34999         * a-direct.adb (To_Lower_If_Case_Insensitive): New procedure
35000         (Base_Name, Simple_Name, Current_Directory, Compose,
35001         Containing_Directory, Full_Name): Call To_Lower_If_Case_Insensitive on
35002         the result.
35003
35004 2004-10-26  Cyrille Comar    <comar@act-europe.fr>
35005             Vasiliy Fofanov  <fofanov@act-europe.fr>
35006             Vincent Celier   <celier@gnat.com>
35007
35008         * gnat_ugn.texi: Generalize "finding memory problems" section into a
35009         "memory management issues" section and document some of the useful
35010         memory pools provided as part of the GNAT library.
35011         Remove "virtual" from declaration of A::method2 in
35012         the simple example of Ada/C++ mixed system.
35013         Library Projects may be virtually extended: their virtual extensions
35014         are not Library Projects.
35015         Added section on extending project hierarchies.
35016
35017 2004-10-19  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
35018
35019         * adaint.c (__gnat_get_libraries_from_registry): Cast value
35020         to LPBYTE.
35021         (__gnat_portable_spawn): Remove const.
35022
35023         * mingw32.h (MAXPATHLEN): Check for previous definition.
35024
35025 2004-10-17  Matthias Klose  <doko@debian.org>
35026
35027         * gnatvsn.ads: Set gnat library version to 4.0.
35028
35029 2004-10-05  Vincent Celier  <celier@gnat.com>
35030
35031         * mlib-tgt.ads: (Build_Dynamic_Library): New parameter Options_2
35032
35033 2004-10-04  Laurent Guerby  <laurent@guerby.net>
35034
35035         PR ada/15156
35036         * Makefile.in: Define and use RANLIB_FLAGS.
35037
35038 2004-10-04  Pascal Obry  <obry@gnat.com>
35039
35040         * tracebak.c: Always set LOWEST_ADDR to 0 on Win32 (as done on all
35041         other x86 platforms).
35042
35043 2004-10-04  Olivier Hainque  <hainque@act-europe.fr>
35044
35045         * s-tassta.adb (Task_Wrapper): Make it Convention C, which makes sense
35046         in general and triggers stack alignment adjustment for thread entry
35047         points on targets where this is necessary.
35048
35049 2004-10-04  Bernard Banner  <banner@gnat.com>
35050
35051         PR ada/13897
35052         * Makefile.in: Add section for powerpc linux
35053         Add variant i-vxwork-x86.ads
35054
35055         * i-vxwork-x86.ads, system-linux-ppc.ads: New files.
35056
35057 2004-10-04  Olivier Hainque  <hainque@act-europe.fr>
35058
35059         * init.c (__gnat_initialize): Call an Ada subprogram to perform the
35060         table registration calls when need be. Ensures no reference to the crt
35061         ctors symbol are issued in the SJLJ case, which avoids possible
35062         undefined symbol errors in the case of modules to be statically linked
35063         with the kernel.
35064
35065 2004-10-04  Javier Miranda  <miranda@gnat.com>
35066
35067         * sem_ch4.adb (Try_Object_Operation): Reformat the code to expand
35068         in-line the code corresponding to subprogram Analyze_Actuals. In
35069         addition, analyze the actuals only in case of subprogram call.
35070
35071 2004-10-04  Ed Falis  <falis@gnat.com>
35072
35073         * s-vxwork-x86.ads: (FP_CONTEXT): Defined to be correct size
35074
35075 2004-10-04  Sergey Rybin  <rybin@act-europe.fr>
35076
35077         * g-dirope.ads (Base_Name): Clarify the meaning of the Suffix parameter
35078         in the documentation.
35079
35080 2004-10-04  Robert Dewar  <dewar@gnat.com>
35081
35082         * sem_ch5.adb (Unblocked_Exit_Count): Now used for blocks as well as
35083         IF and CASE.
35084         (Analyze_Block_Statement): Add circuitry to detect following dead code
35085         (Check_Unreachable_Code): Handle case of block exit
35086
35087 2004-10-04  Robert Dewar  <dewar@gnat.com>
35088
35089         * g-spipat.adb: (XMatch): Avoid warning for Logic_Error call
35090         (XMatchD): Avoid warning for Logic_Error call
35091
35092 2004-10-04  Robert Dewar  <dewar@gnat.com>
35093
35094         * exp_ch4.adb (Is_Procedure_Actual): Correct so that this does not
35095         consider expressions buried within a procedure actual to be an actual.
35096         This caused some blowups with uses of packed slices within a procedure
35097         actual.
35098
35099 2004-10-04  Robert Dewar  <dewar@gnat.com>
35100
35101         * exp_ch3.adb (Needs_Simple_Initialization): Modular packed arrays no
35102         longer need to be initialized to zero.
35103         (Get_Simple_Init_Val): Modular packed arrays no longer need to be
35104         initialized to zero.
35105
35106         * checks.adb (Expr_Known_Valid): Packed arrays are now always
35107         considered valid, even if the representation is modular. That's correct
35108         now that we no longer initialize packed modular arrays to zero.
35109
35110         * exp_dbug.ads: Clarify documentation on handling of PAD and JM
35111         suffixes. These are now documented as the only cases in which the
35112         debugger ignores outer records.
35113         Previously, the spec allowed arbitrary suffixes for this purpose.
35114         Change name of LJM to JM for packed array pad records
35115         Create separate section on packed array handling, and add a whole new
35116         set of comments to this section describing the situation with packed
35117         modular types and justification requirements depending on endianness.
35118
35119 2004-10-04  Robert Dewar  <dewar@gnat.com>
35120
35121         * a-except.adb: Add a comment for last change
35122
35123         * einfo.ads: Minor spelling correction in comment
35124
35125         * exp_pakd.adb, gnatdll.adb, prj-attr.ads: Minor reformatting
35126
35127         * sem_ch11.adb: Fix a case of using | instead of \ for continuation
35128         messages.
35129
35130         * sem_util.ads: Minor comment update
35131
35132 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
35133
35134         * sem_ch6.adb (Analyze_Subprogram_Body): Do not treat Inline as
35135         Inline_Always when in Configurable_Run_Time mode.
35136
35137         * sem_prag.adb (Process_Convention): If entity is an inherited
35138         subprogram, apply convention to parent subprogram if in same scope.
35139         (Analyze_Pragma, case Inline): Do not treat Inline as Inline_Always
35140         when in Configurable_Run_Time mode.
35141
35142 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
35143
35144         * sem_ch3.adb (Build_Derived_Record_Type): Set First/Last entity of
35145         class_wide type after component list has been inherited.
35146
35147 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
35148
35149         * sem_ch12.adb (Check_Generic_Actuals): New predicate
35150         Denotes_Previous_Actual, to handle properly the case of a private
35151         actual that is also the component type of a subsequent array actual.
35152         The visibility status of the first actual is not affected when the
35153         second is installed.
35154         (Process_Nested_Formal): Subsidiary of Instantiate_Formal_Package, to
35155         make fully recursive the treatment of formals of packages declared
35156         with a box.
35157         (Restore_Nested_Formal): Subsidiary of Restore_Private_Views, to undo
35158         the above on exit from an instantiation.
35159         (Denotes_Formal_Package): When called from Restore_Private_Views, ignore
35160         current instantiation which is now complete.
35161         (Analyze_Package_Instantiation): No instantiated body is needed if the
35162         main unit is generic. Efficient, and avoid anomalies when a instance
35163         appears in a package accessed through rtsfind.
35164
35165 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
35166
35167         * exp_ch6.adb (Expand_N_Function_Call): If stack checking is enabled,
35168         do not generate a declaration for a temporary if the call is part of a
35169         library-level instantiation.
35170
35171 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
35172
35173         * sem_util.adb (Explain_Limited_Type): Ignore internal components when
35174         searching for a limited component to flag.
35175
35176         * exp_attr.adb (Freeze_Stream_Subprogram): Subsidiary procedure to
35177         expansion of Input, to account for the fact that the implicit call
35178         generated by the attribute reference must freeze the user-defined
35179         stream subprogram. This is only relevant to 'Input, because it can
35180         appear in an object declaration, prior to the body of the subprogram.
35181
35182         * sem_ch13.adb (Rep_Item_Too_Late): Make the error non-serious, so that
35183         expansion can proceed and further errors uncovered.
35184         (Minor clean up): Fix cases of using | instead of \ for continuation
35185         messages.
35186
35187 2004-10-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
35188
35189         * cuintp.c, decl.c, utils2.c: Use gcc_assert and gcc_unreachable.
35190
35191         * trans.c (assoc_to_constructor): Fix unused var warning if no checking.
35192         (gnat_gimplify_expr, case ADDR_EXPR): Fix error in last change.
35193         Use gcc_assert and gcc_unreachable.
35194
35195         * decl.c (gnat_to_gnu_entity, case object): Check and process a
35196         specified alignment before validating size.
35197         (gnat_to_gnu_entity) <E_Modular_Integer_Subtype>: Create a
35198         stripped-down declaration for the type of the inner field when making
35199         a JM type.
35200
35201         * utils.c (finish_record_type): Do not compute the size in units
35202         incrementally. Instead compute it once for the rep clause case.
35203         Use gcc_assert and gcc_unreachable.
35204
35205 2004-10-04  Vincent Celier  <celier@gnat.com>
35206
35207         * a-dirval-mingw.adb (Invalid_Character): Add '\' as invalid character
35208         in file name.
35209         (Is_Valid_Path_Name): Take '/' as a directory separator.
35210
35211 2004-10-04  Vincent Celier  <celier@gnat.com>
35212
35213         * prj-part.adb (Parse_Single_Project): Call Is_Extending_All
35214         (Extended_Project) only if Extended_Project is defined, to avoid
35215         assertion error.
35216         (Post_Parse_Context_Clause): Always call Set_Path_Name_Of with a
35217         resolved path.
35218         (Parse_Single_Project): Ditto.
35219
35220         * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Do not call
35221         Add_To_Project_Path for virtual projects.
35222
35223 2004-10-04  Vincent Celier  <celier@gnat.com>
35224
35225         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
35226         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
35227         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb,
35228         mlib-tgt-vxworks.adb, mlib-tgt.adb (Build_Dynamic_Library): New
35229         parameter Options_2.
35230
35231         * mlib-prj.ads, mlib-prj.adb (Build_Library): Call
35232         Build_Dynamic_Library with an empty Options_2.
35233
35234         * mlib-utl.ads, mlib-utl.adb (Gcc): Parameter Options_2 has no
35235         default anymore.
35236
35237         * makegpr.adb (Get_Imported_Directories.add): Remove trailing
35238         directory separator, if any.
35239         (Gprmake): Do not allow mains on the command line for library projects.
35240         Do not attempt to link when the project is a library project.
35241         (Library_Opts): New table to store Library_Options.
35242         (Build_Library): If Library_Options is specified, pass these options
35243         when building a shared library.
35244
35245 2004-10-04  Jose Ruiz  <ruiz@act-europe.fr>
35246
35247         * s-tposen.adb (Service_Entry): The object must be always unlocked at
35248         the end of this procedure now that the unlock operation was inserted
35249         by the expander.
35250
35251 2004-10-04  Jose Ruiz  <ruiz@act-europe.fr>
35252
35253         * targparm.ads, targparm.adb (Targparm_Tags): Add PAS value
35254         corresponding to the Preallocated_Stacks flags in System.
35255         (Get_Target_Parameters): Including the processing for
35256         Preallocated_Stacks.
35257
35258         * system.ads, system-vxworks-x86.ads, system-darwin-ppc.ads,
35259         system-vms_64.ads, system-unixware.ads, system-linux-ia64.ads,
35260         system-freebsd-x86.ads, system-lynxos-ppc.ads, system-lynxos-x86.ads,
35261         system-linux-x86_64.ads, system-tru64.ads, system-aix.ads,
35262         system-vxworks-sparcv9.ads, system-vxworks-xscale.ads,
35263         system-solaris-x86.ads, system-irix-o32.ads, system-irix-n32.ads,
35264         system-hpux.ads, system-vxworks-m68k.ads, system-linux-x86.ads,
35265         system-vxworks-mips.ads, system-os2.ads, system-interix.ads,
35266         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
35267         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
35268         system-vxworks-alpha.ads: Add the flag Preallocated_Stacks, that is
35269         used to signal whether the compiler creates the required stacks and
35270         descriptors for the different tasks (when True) or it is done by the
35271         underlying operating system at run time (when False).
35272         It is initially set to False in all targets.
35273
35274         * exp_ch9.adb (Expand_N_Task_Type_Declaration): Create the task stack
35275         if it is supported by the target.
35276         (Make_Task_Create_Call): Pass the stack address if it has been
35277         previously created. Otherwise pass a Null_Address.
35278
35279         * snames.adb: Add _stack.
35280
35281         * snames.ads: Add Name_uStack. Required to allow the expander to
35282         statically allocated task stacks.
35283
35284         * s-tarest.ads, s-tarest.adb (Create_Restricted_Task): Add
35285         Stack_Address argument.
35286         Check that its value is equal to Null_Address because this target does
35287         not support the static stack allocation.
35288
35289 2004-10-04  Thomas Quinot  <quinot@act-europe.fr>
35290
35291         * usage.adb: Change "pragma inline" to "pragma Inline" in information
35292         and error messages
35293
35294 2004-10-04  Thomas Quinot  <quinot@act-europe.fr>
35295
35296         * exp_dist.adb: Split declaration of asynchronous flag out of
35297         Add_RACW_Read_Attribute.
35298         Minor reformatting for better alignment with PolyORB version.
35299         Store the entity for the asynchronous flag of an RACW, rather than the
35300         expression, in the asynchronous flags table. This will allow this flag
35301         to be used in other subprograms beside Add_RACW_Read_Attribute.
35302
35303 2004-10-04  Thomas Quinot  <quinot@act-europe.fr>
35304
35305         * g-socket.ads, g-socket.adb, g-socthi.adb, socket.c,
35306         g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
35307         g-soccon-interix.ads, g-soccon-solaris.ads, g-soccon-vms.adb,
35308         g-soccon-mingw.ads, g-soccon-vxworks.ads, g-soccon-freebsd.ads,
35309         g-soccon.ads, g-soccon-unixware.ads, g-soccon-tru64.ads:  Add new
35310         sockets constant MSG_NOSIGNAL (Linux-specific).
35311         Add new sockets constant MSG_Forced_Flags, list of flags to be set on
35312         all Send operations.
35313         For Linux, set MSG_NOSIGNAL on all send operations to prevent them
35314         from trigerring SIGPIPE.
35315         Rename components to avoid clash with Ada 2005 possible reserved
35316         word 'interface'.
35317         (Check_Selector): When the select system call returns with an error
35318         condition, propagate Socket_Error to the caller.
35319
35320 2004-10-01  Jan Hubicka  <jh@suse.cz>
35321
35322         * misc.c (gnat_expand_body): Update call of tree_rest_of_compilation.
35323
35324 2004-09-23  Robert Dewar  <dewar@gnat.com>
35325
35326         PR ada/17540
35327         * sem_prag.adb (Process_Import_Or_Interface): Don't set Is_Public here,
35328         instead do this at freeze time (we won't do it if there is an address
35329         clause).
35330         Change "pragma inline" to "pragma Inline" in information and error
35331         messages.
35332         Minor reformatting.
35333
35334         * freeze.adb (Check_Address_Clause): Remove previous change, not the
35335         right way of doing things after all.
35336         (Freeze_Entity): For object, set Is_Public for imported entities
35337         unless there is an address clause present.
35338
35339 2004-09-21  Olivier Hainque  <hainque@act-europe.fr>
35340
35341         * decl.c (gnat_to_gnu_entity) <E_General_Access_Type>: Check for a
35342         dummy designated type via TYPE_MODE instead of COMPLETE_TYPE_P. This
35343         ensures proper handling of types with rep clauses, which might have
35344         their TYPE_SIZE set already.
35345
35346 2004-09-21  Robert Dewar  <dewar@gnat.com>
35347
35348         * decl.c (gnat_to_gnu_type, case E_Modular_Integer_Type): Wrap modular
35349         packed array types in both little- and big-endian cases. This change
35350         ensures that we no longer count on the unused bits being initialized
35351         for such types (and in particular ensures that equality testing will
35352         only read the relevant bits).
35353         Change name TYPE_LEFT_JUSTIFIED_MODULAR_P to TYPE_JUSTIFIED_MODULAR_P
35354         These changes mean that we no longer need to initialize small packed
35355         arrays.
35356         (gnat_to_gnu_entity) <E_Record_Subtype>: Apply the same
35357         optimization to an LJM field as to its parent field.
35358
35359         * ada-tree.h, trans.c, utils.c, utils2.c:
35360         Change name TYPE_LEFT_JUSTIFIED_MODULAR_P to TYPE_JUSTIFIED_MODULAR_P
35361
35362 2004-09-20  Jan Hubicka  <jh@suse.cz>
35363
35364         * utils.c (gnat_finalize): Remove.
35365         (end_subprog_body): Directly call cgraph_finalize_function;
35366         do not lower the nested functions.
35367
35368 2004-09-20  Robert Dewar  <dewar@gnat.com>
35369
35370         PR ada/17540
35371         * freeze.adb (Check_Address_Clause): Reset Is_Imported and Is_Public
35372         if an address clause is present, since that means that the Import
35373         should be ignored.
35374
35375 2004-09-20  Arnaud Charlet  <charlet@act-europe.fr>
35376
35377         * 5tsystem.ads: Removed, no longer used.
35378
35379 2004-09-17  Jeffrey D. Oldham  <oldham@codesourcery.com>
35380             Zack Weinberg  <zack@codesourcery.com>
35381
35382         * ada-tree.def: Use tree_code_class enumeration constants
35383         instead of code letters.
35384         * ada-tree.h, decl.c, misc.c, trans.c, utils.c, utils2.c:
35385         Update for new tree-class enumeration constants.
35386
35387 2004-09-17  Vincent Celier  <celier@gnat.com>
35388
35389         * prj-attr-pm.ads, prj-attr-pm.adb: New files, to split some private
35390         capabilities of the general project manager.
35391
35392 2004-09-09  Vincent Celier  <celier@gnat.com>
35393
35394         * a-direct.ads: Add pragma Ada_05
35395         (Directory_Entry_Type): Give default value to component Kind to avoid
35396         not initialized warnings.
35397
35398         * a-direct.adb (Current_Directory): Remove directory separator at the
35399         end.
35400         (Delete_Directory, Delete_Tree): Raise Name_Error if Directory is not
35401         an existing directory.
35402         (Fetch_Next_Entry): Give default value to variable Kind to avoid warning
35403         (Size (String)): Function C_Size returns Long_Integer, not File_Size.
35404         Convert the result to File_Size.
35405
35406         * prj.ads: (Project_Error): New exception
35407
35408         * prj-attr.adb: Except in procedure Initialize, Fail comes from
35409         Prj.Com, not from Osint.
35410         (Attrs, Package_Attributes): Tables moved to private part of spec
35411         (Add_Attribute, Add_Unknown_Package): Moved to new child package
35412         Prj.Attr.PM.
35413         (Register_New_Package (Name, Attributes), Register_New_Attribute): Raise
35414         Prj.Project_Error after call to Fail.
35415         (Register_New_Package (Name, Id)): Set Id to Empty_Package after calling
35416         Fail. Check that package name is not already in use.
35417
35418         * prj-attr.ads: Comment updates to indicate that all subprograms may be
35419         used by tools, not only by the project manager, and to indicate that
35420         exception Prj.Prj_Error may be raised in case of problem.
35421         (Add_Unknown_Package, Add_Attribute): Moved to new child package
35422         Prj.Attr.PM.
35423         (Attrs, Package_Attributes): Table instantiations moved from the body to
35424         the private part to be accessible from Prj.Attr.PM body.
35425
35426         * prj-dect.adb (Parse_Package_Declaration): Call Add_Unknown_Package
35427         from new package Prj.Attr.PM.
35428         (Parse_Attribute_Declaration): Call Add_Attribute from new package
35429         Prj.Attr.PM.
35430
35431         * Makefile.in: Add prj-attr-pm.o to gnatmake object list
35432
35433         * gnatbind.adb (Gnatbind): Correct warning message (Elaboration_Check
35434         instead of Elaboration_Checks).
35435
35436         * a-calend.adb: Minor reformatting
35437
35438 2004-09-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
35439
35440         * gigi.h (maybe_pad_type): New declaration.
35441         (create_subprog_type): New arg RETURNS_BY_TARGET_PTR.
35442
35443         * ada-tree.h: (TYPE_RETURNS_BY_TARGET_PTR_P): New macro.
35444
35445         * cuintp.c: Convert to use buildN.
35446
35447         * decl.c (maybe_pad_type): No longer static.
35448         (gnat_to_gnu_entity, case E_Function): Handle case of returning by
35449         target pointer.
35450         Convert to use buildN.
35451
35452         * trans.c (call_to_gnu): Add arg GNU_TARGET; support
35453         TYPE_RETURNS_BY_TARGET_PTR_P.  All callers changed.
35454         (gnat_to_gnu, case N_Assignment_Statement): Call call_to_gnu if call on
35455         RHS.
35456         (gnat_to_gnu, case N_Return): Handle TYPE_RETURN_BY_TARGET_PTR_P.
35457         (gnat_gimplify_expr, case ADDR_EXPR): New case.
35458         Convert to use buildN.
35459
35460         * utils2.c (gnat_build_constructor): Also set TREE_INVARIANT and
35461         TREE_READONLY for const.
35462         Convert to use buildN.
35463
35464         * utils.c (create_subprog_type): New operand RETURNS_BY_TARGET_PTR.
35465         (create_var_decl): Refine when TREE_STATIC is set.
35466         Convert to use buildN.
35467
35468 2004-09-09  Gary Dismukes  <dismukes@gnat.com>
35469
35470         * gnat_ugn.texi: Delete text relating to checking of ali and object
35471         consistency.
35472
35473         * a-except.adb (Rcheck_*): Add pragmas No_Return for each of these
35474         routines.
35475
35476 2004-09-09  Jose Ruiz  <ruiz@act-europe.fr>
35477
35478         * gnat_ugn.texi: Add Detect_Blocking to the list of configuration
35479         pragmas recognized by GNAT.
35480
35481         * gnat_rm.texi: Document pragma Detect_Blocking.
35482
35483         * s-solita.adb (Timed_Delay_T): When pragma Detect_Blocking is active,
35484         raise Program_Error if called from a protected operation.
35485
35486         * s-taprob.adb (Lock): When pragma Detect_Blocking is active increase
35487         the protected action nesting level.
35488         (Lock_Read_Only): When pragma Detect_Blocking is active increase the
35489         protected action nesting level.
35490         (Unlock): When pragma Detect_Blocking is active decrease the protected
35491         action nesting level.
35492
35493         * s-taskin.adb (Initialize_ATCB): Initialize to 0 the
35494         Protected_Action_Nesting.
35495
35496         * s-taskin.ads: Adding the field Protected_Action_Nesting to the
35497         Common_ATCB record. It contains the dynamic level of protected action
35498         nesting for each task. It is needed for checking whether potentially
35499         blocking operations are called from protected operations.
35500         (Detect_Blocking): Adding a Boolean constant reflecting whether pragma
35501         Detect_Blocking is active or not in the partition.
35502
35503         * s-tasren.adb (Call_Simple): When pragma Detect_Blocking is active,
35504         raise Program_Error if called from a protected operation.
35505         (Task_Entry_Call): When pragma Detect_Blocking is active, raise
35506         Program_Error if called from a protected operation.
35507         (Timed_Task_Entry_Call): When pragma Detect_Blocking is active, raise
35508         Program_Error if called from a protected operation.
35509
35510         * s-tassta.adb (Abort_Tasks): When pragma Detect_Blocking is active,
35511         raise Program_Error if called from a protected operation.
35512
35513         * s-tpoben.adb (Lock_Entries): When pragma Detect_Blocking is active,
35514         raise Program_Error if called from a protected operation, and increase
35515         the protected action nesting level.
35516         (Lock_Read_Only_Entries): When pragma Detect_Blocking is active, raise
35517         Program_Error if called from a protected operation, and increase the
35518         protected action nesting level.
35519         (Unlock_Entries): When pragma Detect_Blocking is active decrease the
35520         protected action nesting level.
35521
35522         * s-tposen.adb (Lock_Entry): When pragma Detect_Blocking is active,
35523         raise Program_Error if called from a protected operation, and increase
35524         the protected action nesting level.
35525         (Lock_Read_Only_Entry): When pragma Detect_Blocking is active, raise
35526         Program_Error if called from a protected operation, and increase the
35527         protected action nesting level.
35528         (Protected_Single_Entry_Call): When pragma Detect_Blocking is active,
35529         raise Program_Error if called from a protected operation.
35530         (Timed_Protected_Single_Entry_Call): When pragma Detect_Blocking is
35531         active, raise Program_Error if called from a protected operation.
35532         (Unlock_Entry): When pragma Detect_Blocking is active decrease the
35533         protected action nesting level.
35534
35535         * sem_util.adb (Check_Potentially_Blocking_Operation): Remove the
35536         insertion of the statement raising Program_Error. The run time
35537         contains the required machinery for handling that.
35538
35539         * sem_util.ads: Change comment associated to procedure
35540         Check_Potentially_Blocking_Operation.
35541         This procedure does not insert a call for raising the exception because
35542         that is currently done by the run time.
35543
35544         * raise.h (__gnat_set_globals): Pass the detect_blocking parameter.
35545
35546         * init.c: Add the global variable __gl_detect_blocking that indicates
35547         whether pragma Detect_Blocking is active (1) or not (0). Needed for
35548         making the pragma available at run time.
35549         (__gnat_set_globals): Pass and update the detect_blocking parameter.
35550
35551         * lib-writ.adb (Write_ALI): Set the DB flag in the ali file if
35552         pragma Detect_Blocking is active.
35553
35554         * lib-writ.ads: Document the Detect_Blocking flag (DB) in ali files.
35555
35556         * ali.adb (Scan_ALI): Set the Detect_Blocking value to true if the flag
35557         DB is found in the ali file. Any unit compiled with pragma
35558         Detect_Blocking active forces its effect in the whole partition.
35559
35560         * a-retide.adb (Delay_Until): Raise Program_Error if pragma
35561         Detect_Blocking is active and delay is called from a protected
35562         operation.
35563
35564         * bindgen.adb (Gen_Adainit_Ada): When generating the call to
35565         __gnat_set_globals, pass 1 as Detect_Blocking parameter if pragma
35566         Detect_Blocking is active (0 otherwise).
35567         (Gen_Adainit_C): When generating the call to __gnat_set_globals, pass 1
35568         as Detect_Blocking parameter if pragma Detect_Blocking is active (0
35569         otherwise).
35570
35571 2004-09-09  Thomas Quinot  <quinot@act-europe.fr>
35572
35573         * gnat_rm.texi: Rename GNAT.Perfect_Hash.Generators to
35574         GNAT.Perfect_Hash_Generators, and remove the empty GNAT.Perfect_Hash
35575         package.
35576
35577         * s-parint.ads, s-parint.adb (Get_RAS_Info): New subprogram.
35578         (Register_Receiving_Stub): Add Subp_Info formal parameter.
35579         Update API in placeholder implemetation of s-parint to reflect changes
35580         in distribution runtime library.
35581
35582         * sem_ch3.adb (Expand_Derived_Record): Rename to
35583         Expand_Record_Extension.
35584
35585         * sem_disp.adb (Check_Controlling_Formals): Improve error message for
35586         primitive operations of potentially distributed object types that have
35587         non-controlling anonymous access formals.
35588
35589         * sem_dist.ads, sem_dist.adb (Build_RAS_Primitive_Specification): New
35590         subprogram.
35591         New implementation of expansion for remote access-to-subprogram types,
35592         based on the RACW infrastructure.
35593         This version of sem_dist is compatible with PolyORB/DSA as well as
35594         GLADE.
35595
35596         * sem_prag.adb (Analyze_Pragma, case Pragma_Asynchronous): For a pragma
35597         Asynchrronous that applies to a remote access-to-subprogram type, mark
35598         the underlying RACW type as asynchronous.
35599
35600         * link.c: FreeBSD uses GNU ld: set __gnat_objlist_file_supported and
35601          __gnat_using_gnu_linker to 1.
35602
35603         * Makefile.rtl, impunit.adb, g-perhas.ads, g-pehage.ads,
35604         g-pehage.adb: Rename GNAT.Perfect_Hash.Generators to
35605         GNAT.Perfect_Hash_Generators, and remove the empty
35606         GNAT.Perfect_Hash package.
35607
35608         * atree.adb: Minor reformatting
35609
35610         * exp_ch3.adb (Expand_Derived_Record): Rename to
35611         Expand_Record_Extension.
35612         (Build_Record_Init_Proc.Build_Assignment): The default expression in
35613         a component declaration must remain attached at that point in the
35614         tree so New_Copy_Tree copies it if the enclosing record type is derived.
35615         It is therefore necessary to take a copy of the expression when building
35616         the corresponding assignment statement in the init proc.
35617         As a side effect, in the case of a derived record type, we now see the
35618         original expression, without any rewriting that could have occurred
35619         during expansion of the ancestor type's init proc, and we do not need
35620         to go back to Original_Node.
35621
35622         * exp_ch3.ads (Expand_Derived_Record): Rename to
35623         Expand_Record_Extension.
35624
35625         * exp_dist.ads, exp_dist.adb (Underlying_RACW_Type): New subprogram.
35626         Returns the RACW type used to implement a remote access-to-subprogram
35627         type.
35628         (Add_RAS_Proxy_And_Analyze, Build_Remote_Subprogram_Proxy_Type):
35629         New subprograms. Used to create a proxy tagged object for a remote
35630         subprogram. The proxy object is used as the designated object
35631         for RAS values on the same partition (unless All_Calls_Remote applies).
35632         (Build_Get_Unique_RP_Call): New subprogram. Build a call to
35633         System.Partition_Interface.Get_Unique_Remote_Pointer.
35634         (Add_RAS_Access_TSS, Add_RAS_Dereference_TSS):
35635         Renamed from Add_RAS_*_Attribute.
35636         (Add_Receiving_Stubs_To_Declarations): Generate a table of local
35637         subprograms.
35638         New implementation of expansion for remote access-to-subprogram types,
35639         based on the RACW infrastructure.
35640
35641         * exp_dist.ads (Copy_Specification): Update comment to note that this
35642         function can copy the specification from either a subprogram
35643         specification or an access-to-subprogram type definition.
35644
35645 2004-09-09  Ed Schonberg  <schonberg@gnat.com>
35646
35647         * sem_type.adb (Disambiguate): Handle properly an accidental ambiguity
35648         in an instance, between an explicit subprogram an one inherited from a
35649         type derived from an actual.
35650
35651         * exp_ch6.adb (Expand_N_Subprogram_Body): If polling is enabled, do not
35652         add a polling call if the subprogram is to be inlined by the back-end,
35653         to avoid repeated calls with multiple inlinings.
35654
35655         * checks.adb (Apply_Alignment_Check): If the expression in the address
35656         clause is a call whose name is not a static entity (e.g. a dispatching
35657         call), treat as dynamic.
35658
35659 2004-09-09  Robert Dewar  <dewar@gnat.com>
35660
35661         * g-trasym.ads: Minor reformatting
35662
35663         * exp_ch3.adb (Component_Needs_Simple_Initialization): Don't except
35664         packed arrays, since unused bits are expected to be zero for a
35665         comparison.
35666
35667 2004-09-09  Eric Botcazou  <ebotcazou@act-europe.fr>
35668
35669         * exp_pakd.ads: Fix an inacurracy and a couple of typos in the head
35670         comment.
35671
35672 2004-09-09  Pascal Obry  <obry@gnat.com>
35673
35674         * mdll.ads, mdll.adb (Build_Dynamic_Library): New parameter Map_File to
35675         enable map file generation. Add the right option to generate the map
35676         file if Map_File is set to True.
35677
35678         * gnatdll.adb (Gen_Map_File): New variable.
35679         (Syntax): Add info about new -m (Map_File) option.
35680         (Parse_Command_Line): Add support for -m option.
35681         (gnatdll): Pass Gen_Map_File to Build_Dynamic_Library calls.
35682         Minor reformatting.
35683
35684 2004-09-09  Laurent Pautet  <pautet@act-europe.fr>
35685
35686         * gnatls.adb: Add a very verbose mode -V. Such mode is required by the
35687         new gnatdist implementation.
35688         Define a subpackage isolating the output routines specific to this
35689         verbose mode.
35690
35691 2004-09-09  Joel Brobecker  <brobecker@gnat.com>
35692
35693         * Makefile.rtl: (GNATRTL_NONTASKING_OBJS): Add g-dynhta.
35694
35695         * gnat_ugn.texi (Main Subprograms): Fix typo. Deduced, not deducted.
35696
35697 2004-09-09  Cyrille Comar  <comar@act-europe.fr>
35698
35699         * opt.adb (Set_Opt_Config_Switches): Use Ada_Version_Runtime to compile
35700         internal unit.
35701
35702         * opt.ads: Add Ada_Version_Runtime constant used to decide which
35703         version of the language is used to compile the run time.
35704
35705 2004-09-09  Arnaud Charlet  <charlet@act-europe.fr>
35706
35707         * sem_util.adb (Requires_Transient_Scope): Re-enable handling
35708         of variable length temporaries for function return now that the
35709         back-end and gigi support it.
35710
35711 2004-09-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
35712
35713         * misc.c (gnat_print_type): Use TYPE_RM_SIZE_NUM.
35714
35715         * trans.c (struct stmt_group): Delete field GLOBAL.
35716         (gnat_init_stmt_group): Do not initialize it.
35717         (call_to_gnu): Use save_expr, not protect_multiple_eval.
35718         (Exception_Handler_to_gnu_sjlj): Call build_int_cst, not build_int_2
35719         (gnat_to_gnu, case N_Character_Literal, N_String_Literal): Likewise.
35720         (gnat_to_gnu, case N_Compilation_Unit): Do not set GLOBAL in stmt group.
35721         (start_stmt_group): Likewise.
35722         (add_stmt, add_decl_expr): Rework handling of global DECL_EXPRs.
35723
35724         * utils2.c (ggc.h): Include.
35725         (build_call_raise): Call build_int_cst, not build_int_2.
35726
35727         * utils.c (gnat_init_decl_processing): Fix arg to
35728         build_common_tree_nodes.
35729         (create_subprog_type): Do not use SET_TYPE_CI_CO_LIST.
35730         (gnat_define_builtin): Set built_in_decls.
35731         (init_gigi_decls): Call build_int_cst, not build_int_2.
35732
35733         * ada-tree.h (struct lang_decl, struct lang_type): Field is type tree.
35734         (GET_TYPE_LANG_SPECIFIC, SET_TYPE_LANG_SPECIFIC): New macros.
35735         (GET_DECL_LANG_SPECIFIC, SET_DECL_LANG_SPECIFIC): Likewise.
35736         (TYPE_CI_CO_LIST, SET_TYPE_CI_CO_LIST, TYPE_MODULE,
35737         SET_TYPE_MODULE): Use them.
35738         (TYPE_INDEX_TYPE, SET_TYPE_INDEX_TYPE, TYPE_DIGITS_VALUE): Likewise.
35739         (SET_TYPE_DIGITS_VALUE, TYPE_UNCONSTRAINED_ARRAY): Likewise.
35740         (SET_TYPE_UNCONSTRAINED_ARRAY, TYPE_ADA_SIZE,
35741         SET_TYPE_ADA_SIZE): Likewise.
35742         (TYPE_ACTUAL_BOUNDS, SET_TYPE_ACTUAL_BOUNDS): Likewise.
35743         (DECL_CONST_CORRESPONDING_VAR,
35744         SET_DECL_CONST_CORRESPONDING_VAR): Likewise.
35745         (DECL_ORIGINAL_FIELD, SET_DECL_ORIGINAL_FIELD): Likewise.
35746         (TYPE_RM_SIZE_INT, TYPE_RM_SIZE_ENUM, SET_TYPE_RM_SIZE_ENUM): Deleted.
35747         (TYPE_RM_SIZE_NUM): New macro.
35748         (TYPE_RM_SIZE): Modified to use above.
35749
35750         * cuintp.c: (build_cst_from_int): New function.
35751         (UI_To_gnu): Use it.
35752
35753         * decl.c (gnat_to_gnu_entity): Use TYPE_RM_SIZE_NUM.
35754         (make_type_from_size): Avoid changing TYPE_UNSIGNED of a type.
35755         (gnat_substitute_in_type, case ARRAY_TYPE): If old had a
35756         MIN_EXPR for the size, copy it into new.
35757
35758 2004-09-01  Robert Dewar  <dewar@gnat.com>
35759
35760         * exp_ch6.adb (Expand_Call): Properly handle validity checks for
35761         packed indexed component where array is an IN OUT formal. This
35762         generated garbage code previously.
35763
35764         * gnat_ugn.texi: Document -fverbose-asm
35765
35766         * gnat-style.texi: Minor updates (note that boolean constants and
35767         variables are joined with AND/OR rather than short circuit forms).
35768
35769 2004-09-01  Ed Schonberg  <schonberg@gnat.com>
35770
35771         * exp_util.adb (Safe_Unchecked_Type_Conversion): Conversion is safe if
35772         it is an upward conversion of an untagged type with no representation
35773         change.
35774
35775 2004-09-01  Thomas Quinot  <quinot@act-europe.fr>
35776
35777         * rtsfind.ads: Move RCI_Subp_Info and RCI_Subp_Info_Array to
35778         System.Partition_Interface.
35779
35780         * checks.adb (Apply_Access_Checks): Do not generate checks when
35781         expander is not active (but check for unset reference to prefix of
35782         dereference).
35783
35784         * sem_prag.adb (Analyze_Pragma, case Pragma_Debug): Uniformly rewrite
35785         pragma Debug as an if statement with a constant condition, for
35786         consistent treatment of entity references contained within the
35787         enclosed procedure call.
35788
35789 2004-09-01  Vincent Celier  <celier@gnat.com>
35790
35791         * bindgen.adb: (Set_EA_Last): New procedure
35792         (Gen_Exception_Table_Ada, Gen_Exception_Table_C): Use new procedure
35793         Set_EA_Last.
35794         (Gen_Adafinal_Ada): If no finalization, adafinal does nothing
35795         (Gen_Output_File_Ada): Always call Gen_Adafinal_Ada, so that SAL can be
35796         linked without errors.
35797         (Gen_Exception_Table_Ada): Correct bugs when generating code for arrays
35798         ST and EA.
35799         (Gen_Exception_Table_C): Correct same bugs
35800
35801         * vms_data.ads: Add new qualifier /VERBOSE_ASM to GCC_Switches
35802
35803         * g-os_lib.adb (Normalize_Pathname.Get_Directory): When Dir is empty,
35804         on Windows, make sure that the drive letter is in upper case.
35805
35806         * g-os_lib.ads (Normalize_Pathname): Add a comment to indicate that on
35807         Windows, when the drive letter is added and Case_Sensitive is True, the
35808         drive letter is forced to upper case.
35809
35810         * mlib-tgt-irix.adb (Build_Dynamic_Library): Transfer all -lxxx options
35811         to Options_2 for the call to MLib.Utl.Gcc.
35812
35813         * bld.adb (Put_Include_Project): Use '/', not '\' on Windows as
35814         directory separator when defining BASE_DIR.
35815
35816 2004-09-01  Pascal Obry  <obry@gnat.com>
35817
35818         * gprcmd.adb (Extend): Do not output trailing directory separator. This
35819         is not needed and it confuses Windows GNU/make which does not report
35820         directory terminated by a slash as a directory.
35821         (gprcmd): Idem for "pwd" internal command.
35822
35823         * Makefile.generic: Use __GPRCOLON__ instead of pipe character in
35824         target names rewrite to fix regressions with recent version of
35825         GNU/make. Starting with GNU/make 3.80 the pipe character was not
35826         handled properly anymore.
35827
35828 2004-09-01  Andreas Schwab  <schwab@suse.de>
35829
35830         * Make-lang.in (EXTRA_GNATBIND_OBJS): Revert last change.
35831         * raise.c [!IN_RTS]: Undef abort.
35832
35833 2004-08-27  Nathan Sidwell  <nathan@codesourcery.com>
35834
35835         * utils2.c (build_allocator): Use ssize_int.
35836
35837         * utils.c (gnat_init_decl_processing): Ada has a signed sizetype.
35838
35839 2004-08-27  Andreas Schwab  <schwab@suse.de>
35840
35841         * Make-lang.in (EXTRA_GNATBIND_OBJS): Add errors.o.
35842
35843 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
35844             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
35845
35846         * ada-tree.h (TYPE_RM_SIZE_INT): Use TYPE_LANG_SLOT_1.
35847
35848 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
35849
35850         * cuintp.c (UI_To_gnu): Adjust build_int_cst calls.
35851         * trans.c (Exception_Handler_to_gnu_sjlj, gnat_to_gnu): Likewise.
35852         * utils.c (init_gigi_decls): Likewise.
35853         * utils2.c (build_call_raise, build_allocator): Likewise.
35854
35855 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
35856
35857         * utils.c (gnat_init_decl_processing): Adjust
35858         build_common_tree_nodes call.
35859
35860 2004-08-20  Nathan Sidwell  <nathan@codesourcery.com>
35861
35862         * utils2.c (build_allocator): Use build_int_cst for negative
35863         size types.
35864
35865 2004-08-18  Richard Henderson  <rth@redhat.com>
35866
35867         * misc.c (LANG_HOOKS_HONOR_READONLY): Remove.
35868
35869 2004-08-16  Nathan Sidwell  <nathan@codesourcery.com>
35870
35871         * cuintp.c (UI_To_gnu): Be more conservative with build_int_cst
35872         call.s
35873         * trans.c (Exception_Handler_to_gnu_sjlj): Likewise.
35874         (gnat_to_gnu): Likewise.
35875
35876 2004-08-16  Pascal Obry  <obry@gnat.com>
35877
35878         * adaint.c (__gnat_prj_add_obj_files): Set to 0 only on Win32 for GCC
35879         backend prior to GCC 3.4. With GCC 3.4 we are using the GCC's shared
35880         option and not mdll anymore. Update comment.
35881
35882 2004-08-16  Pascal Obry  <obry@gnat.com>
35883
35884         * bld.adb (Put_Include_Project): Properly handle directory separators
35885         on Windows.
35886
35887 2004-08-16  Ed Schonberg  <schonberg@gnat.com>
35888
35889         * sem_ch4.adb (Try_Object_Operation): Restructure code. Optimize by
35890         decreasing the number of allocated junk nodes while searching for the
35891         appropriate subprogram.
35892
35893 2004-08-15  Nathan Sidwell  <nathan@codesourcery.com>
35894
35895         * cuintp.c (UI_To_gnu): Use build_int_cst..
35896         * trans.c (Exception_Handler_to_gnu_sjlj, gnat_to_gnu): Likewise.
35897         * utils.c (init_gigi_decls): Likewise.
35898         * utils2.c (build_call_raise): Likewise.
35899
35900 2004-08-13  Olivier Hainque  <hainque@act-europe.fr>
35901
35902         * decl.c (gnat_to_gnu_entity) <E_Variable>: When building an allocator
35903         for a global aliased object with a variable size and an unconstrained
35904         nominal subtype, pretend there is no initializer if the one we have is
35905         incomplete, and avoid referencing an inexistant component in there. The
35906         part we have will be rebuilt anyway and the reference may confuse
35907         further operations.
35908
35909 2004-08-13  Thomas Quinot  <quinot@act-europe.fr>
35910
35911         * einfo.ads: Minor reformatting
35912
35913         * lib-writ.adb (Output_Main_Program_Line): Do not set parameter
35914         restrictions in the ALI if we only want to warn about violations.
35915
35916 2004-08-13  Vincent Celier  <celier@gnat.com>
35917
35918         * ali.adb (Scan_ALI): Initialize component Body_Needed_For_SAL to False
35919         when creating a new Unit_Record in table Units.
35920
35921         * gnatls.adb (Output_Unit): In verbose mode, output the restrictions
35922         that are violated, if any.
35923
35924         * prj-nmsc.adb (Ada_Check.Get_Path_Names_And_Record_Sources): Do not
35925         add directory separator if path already ends with a directory separator.
35926
35927 2004-08-13  Ed Schonberg  <schonberg@gnat.com>
35928
35929         * rtsfind.adb (Entity_Not_Defined): If the error ocurrs in a predefined
35930         unit, this is an attempt to inline a construct that is not available in
35931         the current restricted mode, so abort rather than trying to continue.
35932
35933         * sem_ch3.adb (Build_Underlying_Full_View): If the new type has
35934         discriminants that rename those of the parent, recover names of
35935         original discriminants for the constraint on the full view of the
35936         parent.
35937         (Complete_Private_Subtype): Do not create a subtype declaration if the
35938         subtype is an itype.
35939
35940         * gnat_rm.texi: Added section on implementation of discriminated
35941         records with default values for discriminants.
35942
35943 2004-08-13  Ed Schonberg  <schonberg@gnat.com>
35944
35945         PR ada/15601
35946         * sem_res.adb (Make_Call_Into_Operator): Handle properly the case where
35947         the second operand is overloaded.
35948
35949 2004-08-10  Richard Henderson  <rth@redhat.com>
35950
35951         * utils.c (gnat_install_builtins): Remove __builtin_stack_alloc,
35952         add __builtin_alloca.
35953
35954 2004-08-10  Richard Henderson  <rth@redhat.com>
35955
35956         * config-lang.in (boot_language): Yes.
35957
35958 2004-08-09  Thomas Quinot  <quinot@act-europe.fr>
35959
35960         * g-socket.adb (Abort_Selector): Initialize Buf to prevent valgrind
35961         from complaining on potential uninitialized reference.
35962         Change calls to GNAT.Sockets.Thin.Is_Socket_In_Set to account for
35963         new specification and test explicitly for non-zero return value.
35964
35965         * g-socthi.ads (Is_Socket_In_Set): Declare imported function as
35966         returning C.int, to avoid using a derived boolean type.
35967
35968         * exp_ch5.adb (Make_Tag_Ctrl_Assignments): Use
35969         Duplicate_Subexpr_No_Checks in preference to direct use of
35970         Remove_Side_Effects and New_Copy_Tree.
35971         Clear Comes_From_Source on prefix of 'Size attribute reference.
35972
35973         * g-socthi.adb, g-socthi-vms.adb, g-socthi-mingw.adb,
35974         g-socthi-vxworks.adb: Change calls to
35975         GNAT.Sockets.Thin.Is_Socket_In_Set to account for new specification
35976         and test explicitly for non-zero return value.
35977
35978         * g-socthi-vms.ads, g-socthi-mingw.ads, g-socthi-vxworks.ads:
35979         (Is_Socket_In_Set): Declare imported function as returning C.int, to
35980         avoid using a derived boolean type.
35981
35982 2004-08-09  Albert Lee  <lee@gnat.com>
35983
35984         * system-irix-n32.ads: Refine tasking priority constants for IRIX.
35985
35986 2004-08-09  Pascal Obry  <obry@gnat.com>
35987
35988         * gnat_ugn.texi: Document new way to build DLLs on Windows using
35989         GCC's -shared option.
35990
35991         * mlib-tgt-mingw.adb (Build_Dynamic_Library): Pass GCC's options into
35992         Options_2 parameter (options put after object files).
35993
35994 2004-08-09  Olivier Hainque  <hainque@act-europe.fr>
35995
35996         * decl.c (gnat_to_gnu_entity) <E_Array_Subtype>: Adjust condition to
35997         ignore overflows on low and high bounds of an index to also account for
35998         differences in signedness between sizetype and gnu_index_subtype.
35999         These are as legitimate as the ones caused by a lower TYPE_PRECISION
36000         on sizetype.
36001
36002 2004-08-09  Robert Dewar  <dewar@gnat.com>
36003
36004         * s-solita.ads, s-solita.adb: Minor reformatting
36005
36006         * gnat_rm.texi: Add documentation for pragma Profile (Restricted)
36007         Move pragma Restricted_Run_Time, No_Run_Time, Ravenscar to new
36008         obsolescent section
36009         Add note that No_Implicit_Conditionals does not suppress
36010         run time constraint checks.
36011
36012         * vms_conv.ads: Minor reformatting
36013
36014         * s-secsta.adb: Use SS_Ptr instead of Mark_Id as stack pointer (cleanup
36015         and necessary for following change).
36016         (Mark): Return new format Mark_Id containing sec stack address
36017         (Release): Use sec stack address from Mark_Id avoiding Self call
36018
36019         * s-secsta.ads: Define SS_Ptr to be used instead of Mark_Id as stack
36020         pointer (cleanup and necessary for following change).
36021         Define Mark_Id as record containing address of secondary stack, that way
36022         Release does not need to find the stack again, decreasing the number of
36023         calls to Self and improving efficiency.
36024
36025         * sem_util.ads: Add a ??? comment for Is_Local_Variable_Reference
36026
36027         * sem_ch5.adb (Analyze_Case_Statement): Add circuitry to track value of
36028         case variable into the individual case branches when possible.
36029
36030         * sem_ch11.adb: Minor reformatting
36031
36032         * prj.ads: Correct spelling of suffixs
36033
36034         * prj-nmsc.adb: Minor reformatting
36035         Correct spelling suffixs throughout (also in identifiers)
36036
36037         * freeze.adb: Minor spelling correction
36038
36039         * exp_ch2.adb: Cleanups to handling of Current_Value
36040         (no functional effect).
36041
36042         * bld.adb: Correct spelling of suffixs
36043
36044         * einfo.adb (Enclosing_Dynamic_Scope): Defend against junk argument
36045
36046 2004-08-09  Ed Schonberg  <schonberg@gnat.com>
36047
36048         PR ada/15408
36049         * sem_ch7.adb (Install_Private_Declarations): In the body of the
36050         package or of a child, private entities are both immediately_visible
36051         and not hidden.
36052
36053 2004-08-09  Ed Schonberg  <schonberg@gnat.com>
36054
36055         * sem_eval.adb (Eval_Integer_Literal): If the context is Any_Integer,
36056         there are no range checks on the value of the literal.
36057
36058         * exp_ch7.adb (Insert_Actions_In_Scope_Around): If the node being
36059         wrapped is the triggering alternative of an asynchronous select, action
36060         statements mustbe inserted before the select itself.
36061
36062         * sem_attr.adb (Analyze_Attribute, case 'Size): Handle properly the
36063         case where the prefix is a protected function call.
36064         (Resolve_Attribute, case 'Access): The attribute reference on a
36065         subprogram is legal in a generic body if the subprogram is declared
36066         elsewhere.
36067
36068 2004-08-09  Vincent Celier  <celier@gnat.com>
36069
36070         * makegpr.adb (Build_Library): Link with g++ if C++ is one of the
36071         languages, otherwise building the library may fail with unresolved
36072         symbols.
36073         (Compile_Sources): Do not build libraries if -c switch is used
36074
36075         * gnatlink.adb (Process_Args): New switches -M and -Mmap
36076         (Write_Usage): If map file creation is supported, output new switches
36077         -M and -Mmap.
36078         (Gnatlink): When -M is specified, add the necessary switch(es) to the
36079         gcc call, when supported.
36080
36081         * Makefile.in: Added indepsw.o to the object list for gnatlink
36082         Specified the AIX, GNU/Linux and Windows versions of indepsw.adb
36083
36084         * indepsw-aix.adb, indepsw-linux.adb, indepsw-mingw.adb,
36085         indepsw.adb, indepsw.ads: New files.
36086
36087 2004-08-09  Bernard Banner  <banner@gnat.com>
36088
36089         * system-vxworks-x86.ads, s-vxwork-x86.ads: New files.
36090
36091         * Makefile.in: add section for vxworks x86
36092
36093 2004-08-09  Hristian Kirtchev  <kirtchev@gnat.com>
36094
36095         * exp_ch3.adb (Build_Init_Statements): Add extra condition to deal with
36096         per-object constrained components where the discriminant is of an
36097         Access type.
36098         (Build_Record_Init_Proc): Add condition to prevent the inheritance of
36099         the parent initialization procedure for derived Unchecked_Unions.
36100         Instead, derived Unchecked_Unions build their own initialization
36101         procedure.
36102         (Build_Variant_Record_Equality): Implement Unchecked_Union equality.
36103         Check the body of the subprogram for details.
36104         (Freeze_Record_Type): Prevent the inheritance of discriminant checking
36105         functions for derived Unchecked_Union types by introducing a condition.
36106         Allow the creation of TSS equality functions for Unchecked_Unions.
36107         (Make_Eq_Case): Rename formal parameter Node to E in function signature.
36108         Add formal parameter Discr to function signature. Discr is used to
36109         control the generated case statement for Unchecked_Union types.
36110         (Make_Eq_If): Rename formal parameter Node to E in function signature.
36111
36112         * exp_ch4.adb (Build_Equality_Call): Implement equality calls for
36113         Unchecked_Unions.
36114         Check the body of the subprogram for details.
36115         (Expand_Composite_Equality): Augment composite type equality to include
36116         correct handling of Unchecked_Union components.
36117         (Expand_N_In): Add condition to detect illegal membership tests when the
36118         subtype mark is a constrained Unchecked_Union and the expression lacks
36119         inferable discriminants, and build a Raise_Program_Error node.
36120         (Expand_N_Op_Eq): Add function Has_Unconstrained_UU_Component. Used
36121         to detect types that contain components of unconstrained Unchecked_Union
36122         subtype. Add condition to detect equality between types that have an
36123         unconstrained Unchecked_Union component, and build a Raise_Program_Error
36124         node. Add condition to detect equality between Unchecked_Union types
36125         that lack inferable discriminants, and build a Raise_Program_Error node.
36126         Otherwise build a TSS equality function call.
36127         (Expand_N_Type_Conversion): Add condition to detect illegal conversions
36128         from a derived Unchecked_Union to an unconstrained non-Unchecked_Union
36129         with the operand lacking inferable discriminants, and build a Raise_
36130         Program_Error node.
36131         (Expand_Record_Equality): Remove guard that prevents Unchecked_Union
36132         composite equality.
36133         (Has_Inferable_Discriminants): Implement new predicate for objects and
36134         expressions of Unchecked_Union type. Check the body of subprogram for
36135         details.
36136         (Has_Unconstrained_UU_Components): Add function
36137         Component_Is_Unconstrained_UU. It is used to detect whether a single
36138         component is of an unconstrained Unchecked_Union subtype. Add function
36139         Variant_Is_Unconstrained_UU. It is used to detect whether a single
36140         component inside a variant is of an unconstrained Unchecked_Union type.
36141
36142         * exp_ch5.adb (Expand_Assign_Record): Add condition to copy the
36143         inferred discriminant values. Add condition to generate a case
36144         statement with an inferred discriminant as the switch.
36145         (Make_Component_List_Assign): Introduce a Boolean flag that determines
36146         the behaviour of the subprogram in the presence of an Unchecked_Union.
36147         Add condition to trigger the usage of the inferred discriminant value
36148         as the generated case statement switch.
36149         (Make_Field_Assign): Introduce a Boolean flag that determines the
36150         behaviour of the subprogram in the presence of an Unchecked_Union. Add
36151         condition to trigger the usage of the inferred discriminant value as
36152         the right-hand side of the generated assignment.
36153
36154         * exp_ch6.adb (Expand_Call): Add condition to skip extra actual
36155         parameter generation when dealing with Unchecked_Unions.
36156
36157         * checks.adb (Apply_Discriminant_Check): Do not apply discriminant
36158         checks for Unchecked_Unions.
36159
36160         * einfo.ads: Update comment on usage of flag Has_Per_Object_Constraint
36161
36162         * exp_attr.adb (Expand_N_Attribute_Reference): Produce
36163         Raise_Program_Error nodes for the execution of Read and Write
36164         attributes of Unchecked_Union types and the execution of Input and
36165         Output attributes of Unchecked_Union types that lack default
36166         discriminant values.
36167
36168         * sem_prag.adb (Analyze_Pragma): Remodel the analysis of pragma
36169         Unchecked_Union. Add procedure Check_Component. It is used to inspect
36170         per-object constrained components of Unchecked_Unions for being
36171         Unchecked_Unions themselves. Add procedure Check_Variant. It is used to
36172         check individual components withing a variant.
36173
36174         * sem_res.adb (Resolve_Comparison_Op): Remove guard that prevents
36175         comparison of Unchecked_Unions.
36176         (Resolve_Equality_OP): Remove guard that prevents equality between
36177         Unchecked_Unions.
36178
36179         * sem_util.adb (Build_Component_Subtype): Add guard to prevent creation
36180         of component subtypes for Unchecked_Union components.
36181         (Get_Actual_Subtype): Add condition that returs the Unchecked_Union type
36182         since it is the actual subtype.
36183
36184         * sem_ch12.adb (Instantiate_Type): Add condition to detect the correct
36185         pass of Unchecked_Union subtypes as generic actuals to formal types
36186         that lack known_discriminant_parts or that are derived Unchecked_Union
36187         types, and do nothing. In any other case, produce an error message.
36188
36189         * sem_ch3.adb (Analyze_Component_Declaration): Add function
36190         Contains_POC. It determines whether a constraint uses the discriminant
36191         of an enclosing record type.
36192         Add condition to detect per-object constrained component and set the
36193         appropriate flag.
36194         (Derived_Type_Declaration): Remove guard that prevents derivation from
36195         Unchecked_Union types.
36196         (Process_Subtype): Remove quard that prevents the creation of Unchecked_
36197         Union subtypes.
36198
36199         * sem_ch4.adb (Analyze_Selected_Component): Correct the detection of
36200         references to Unchecked_Union discriminants.
36201
36202         * sem_ch6.adb (Create_Extra_Formals): Add condition to skip extra
36203         formal generation when dealing with Unchecked_Unions.
36204         (Set_Actual_Subtypes): Add condition to prevent generation of actual
36205         subtypes for Unchecked_Unions.
36206
36207         * sem_ch7.adb (Analyze_Package_Specification): Add procedure
36208         Inspect_Unchecked_Union_Completion. It is used to detect incorrect
36209         completions of discriminated partial views by Unchecked_Unions and
36210         produce an error message.
36211
36212 2004-08-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
36213
36214         * trans.c (struct stmt_group): New field, GLOBAL.
36215         (global_stmt_group, gnu_elab_proc_decl, build_unit_elab): Deleted.
36216         (struct elab_info): New struct.
36217         (elab_info_list, gnu_elab_proc_stack): New variables.
36218         (Compilation_Unit_to_gnu): New procedure.
36219         (gigi): Call it and also handle elaboration procs we've saved.
36220         (gnat_init_stmt_group): Don't set global_stmt_group; instead initialize
36221         global field from parent.
36222         (gnat_to_gnu): Get decl from gnu_elab_proc_stack.
36223         (gnat_to_gnu, case N_Compilation_Unit): Call Compilation_Unit_to_gnu.
36224         (start_stmt_group): Initialize global field from parent.
36225         (add_decl_expr): Set to global for current statement group.
36226         (gnat_gimplify_expr, case NULL_EXPR): Add operand 0 to pre list, not
36227         post.
36228
36229         * utils.c (global_bindings_p): True when no current_function_decl; no
36230         longer check current_binding_level.
36231
36232 2004-08-09  Ben Brosgol  <brosgol@gnat.com>
36233
36234         * xgnatugn.adb: Added logic to deal with @ifset/@ifclear for edition
36235         choice.
36236
36237         * gnat_rm.texi, gnat_ugn.texi: Added edition conditionalization logic.
36238
36239 2004-08-06  Andreas Schwab  <schwab@suse.de>
36240
36241         * utils.c (gnat_define_builtin): Remove second parameter of
36242         make_decl_rtl.
36243         (begin_subprog_body): Likewise.
36244
36245 2004-07-26  Arnaud Charlet  <charlet@act-europe.fr>
36246
36247         * sem_util.adb (Requires_Transient_Scope): Temporarily disable
36248         optimization, not supported by the tree-ssa back-end.
36249
36250 2004-07-26  Olivier Hainque  <hainque@act-europe.fr>
36251
36252         * s-mastop-irix.adb: Update comments.
36253
36254         * a-except.adb (Exception_Information): Raise Constraint_Error if
36255         exception Id is Null_Id.
36256         This is required behavior, which is more reliably and clearly checked
36257         at the top level interface level.
36258
36259 2004-07-26  Javier Miranda  <miranda@gnat.com>
36260
36261         * exp_aggr.adb (Build_Array_Aggr_Code): Do not build the initialization
36262         call if a component has no default_expression and the box is used.
36263
36264         * sem_aggr.adb (Resolve_Array_Aggregate): If a component has no
36265         default_expression and you use box, it behaves as if you had declared a
36266         stand-alone object.
36267         (Resolve_Record_Aggregate): If a component has no default_expression and
36268         you use box, it behaves as if you had declared a stand-alone object.
36269
36270         * sem_ch10.adb (Install_Siblings): Do not make visible the private
36271         entities of private-with siblings.
36272
36273 2004-07-26  Ed Schonberg  <schonberg@gnat.com>
36274
36275         * sem_ch3.adb (Build_Underlying_Full_View): If this is the full view
36276         for a component of an itype, set the parent pointer for analysis,
36277         there is no list in which to insert it.
36278
36279         * sem_res.adb (Resolve): Call Rewrite_Renamed_Operator only for
36280         bona-fide renamings, not for inherited operations.
36281
36282         * exp_ch4.adb (Expand_Allocator_Expression): If the allocator is an
36283         actual for a formal that is an access parameter, create local
36284         finalization list even if the expression is not an aggregate.
36285
36286 2004-07-26  Ed Schonberg  <schonberg@gnat.com>
36287
36288         PR ada/16213
36289         * sem_ch8.adb (Attribute_Renaming, Check_Library_Level_Renaming):
36290         Diagnose properly illegal subprogram renamings that are library units.
36291
36292 2004-07-26  Ed Schonberg  <schonberg@gnat.com>
36293
36294         PR ada/15588
36295         * sem_util.adb (Is_OK_Variable_For_Out_Formal): If actual is a type
36296         conversion rewritten as an unchecked conversion, check that original
36297         expression is a variable.
36298
36299         * exp_ch4.adb (Expand_N_Type_Conversion): If rewriting as an
36300         unchecked_conversion, create new node rather than rewriting in place,
36301         to preserve original construct.
36302
36303 2004-07-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
36304
36305         * gigi.h (gnat_expand_body): Deleted.
36306
36307         * Make-lang.in: (trans.o): Depends on function.h.
36308
36309         * misc.c: (gnat_expand_body): Moved to here.
36310
36311         * trans.c (gnat_expand_body_1): Deleted.
36312         (gnat_expand_body): Moved from here.
36313         (gnat_to_gnu): N_Implicit_Label_Declaration forces being in elab proc.
36314         (add_stmt): Check for marked visited with global_bindings_p.
36315         (gnat_gimplify_expr, case COMPONENT_REF): New case.
36316         (gnat_gimplify_expr, case NULL_EXPR): Set TREE_NO_WARNING for temp.
36317
36318         * utils2.c (build_binary_op, case MODIFY_EXPR): Put LHS in a
36319         VIEW_CONVERT_EXPR if not operation type.
36320
36321         * utils.c (update_pointer_to): Set DECL_ORIGINAL_FIELD for
36322         fat pointer.
36323
36324         * decl.c, cuintp.c, gigi.h, misc.c, trans.c, utils.c, utils2.c: Minor
36325         changes: reformatting of negation operators, removing unneeded
36326         inequality comparison with zero, converting equality comparisons with
36327         zero to negations, changing int/0/1 to bool/false/true, replace calls
36328         to gigi_abort with abort, and various other similar changes.
36329
36330 2004-07-26  Vincent Celier  <celier@gnat.com>
36331
36332         * gnatcmd.adb (GNATCmd): Add processing for new built-in command
36333         "setup".
36334
36335         * make.adb (Gnatmake): Fail when a library is not present and there is
36336         no object directory.
36337
36338         * mlib-prj.adb (Check_Library): No need to check if the library needs
36339         to be rebuilt if there is no object directory, hence no object files
36340         to build the library.
36341
36342         * opt.ads (Setup_Projects): New Boolean flag.
36343
36344         * prj-nmsc.adb (Locate_Directory): New parameter Project, Kind and
36345         Location.
36346         Create directory when Kind /= "" and in "gnat setup". Report error if
36347         directory cannot be created.
36348         (Ada_Check): Create library interface copy dir if it does not exist
36349         and we are in "gnat setup".
36350         (Find_Sources): No error if in "gnat setup" and no Ada sources were
36351         found.
36352         (Language_Independent_Check): Create object directory, exec directory
36353         and/or library directory if they do not exist and we are in
36354         "gnat setup".
36355
36356         * vms_conv.ads: (Command_Type): New command Setup.
36357
36358         * vms_conv.adb (Initialize): Add Setup component of Cammand_List.
36359
36360         * vms_data.ads: Add qualifiers/switches for new built-in command
36361         "setup".
36362
36363 2004-07-25  Richard Henderson  <rth@redhat.com>
36364
36365         * utils.c (create_subprog_decl): Set DECL_ARTIFICIAL and
36366         DECL_IGNORED_P on RESULT_DECL.
36367
36368 2004-07-20  Olivier Hainque  <hainque@act-europe.fr>
36369
36370         * a-elchha.adb (Last_Chance_Handler): Remove the bogus buffer dynamic
36371         allocation and potentially overflowing update with
36372         Tailored_Exception_Information. Use the sec-stack free procedural
36373         interface to output Exception_Information instead.
36374
36375         * a-except.adb (To_Stderr): New subprogram for character, and string
36376         version moved from a-exextr to be visible from other separate units.
36377         (Tailored_Exception_Information): Remove the procedural version,
36378         previously used by the default Last_Chance_Handler and not any more.
36379         Adjust various comments.
36380
36381         * a-exexda.adb: Generalize the exception information procedural
36382         interface, to minimize the use of secondary stack and the need for
36383         local buffers when the info is to be output to stderr:
36384         (Address_Image): Removed.
36385         (Append_Info_Character): New subprogram, checking for overflows and
36386         outputing to stderr if buffer to fill is of length 0.
36387         (Append_Info_String): Output to stderr if buffer to fill is of length 0.
36388         (Append_Info_Address, Append_Info_Exception_Name,
36389         Append_Info_Exception_Message, Append_Info_Basic_Exception_Information,
36390         Append_Info_Basic_Exception_Traceback,
36391         Append_Info_Exception_Information): New subprograms.
36392         (Append_Info_Nat, Append_Info_NL): Use Append_Info_Character.
36393         (Basic_Exception_Info_Maxlength, Basic_Exception_Tback_Maxlength,
36394         Exception_Info_Maxlength, Exception_Name_Length,
36395         Exception_Message_Length): New subprograms.
36396         (Exception_Information): Use Append_Info_Exception_Information.
36397         (Tailored_Exception_Information): Use
36398         Append_Info_Basic_Exception_Information.
36399         Export services for the default Last_Chance_Handler.
36400
36401         * a-exextr.adb (To_Stderr): Remove. Now in a-except to be usable by
36402         other separate units.
36403
36404 2004-07-20  Vincent Celier  <celier@gnat.com>
36405
36406         * clean.adb, mlib-utl.adb, osint.adb, makegpr.adb: Minor reformatting.
36407
36408 2004-07-20  Ed Schonberg  <schonberg@gnat.com>
36409
36410         * freeze.adb (Freeze_Entity): If entity is a discriminated record type,
36411         emit itype references for the designated types of component types that
36412         are declared outside of the full record declaration, and that may
36413         denote a partial view of that record type.
36414
36415 2004-07-20  Ed Schonberg  <schonberg@gnat.com>
36416
36417         PR ada/15607
36418         * sem_ch3.adb (Build_Discriminated_Subtype): Do not attach a subtype
36419         which is the designated type in an access component declaration, to the
36420         list of incomplete dependents of the parent type, to avoid elaboration
36421         issues with out-of-scope subtypes.
36422         (Complete_Private_Subtype): Recompute Has_Unknown_Discriminants from the
36423         full view of the parent.
36424
36425 2004-07-20  Ed Schonberg  <schonberg@gnat.com>
36426
36427         PR ada/15610
36428         * sem_ch8.adb (Find_Expanded_Name): If name is overloaded, reject
36429         entities that are hidden, such as references to generic actuals
36430         outside an instance.
36431
36432 2004-07-20  Javier Miranda  <miranda@gnat.com>
36433
36434         * sem_ch4.adb (Try_Object_Operation): New subprogram that gives
36435         support to the new notation.
36436         (Analyze_Selected_Component): Add call to Try_Object_Operation.
36437
36438 2004-07-20  Jose Ruiz  <ruiz@act-europe.fr>
36439
36440         * s-taprob.adb: Adding the elaboration code required for initializing
36441         the tasking soft links that are common to the full and the restricted
36442         run times.
36443
36444         * s-tarest.adb (Init_RTS): Tasking soft links that are shared with the
36445         restricted run time has been moved to the package
36446         System.Soft_Links.Tasking.
36447
36448         * s-tasini.adb (Init_RTS): Tasking soft links that are shared with the
36449         restricted run time has been moved to the package
36450         System.Soft_Links.Tasking.
36451
36452         * Makefile.rtl: Add entry for s-solita.o in run-time library list.
36453
36454         * s-solita.ads, s-solita.adb: New files.
36455
36456 2004-07-20  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
36457
36458         * trans.c (Identifier_to_gnu, Pragma_to_gnu, Attribute_to_gnu,
36459         Case_Statement_to_gnu): Split off from gnat_to_gnu.
36460         (Loop_Statement_to_gnu, Subprogram_Body_to_gnu, call_to_gnu,
36461         Handled_Sequence_Of_Statements_to_gnu, Exception_Handler_to_gnu_sjlj,
36462         Exception_Handler_to_gnu_zcx): Likewise.
36463
36464 2004-07-17  Joseph S. Myers  <jsm@polyomino.org.uk>
36465
36466         * gigi.h (builtin_function): Declare.
36467
36468 2004-07-15  Robert Dewar  <dewar@gnat.com>
36469
36470         * makegpr.adb, s-secsta.ads, sem_ch3.adb, sem_case.adb: Minor
36471         reformatting
36472
36473         * gnat_ugn.texi: Add instantiation of direct_io or sequential_io with
36474         access values as an example of a warning.
36475
36476         * gnat_rm.texi: Document new attribute Has_Access_Values
36477
36478         * gnat-style.texi: Document that box comments belong on nested
36479         subprograms
36480
36481         * sem_util.ads (Has_Access_Values): Improved documentation
36482
36483         * s-finimp.ads, s-finimp.adb: Fix spelling error in comment
36484
36485         * sem_prag.adb (Check_Duplicated_Export_Name): New procedure
36486         (Process_Interface_Name): Call to this new procedure
36487         (Set_Extended_Import_Export_External_Name): Call to this new procedure
36488
36489         * s-mastop-x86.adb, 9drpc.adb: Fix spelling error in comment
36490
36491         * a-direio.ads, a-sequio.ads: Warn if Element_Type has access values
36492
36493         * einfo.ads: Minor comment typo fixed
36494
36495 2004-07-15  Jose Ruiz  <ruiz@act-europe.fr>
36496
36497         * snames.adb: Add _atcb.
36498
36499         * snames.ads: Add Name_uATCB.
36500
36501         * s-tarest.adb (Create_Restricted_Task): ATCBs are always preallocated
36502         (in the expanded code) when using the restricted run time.
36503
36504         * s-tarest.ads (Create_Restricted_Task): Created_Task transformed into
36505         a in parameter in order to allow ATCBs to be preallocated (in the
36506         expanded code).
36507
36508         * s-taskin.adb (Initialize_ATCB): T converted into a in parameter in
36509         order to allow ATCBs to be preallocated. In case of error, the ATCB is
36510         deallocated in System.Tasking.Stages.
36511
36512         * s-taskin.ads (Initialize_ATCB): T converted into a in parameter in
36513         order to allow ATCBs to be preallocated.
36514
36515         * s-tassta.adb (Create_Task): In case of error the ATCB is deallocated
36516         here. It was previously done in Initialize_ATCB.
36517
36518         * rtsfind.ads: Make the Ada_Task_Control_Block visible.
36519
36520         * exp_ch9.adb: Preallocate the Ada_Task_Control_Block when using the
36521         Restricted run time.
36522
36523         * exp_ch3.adb: When using the Restricted run time, pass the
36524         preallocated Ada_Task_Control_Block when creating a task.
36525
36526 2004-07-15  Ed Schonberg  <schonberg@gnat.com>
36527
36528         * sem_util.adb (Normalize_Actuals): If there are no actuals on a
36529         function call that is itself an actual in an enclosing call, diagnose
36530         problem here rather than assuming that resolution will catch it.
36531
36532         * sem_ch7.adb (Analyze_Package_Specification): If the specification is
36533         the local copy of a generic unit for a formal package, and the generic
36534         is a child unit, install private part of ancestors before compiling
36535         private part of spec.
36536
36537         * sem_cat.adb (Validate_Categorization_Dependency): Simplify code to
36538         use scope entities rather than tree structures, to handle properly
36539         parent units that are instances rewritten as bodies for inlining
36540         purposes.
36541
36542         * sem_ch10.adb (Get_Parent_Entity, Implicit_With_On_Parent,
36543         Remove_Parents): Handle properly a parent unit that is an
36544         instantiation, when the unit has been rewritten as a body for inlining
36545         purposes.
36546
36547         * par.adb (Goto_List): Global variable to collect goto statements in a
36548         given unit, for use in detecting natural loops.
36549
36550         * par-ch5.adb (P_Goto_Statement): Add goto to global Goto_List, for
36551         use in detecting natural loops.
36552
36553         * par-labl.adb (Find_Natural_Loops): Recognize loops create by
36554         backwards goto's, and rewrite as a infinite loop, to improve locality
36555         of temporaries.
36556
36557         * exp_util.adb (Force_Evaluation): Recognize a left-hand side
36558         subcomponent that includes an indexed reference, to prevent the
36559         generation of copies that would miscompile the desired assignment
36560         statement.
36561         (Build_Task_Image_Decls): Add a numeric suffix to
36562         generated name for string variable, to avoid spurious conflicts with
36563         the name of the type of a single protected object.
36564
36565         * exp_ch4.adb (Expand_Array_Equality): If indices are distinct, use a
36566         loop with an explicit exit statement, to avoid generating an
36567         out-of-range value with 'Succ leading to spurious constraint_errors
36568         when compiling with -gnatVo.
36569
36570 2004-07-15  Thomas Quinot  <quinot@act-europe.fr>
36571
36572         * sem_ch4.adb (Analyze_Slice): Always call Analyze on the prefix: it
36573         might not be analyzed yet, even if its Etype is already set (case of an
36574         unchecked conversion built using Unchecked_Convert_To, for example).
36575         If the prefix has already been analyzed, this will be a nop anyway.
36576
36577         * exp_ch5.adb (Make_Tag_Ctrl_Assignment): For an assignment of a
36578         controller type, or an assignment of a record type with controlled
36579         components, copy only user data, and leave the finalization chain
36580         pointers untouched.
36581
36582 2004-07-15  Vincent Celier  <celier@gnat.com>
36583
36584         * make.adb (Collect_Arguments): Improve error message when attempting
36585         to compile a source not part of any project, when -x is not used.
36586
36587         * prj.ads: (Defined_Variable_Kind): New subtype
36588
36589         * prj-attr.adb (Register_New_Package): Two new procedures to register
36590         a package with or without its attributes.
36591         (Register_New_Attribute): Mew procedure to register a new attribute in a
36592         package.
36593         New attribute oriented subprograms: Attribute_Node_Id_Of,
36594         Attribute_Kind_Of, Set_Attribute_Kind_Of, Attribute_Name_Of,
36595         Variable_Kind_Of, Set_Variable_Kind_Of, Optional_Index_Of,
36596         Next_Attribute.
36597         New package oriented subprograms: Package_Node_Id_Of,
36598         Add_Unknown_Package, First_Attribute_Of, Add_Attribute.
36599
36600         * prj-attr.ads (Attribute_Node_Id): Now a private, self initialized
36601         type.
36602         (Package_Node_Id): Now a private, self initialized type
36603         (Register_New_Package): New procedure to register a package with its
36604         attributes.
36605         New attribute oriented subprograms: Attribute_Node_Id_Of,
36606         Attribute_Kind_Of, Set_Attribute_Kind_Of, Attribute_Name_Of,
36607         Variable_Kind_Of, Set_Variable_Kind_Of, Optional_Index_Of,
36608         Next_Attribute.
36609         New package oriented subprograms: Package_Node_Id_Of,
36610         Add_Unknown_Package, First_Attribute_Of, Add_Attribute.
36611
36612         * prj-dect.adb (Parse_Attribute_Declaration,
36613         Parse_Package_Declaration): Adapt to new spec of Prj.Attr.
36614
36615         * prj-makr.adb (Make): Parse existing project file before creating
36616         other files. Fail if there was an error during parsing.
36617
36618         * prj-proc.adb (Add_Attributes, Process_Declarative_Items): Adapt to
36619         new spec of Prj.Attr.
36620
36621         * prj-strt.adb (Attribute_Reference, Parse_Variable_Reference): Adapt
36622         to new spec of Prj.Attr.
36623
36624 2004-07-15  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
36625
36626         * utils2.c: Fix typo in comment.
36627
36628 2004-07-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
36629
36630         * trans.c (add_decl_expr): Clear TREE_READONLY if clear DECL_INITIAL.
36631         * utils.c (unchecked_convert): Don't do two VIEW_CONVERT_EXPRs.
36632
36633 2004-07-14  Andreas Schwab  <schwab@suse.de>
36634
36635         * trans.c (gnat_init_stmt_group): Remove duplicate definition.
36636
36637 2004-07-13  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
36638
36639         * decl.c: (gnat_to_gnu_entity, object case): Convert initializer to
36640         object type.
36641         (gnat_to_gnu_entity, case E_Record_Subtype): Properly set
36642         TYPE_STUB_DECL.
36643
36644         * misc.c (gnat_types_compatible_p): New function.
36645         (LANG_HOOKS_TYPES_COMPATIBLE_P): New hook, to use it.
36646         (LANG_HOOKS_TYPE_MAX_SIZE, gnat_type_max_size): New.
36647
36648         * trans.c (gigi): Move processing of main N_Compilation_Unit here.
36649         (gnat_to_gnu, case N_Compilation_Unit): Just handle nested case here.
36650         (add_stmt): Force walking of sizes and DECL_INITIAL for DECL_EXPR.
36651         (mark_visited): Don't mark dummy type.
36652         (tree_transform <N_Procedure_Call_Statement>): Unless this is an In
36653         parameter, we must remove any LJM building from GNU_NAME.
36654         (gnat_to_gnu, case N_String_Literal): Fill in indices in CONSTRUCTOR.
36655         (pos_to_constructor): Use int_const_binop.
36656         (gnat_to_gnu, case N_Identifier): Don't reference DECL_INITIAL of
36657         PARM_DECL.
36658
36659         * utils.c (gnat_init_decl_processing): Don't make two "void" decls.
36660         (gnat_pushlevel): Set TREE_USE on BLOCK node.
36661         (gnat_install_builtins): Add __builtin_memset.
36662
36663 2004-07-13  Olivier Hainque  <hainque@act-europe.fr>
36664
36665         * decl.c (gnat_to_gnu_entity <E_Variable>): If we are making a pointer
36666         for a renaming, stabilize the initialization expression if we are at a
36667         local level.  At the local level, uses of the renaming may be performed
36668         by a direct dereference of the initializing expression, and we don't
36669         want possible variables there to be evaluated for every use.
36670
36671         * trans.c (gnat_stabilize_reference, gnat_stabilize_reference_1):
36672         Propagate TREE_SIDE_EFFECTS and TREE_THIS_VOLATILE to avoid loosing
36673         them on the way.  Account for the fact that we may introduce side
36674         effects in the process.
36675
36676 2004-07-13  Richard Henderson  <rth@redhat.com>
36677
36678         * misc.c (default_pass_by_ref): Use pass_by_reference.
36679
36680 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
36681
36682         * misc.c (LANG_HOOKS_CLEAR_BINDING_STACK, LANG_HOOKS_PUSHLEVEL,
36683         LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
36684
36685 2004-07-08  Richard Henderson  <rth@redhat.com>
36686
36687         * trans.c (gnat_to_gnu <N_Handled_Sequence_Of_Statements>): Update
36688         commentary.
36689
36690 2004-07-06  Vincent Celier  <celier@gnat.com>
36691
36692         * vms_conv.ads: Minor reformatting.
36693         Alphabetical order for enumerated values of type Command_Type, to have
36694         the command in alphabetical order for the usage.
36695
36696         * vms_conv.adb (Process_Argument): Set Keep_Temporary_Files to True for
36697         the special qualifier /KEEP_TEMPORARY_FILES (minimum 6 characters).
36698
36699         * gnat_ugn.texi: Document new switch -dn for the GNAT driver.
36700
36701         * makegpr.adb (Global_Archive_Exists): New global Boolean variable
36702         (Add_Archive_Path): Only add the global archive if there is one.
36703         (Build_Global_Archive): Set Global_Archive_Exists depending if there is
36704         or not any object file to put in the global archive, and don't build
36705         a global archive if there is none.
36706         (X_Switches): New table
36707         (Compile_Link_With_Gnatmake): Pass to gnatmake the -X switches stored
36708         in the X_Switches table, if any.
36709         (Initialize): Make sure the X_Switches table is empty
36710         (Scan_Arg): Record -X switches in table X_Switches
36711
36712         * opt.ads (Keep_Temporary_Files): New Boolean flag, defaulted to False.
36713
36714         * make.adb: Minor comment fix
36715
36716         * gnatname.adb (Gnatname): When not on VMS, and gnatname has been
36717         invoked with directory information, add the directory in front of the
36718         path.
36719
36720         * gnatchop.adb (Gnatchop): When not on VMS, and gnatchop has been
36721         invoked with directory information, add the directory in front of the
36722         path.
36723
36724         * gnatcmd.adb (Delete_Temp_Config_Files): Only delete temporary files
36725         when Keep_Temporary_Files is False.
36726         (GNATCmd): When not on VMS, and the GNAT driver has been invoked with
36727         directory information, add the directory in front of the path.
36728         When not on VMS, handle new switch -dn before the command to set
36729         Keep_Temporary_Files to True.
36730         (Non_VMS_Usage): Use lower case for the non VMS usage: this is valid
36731         everywhere.
36732
36733         * gnatlink.adb (Gnatlink): When not on VMS, and gnatlink has been
36734         invoked with directory information, add the directory in front of the
36735         path.
36736
36737 2004-07-06  Thomas Quinot  <quinot@act-europe.fr>
36738
36739         * snames.ads, snames.adb (Name_Stub): New name for the distributed
36740         systems annex.
36741
36742         * rtsfind.ads: New RTE TC_Object, for DSA/PolyORB.
36743         New RTEs RAS_Proxy_Type and RAS_Proxy_Type_Access, for DSA.
36744
36745         * g-socket.adb (To_Timeval): Fix incorrect conversion of
36746         Selector_Duration to Timeval for the case of 0.0.
36747
36748         * exp_util.ads (Evolve_Or_Else): Fix overenthusiastic copy/paste of
36749         documentation from Evolve_And_Then.
36750
36751 2004-07-06  Jose Ruiz  <ruiz@act-europe.fr>
36752
36753         * s-taprop-tru64.adb, s-taprop-os2.adb,
36754         s-taprop-mingw.adb, s-taprop-posix.adb: Update comment.
36755
36756 2004-07-06  Robert Dewar  <dewar@gnat.com>
36757
36758         * s-osinte-hpux.ads, s-osinte-freebsd.ads,
36759         s-osinte-lynxos.ads, s-taprop-lynxos.adb, s-osinte-tru64.ads,
36760         s-osinte-aix.ads, s-osinte-irix.ads, s-taprop-irix.adb,
36761         s-interr-sigaction.adb, s-taprop-irix-athread.adb,
36762         s-osinte-hpux-dce.adb, s-taprop-hpux-dce.adb,
36763         s-taprop-linux.adb, s-taprop-dummy.adb, s-taprop-solaris.adb,
36764         s-interr-vms.adb, s-osinte-vms.ads, s-taprop-vms.adb,
36765         s-osinte-vxworks.ads, s-osprim-vxworks.adb, a-numaux-x86.adb,
36766         a-except.adb, a-exexpr.adb, a-intsig.adb, a-tags.adb,
36767         a-tags.ads, bindgen.ads, checks.adb, checks.adb,
36768         csets.ads, einfo.ads, einfo.ads, elists.adb, exp_ch4.adb,
36769         exp_ch7.adb, exp_dist.adb, exp_util.adb, freeze.adb,
36770         g-dynhta.adb, gnatmem.adb, g-regexp.adb, inline.adb,
36771         i-os2thr.ads, osint.adb, prj.adb, scng.adb, sem_cat.adb,
36772         sem_ch10.adb, sem_ch12.adb, sem_ch4.adb, sem_ch7.adb,
36773         sem_ch8.adb, sem_disp.adb, sem_prag.adb, sem_res.adb,
36774         sem_type.adb, sem_type.ads, sem_warn.adb, s-ficobl.ads,
36775         s-finimp.adb, s-htable.adb, sinfo.ads, sinput-l.ads,
36776         s-interr.adb, s-interr.ads, sprint.adb, s-tarest.adb,
36777         s-tasini.ads, s-taskin.ads, s-taskin.ads, uname.adb,
36778         vms_data.ads: Minor reformatting,
36779         Fix bad box comment format.
36780
36781         * gnat_rm.texi: Fix minor grammatical error
36782
36783         * sem_attr.adb, exp_attr.adb: New attribute Has_Access_Values
36784
36785         * sem_util.ads, sem_util.adb (Requires_Transient_Scope): Allow many
36786         more cases of discriminated records to be recognized as not needing a
36787         secondary stack.
36788         (Has_Access_Values): New function.
36789
36790         * snames.h, snames.adb, snames.ads: New attribute Has_Access_Values
36791
36792         * cstand.adb, layout.ads, layout.adb, sem_ch13.ads: Change name
36793         Set_Prim_Alignment to Set_Elem_Alignment (more accurate correspondence
36794         with LRM terminology).
36795         Change terminology in comments primitive type => elementary type.
36796
36797 2004-07-06  Ed Schonberg  <schonberg@gnat.com>
36798
36799         PR ada/15602
36800         * sem_ch7.adb (Unit_Requires_Body): For a generic package, the formal
36801         parameters do not impose any requirements on the presence of a body.
36802
36803 2004-07-06  Ed Schonberg  <schonberg@gnat.com>
36804
36805         PR ada/15593
36806         * sem_ch12.adb (Analyze_Package_Instantiation): If the generic is not a
36807         compilation unit and is in an open scope at the point of instantiation,
36808         assume that a body may be present later.
36809
36810 2004-07-06  Ed Schonberg  <schonberg@gnat.com>
36811
36812         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case 'Size):
36813         Improve error message when specified size is not supported.
36814
36815         * sem_ch6.adb (Maybe_Primitive_Operation): A library-level subprogram
36816         is never a primitive operation.
36817
36818 2004-07-05  Andreas Schwab  <schwab@suse.de>
36819
36820         * ada-tree.h (TYPE_LEFT_JUSTIFIED_MODULAR_P): Use
36821         RECORD_OR_UNION_CHECK.
36822         (TYPE_CONTAINS_TEMPLATE_P): Likewise.
36823
36824 2004-07-04  Kelley Cook  <kcook@gcc.gnu.org>
36825
36826         * Make-lang.in (doc/gnat_ugn_unw.texi): Eliminate explicit
36827         dependency on xgnatugn, instead build it via a submake.
36828         (ADA_INFOFILES): Add doc/gnat_ugn_unw.texi.
36829
36830 2004-07-04  Richard Henderson  <rth@redhat.com>
36831
36832         * utils2.c (gnat_mark_addressable): Don't put_var_into_stack.
36833
36834 2004-07-01  Richard Henderson  <rth@redhat.com>
36835
36836         * trans.c (gnat_stabilize_reference): Don't handle RTL_EXPR.
36837         * utils.c (max_size): Likewise.
36838
36839 2004-06-28  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
36840
36841         * decl.c: Remove calls to add_decl_expr, pushdecl, rest_of_compilation,
36842         and rest_of_type_compilation; add arg to create_*_decl.
36843         (annotate_decl_with_node): Deleted.
36844         (gnat_to_gnu_entity, case E_Array_Type): Set location of fields.
36845         * gigi.h (get_decls, block_has_vars, pushdecl): Deleted.
36846         (get_current_block_context, gnat_pushdecl): New declarations.
36847         (gnat_init_stmt_group): Likewise.
36848         (create_var_decl, create_type_decl, create_subprog_decl): Add new arg.
36849         * misc.c (LANG_HOOKS_CLEAR_BINDING_STACK): Deleted.
36850         (LANG_HOOKS_GETDECLS, LANG_HOOKS_PUSHDECL): Deleted.
36851         (gnat_init): Call gnat_init_stmt_group.
36852         * trans.c (global_stmt_group, gnu_elab_proc_decl): New variables.
36853         (gnu_pending_elaboration_list): Deleted.
36854         (mark_visited, mark_unvisited, gnat_init_stmt_group): New functions.
36855         (gigi): Rearrange initialization calls and move some to last above.
36856         (gnat_to_gnu): If statement and not in procedure, go into elab proc.
36857         Delete calls to add_decl_expr; add arg to create_*_decl.
36858         (gnat_to_gnu, case N_Loop): Recalculate side effects on COND_EXPR.
36859         (gnat_to_gnu, case N_Subprogram_Body): Move some code to
36860         begin_subprog_body and call it.
36861         Don't push and pop ggc context.
36862         (gnat_to_gnu, case N_Compilation_Unit): Rework to support elab proc.
36863         (add_stmt): Remove handling of DECL_EXPR from here.
36864         If not in function, mark visited.
36865         (add_decl_expr): Put global at top level.
36866         Check for cases of DECL_INITIAL we have to handle here.
36867         (process_type): Add extra arg to create_type_decl.
36868         (build_unit_elab): Rework to just gimplify.
36869         * utils.c (pending_elaborations, elist_stack, getdecls): Deleted.
36870         (block_has_vars, mark_visited, add_pending_elaborations): Likewise.
36871         (get_pending_elaborations, pending_elaborations_p): Likewise.
36872         (push_pending_elaborations, pop_pending_elaborations): Likewise.
36873         (get_elaboration_location, insert_elaboration_list): Likewise.
36874         (gnat_binding_level): Renamed from ada_binding_level.
36875         (init_gnat_to_gnu): Don't clear pending_elaborations.
36876         (global_bindings_p): Treat as global if no current_binding_level.
36877         (set_current_block_context): New function.
36878         (gnat_pushdecl): Renamed from pushdecl; major rework.
36879         All callers changed.
36880         (create_type_decl, create_var_decl, create_subprog_decl): Add new arg.
36881         (finish_record_type): Call call pushdecl for stub decl.
36882         (function_nesting_depth): Deleted.
36883         (begin_subprog_body): Delete obsolete code.
36884         * utils2.c (build_call_alloc_dealloc): Add new arg to create_var_decl.
36885
36886 2004-06-28  Robert Dewar  <dewar@gnat.com>
36887
36888         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
36889         mlib-tgt-irix.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
36890         mlib-tgt-linux.adb, mlib-tgt-solaris.adb, mlib-tgt-solaris.adb,
36891         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
36892         a-strmap.adb, a-strmap.ads, clean.adb: Minor reformatting
36893
36894         * exp_util.adb (Is_Possibly_Unaligned_Slice): Completely rewritten, to
36895         deal with problem of inefficient slices on machines with strict
36896         alignment, when the slice is a component of a composite.
36897
36898         * checks.adb (Apply_Array_Size_Check): Do not special case 64-bit
36899         machines, we need the check there as well.
36900
36901 2004-06-28  Ed Schonberg  <schonberg@gnat.com>
36902
36903         * exp_ch5.adb (Expand_Assign_Array): Use correct condition to
36904         determine safe copying direction for overlapping slice assignments
36905         when component is controlled.
36906
36907         * sem_ch12.adb (Instantiate_Formal_Package): Implicit operations of a
36908         formal derived type in the actual for a formal package are visible in
36909         the enclosing instance.
36910
36911 2004-06-28  Ed Schonberg  <schonberg@gnat.com>
36912
36913         PR ada/15600
36914         * sem_util.adb (Trace_Components): Diagnose properly an illegal
36915         circularity involving a private type whose completion includes a
36916         self-referential component.
36917         (Enter_Name): Use Is_Inherited_Operation to distinguish a source
36918         renaming or an instantiation from an implicit derived operation.
36919
36920 2004-06-28  Pascal Obry  <obry@gnat.com>
36921
36922         * mlib-tgt-mingw.adb: (Library_Exists_For): Remove "lib" prefix from
36923         DLL.
36924         (Library_File_Name_For): Idem.
36925
36926 2004-06-28  Matthew Gingell  <gingell@gnat.com>
36927
36928         * g-traceb.ads: Add explanatory note on the format of addresses
36929         expected by addr2line.
36930
36931 2004-06-28  Jerome Guitton  <guitton@act-europe.fr>
36932
36933         * Makefile.in: Force debugging information on s-tasdeb.adb,
36934         a-except.adb and s-assert.adb needed by the debugger.
36935
36936 2004-06-28  Vincent Celier  <celier@gnat.com>
36937
36938         * make.adb (Collect_Arguments_And_Compile): Change Flag1 to
36939         Need_To_Build_Lib.
36940         (Gnatmake): Ditto.
36941
36942         * mlib-prj.adb (Check_Library): Replace Flag1 with Need_To_Build_Lib
36943
36944         * prj.adb: Minor reformatting
36945         (Project_Empty): Change Flag1 to Need_To_Build_Lib. Remove Flag2.
36946
36947         * prj.ads: Comment updates
36948         Minor reformatting
36949         (Project_Data): Change Flag1 to Need_To_Build_Lib.
36950         Remove Flag2: not used.
36951
36952         * prj-dect.adb (Parse_Declarative_Items): Accept "null" as a
36953         declaration.
36954
36955         * gnat_ugn.texi: Put a "null;" declaration in one project file example
36956
36957         * gnat_rm.texi: Document Empty declarations "null;".
36958
36959         * makegpr.adb (Compile_Link_With_Gnatmake): Put the global archives in
36960         front of the linker options.
36961         (Link_Foreign): Put the global archives and the libraries in front of
36962         the linker options.
36963
36964 2004-06-28  Javier Miranda  <miranda@gnat.com>
36965
36966         * rtsfind.adb: (Get_Unit_Name): Fix typo in comment
36967         (RTU_Loaded): Code cleanup
36968         (Set_RTU_Loaded): New procedure to register as *loaded* explicitly
36969         withed predefined units.
36970
36971         * rtsfind.ads (Set_RTU_Loaded): New procedure to register as *loaded*
36972         explicitly withed predefined units.
36973         Fix typo in comment
36974
36975         * sem_ch10.adb (Analyze_Compilation_Unit): Register as *loaded*
36976         explicitly withed predefined units.
36977
36978 2004-06-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
36979
36980         * ada-tree.def (DECL_STMT): Deleted.
36981         * ada-tree.h (IS_ADA_STMT): Now test against STMT_STMT.
36982         (DECL_STMT_VAR): Deleted.
36983         * decl.c: add_decl_stmt now add_decl_expr.
36984         * gigi.h: Likewise.
36985         * trans.c: Likewise.
36986         (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Deleted.
36987         (gnat_to_gnu, case N_Subprogram_Body): Set cfun->function_end_locus.
36988         (add_stmt): Only handle padded type here.
36989         (add_stmt_with_node): Allow gnat_node to not be present.
36990         (gnat_gimplify_stmt, case USE_STMT): Set *STMT_P to null.
36991         (gnat_gimplify_stmt, case DECL_STMT): Deleted.
36992         (gnat_stabilize_reference_1): If COMPONENT_REF of fat pointer,
36993         make a SAVE_EXPR for the entire fat pointer.
36994         * utils.c (pushdecl): Walk a DECL_EXPR in global case.
36995         (create_index_type): Make a DECL_EXPR.
36996         (end_subprog_body): Don't call allocate_struct_function here but
36997         do clear cfun.
36998
36999 2004-06-25  Pascal Obry  <obry@gnat.com>
37000
37001         * makegpr.adb (Build_Library): Remove parameter Lib_Address and
37002         Relocatable from Build_Dynamic_Library call.
37003
37004         * gnat_ugn.texi: Change documentation about Library_Kind. Dynamic and
37005         Relocatable are now synonym.
37006
37007         * Makefile.in: Use s-parame-mingw.adb on MingW platform.
37008
37009         * mlib-prj.adb (Build_Library): Remove DLL_Address constant definition.
37010         Remove parameter Lib_Address and Relocatable from Build_Dynamic_Library
37011         call.
37012
37013         * mlib-tgt.ads, mlib-tgt.adb (Build_Dynamic_Library): Remove parameter
37014         Lib_Address and Relocatable.
37015         (Default_DLL_Address): Removed.
37016
37017         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
37018         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
37019         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-vxworks.adb:
37020         (Build_Dynamic_Library): Remove parameter Lib_Address and Relocatable.
37021         (Default_DLL_Address): Removed.
37022
37023         * mlib-tgt-mingw.adb: Ditto.
37024         (Build_Dynamic_Library): Do not add "lib" prefix to the DLL name.
37025
37026         * s-taprop-mingw.adb (Create_Task): Use Adjust_Storage_Size to compute
37027         the initial thread stack size.
37028
37029         * a-strmap.ads: Move package L to private part as it is not used in
37030         the spec. Found while reading code.
37031
37032 2004-06-25  Olivier Hainque  <hainque@act-europe.fr>
37033
37034         * tracebak.c: Introduce support for a GCC infrastructure based
37035         implementation of __gnat_backtrace.
37036
37037         * raise.c: Don't rely on a C mapping of the GNAT_GCC_Exception record
37038         any more. Use accessors instead. This eases maintenance and relaxes
37039         some alignment constraints.
37040         (_GNAT_Exception structure): Remove the Ada specific fields
37041         (EID_For, Adjust_N_Cleanups_For): New accessors, exported by
37042         a-exexpr.adb.
37043         (is_handled_by, __gnat_eh_personality): Replace component references to
37044         exception structure by use of the new accessors.
37045
37046         * init.c (__gnat_initialize): Adjust comments to match the just
37047         reverted meaning of the -static link-time option.
37048
37049         * adaint.c (convert_addresses): Arrange not to define a stub for
37050         mips-irix any more, as we now want to rely on a real version from a
37051         recent libaddr2line.
37052
37053         * a-exexpr.adb: Provide new accessors to a GNAT_GCC occurrence, so that
37054         the personality routine can use them and not have to rely on a C
37055         counterpart of the record anymore. This simplifies maintenance and
37056         relaxes the constraint of having Standard'Maximum_Alignment match
37057         BIGGEST_ALIGNMENT.
37058         Update comments, and add a section on the common header alignment issue.
37059
37060 2004-06-25  Geert Bosch  <bosch@gnat.com>
37061
37062         * a-ngelfu.adb (Tanh): Use full 20 digit precision for constants in
37063         polynomial approximation. Fixes inconsistency with Cody/Waite algorithm.
37064
37065 2004-06-25  Robert Dewar  <dewar@gnat.com>
37066
37067         * gnat_rm.texi: Fix section on component clauses to indicate that the
37068         restriction on byte boundary placement still applies for bit packed
37069         arrays.
37070         Add comment on stack usage from Initialize_Scalars
37071
37072         * gnat_ugn.texi: Add documentation for -gnatyLnnn
37073
37074         * stylesw.ads, stylesw.adb: Implement new -gnatyLnnn option for
37075         limiting nesting level.
37076
37077         * usage.adb: Add line for -gnatyLnnn switch
37078
37079         * g-debpoo.ads, xtreeprs.adb, sinput.ads, sem_ch13.ads,
37080         sem_ch13.adb, exp_aggr.adb: Minor reformatting
37081
37082         * sem_prag.adb (Process_Atomic_Shared_Volatile): Set Is_Atomic on base
37083         type as well as on the subtype. This corrects a problem in freeze in
37084         setting alignments of atomic types.
37085
37086         * sem_eval.ads: Minor comment typo fixed
37087
37088         * par-util.adb (Push_Scope_Stack): Check for violation of max nesting
37089         level.  Minor reformatting.
37090
37091         * fname.adb (Is_Predefined_File_Name): Require a letter after the
37092         minus sign. This means that file names like a--b.adb will not be
37093         considered predefined.
37094
37095         * freeze.adb: Propagate new flag Must_Be_On_Byte_Boundary to containing
37096         record Test new flag and give diagnostic for bad component clause.
37097         (Freeze_Entity): Set alignment of array from component alignment in
37098         cases where this is safe to do.
37099
37100         * exp_pakd.adb: Set new flag Must_Be_On_Byte_Boundary for large packed
37101         arrays.
37102
37103         * cstand.adb: (Create_Standard): Set alignment of String to 1
37104
37105         * einfo.ads, einfo.adb: Introduce new flag Must_Be_On_Byte_Boundary
37106
37107         * exp_ch4.adb (Expand_Array_Equality): Improve efficiency of generated
37108         code in the common constrained array cases.
37109
37110         * a-storio.adb: Change implementation to avoid possible alignment
37111         problems on machines requiring strict alignment (data should be moved
37112         as type Buffer, not type Elmt).
37113
37114         * checks.adb (Apply_Array_Size_Check): Improve these checks by
37115         killing the overflow checks which we really do not need (64-bits is
37116         enough).
37117
37118 2004-06-25  Vincent Celier  <celier@gnat.com>
37119
37120         * makegpr.adb (Is_Included_In_Global_Archive): New Boolean function
37121         (Add_Archives.Recursive_Add_Archives): Call Add_Archive_Path
37122         inconditionally for the main project.
37123         (Recursive_Add_Archives.Add_Archive_Path): New procedure
37124         (Link_Executables.Check_Time_Stamps): New procedure
37125         (Link_Executables.Link_Foreign): New procedure
37126         Changes made to reduce nesting level of this package
37127         (Check): New procedure
37128         (Add_Switches): When not in quiet output, check that a switch is not
37129         the concatenation of several valid switches. If it is, issue a warning.
37130         (Build_Global_Archive): If the global archive is rebuilt, linking need
37131         to be done.
37132         (Compile_Sources): Rebuilding a library archive does not imply
37133         rebuilding the global archive.
37134         (Build_Global_Archive): New procedure
37135         (Build_Library): New name for Build_Archive, now only for library
37136         project
37137         (Check_Archive_Builder): New procedure
37138         (Create_Global_Archive_Dependency_File): New procedure
37139         (Gprmake): Call Build_Global_Archive before linking
37140         * makegpr.adb: Use Other_Sources_Present instead of Sources_Present
37141         throughout.
37142         (Scan_Arg): Display the Copyright notice when -v is used
37143
37144         * gnat_ugn.texi: Document new switch -files= (VMS qualifier /FILES=)
37145         for gnatls.
37146
37147         * vms_data.ads: Add qualifier /MAX_NESTING=nnn (-gnatyLnnn) for GNAT
37148         COMPILE.
37149         Add new GNAT LIST qualifier /FILES=
37150         Added qualifier /DIRECTORY= to GNAT METRIC
37151         Added qualifier /FILES= to GNAT METRIC
37152         Added qualifier /FILES to GNAT PRETTY
37153
37154         * switch.adb (Is_Front_End_Switch): Refine the test for --RTS or -fRTS,
37155         to take into account both versions of the switch.
37156
37157         * switch-c.adb (Scan_Front_End_Switches): New switch -gnatez. Should
37158         always be the last switch to the gcc driver. Disable switch storing so
37159         that switches automatically added by the gcc driver are not put in the
37160         ALI file.
37161
37162         * prj.adb (Project_Empty): Take into account changes in components of
37163         Project_Data.
37164
37165         * prj.ads (Languages_Processed): New enumaration value All_Languages.
37166
37167         * prj.ads (Project_Data): Remove component Lib_Elaboration: never
37168         used. Split Boolean component Ada_Sources_Present in two Boolean
37169         components Ada_Sources_Present and Other_Sources_Present.
37170         Minor reformatting
37171
37172         * prj-env.adb (For_All_Source_Dirs.Add): Use Ada_Sources_Present
37173         instead of Sources_Present.
37174         (Set_Ada_Paths.Add.Recursive_Add): Ditto
37175
37176         * prj-nmsc.adb: Minor reformatting
37177         (Check_Ada_Naming_Scheme): New name of procedure Check_Naming_Scheme
37178         (Check_Ada_Naming_Scheme_Validity): New name of previous procedure
37179         Check_Ada_Naming_Scheme.
37180         Change Sources_Present to Ada_Sources_Present or Other_Sources_Present
37181         throughout.
37182
37183         * prj-part.adb (Post_Parse_Context_Clause): New Boolean parameter
37184         In_Limited.
37185         Make sure that all cycles where there is at least one "limited with"
37186         are detected.
37187         (Parse_Single_Project): New Boolean parameter In_Limited
37188
37189         * prj-proc.adb (Recursive_Check): When Process_Languages is
37190         All_Languages, call first Prj.Nmsc.Ada_Check, then
37191         Prj.Nmsc.Other_Languages_Check.
37192
37193         * prj-proc.adb (Process): Use Ada_Sources_Present or
37194         Other_Sources_Present (instead of Sources_Present) depending on
37195         Process_Languages.
37196
37197         * lang-specs.h: Keep -g and -m switches in the same order, and as the
37198         last switches.
37199
37200         * lib.adb (Switch_Storing_Enabled): New global Boolean flag
37201         (Disable_Switch_Storing): New procedure. Set Switch_Storing_Enabled to
37202         False.
37203         (Store_Compilation_Switch): Do nothing if Switch_Storing_Enabled is
37204         False.
37205
37206         * lib.ads (Disable_Switch_Storing): New procedure.
37207
37208         * make.adb: Modifications to reduce nesting level of this package.
37209         (Check_Standard_Library): New procedure
37210         (Gnatmake.Check_Mains): New procedure
37211         (Gnatmake.Create_Binder_Mapping_File): New procedure
37212         (Compile_Sources.Compile): Add switch -gnatez as the last option
37213         (Display): Never display -gnatez
37214
37215         * Makefile.generic:
37216         When using $(MAIN_OBJECT), always use $(OBJ_DIR)/$(MAIN_OBJECT)
37217
37218         * gnatcmd.adb (Check_Project): New function
37219         (Process_Link): New procedure to reduce nesting depth
37220         (Check_Files): New procedure to reduce the nesting depth.
37221         For GNAT METRIC, include the inherited sources in extending projects.
37222         (GNATCmd): When GNAT LS is invoked with a project file and no files,
37223         add the list of files from the sources of the project file. If this list
37224         is too long, put it in a temp text files and use switch -files=
37225         (Delete_Temp_Config_Files): Delete the temp text file that contains
37226         a list of source for gnatpp or gnatmetric, if one has been created.
37227         (GNATCmd): For GNAT METRIC and GNAT PRETTY, if the number of sources
37228         in the project file is too large, create a temporary text file that
37229         list them and pass it to the tool with "-files=<temp text file>".
37230         (GNATCmd): For GNAT METRIC add "-d=<abject dir>" as the first switch
37231
37232         * gnatlink.adb (Gnatlink): Do not compile with --RTS= when the
37233         generated file is in not in Ada.
37234
37235         * gnatls.adb: Remove all parameters And_Save that are no longer used.
37236         (Scan_Ls_Arg): Add processing for -files=
37237         (Usage): Add line for -files=
37238
37239         * g-os_lib.adb (On_Windows): New global constant Boolean flag
37240         (Normalize_Pathname): When on Windows and the path starts with a
37241         directory separator, make sure that the resulting path will start with
37242         a drive letter.
37243
37244         * clean.adb (Clean_Archive): New procedure
37245         (Clean_Project): When there is non-Ada code, delete the global archive,
37246         the archive dependency files, the object files and their dependency
37247         files, if they exist.
37248         (Gnatclean): Call Prj.Pars.Parse for All_Languages, not for Ada only.
37249
37250 2004-06-25  Thomas Quinot  <quinot@act-europe.fr>
37251
37252         * sinfo.ads: Fix typo in comment.
37253
37254         * sem_dist.adb (Process_Remote_AST_Attribute): Simplify code that uses
37255         the TSS for remote access-to-subprogram types, since these TSS are
37256         always present once the type has been analyzed.
37257         (RAS_E_Dereference): Same.
37258
37259         * sem_attr.adb (Analyze_Attribute): When analysis of an attribute
37260         reference raises Bad_Attribute, mark the reference as analyzed so the
37261         node (and any children resulting from rewrites that could have occurred
37262         during the analysis that ultimately failed) is not analyzed again.
37263
37264         * exp_ch7.ads (Find_Final_List): Fix misaligned comment.
37265
37266         * exp_dist.adb: Minor comment fix.
37267
37268         * exp_ch4.adb (Expand_N_Allocator): For an allocator whose expected
37269         type is an anonymous access type, no unchecked deallocation of the
37270         allocated object can occur. If the object is controlled, attach it with
37271         a count of 1. This allows attachment to the Global_Final_List, if
37272         no other relevant list is available.
37273         (Get_Allocator_Final_List): For an anonymous access type that is
37274         the type of a discriminant or record component, the corresponding
37275         finalisation list is the one of the scope of the type.
37276
37277 2004-06-25  Ed Schonberg  <schonberg@gnat.com>
37278
37279         * sem_ch3.adb (Replace_Type): When computing the signature of an
37280         inherited subprogram, use the first subtype if the derived type
37281         declaration has no constraint.
37282
37283         * exp_ch6.adb (Add_Call_By_Copy_Code): Check that formal is an array
37284         before applying previous optimization. Minor code cleanup.
37285
37286         * exp_util.adb (Is_Possibly_Unaligned_Slice): If the component is
37287         placed at the beginning of an unpacked record without explicit
37288         alignment, a slice of it will be aligned and does not need a copy when
37289         used as an actual.
37290
37291 2004-06-25  Ed Schonberg  <schonberg@gnat.com>
37292
37293         PR ada/15591
37294         PR ada/15592
37295         * sem_ch8.adb (Attribute_Renaming): Reject renaming if the attribute
37296         reference is written with expressions mimicking parameters.
37297
37298 2004-06-25  Hristian Kirtchev  <kirtchev@gnat.com>
37299
37300         PR ada/15589
37301         * sem_ch3.adb (Build_Derived_Record_Type): Add additional check to
37302         STEP 2a. The constraints of a full type declaration of a derived record
37303         type are checked for conformance with those declared in the
37304         corresponding private extension declaration. The message
37305         "not conformant with previous declaration" is emitted if an error is
37306         detected.
37307
37308 2004-06-25  Vasiliy Fofanov  <fofanov@act-europe.fr>
37309
37310         * g-traceb.ads: Document the need for -E binder switch in the spec.
37311
37312         * g-trasym.ads: Document the need for -E binder switch in the spec.
37313
37314 2004-06-25  Jose Ruiz  <ruiz@act-europe.fr>
37315
37316         * sem_prag.adb: Add handling of pragma Detect_Blocking.
37317
37318         * snames.h, snames.ads, snames.adb: Add entry for pragma
37319         Detect_Blocking.
37320
37321         * s-rident.ads: Change reference to pragma Detect_Blocking.
37322
37323         * targparm.ads, targparm.adb: Allow pragma Detect_Blocking in
37324         system.ads.
37325
37326         * opt.ads (Detect_Blocking): New Boolean variable (defaulted to False)
37327         to indicate whether pragma Detect_Blocking is active.
37328
37329         * par-prag.adb: Add entry for pragma Detect_Blocking.
37330
37331         * rtsfind.adb (RTU_Loaded): Fix the temporary kludge to get past bug
37332         of not handling WITH.
37333         Note that this replaces the previous update which was incorrect.
37334
37335 2004-06-25  Javier Miranda  <miranda@gnat.com>
37336
37337         * sem_ch10.adb (Re_Install_Use_Clauses): Force the installation of the
37338         use-clauses to have a clean environment.
37339
37340         * sem_ch8.adb (Install_Use_Clauses): Addition of a new formal to force
37341         the installation of the use-clauses to stablish a clean environment in
37342         case of compilation of a separate unit; otherwise the call to
37343         use_one_package is protected by the barrier Applicable_Use.
37344
37345         * sem_ch8.ads (Install_Use_Clauses): Addition of a new formal to force
37346         the installation of the use-clauses to stablish a clean environment in
37347         case of compilation of a separate unit.
37348         (End_Use_Clauses): Minor comment cleanup.
37349
37350 2004-06-25  Sergey Rybin  <rybin@act-europe.fr>
37351
37352         * gnat_ugn.texi: Add description of the gnatpp 'files' switch
37353
37354 2004-06-23  Richard Henderson  <rth@redhat.com>
37355
37356         * trans.c (gnat_gimplify_stmt): Update gimplify_type_sizes call.
37357
37358 2004-06-20  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
37359
37360         * decl.c (elaborate_expression, elaborate_expression_1): Arguments
37361         now bool instead of int.
37362         (gnat_to_gnu_entity, elaborate_expression_1): New arg to COMPONENT_REF.
37363         * trans.c (gnu_switch_label_stack): New function.
37364         (gnat_to_gnu, N_Object_Renaming_Declaration): Result is what the
37365         elaboration of renamed entity returns.
37366         (gnat_to_gnu, case N_Case_Statement): Add branches to end label.
37367         (add_decl_stmt): Don't add TYPE_DECL for UNCONSTRAINED_ARRAY_TYPE.
37368         (gnat_gimplify_stmt): Use alloc_stmt_list, not build_empty_stmt.
37369         (gnat_gimplify_stmt, case DECL_STMT): gimplify DECL_SIZE and
37370         DECL_SIZE_UNIT and simplify variable-sized case.
37371         (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Deleted.
37372         Callers changes to call gimplify_type_sizes and gimplify_one_sizepos.
37373         (gnat_stabilize_reference): Add arg to COMPONENT_REF.
37374         (build_unit_elab): Disable for now.
37375         * utils.c (mark_visited): New function.
37376         (pushdecl): Walk tree to call it for global decl.
37377         (update_pointer_to): Update all variants of pointer and ref types.
37378         Add arg to COMPONENT_REF.
37379         (convert): Likewise.
37380         Move check for converting between variants lower down.
37381         * utils2.c (build_simple_component_ref): Add arg to COMPONENT_REF.
37382         (build_allocator): Don't force type of MODIFY_EXPR.
37383         (gnat_mark_addressable, case VAR_DECL): Unconditionally call
37384         put_var_into_stack.
37385
37386 2004-06-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
37387
37388         * ada-tree.def (LOOP_STMT, EXIT_STMT): Update documentation.
37389         * ada-tree.h (EXIT_STMT_LABEL): Renamed from EXIT_STMT_LOOP.
37390         * decl.c (gnat_to_gnu_entity): Also set force_global for imported
37391         subprograms.
37392         * trans.c (gnu_loop_label_stack): Renamed from gnu_loop_stmt_stack;
37393         all callers changed.
37394         (gnat_to_gnu, case N_Loop_Statement, case N_Exit_Statement): Change
37395         the way that EXIT_STMT finds the loop label.
37396         (gnat_gimplify_stmt, case LOOP_STMT, EXIT_STMT): Likewise.
37397         (gnat_gimplify_stmt, case DECL_STMT): Handle variable-sized decls here.
37398         (add_stmt): Use annotate_with_locus insted of setting directly.
37399         (pos_to_construct): Set TREE_PURPOSE of each entry to index.
37400         (gnat_stabilize_reference, case ARRAY_RANGE_REF): Merge with ARRAY_REF.
37401         * utils.c (gnat_install_builtins): Install __builtin_memcmp.
37402         (build_vms_descriptor): Add extra args to ARRAY_REF.
37403         (convert): Use VIEW_CONVERT_EXPR between aggregate types.
37404         * utils2.c (gnat_truthvalue_conversion, case INTEGER_CST, REAL_CST):
37405         New cases.
37406         (build_binary_op): Don't make explicit CONVERT_EXPR.
37407         Add extra rgs to ARRAY_REF.
37408
37409 2004-06-14  Pascal Obry  <obry@gnat.com>
37410
37411         * gnat_ugn.texi: Document relocatable vs. dynamic Library_Kind on
37412         Windows.  Fix minor typo.
37413
37414         * mlib-tgt-mingw.adb: New implementation using the GCC -shared option
37415         which is now supported on Windows. With this implementation using the
37416         Library Project feature is no different on Windows than on UNIX.
37417
37418 2004-06-14  Vincent Celier  <celier@gnat.com>
37419
37420         * makegpr.adb (Compile_Sources): Nothing to do when there are no
37421         non-Ada sources.
37422
37423         * mlib-tgt-vxworks.adb (Library_Exists_For): Remove incorrect comment
37424
37425         * prj-part.adb (Parse_Single_Project): When a duplicate project name is
37426         found, show the project name and the path of the previously parsed
37427         project file.
37428
37429 2004-06-14  Ed Schonberg  <schonberg@gnat.com>
37430
37431         * exp_ch6.adb (Add_Call_By_Copy_Code): For an out-parameter that is an
37432         array, avoid copying the actual before the call.
37433
37434 2004-06-14  Thomas Quinot  <quinot@act-europe.fr>
37435
37436         * g-debpoo.adb: Remove alignment assumptions from GNAT.Debug_Pools.
37437         Instead, allocate memory on worst-case alignment assumptions, and then
37438         return an aligned address within the allocated zone.
37439
37440 2004-06-14  Robert Dewar  <dewar@gnat.com>
37441
37442         * bindgen.adb (Gen_Adainit_Ada): Do not generate external references to
37443         elab entities in predefined units in No_Run_Time_Mode.
37444         (Gen_Adainit_C): Same fix
37445         (Gen_Elab_Calls_Ada): Do not generate calls to elaborate predefined
37446         units in No_Run_Time_Mode
37447         (Gen_Elab_Calls_C): Same fix
37448
37449         * symbols-vms-alpha.adb: Minor reformatting
37450
37451         * g-debpoo.ads: Minor reformatting
37452
37453         * lib.adb (In_Same_Extended_Unit): Version working on node id's
37454
37455         * lib.ads (In_Same_Extended_Unit): Version working on node id's
37456
37457         * lib-xref.adb: Minor cleanup, use new version of In_Same_Extended_Unit
37458         working on nodes.
37459
37460         * make.adb: Minor reformatting
37461
37462         * par-ch12.adb: Minor reformatting
37463
37464         * par-prag.adb: Add dummy entry for pragma Profile_Warnings
37465
37466         * prj-strt.adb: Minor reformatting
37467
37468         * restrict.ads, restrict.adb: Redo handling of profile restrictions to
37469         be more general.
37470
37471         * sem_attr.adb: Minor reformatting
37472
37473         * sem_ch7.adb: Minor reformatting
37474
37475         * sem_elab.adb (Check_A_Call): Deal with problem of calling init proc
37476         for type in the same unit as the object declaration.
37477
37478         * sem_prag.adb (Check_Arg_Is_External_Name): New procedure, allows
37479         static string expressions and not just string literals.
37480         Minor reformatting
37481         (Set_Warning): Reset restriction warning flag for restriction pragma
37482         Implement pragma Profile_Warnings
37483         Implement pragma Profile (Restricted)
37484         Give obolescent messages for old restrictions and pragmas
37485
37486         * snames.h, snames.ads, snames.adb: Add new entry for pragma
37487         Profile_Warnings.
37488
37489         * s-rident.ads: Add declarations for restrictions required by profile
37490         Restricted and profile Ravenscar.
37491
37492         * targparm.ads, targparm.adb: Allow pragma Profile in system.ads
37493
37494         * gnat_ugn.texi: Correct some missing entries in the list of GNAT
37495         configuration pragmas.
37496
37497 2004-06-11  Vincent Celier  <celier@gnat.com>
37498
37499         * mlib-tgt-vms-alpha.adb (Build_Dynamic_Library): Issue switch -R to
37500         gnatsym, when symbol policy is Restricted.
37501
37502         * mlib-tgt-vms-ia64.adb (Build_Dynamic_Library): Issue switch -R to
37503         gnatsym, when symbol policy is Restricted.
37504
37505         * symbols-vms-alpha.adb (Initialize): When symbol policy is Restricted,
37506         read the symbol file.
37507         (Finalize): Fail in symbol policy Restricted if a symbol in the original
37508         symbol file is not in the object files. Do not create a new symbol file
37509         when symbol policy is Restricted.
37510
37511         * gnatbind.adb (Gnatbind): Initialize Snames, because Snames is used
37512         in Scng.
37513
37514         * gnatsym.adb (Parse_Vmd_Line): Process new switch -R for symbol policy
37515         Restricted.
37516         (Usage): Line for new switch -R
37517
37518         * make.adb (Initialize): When the platform is not VMS, add the
37519         directory where gnatmake is invoked in the front of the path, if
37520         gnatmake is invoked with directory information.  Change the Scan_Args
37521         while loop to a for loop.
37522         (Recursive_Compute_Depth): Remove parameter Visited. Improve efficiency:
37523         if Depth is equal or greater than the proposed depth, there is nothing
37524         to do.
37525         (Initialize): Call Recursive_Compute_Depth with initial Depth equal to 1
37526         instead of 0.
37527
37528         * prj.ads: Add new symbol policy Restricted.
37529
37530         * prj-dect.adb (Parse_Case_Construction): Call End_Case_Construction
37531         with the new parameters Check_All_Labels and Case_Location.
37532
37533         * prj-nmsc.adb (Ada_Check): Process new symbol policy Restricted
37534         (Library_Symbol_File needs to be defined).
37535
37536         * prj-strt.adb (End_Case_Construction): New parameters Check_All_Labels
37537         and Case_Location If Check_All_Labels is True, check that all values of
37538         the string type are used, and output warning(s) if they are not.
37539
37540         * prj-strt.ads (End_Case_Construction): New parameters Check_All_Labels
37541         and Case_Location.
37542
37543         * gnat_ugn.texi: Reorder subclauses in menus "Switches for gcc"
37544
37545         * gnat_ugn.texi: Update documentation about the library directory in
37546         Library Projects.
37547
37548         * makegpr.adb (Display_Command): In verbose mode, also display the
37549         value of the CPATH env var, when the compiler is gcc.
37550         (Initialize): Change the Scan_Args while loop to a for loop
37551         (Compile_Individual_Sources): Change directory to object directory
37552         before compilations.
37553
37554         * symbols.ads: New symbol policy Restricted.
37555
37556 2004-06-11  Olivier Hainque  <hainque@act-europe.fr>
37557
37558         * a-except.adb (Raise_After_Setup family): Remove. The responsibility
37559         is now taken care of internally in the Exception_Propagation package
37560         and does not require clients assistance any more.
37561
37562         * a-exexpr.adb (Is_Setup_And_Not_Propagated,
37563         Set_Setup_And_Not_Propagated, and Clear_Setup_And_Not_Propagated): New
37564         functions. Helpers to maintain a predicate required in the handling of
37565         occurrence transfer between tasks.
37566         This is now handled internally and does not require clients assistance
37567         for the setup/propagate separation anymore.
37568         (Setup_Exception, Propagate_Exception): Simplify the Private_Data
37569         allocation strategy, handle the Setup_And_Not_Propagated predicate and
37570         document.
37571
37572         * s-taenca.adb (Check_Exception): Use raise_with_msg instead of
37573         raise_after_setup, now that everything is handled internally within the
37574         setup/propagation engine.
37575
37576 2004-06-11  Hristian Kirtchev  <kirtchev@gnat.com>
37577
37578         * exp_ch6.adb (Expand_Inlined_Call): Add function Formal_Is_Used_Once.
37579         Add additional conditions for the case of an actual being a simple
37580         name or literal. Improve inlining by preventing the generation
37581         of temporaries with a short lifetime (one use).
37582
37583 2004-06-11  Hristian Kirtchev  <kirtchev@gnat.com>
37584
37585         PR ada/15587
37586         * einfo.ads: Minor comment updates for Has_Completion and
37587         E_Constant list of flags.
37588
37589         * sem_ch3.adb (Analyze_Object_Declaration): Full constant declarations
37590         and constant redeclarations now set the Has_Completion flag of their
37591         defining identifiers.
37592
37593         * sem_ch7.adb (Analyze_Package_Spec): Add procedure
37594         Inspect_Deferred_Constant_Completion.
37595         Used to detect private deferred constants that have not been completed
37596         either by a constant redeclaration or pragma Import. Emits error message
37597         "constant declaration requires initialization expression".
37598
37599         * sem_prag.adb (Process_Import_Or_Interface): An Import pragma now
37600         completes a deferred constant.
37601
37602 2004-06-11  Geert Bosch  <bosch@gnat.com>
37603
37604         * eval_fat.adb (Decompose_Int): Fix rounding of negative numbers.
37605
37606         * s-fatgen.adb (Gradual_Scaling): Correct off-by-one error in
37607         calculating exponent for scaling denormal numbers.
37608         (Leading_Part): Properly raise Constraint_Error for zero or negative
37609         Adjustment.
37610         (Remainder): Properly raise Constraint_Error for zero divisor.
37611
37612 2004-06-11  Thomas Quinot  <quinot@act-europe.fr>
37613
37614         * sem_util.adb: Minor reformatting.
37615
37616         * exp_ch2.adb (Expand_Entry_Parameter): Generate an explicit
37617         dereference when accessing the entry parameter record.
37618         (Check_Array_Type): Always check for possible implicit dereference.
37619         (maybe_implicit_dereference): Rename to check_no_implicit_derefence.
37620         Abort if a pointer is still present (denoting that an implicit
37621         dereference was left in the tree by the front-end).
37622
37623         * sem_attr.adb (Expand_Entry_Parameter): Generate an explicit
37624         dereference when accessing the entry parameter record.
37625         (Check_Array_Type): Always check for possible implicit dereference.
37626         (maybe_implicit_dereference): Rename to check_no_implicit_derefence.
37627         Abort if a pointer is still present (denoting that an implicit
37628         dereference was left in the tree by the front-end).
37629
37630 2004-06-11  Emmanuel Briot  <briot@act-europe.fr>
37631
37632         * g-debpoo.adb (Deallocate, Dereference): Add prefix "error:" to error
37633         message, like the compiler itself does. Easier to parse the output.
37634
37635         * g-debpoo.ads: (Allocate, Deallocate, Dereference): Add comments.
37636
37637         * gnat_ugn.texi (gnatxref, gnatfind): Clarify that source names should
37638         be base names, and not includes directories.
37639
37640 2004-06-11  Arnaud Charlet  <charlet@act-europe.fr>
37641
37642         * Makefile.generic ($(EXEC)): Depend on $(OBJECTS), not $(OBJ_FILES),
37643         so that dependencies are properly taken into account by make.
37644
37645 2004-06-11  Arnaud Charlet  <charlet@act-europe.fr>
37646
37647         PR ada/15622
37648         * s-unstyp.ads, s-maccod.ads, sem_ch8.adb, s-auxdec.ads,
37649         exp_intr.adb, s-auxdec-vms_64.ads: Fix typo: instrinsic -> intrinsic
37650
37651 2004-06-11  Jerome Guitton  <guitton@act-europe.fr>
37652
37653         * Makefile.in (install-gnatlib): install target-specific run-time files.
37654
37655         * Make-lang.in: Remove obsolete targets.
37656
37657 2004-06-11  Ed Schonberg  <schonberg@gnat.com>
37658
37659         * par-ch12.adb (P_Generic): Add scope before analyzing subprogram
37660         specification, to catch misuses of program unit names.
37661
37662         * sem_res.adb (Resolve_Type_Conversion): Do not emit warnings on
37663         superfluous conversions in an instance.
37664
37665 2004-06-11  Ed Schonberg  <schonberg@gnat.com>
37666
37667         PR ada/15403
37668         * sem_ch12.adb (Save_References): If operator node has been folded to
37669         enumeration literal, associated_node must be discarded.
37670
37671 2004-06-11  Jose Ruiz  <ruiz@act-europe.fr>
37672
37673         * s-stchop-vxworks.adb: Add required pragma Convention to
37674         Task_Descriptor because it is updated by a C function.
37675
37676 2004-06-08  Arnaud Charlet  <charlet@act-europe.fr>
37677
37678         PR ada/15568
37679         * Makefile.in: Remove target specific SO_OPT on IRIX
37680
37681 2004-06-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
37682
37683         * ada-tree.def (TRANSFORM_EXPR, ALLOCATE_EXPR, USE_EXPR): Deleted.
37684         (GNAT_NOP_EXPR, GNAT_LOOP_ID, EXPR_STMT, NULL_STMT): Likewise.
37685         (BLOCK_STMT, IF_STMT, GOTO_STMT, LABEL_STMT, RETURN_STMT): Likewise.
37686         (ASM_STMT, BREAK_STMT, REGION_STMT,HANDLER_STMT): Likewise.
37687         (STMT_STMT, USE_STMT): New statement codes.
37688         (LOOP_STMT, EXIT_STMT): Make slight semantic changes.
37689         * ada-tree.h: Reflect above changes.
37690         (struct tree_loop_id): Deleted.
37691         (union lang_tree_node, struct lang_decl, struct lang_type):
37692         Now just contains a tree node; update macros using TYPE_LANG_SPECIFIC
37693         and DECL_LANGUAGE_SPECIFIC to reflect these changes.
37694         (DECL_INIT_BY_ASSIGN_P, TRE_LOOP_NODE_ID, TREE_SLOC): Deleted.
37695         (IS_ADA_STMT): New macro.
37696         * decl.c (annotate_decl_with_node): New function.
37697         (gnat_to_gnu_entity): Use it and Sloc_to_locus instead of set_lineno.
37698         (gnat_to_gnu_entity, case object): Remove call to expand CONVERT_EXPR.
37699         Call add_stmt_with_node to do needed assignments.
37700         Add call to update setjmp buffer directly, not via EXPR_STMT.
37701         (maybe_variable): Argment GNAT_NODE deleted.
37702         * gigi.h (maybe_variable): Likewise.
37703         (make_transform, add_stmt_with_node, set_block_for_group): New.
37704         (gnat_gimplify_expr, gnat_expand_body, Sloc_to_locus): Likewise.
37705         (set_block_jmpbuf_decl, get_block_jmpbuf_decl): Likewise.
37706         (discard_file_names, gnu_block_stack, gnat_to_code): Deleted.
37707         (set_lineno, set_lineno_from_sloc): Likewise.
37708         (record_code_position, insert_code_for): Likewise.
37709         (gnat_poplevel): Now returns void.
37710         (end_subprog_body): Now takes argument.
37711         * misc.c (cgraph.h, tree-inline.h): New includes.
37712         (gnat_tree_size, LANG_HOOKS_TREE_SIZE): Deleted.
37713         (gnat_post_options, LANG_HOOKS_POST_OPTIONS): New.
37714         (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Likewise.
37715         (LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_GIMPLIFY_EXPR): Likewise.
37716         (gnat_parse_file): Don't set immediate_size_expand.
37717         Call cgraph functions.
37718         (gnat_expand_expr): Remove most cases.
37719         (record_code_position, insert_code_for): Remove from here.
37720         * trans.c (toplev.h, tree-gimple.h): Now included.
37721         (discard_file_names): Deleted.
37722         (gnu_block_stack, gnu_block_stmt_node, gnu_block_stmt_free_list): Del.
37723         (first_nondeleted_insn, make_expr_stmt_from_rtl): Likewise.
37724         (struct stmt_group, current_stmt_group, stmt_group_free_list): New.
37725         (gnu_stack_free_list, record_cost_position, insert_code_for): Likewise.
37726         (add_cleanup, push_stack, gnat_gimplify_stmt, add_cleanup): Likewise.
37727         (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Likewise.
37728         (gnat_expand_body_1, gnat_gimplify_expr, annotate_with_node): Likewise.
37729         (set_block_for_group, add_stmt_list): Likewise.
37730         (start_stmt_group): Renamed from start_block_stmt.
37731         (end_stmt_group): Likewise, from end_block_stmt.
37732         (build_stmt_group): Likewise, from build_block_stmt, also add arg.
37733         (gigi): Don't set discard_file_names or call set_lineno.
37734         Disallow front end ZCX; call gnat_to_gnu, not gnat_to_code.
37735         (tree_transform): Deleted, now renamed to be gnat_to_gnu.
37736         Numerous changes throughout to reflect new names and complete
37737         function-at-a-time implementation.
37738         (gnat_expand_stmt): Delete or comment out all cases.
37739         (process_inlined_subprograms): Use add_stmt.
37740         (process_decls): Use gnat_to_gnu, not gnat_to_code, and don't
37741         call set_lineno; also remove unneeded block handling.
37742         (process_type): Remove unneeded block handling.
37743         (build_unit_elab): Remove calls to deleted functions.
37744         * utils.c (cgraph.h, tree-inline.h, tree-gimple.h): Now include.
37745         (tree-dump.h): Likewise.
37746         (struct ada_binding_level): Add field jmpbuf_decl.
37747         (gnat_define_builtin, gnat_install_builtins): New.
37748         (gnat_gimplify_function, gnat_finalize): Likewise.
37749         (gnat_poplevel): No longer return BLOCK, set it instead.
37750         Remove code dealing with nested functions.
37751         (gnat_init_decl_processing): Also set size_type_node.
37752         Call gnat_install_builtins.
37753         (create_var_decl): Don't set DECL_INIT_BY_ASSIGN.
37754         (create_subprog_decl): Change handling of inline_flag; set TREE_STATIC.
37755         Remove special-case for "main".
37756         (end_subprog_body): Add arg and rework for tree-ssa.
37757         (convert): Don't use GNAT_NOP_EXPR or look for TRANSFORM_EXPR.
37758         Add case for BOOLEAN_TYPE.
37759         * utils2.c (rtl.h): Now include.
37760         (build_call_raise): Test Debug_Flag_NN directly.
37761         (build_call_alloc_dealloc): Don't use local stack allocation for now.
37762         (gnat_mark_addressable, case GNAT_NOP_EXPR): Deleted.
37763         (gnat_mark_addressable, case VAR_DECL): Handle both early & late cases.
37764
37765 2004-06-07  Robert Dewar  <dewar@gnat.com>
37766
37767         * a-direct.ads, einfo.ads: Minor comment updates
37768
37769         * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
37770         s-taprop-irix-athread.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
37771         s-taprop-dummy.adb, s-taprop-os2.adb, s-taprop-solaris.adb,
37772         s-taprop-vms.adb, s-taprop-mingw.adb, s-taprop-vxworks.adb,
37773         s-taprop-posix.adb, s-taprop.ads, exp_dbug.adb: Minor reformatting.
37774
37775         * s-interr-sigaction.adb: Remove unreferenced variable
37776         (Attached_Interrupts).  Minor reformatting.
37777         Avoid use of variable I (replace by J).
37778
37779         * par-ch10.adb: Fix text of one error message
37780
37781         * checks.adb, checks.ads, cstand.adb, vms_data.ads, errout.ads,
37782         exp_aggr.adb, exp_ch3.adb, exp_ch3.ads, exp_ch5.adb, exp_ch6.adb,
37783         exp_ch9.adb, exp_code.adb, gnat1drv.adb, lib-load.adb, lib-writ.adb,
37784         opt.adb, par.adb, opt.ads, par-ch11.adb, par-ch3.adb, par-ch4.adb,
37785         par-ch5.adb, par-ch6.adb, par-ch8.adb, par-ch9.adb, par-prag.adb,
37786         par-util.adb, scng.adb, sem_aggr.adb, sem_attr.adb, sem_cat.adb,
37787         sem_ch10.adb, sem_ch10.adb, sem_ch11.adb, sem_ch12.adb, sem_ch2.adb,
37788         sem_ch3.adb, sem_ch3.ads, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb,
37789         sem_ch7.adb, sem_ch8.adb, sem_ch9.adb, sem_eval.adb, sem_prag.adb,
37790         sem_res.adb, sem_type.adb, sem_util.adb, sinfo.ads, snames.adb,
37791         snames.ads, snames.h, sprint.adb, switch-c.adb: Modifications for Ada
37792         2005 support.
37793
37794 2004-06-07  Doug Rupp  <rupp@gnat.com>
37795
37796         * mlib-tgt-vms.adb: Rename mlib-tgt-vms.adb mlib-tgt-vms-alpha.adb
37797
37798         * s-vaflop-vms.adb: Rename s-vaflop-vms.adb to s-vaflop-vms-alpha.adb
37799
37800         * mlib-tgt-vms-ia64.adb: New file.
37801
37802         * Makefile.in: Rename mlib-tgt-vms.adb to mlib-tgt-vms-alpha.adb
37803         Add mlib-tgt-vms-ia64.adb
37804         Rename s-vaflop-vms.adb to s-vaflop-vms-alpha.adb.
37805         Move to alpha specific ifeq section.
37806         Add VMS specific versions of symbols.adb
37807         Renaming of 5q vms files.
37808
37809         * 5qsystem.ads renamed to system-vms_64.ads.
37810
37811 2004-06-07  Vincent Celier  <celier@gnat.com>
37812
37813         * a-calend.ads: Add a GNAT Note comment after function Time_Of to
37814         explain that when a time of day corresponding to the non existing hour
37815         on the day switching to DST is specified, Split may return a different
37816         value for Seconds.
37817
37818         * gnatcmd.adb: Add processing of GNAT METRIC (for gnatmetric), similar
37819         to GNAT PRETTY.
37820
37821         * g-os_lib.adb (OpenVMS): New Boolean value imported from System.
37822         (Normalize_Pathname): Only resolve VMS logical names when on VMS.
37823
37824         * mlib-prj.adb (Build_Library): New flag Gtrasymobj_Needed, initialize
37825         to False.
37826         If Gtrasymobj_Needed is True, add the full path of g-trasym.obj to
37827         the linking options.
37828         (Build_Library.Check_Libs): On VMS, if there is a dependency on
37829         g-trasym.ads, set Gtrasymobj_Needed to True.
37830
37831         * prj-attr.adb: Add new package Metrics for gnatmetric
37832
37833         * prj-nmsc.adb (Record_Other_Sources): Put source file names in
37834         canonical case to take into account files with upper case characters on
37835         Windows.
37836         (Ada_Check): Load the reference symbol file name in the name buffer to
37837         check it, not the symbol file name.
37838
37839         * snames.ads, snames.adb: Add standard name Metrics (name of project
37840         file package for gnatmetric).
37841
37842         * vms_conv.ads: Add Metric to Comment_Type
37843
37844         * vms_conv.adb (Initialize): Add component dor Metric in Command_List
37845
37846         * vms_data.ads: Add qualifiers for GNAT METRIC
37847
37848         * makegpr.adb (Link_Executables): Take into account the switches
37849         specified in package Linker of the main project.
37850
37851 2004-06-07  Thomas Quinot  <quinot@act-europe.fr>
37852
37853         * bindgen.adb (Set_Unit_Number): Units is an instance of Table, and so
37854         the index of the last element is Units.Last, not Units.Table'Last
37855         (which is usually not a valid index within the actually allocated
37856         storage for the table).
37857
37858         * exp_ch4.adb (Insert_Dereference_Action): Change predicate that
37859         determines whether to generate a call to a checked storage pool
37860         Dereference action.
37861         Generate such a call only for a dereference that either comes from
37862         source, or is the result of rewriting a dereference that comes from
37863         source.
37864
37865 2004-06-07  Romain Berrendonner  <berrendo@act-europe.fr>
37866
37867         * bindgen.adb (Gen_Output_File): Add support for GAP builds.
37868
37869 2004-06-07  Eric Botcazou  <ebotcazou@act-europe.fr>
37870
37871         (gnat_to_gnu_entity) <E_Array_Subtype>: For multi-dimensional arrays at
37872         file level, elaborate the stride for inner dimensions in alignment
37873         units, not bytes.
37874
37875         * exp_ch5.adb: Correct wrong reference to Component_May_Be_Bit_Aligned
37876         in a comment.
37877
37878 2004-06-07  Javier Miranda  <miranda@gnat.com>
37879
37880         * exp_ch6.adb: Correct wrong modification in previous patch
37881
37882 2004-06-07  Vasiliy Fofanov  <fofanov@act-europe.fr>
37883
37884         * g-trasym.ads: Corrected comment to properly reflect level of support
37885         on VMS.
37886
37887 2004-06-07  Hristian Kirtchev  <kirtchev@gnat.com>
37888
37889         * lib-xref.adb (Generate_Reference): Add nested function Is_On_LHS. It
37890         includes case of a variable referenced on the left hand side of an
37891         assignment, therefore remove redundant code. Variables and prefixes of
37892         indexed or selected components are now marked as referenced on left
37893         hand side. Warnings are now properly emitted when variables or prefixes
37894         are assigned but not read.
37895
37896         * sem_warn.adb (Output_Unreferenced_Messages): Add additional checks to
37897         left hand side referenced variables. Private access types do not
37898         produce the warning "variable ... is assigned but never read".
37899         Add also additional checks to left hand side referenced variables.
37900         Aliased, renamed objects and access types do not produce the warning
37901         "variable ... is assigned but never read" since other entities may read
37902         the memory location.
37903
37904 2004-06-07  Jerome Guitton  <guitton@act-europe.fr>
37905
37906         * Makefile.in: In the powerpc/vxworks-specific section, restore
37907         EXTRA_GNATRTL_NONTASKING_OBJS and EXTRA_GNATRTL_TASKING_OBJS (removed
37908         by mistake).
37909
37910 2004-06-07  Ed Schonberg  <schonberg@gnat.com>
37911
37912         * sem_ch4.adb (Remove_Abstract_Operations): Refine the removal of
37913         predefined operators.
37914         Removes spurious type errors from g-trasym-vms.adb.
37915
37916         * sem_res.adb (Rewrite_Renamed_Operator): If intrinsic operator is
37917         distinct from the operator appearing in the source, call appropriate
37918         routine to insert conversions when needed, and complete resolution of
37919         node.
37920         (Resolve_Intrinsic_Operator): Fix cut-and-paste bug on transfer of
37921         interpretations for rewritten right operand.
37922         (Set_Mixed_Mode_Operand): Handle properly a universal real operand when
37923         the other operand is overloaded and the context is a type conversion.
37924
37925 2004-06-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
37926
37927         * ada-tree.def (BLOCK_STMT): Now has two operands.
37928         (BREAK_STMT): New.
37929
37930         * ada-tree.h: (BLOCK_STMT_BLOCK): New macro.
37931
37932         * gigi.h: (gnat_poplevel): Now returns a tree.
37933
37934         * trans.c (end_block_stmt): Add arg; all callers changed.
37935         (tree_transform, case N_Case_Statement): Make a BLOCK_STMT for a WHEN.
37936         (start_block_stmt): Clear BLOCK_STMT_BLOCK.
37937         (add_stmt): Set TREE_TYPE.
37938         (gnat_expand_stmt, case BLOCK_STMT): Handle BLOCK_STMT_BLOCK.
37939         (gnat_expand_stmt, case BREAK_STMT): New case.
37940
37941         * utils.c (gnat_poplevel): Return a BLOCK, if we made one.
37942
37943 2004-06-07  Jose Ruiz  <ruiz@act-europe.fr>
37944
37945         * s-stchop.adsm s-stchop.adb, s-stchop-vxworks.adb: Remove the
37946         procedure Set_Stack_Size that is not needed.
37947
37948 2004-06-07  Sergey Rybin  <rybin@act-europe.fr>
37949
37950         * gnat_ugn.texi: Clarify the case when non-standard naming scheme is
37951         used for gnatpp input file and for the files upon which it depends
37952
37953 2004-06-07  Ben Brosgol  <brosgol@gnat.com>
37954
37955         * gnat_ugn.texi: Wordsmithing of "GNAT and Libraries" chapter
37956
37957 2004-06-07  Arnaud Charlet  <charlet@act-europe.fr>
37958
37959         * gnatvsn.ads: Bump version numbers appropriately.
37960         Add new build type.
37961
37962 2004-06-07  Pascal Obry  <obry@gnat.com>
37963
37964         * gnat_ugn.texi: Improve comments about imported names and link names
37965         on Windows. Add a note about the requirement to use -k gnatdll's option
37966         when working with a DLL which has stripped stdcall symbols (no @nn
37967         suffix).
37968
37969 2004-05-27  Vincent Celier  <celier@gnat.com>
37970
37971         * vms_data.ads: Add new GNAT PRETTY qualifiers /NO_BACKUP and
37972         COMMENTS_LAYOUT=UNTOUCHED
37973
37974         * symbols-vms.adb, symbols-vms-alpha.adb: Renamed symbols-vms.adb to
37975         symbols-vms-alpha.adb
37976
37977 2004-05-27  Thomas Quinot  <quinot@act-europe.fr>
37978
37979         * sem.ads: Clarify documentation on checks suppression.
37980
37981         * einfo.ads (Is_Known_Non_Null): Minor comment typo fix and rephrasing.
37982
37983 2004-05-27  Ed Schonberg  <schonberg@gnat.com>
37984
37985         * sem_util.adb (Is_Descendent_Of): Examine properly all ancestors in
37986         the case of multiple derivations.
37987         (Is_Object_Reference): For a selected component, verify that the prefix
37988         is itself an object and not a value.
37989
37990         * sem_ch12.adb (Same_Instantiated_Constant): New name for
37991         Same_Instantiated_Entity.
37992         (Same_Instantiated_Variable): Subsidiary to
37993         Check_Formal_Package_Instance, to recognize actuals for in-out generic
37994         formals that are obtained from a previous formal package.
37995         (Instantiate_Subprogram_Body): Emit proper error when
37996         generating code and the proper body of a stub is missing.
37997
37998         * sem_ch4.adb (Remove_Address_Interpretations): If the operation still
37999         has a universal interpretation, do the disambiguation here.
38000
38001         * exp_ch4.adb (Expand_N_Type_Conversion,
38002         Expand_N_Unchecked_Type_Conversion): Special handling when target type
38003         is Address, to avoid typing anomalies when Address is a visible integer
38004         type.
38005
38006         * exp_ch6.adb (Expand_N_Subprogram_Body): Use Is_Descendent_Of_Address
38007         to determine whether a subprogram should not be marked Pure, even when
38008         declared in a pure package.
38009
38010 2004-05-27  Jose Ruiz  <ruiz@act-europe.fr>
38011
38012         * gnat_ugn.texi: Replace pragma Ravenscar by pragma Profile.
38013
38014         * gnat_rm.texi: Replace Max_Entry_Queue_Depth by Max_Entry_Queue_Length
38015         Document No_Dynamic_Attachment, that supersedes No_Dynamic_Interrupts.
38016         Update the documentation about the Ravenscar profile, following the
38017         definition found in AI-249.
38018
38019         * sem_prag.adb: Use FIFO_Within_Priorities and Ceiling_Locking when
38020         setting the Profile (Ravenscar). This must be done in addition to
38021         setting the required restrictions.
38022
38023         * rtsfind.ads: Add the set of operations defined in package
38024         Ada.Interrupts.
38025
38026         * exp_ch6.adb: Check whether we are violating the No_Dynamic_Attachment
38027         restriction.
38028
38029 2004-05-27  Eric Botcazou  <ebotcazou@act-europe.fr>
38030
38031         lang-specs.h: Always require -c or -S and always redirect to /dev/null
38032         if -gnatc or -gnats is passed.
38033
38034 2004-05-27  Hristian Kirtchev  <kirtchev@gnat.com>
38035
38036         * sem_prag.adb (Sig_Flags): A Pragma_Unchecked_Union does not count as
38037         a significant reference. Warnings are now properly emitted when a
38038         discriminated type is not referenced.
38039
38040         * lib-xref.adb (Generate_Reference): A deferred constant completion,
38041         record representation clause or record type discriminant does not
38042         produce a reference to its corresponding entity. Warnings are now
38043         properly emitted when deferred constants and record types are not
38044         referenced.
38045
38046 2004-05-27  Geert Bosch  <bosch@gnat.com>
38047
38048         * Makefile.in: Use long version of libm routines on ia64 gnu/linux.
38049         Fixes ACATS Annex G tests.
38050
38051 2004-05-27  Robert Dewar  <dewar@gnat.com>
38052
38053         * rtsfind.adb (RTU_Loaded): Temporary kludge to get past bug of not
38054         handling WITH
38055
38056 2004-05-27  Arnaud Charlet  <charlet@act-europe.fr>
38057
38058         * s-interr.adb (Server_Task): Take into account case of early return
38059         from sigwait under e.g. linux.
38060
38061 2004-05-27  Sergey Rybin  <rybin@act-europe.fr>
38062
38063         * gnat_ugn.texi: Add description for the new gnatpp options:
38064          -rnb - replace the original source without creating its backup copy
38065          -c0 - do not format comments
38066
38067 2004-05-24  Geert Bosch  <bosch@gnat.com>
38068
38069         * a-numaux-x86.adb (Reduce): Reimplement using an approximation of Pi
38070         with 192 bits of precision, sufficient to reduce a double-extended
38071         arguments X with a maximum relative error of T'Machine_Epsilon, for X
38072         in -2.0**32 .. 2.0**32.
38073         (Cos, Sin):  Always reduce arguments of 1/4 Pi or larger, to prevent
38074         reduction by the processor, which only uses a 68-bit approximation of
38075         Pi.
38076         (Tan): Always reduce arguments and compute function either using
38077         the processor's fptan instruction, or by dividing sin and cos as needed.
38078
38079 2004-05-24  Doug Rupp  <rupp@gnat.com>
38080
38081         * adaint.c (__gnat_readdir): Cast CRTL function retun value to avoid
38082         gcc error on 32/64 bit VMS.
38083
38084 2004-05-24  Olivier Hainque  <hainque@act-europe.fr>
38085
38086         * init.c (__gnat_error_handler): Handle EEXIST as EACCES for SIGSEGVs,
38087         since this is what we get for stack overflows although not documented
38088         as such.
38089         Document the issues which may require adjustments to our signal
38090         handlers.
38091
38092 2004-05-24  Ed Schonberg  <schonberg@gnat.com>
38093
38094         * inline.adb (Add_Scope_To_Clean): Do not add cleanup actions to the
38095         enclosing dynamic scope if the instantiation is within a generic unit.
38096
38097 2004-05-24  Arnaud Charlet  <charlet@act-europe.fr>
38098
38099         * exp_dbug.ads: Fix typo.
38100
38101         * Makefile.in: s-osinte-linux-ia64.ads was misnamed.
38102         Rename it to its proper name: system-linux-ia64.ads
38103         (stamp-gnatlib1): Remove extra target specific run time files when
38104         setting up the rts directory.
38105
38106 2004-05-24  Javier Miranda  <miranda@gnat.com>
38107
38108         * einfo.ads, einfo.adb (Limited_Views): Removed.
38109         (Limited_View): New attribute that replaces the previous one. It is
38110         now a bona fide package with the limited-view list through the
38111         first_entity and first_private attributes.
38112
38113         * sem_ch10.adb (Install_Private_With_Clauses): Give support to
38114         limited-private-with clause.
38115         (Install_Limited_Withed_Unit): Install the private declarations of a
38116         limited-private-withed package. Update the installation of the shadow
38117         entities according to the new structure (see Build_Limited_Views)
38118         (Build_Limited_Views): Replace the previous implementation of the
38119         limited view by a package entity that references the first shadow
38120         entity plus the first shadow private entity (required for limited-
38121         private-with clause)
38122         (New_Internal_Shadow_Entity): Code cleanup.
38123         (Remove_Limited_With_Clause): Update the implementation to undo the
38124         new work carried out by Build_Limited_Views.
38125         (Build_Chain): Complete documentation.
38126         Replace Ada0Y by Ada 0Y in comments
38127         Minor reformating
38128
38129         * sem_ch3.adb (Array_Type_Declaration): In case of anonymous access
38130         types the level of accessibility depends on the enclosing type
38131         declaration.
38132
38133         * sem_ch8.adb (Find_Expanded_Name): Fix condition to detect shadow
38134         entities. Complete documentation of previous change.
38135
38136 2004-05-24  Robert Dewar  <dewar@gnat.com>
38137
38138         * namet.adb: Minor reformatting
38139         Avoid use of name I (replace by J)
38140         Minor code restructuring
38141
38142         * sem_ch6.adb: Minor reformatting
38143
38144         * lib-writ.adb: Do not set restriction as active if this is a
38145         Restriction_Warning case.
38146
38147         * sem_prag.adb: Reset restriction warning flag if real pragma
38148         restriction encountered.
38149
38150         * s-htable.adb: Minor reformatting
38151         Change rotate count to 3 in Hash (improves hash for small strings)
38152
38153         * 5qsystem.ads: Add comments for type Address (no literals allowed).
38154
38155         * gnat_ugn.texi: Add new section of documentation "Code Generation
38156         Control", which describes the use of -m switches.
38157
38158 2004-05-24  Eric Botcazou  <ebotcazou@act-europe.fr>
38159
38160         trans.c (tree_transform) <N_Identifier>: Do the dereference directly
38161         through the DECL_INITIAL for renamed variables.
38162
38163 2004-05-24  Arnaud Charlet  <charlet@act-europe.fr>
38164
38165         * s-osinte-linux-ia64.ads: Renamed system-linux-ia64.ads
38166
38167 2004-05-19  Joel Brobecker  <brobecker@gnat.com>
38168
38169         * exp_dbug.ads: Correct comments concerning handling of overloading,
38170         since we no longer use $ anymore.
38171
38172 2004-05-19  Sergey Rybin  <rybin@act-europe.fr>
38173
38174         * sem_ch10.adb (Optional_Subunit): When loading a subunit, do not
38175         ignore errors if ASIS_Mode is set. This prevents creating ASIS trees
38176         with illegal subunits.
38177
38178 2004-05-19  Ed Schonberg  <schonberg@gnat.com>
38179
38180         * sem_ch6.adb (Check_Following_Pragma): When compiling a subprogram
38181         body with front-end inlining enabled, check whether an inline pragma
38182         appears immediately after the body and applies to it.
38183
38184         * sem_prag.adb (Cannot_Inline): Emit warning if front-end inlining is
38185         enabled and the pragma appears after the body of the subprogram.
38186
38187 2004-05-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
38188
38189         Part of function-at-a-time conversion
38190
38191         * misc.c (adjust_decl_rtl): Deleted.
38192         (LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK):
38193         Define.
38194
38195         * gigi.h: (adjust_decl_rtl, kept_level_p, set_block): Deleted.
38196         (add_decl_stmt, add_stmt, block_has_vars): New functions.
38197         (gnat_pushlevel, gnat_poplevel): Renamed from pushlevel and poplevel.
38198
38199         * decl.c (elaborate_expression, maybe_pad_type): Call add_decl_stmt
38200         when making a decl.
38201         (gnat_to_gnu_entity): Likewise.
38202         Use add_stmt to update setjmp buffer.
38203         Set TREE_ADDRESSABLE instead of calling put_var_into_stack and
38204         flush_addressof.
38205         No longer call adjust_decl_rtl.
38206         (DECL_INIT_BY_ASSIGN_P): New macro.
38207         (DECL_STMT_VAR): Likewise.
38208
38209         * trans.c (gigi): Call start_block_stmt to make the outermost
38210         BLOCK_STMT.
38211         (gnat_to_code, gnu_to_gnu, tree_transform, process_decls, process_type):
38212         Call start_block_stmt and end_block_stmt temporarily.
38213         Use gnat_expand_stmt instead of expand_expr_stmt.
38214         (add_decl_stmt): New function.
38215         (tree_transform): Call it.
38216         (add_stmt): Also emit initializing assignment for DECL_STMT if needed.
38217         (end_block_stmt): Set type and NULL_STMT.
38218         (gnat_expand_stmt): Make recursize call instead of calling
38219         expand_expr_stmt.
38220         (gnat_expand_stmt, case DECL_STMT): New case.
38221         (set_lineno_from_sloc): Do nothing if global.
38222         (gnu_block_stmt_node, gnu_block_stmt_free_list): New variables.
38223         (start_block_stmt, add_stmt, end_block_stmt): New functions.
38224         (build_block_stmt): Call them.
38225         (gnat_to_code): Don't expand NULL_STMT.
38226         (build_unit_elab): Rename pushlevel and poplevel to gnat_* and change
38227         args.
38228         (tree_transform): Likewise.
38229         (tree_transform, case N_Null_Statement): Return NULL_STMT.
38230         (gnat_expand_stmt, case NULL_STMT): New case.
38231         (gnat_expand_stmt, case IF_STMT): Allow nested IF_STMT to have no
38232         IF_STMT_TRUE.
38233
38234         * utils2.c (gnat_mark_addressable, case VAR_DECL): Do not set
38235         TREE_ADDRESSABLE.
38236
38237         * utils.c (create_var_decl): Do not call expand_decl or
38238         expand_decl_init.
38239         Set TREE_ADDRESSABLE instead of calling gnat_mark_addressable.
38240         Set DECL_INIT_BY_ASSIGN_P when needed and do not generate MODIFY_EXPR
38241         here.
38242         (struct e_stack): Add chain_next to GTY.
38243         (struct binding_level): Deleted.
38244         (struct ada_binding_level): New struct.
38245         (free_block_chain): New.
38246         (global_binding_level, clear_binding_level): Deleted.
38247         (global_bindings_p): Rework to see if no chain.
38248         (kept_level_p, set_block): Deleted.
38249         (gnat_pushlevel): Renamed from pushlevel and extensive reworked to use
38250         new data structure and work directly on BLOCK node.
38251         (gnat_poplevel): Similarly.
38252         (get_decls): Look at BLOCK_VARS.
38253         (insert_block): Work directly on BLOCK node.
38254         (block_has_var): New function.
38255         (pushdecl): Rework for new binding structures.
38256         (gnat_init_decl_processing): Rename and rework calls to pushlevel and
38257         poplevel.
38258         (build_subprog_body): Likewise.
38259         (end_subprog_body): Likewise; also set up BLOCK in DECL_INITIAL.
38260
38261         * ada-tree.def (DECL_STMT, NULL_STMT): New codes.
38262
38263         * ada-tree.h: (DECL_INIT_BY_ASSIGN_P): New macro.
38264         (DECL_STMT_VAR): Likewise.
38265
38266 2004-05-17  Robert Dewar  <dewar@gnat.com>
38267
38268         * restrict.ads, restrict.adb (Process_Restriction_Synonym): New
38269         procedure
38270
38271         * sem_prag.adb (Analyze_Pragma, case Restrictions): Cleanup handling
38272         of restriction synonyums by using
38273         Restrict.Process_Restriction_Synonyms.
38274
38275         * snames.ads, snames.adb: Add entries for Process_Restriction_Synonym
38276
38277         * s-restri.ads (Tasking_Allowed): Correct missing comment
38278
38279         * s-rident.ads: Add entries for restriction synonyms
38280
38281         * ali.adb: Fix some problems with badly formatted ALI files that can
38282         result in infinite loops.
38283
38284         * s-taprop-lynxos.adb, s-tpopsp-lynxos.adb, s-taprop-tru64.adb,
38285         s-tpopsp-posix-foreign.adb, s-taprop-irix.adb, s-interr-sigaction.adb,
38286         s-taprop-irix-athread.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
38287         s-taprop-dummy.adb, s-interr-dummy.adb, s-taprop-os2.adb,
38288         s-taprop-solaris.adb, s-tpopsp-solaris.adb, s-asthan-vms.adb,
38289         s-inmaop-vms.adb, s-interr-vms.adb, s-taprop-vms.adb,
38290         s-tpopde-vms.adb, s-taprop-mingw.adb, s-interr-vxworks.adb,
38291         s-taprop-vxworks.adb, s-tpopsp-vxworks.adb, s-taprop-posix.adb,
38292         s-tpopsp-posix.adb, s-tratas-default.adb, a-dynpri.adb,
38293         a-tasatt.adb, a-taside.adb, a-taside.ads, exp_attr.adb,
38294         exp_ch9.adb, g-thread.adb, rtsfind.ads, sem_attr.adb,
38295         s-interr.adb, s-interr.ads, s-soflin.ads, s-taasde.adb,
38296         s-taasde.ads, s-taenca.adb, s-taenca.ads, s-taprop.ads,
38297         s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads,
38298         s-tasini.adb, s-tasini.ads, s-taskin.adb, s-taskin.ads,
38299         s-tasque.adb, s-tasque.ads, s-tasren.adb, s-tasren.ads,
38300         s-tassta.adb, s-tassta.ads, s-tasuti.adb, s-tasuti.ads,
38301         s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
38302         s-tpoben.adb, s-tpobop.adb, s-tpobop.ads, s-tporft.adb,
38303         s-tposen.adb, s-tposen.ads, s-tratas.adb, s-tratas.ads: Change Task_ID
38304         to Task_Id (minor cleanup).
38305
38306 2004-05-17  Vincent Celier  <celier@gnat.com>
38307
38308         * g-os_lib.adb (Normalize_Pathname.Final_Value): Remove trailing
38309         directory separator.
38310
38311         * prj-proc.adb (Recursive_Process): Inherit attribute Languages from
38312         project being extended, if Languages is not declared in extending
38313         project.
38314
38315 2004-05-17  Javier Miranda  <miranda@gnat.com>
38316
38317         * sem_ch10.adb (Install_Limited_Withed_Unit): Do not install the
38318         limited view of a visible sibling.
38319
38320 2004-05-14  Robert Dewar  <dewar@gnat.com>
38321
38322         * gnat_ugn.texi: Minor change to -gnatS documentation
38323
38324         * sprint.adb: Remove some instances of Assert (False) and for this
38325         purpose replace them by output of a ??? string.
38326
38327         * checks.adb, exp_aggr.adb, sem_elim.adb: Remove useless pragma
38328         Assert (False).
38329
38330         * lib-writ.adb, lib-load.adb, lib.ads, lib.adb: Remove Dependent_Unit
38331         flag processing. This was suppressing required dependencies in
38332         No_Run_Time mode and is not needed since the binder does not generate
38333         references for things in libgnat anyway.
38334
38335         * sem_ch3.adb (Access_Type_Declaration): Reorganize code to avoid GCC
38336         warning.
38337
38338 2004-05-14  Thomas Quinot  <quinot@act-europe.fr>
38339
38340         * gnat_ugn.texi: Document AIX-specific issue with initialization of
38341         resolver library.
38342
38343         * exp_ch4.adb (Insert_Dereference_Action): Do not generate dereference
38344         action for the case of an actual parameter in an init proc call.
38345
38346 2004-05-14  Ed Schonberg  <schonberg@gnat.com>
38347
38348         * sem_ch4.adb (Analyze_Selected_Component): If prefix is a protected
38349         subtype, check visible entities in base type.
38350
38351         * exp_ch7.adb (Clean_Simple_Protected_Objects): Do not generate cleanup
38352         actions if the object is a renaming.
38353
38354         * sem_ch12.adb (Same_Instantiated_Entity): Predicate for
38355         Check_Formal_Package_Instance, to determine more precisely when the
38356         formal and the actual denote the same entity.
38357
38358 2004-05-14  Javier Miranda  <miranda@gnat.com>
38359
38360         * par-ch10.adb (P_Context_Clause): Complete documentation on AI-262
38361
38362         * sem_ch10.adb (Analyze_With_Clause): After analyzed, the entity
38363         corresponding to a private_with must be removed from visibility; it
38364         will be made visible later, just before we analyze the private part of
38365         the package.
38366         (Check_Private_Child_Unit): Allow private_with clauses in public
38367         siblings.
38368         (Install_Siblings): Make visible the private entities of private-withed
38369         siblings.
38370         (Install_Withed_Unit): Do not install the private withed unit if we
38371         are compiling a package declaration and the Private_With_OK flag was
38372         not set by the caller. These declarations will be installed later,
38373         just before we analyze the private part of the package.
38374
38375         * sem_ch3.adb (Analyze_Object_Declaration): In case of errors detected
38376         during the evaluation of the expression that initializes the object,
38377         decorate it with the expected type to avoid cascade errors.
38378         Code cleanup.
38379
38380         * sem_ch6.adb (Analyze_Subprogram_Body): If we are compiling a library
38381         subprogram we have to install the private_with clauses after its
38382         specification has been analyzed (as documented in AI-262.TXT).
38383
38384         * sem_ch8.adb (Has_Private_With): New function. Determines if the
38385         current compilation unit has a private with on a given entity.
38386         (Find_Direct_Name): Detect the Beaujolais problem described in
38387         AI-262.TXT
38388
38389         * sem_utils.ads, sem_util.adb (Is_Ancestor_Package): New function. It
38390         provides the functionality of the function Is_Ancestor that was
38391         previously available in sem_ch10. It has been renamed to avoid
38392         overloading.
38393
38394         * sprint.adb (Sprint_Node_Actual): Print limited_with clauses
38395
38396 2004-05-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
38397
38398         * utils.c (build_vms_descriptor): Use SImode pointers.
38399
38400 2004-05-14  Vasiliy Fofanov  <fofanov@act-europe.fr>
38401
38402         * gnat_ugn.texi: Revised chapter "GNAT and Libraries".
38403
38404 2004-05-14  GNAT Script  <nobody@gnat.com>
38405
38406         * Make-lang.in: Makefile automatically updated
38407
38408 2004-05-14  Arnaud Charlet  <charlet@act-europe.fr>
38409
38410         Renaming of target specific files for clarity
38411
38412         * Makefile.in: Rename GNAT target specific files.
38413
38414         * 31soccon.ads, 31soliop.ads 35soccon.ads, 3asoccon.ads,
38415         3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3psoccon.ads,
38416         3ssoccon.ads, 3ssoliop.ads, 3veacodu.adb, 3vexpect.adb,
38417         3vsoccon.ads, 3vsocthi.adb, 3vsocthi.ads, 3vtrasym.adb,
38418         3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads, 3wsoliop.ads,
38419         3zsoccon.ads, 3zsocthi.adb, 3zsocthi.ads, 41intnam.ads,
38420         42intnam.ads, 45intnam.ads, 4aintnam.ads, 4cintnam.ads,
38421         4gintnam.ads, 4hexcpol.adb, 4hintnam.ads, 4lintnam.ads,
38422         4nintnam.ads, 4ointnam.ads, 4onumaux.ads, 4pintnam.ads,
38423         4sintnam.ads, 4vcaldel.adb, 4vcalend.adb, 4vcalend.ads,
38424         4vintnam.ads, 4wcalend.adb, 4wexcpol.adb, 4wintnam.ads,
38425         4zintnam.ads, 4znumaux.ads, 4zsytaco.adb, 4zsytaco.ads,
38426         51osinte.adb, 51osinte.ads, 51system.ads,
38427         52osinte.adb, 52osinte.ads, 53osinte.ads, 54osinte.ads,
38428         55osinte.adb, 55osinte.ads, 55system.ads, 56osinte.adb,
38429         56osinte.ads, 56system.ads, 56taprop.adb, 56taspri.ads,
38430         56tpopsp.adb, 57system.ads, 58system.ads,
38431         5amastop.adb, 5aml-tgt.adb, 5aosinte.adb, 5aosinte.ads,
38432         5asystem.ads, 5ataprop.adb, 5atasinf.ads, 5ataspri.ads,
38433         5atpopsp.adb, 5avxwork.ads, 5bml-tgt.adb, 5bosinte.adb,
38434         5bosinte.ads, 5bsystem.ads, 5cosinte.ads, 5csystem.ads,
38435         5dsystem.ads, 5esystem.ads, 5fintman.adb, 5fosinte.adb,
38436         5fosinte.ads, 5fsystem.ads, 5ftaprop.adb, 5ftasinf.ads,
38437         5ginterr.adb, 5gintman.adb, 5gmastop.adb, 5gml-tgt.adb,
38438         5gosinte.ads, 5gproinf.adb, 5gproinf.ads, 5gsystem.ads,
38439         5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads, 5gtpgetc.adb,
38440         5hml-tgt.adb, 5hosinte.adb, 5hosinte.ads, 5hparame.ads,
38441         5hsystem.ads, 5htaprop.adb, 5htaspri.ads, 5htraceb.adb,
38442         5iosinte.adb, 5iosinte.ads, 5itaprop.adb, 5itaspri.ads,
38443         5ksystem.ads, 5kvxwork.ads, 5lml-tgt.adb, 5losinte.ads,
38444         5lparame.adb, 5lsystem.ads, 5msystem.ads, 5mvxwork.ads,
38445         5ninmaop.adb, 5nintman.adb, 5nosinte.ads, 5nsystem.ads,
38446         5ntaprop.adb, 5ntaspri.ads, 5ointerr.adb, 5omastop.adb,
38447         5oosinte.adb, 5oosinte.ads, 5oosprim.adb, 5oparame.adb,
38448         5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5posinte.ads,
38449         5posprim.adb, 5psystem.ads, 5pvxwork.ads, 5sintman.adb,
38450         5sml-tgt.adb, 5sosinte.adb, 5sosinte.ads, 5sosprim.adb,
38451         5sparame.adb, 5ssystem.ads, 5staprop.adb, 5stasinf.adb,
38452         5stasinf.ads, 5staspri.ads, 5stpopsp.adb, 5svxwork.ads,
38453         5tosinte.ads, 5usystem.ads, 5vasthan.adb, 5vdirval.adb,
38454         5vinmaop.adb, 5vinterr.adb, 5vintman.adb, 5vintman.ads,
38455         5vmastop.adb, 5vml-tgt.adb, 5vosinte.adb, 5vosinte.ads,
38456         5vosprim.adb, 5vosprim.ads, 5vparame.ads, 5vsymbol.adb,
38457         5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads, 5vtpopde.adb,
38458         5vtpopde.ads, 5vtraent.adb, 5vtraent.ads, 5vvaflop.adb,
38459         5wdirval.adb, 5wgloloc.adb, 5wintman.adb, 5wmemory.adb,
38460         5wml-tgt.adb, 5wosinte.ads, 5wosprim.adb, 5wsystem.ads,
38461         5wtaprop.adb, 5wtaspri.ads, 5xparame.ads, 5xsystem.ads,
38462         5xvxwork.ads, 5yparame.ads, 5ysystem.ads, 5zinterr.adb,
38463         5zintman.adb, 5zintman.ads, 5zml-tgt.adb, 5zosinte.adb,
38464         5zosinte.ads, 5zosprim.adb, 5zparame.ads, 5zstchop.adb,
38465         5zsystem.ads, 5ztaprop.adb, 5ztaspri.ads, 5ztfsetr.adb,
38466         5ztpopsp.adb, 6vcpp.adb, 6vcstrea.adb, 6vinterf.ads,
38467         7sinmaop.adb, 7sintman.adb, 7sosinte.adb, 7sosprim.adb,
38468         7staprop.adb, 7staspri.ads, 7stfsetr.adb, 7stpopsp.adb,
38469         7straceb.adb, 7straces.adb, 7strafor.adb, 7strafor.ads,
38470         7stratas.adb, 86numaux.adb, 86numaux.ads: Replaced by files below.
38471
38472         * a-caldel-vms.adb, a-calend-mingw.adb, a-calend-vms.adb,
38473         a-calend-vms.ads, a-dirval-mingw.adb, a-dirval-vms.adb,
38474         a-excpol-abort.adb, a-excpol-interix.adb, a-intnam-aix.ads,
38475         a-intnam-dummy.ads, a-intnam-freebsd.ads, a-intnam-hpux.ads,
38476         a-intnam-interix.ads, a-intnam-irix.ads, a-intnam-linux.ads,
38477         a-intnam-lynxos.ads, a-intnam-mingw.ads, a-intnam-os2.ads,
38478         a-intnam-solaris.ads, a-intnam-tru64.ads, a-intnam-unixware.ads,
38479         a-intnam-vms.ads, a-intnam-vxworks.ads, a-numaux-libc-x86.ads,
38480         a-numaux-vxworks.ads, a-numaux-x86.adb, a-numaux-x86.ads,
38481         a-sytaco-vxworks.adb, a-sytaco-vxworks.ads, g-eacodu-vms.adb,
38482         g-expect-vms.adb, g-soccon-aix.ads, g-soccon-freebsd.ads,
38483         g-soccon-hpux.ads, g-soccon-interix.ads, g-soccon-irix.ads,
38484         g-soccon-mingw.ads, g-soccon-solaris.ads, g-soccon-tru64.ads,
38485         g-soccon-unixware.ads, g-soccon-vms.adb, g-soccon-vxworks.ads,
38486         g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vms.adb,
38487         g-socthi-vms.ads, g-socthi-vxworks.adb, g-socthi-vxworks.ads,
38488         g-soliop-mingw.ads, g-soliop-solaris.ads, g-soliop-unixware.ads,
38489         g-trasym-vms.adb, i-cpp-vms.adb, i-cstrea-vms.adb,
38490         interfac-vms.ads, mlib-tgt-aix.adb, mlib-tgt-hpux.adb,
38491         mlib-tgt-irix.adb, mlib-tgt-linux.adb, mlib-tgt-mingw.adb,
38492         mlib-tgt-solaris.adb, mlib-tgt-tru64.adb, mlib-tgt-vms.adb,
38493         mlib-tgt-vxworks.adb, s-asthan-vms.adb, s-gloloc-mingw.adb,
38494         s-inmaop-dummy.adb, s-inmaop-posix.adb, s-inmaop-vms.adb,
38495         s-interr-dummy.adb, s-interr-sigaction.adb, s-interr-vms.adb,
38496         s-interr-vxworks.adb, s-intman-dummy.adb, s-intman-irix.adb,
38497         s-intman-irix-athread.adb, s-intman-mingw.adb, s-intman-posix.adb,
38498         s-intman-solaris.adb, s-intman-vms.adb, s-intman-vms.ads,
38499         s-intman-vxworks.adb, s-intman-vxworks.ads, s-mastop-irix.adb,
38500         s-mastop-tru64.adb, s-mastop-vms.adb, s-mastop-x86.adb,
38501         s-memory-mingw.adb, s-osinte-aix.adb, s-osinte-aix.ads,
38502         s-osinte-aix-fsu.ads, s-osinte-dummy.ads, s-osinte-freebsd.adb,
38503         s-osinte-freebsd.ads, s-osinte-fsu.adb, s-osinte-hpux.ads,
38504         s-osinte-hpux-dce.adb, s-osinte-hpux-dce.ads, s-osinte-interix.ads,
38505         s-osinte-irix.adb, s-osinte-irix.ads, s-osinte-irix-athread.ads,
38506         s-osinte-linux.ads, s-osinte-linux-fsu.ads, s-osinte-linux-ia64.ads,
38507         s-osinte-lynxos-3.adb, s-osinte-lynxos-3.ads, s-osinte-lynxos.adb,
38508         s-osinte-lynxos.ads, s-osinte-mingw.ads, s-osinte-os2.adb,
38509         s-osinte-os2.ads, s-osinte-posix.adb, s-osinte-solaris.adb,
38510         s-osinte-solaris.ads, s-osinte-solaris-fsu.ads,
38511         s-osinte-solaris-posix.ads, s-osinte-tru64.adb, s-osinte-tru64.ads,
38512         s-osinte-unixware.adb, s-osinte-unixware.ads, s-osinte-vms.adb,
38513         s-osinte-vms.ads, s-osinte-vxworks.adb,
38514         s-osinte-vxworks.ads, s-osprim-mingw.adb,
38515         s-osprim-os2.adb, s-osprim-posix.adb, s-osprim-solaris.adb,
38516         s-osprim-unix.adb, s-osprim-vms.adb, s-osprim-vms.ads,
38517         s-osprim-vxworks.adb, s-parame-ae653.ads, s-parame-hpux.ads,
38518         s-parame-linux.adb, s-parame-os2.adb, s-parame-solaris.adb,
38519         s-parame-vms.ads, s-parame-vms-restrict.ads, s-parame-vxworks.ads,
38520         s-proinf-irix-athread.adb, s-proinf-irix-athread.ads,
38521         s-stchop-vxworks.adb, s-taprop-dummy.adb,
38522         s-taprop-hpux-dce.adb, s-taprop-irix.adb,
38523         s-taprop-irix-athread.adb, s-taprop-linux.adb, s-taprop-lynxos.adb,
38524         s-taprop-mingw.adb, s-taprop-os2.adb, s-taprop-posix.adb,
38525         s-taprop-solaris.adb, s-taprop-tru64.adb, s-taprop-vms.adb,
38526         s-taprop-vxworks.adb, s-tasinf-irix.ads, s-tasinf-irix-athread.adb,
38527         s-tasinf-irix-athread.ads, s-tasinf-solaris.adb, s-tasinf-solaris.ads,
38528         s-tasinf-tru64.ads, s-taspri-dummy.ads, s-taspri-hpux-dce.ads,
38529         s-taspri-linux.ads, s-taspri-lynxos.ads, s-taspri-mingw.ads,
38530         s-taspri-os2.ads, s-taspri-posix.ads, s-taspri-solaris.ads,
38531         s-taspri-tru64.ads, s-taspri-vms.ads, s-taspri-vxworks.ads,
38532         s-tfsetr-default.adb, s-tfsetr-vxworks.adb, s-tpopde-vms.adb,
38533         s-tpopde-vms.ads, s-tpopsp-lynxos.adb, s-tpopsp-posix.adb,
38534         s-tpopsp-posix-foreign.adb, s-tpopsp-solaris.adb, s-tpopsp-vxworks.adb,
38535         s-traceb-hpux.adb, s-traceb-mastop.adb, s-traces-default.adb,
38536         s-traent-vms.adb, s-traent-vms.ads, s-trafor-default.adb,
38537         s-trafor-default.ads, s-tratas-default.adb, s-vaflop-vms.adb,
38538         s-vxwork-alpha.ads, s-vxwork-m68k.ads, s-vxwork-mips.ads,
38539         s-vxwork-ppc.ads, s-vxwork-sparcv9.ads, s-vxwork-xscale.ads,
38540         symbols-vms.adb, system-aix.ads, system-freebsd-x86.ads,
38541         system-hpux.ads, system-interix.ads, system-irix-n32.ads,
38542         system-irix-o32.ads, system-linux-x86_64.ads,
38543         system-linux-x86.ads, system-lynxos-ppc.ads, system-lynxos-x86.ads,
38544         system-mingw.ads, system-os2.ads, system-solaris-sparc.ads,
38545         system-solaris-sparcv9.ads, system-solaris-x86.ads, system-tru64.ads,
38546         system-unixware.ads, system-vms.ads, system-vms-zcx.ads,
38547         system-vxworks-alpha.ads, system-vxworks-m68k.ads,
38548         system-vxworks-mips.ads, system-vxworks-ppc.ads,
38549         system-vxworks-sparcv9.ads, system-vxworks-xscale.ads: Replace files
38550         above.
38551
38552 2004-05-13  Zack Weinberg  <zack@codesourcery.com>
38553
38554         * trans.c (gnat_stabilize_reference_1): Remove case 'b'.
38555
38556 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
38557
38558         Merge from tree-ssa-20020619-branch.
38559
38560         * config-lang.in (boot_language, build_by_default): Set
38561         to no.
38562         * utils.c (unchecked_convert): Use OEP_ONLY_CONST.
38563         (max_size): Add static chain op for call_expr.
38564
38565 2004-05-12  Richard Sandiford  <rsandifo@redhat.com>
38566
38567         PR target/15331
38568         * 5gmastop.adb (Roff): Choose between '4' and '0', not '4' and ' '.
38569
38570 2004-05-11  Roger Sayle  <roger@eyesopen.com>
38571
38572         * utils.c (max_size): Use MIN_EXPR to find the minimum value of a
38573         COND_EXPR.
38574
38575 2004-05-10  Doug Rupp  <rupp@gnat.com>
38576
38577         * 5qsystem.ads: Remove Short_Address subtype declaration. Moved to
38578         system.aux_dec.
38579
38580         * s-auxdec.ads: Add Short_Address subtype (moved here from System).
38581
38582         * Makefile.in: [VMS]: Add translation for 5qauxdec.ads.
38583
38584         * init.c: [VMS] Macroize LIB$ calls for IA64 and Alpha.
38585         Fixes undefined symbols in IA64 gnatlib.
38586
38587         * 5vinmaop.adb: Reference s-auxdec for Short_Address.
38588
38589         * 5xsystem.ads, 5vsystem.ads: Back out last change (addition of subtype
38590         Short_Address). This will be moved to system.auxdec.
38591
38592 2004-05-10  Thomas Quinot  <quinot@act-europe.fr>
38593
38594         * sem_util.adb: Replace test for presence of a node that is always
38595         present with a call to Discard_Node.
38596
38597         * sem_ch10.adb (Analyze_Compilation_Unit): Remove superfluous call to
38598         Analyze on the library unit node after generation of distribution stub
38599         constructs.  The call was a no-op because Unit_Node has already been
38600         Analyzed, and the tree fragments for the distribution stubs are
38601         analyzed as they are inserted in Exp_Dist.
38602         Update comment regarding to distribution stubs to reflect that we
38603         do not generate stub in separate files anymore.
38604
38605         * einfo.ads: Clarify the fact that a tagged private type has the
38606         E_Record_Type_With_Private Ekind.
38607
38608         * erroutc.adb: Minor reformatting
38609
38610         * erroutc.ads (Max_Msg_Length): Increase to cover possible larger
38611         values if line length is increased using -gnatyM (noticed during code
38612         reading).
38613
38614         * eval_fat.adb: Minor reformatting
38615         Put spaces around exponentiation operator
38616
38617 2004-05-10  Ed Schonberg  <schonberg@gnat.com>
38618
38619         PR ada/15005
38620         * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): If prefix
38621         has been rewritten as an explicit dereference, retrieve type of
38622         original node to check for possibly unconstrained record type.
38623
38624 2004-05-10  Ed Schonberg  <schonberg@gnat.com>
38625
38626         * exp_ch7.adb (Check_Visibly_Controlled): If given operation is not
38627         overriding, use the operation of the parent unconditionally.
38628
38629         * sem_ch4.adb (Remove_Address_Interpretations): Remove address
38630         operation when either operand is a literal, to avoid further
38631         ambiguities.
38632
38633         * sem_ch6.adb (New_Overloaded_Entity): If new entity is inherited and
38634         overridden by a previous explicit declaration, mark the previous entity
38635         as overriding.
38636
38637         * sem_disp.adb (Check_Dispatching_Operation): New predicate
38638         Is_Visibly_Controlled, to determine whether a declaration of a
38639         primitive control operation for a derived type overrides an inherited
38640         one. Add warning if the explicit declaration does not override.
38641
38642 2004-05-10  Vincent Celier  <celier@gnat.com>
38643
38644         * gnatls.adb (Gnatls): Initialize Snames, to avoid assertion error in
38645         some cases when the sources are no longer present.
38646
38647         * make.adb (Collect_Arguments): Fail if an external source, not part
38648         of any project need to be compiled, when switch -x has not been
38649         specified.
38650
38651         * makeusg.adb: Document new switch -x
38652
38653         * opt.ads (External_Unit_Compilation_Allowed): New Boolean flag,
38654         defaulted to False.
38655
38656         * switch-m.adb (Scan_Make_Switches): New switch -x
38657
38658         * vms_data.ads: Add VMS qualifier /NON_PROJECT_UNIT_COMPILATION for
38659         gnatmake switch -x.
38660
38661         * gnat_ugn.texi: Document new gnatmake switch -x
38662
38663 2004-05-10  Eric Botcazou  <ebotcazou@act-europe.fr>
38664
38665         * misc.c (gnat_init_options): Set flag_zero_initialized_in_bss to 0.
38666
38667         * utils.c (create_var_decl): Do not modify the DECL_COMMON flag.
38668         (process_attributes): Likewise.
38669
38670 2004-05-10  Joel Brobecker  <brobecker@gnat.com>
38671
38672         * s-inmaop.ads: Fix spelling mistake in one of the comments.
38673
38674 2004-05-10  Robert Dewar  <dewar@gnat.com>
38675
38676         * gnat_ugn.texi: Document that for config pragma files, the maximum
38677         line length is always 32767.
38678
38679         * gnat_rm.texi: For pragma Eliminate, note that concatenation of string
38680         literals is now allowed.
38681
38682         * gnat-style.texi: Remove statement about splitting long lines before
38683         an operator rather than after, since we do not follow this rule at all.
38684         Clarify rule (really lack of rule) for spaces around exponentiation
38685
38686         * sem_elim.adb: Allow concatenation of string literals as well as a
38687         single string literal for pragma arguments.
38688
38689         * sem_prag.ads, sem_prag.adb: (Is_Config_Static_String): New function
38690
38691         * a-textio.adb (Terminate_Line): Do not add line feed if nothing
38692         written for append case.
38693
38694         * frontend.adb: Changes to avoid checking max line length in config
38695         pragma files.
38696
38697         * g-os_lib.ads: Minor reformatting
38698
38699         * mlib-utl.adb: Do not define Max_Line_Length locally (definition was
38700         wrong in any case. Instead use standard value. Noticed during code
38701         reading.
38702
38703         * opt.ads (Max_Line_Length): New field, used to implement removal of
38704         limitation on length of lines when scanning config pragma files.
38705
38706         * osint.ads, prj-dect.adb, prj-strt.adb, prj-tree.adb,
38707         makeutl.ads, makeutl.adb: Minor reformatting
38708
38709         * scn.adb: Do not check line length while scanning config pragma files
38710         Do not check line length while scanning out license information
38711
38712         * scng.adb: Changes to avoid line length checks while parsing config
38713         pragma files.
38714
38715 2004-05-10  GNAT Script  <nobody@gnat.com>
38716
38717         * Make-lang.in: Makefile automatically updated
38718
38719 2004-05-05  Arnaud Charlet  <charlet@act-europe.fr>
38720
38721         * osint.adb (Find_Program_Name): Fix handling of VMS version
38722         number.
38723
38724 2004-05-05  Emmanuel Briot  <briot@act-europe.fr>
38725
38726         * g-os_lib.ads (Invalid_Time): New constant
38727
38728         * adaint.h, adaint.c (__gnat_file_time_name, __gnat_file_time_fd): Now
38729         return OS_Time instead of time_t to match what is imported by Ada.
38730         Now return -1 if the file doesn't exist, instead of a random value
38731
38732 2004-05-05  Robert Dewar  <dewar@gnat.com>
38733
38734         * usage.adb: Add line for -gnatR?s switch
38735
38736         * sem_ch13.adb, exp_ch2.adb: Minor reformatting
38737
38738         * g-regpat.ads, g-regpat.adb: Add documentation on handling of Size
38739         and for Match (Data_First, Data_last)
38740
38741         * lib-writ.adb (Write_With_Lines): Ensure that correct index number is
38742         written when we are dealing with multi-unit files.
38743
38744 2004-05-05  Jerome Guitton  <guitton@act-europe.fr>
38745
38746         * Makefile.in: Remove unused targets and variables.
38747
38748 2004-05-05  Vincent Celier  <celier@gnat.com>
38749
38750         * switch-m.adb: New gnatmake switch -eI
38751
38752         * vms_data.ads: Add VMS equivalents of new gnatclean swith -innn and
38753         of new gnatmake switch -eInnn.
38754
38755         * makegpr.adb: Take into account new parameters Index and Src_Index in
38756         Prj.Util.
38757
38758         * clean.adb: Implement support for multi-unit sources, including new
38759         switch -i.
38760
38761         * gnatcmd.adb (GNATCmd): Call Prj.Util.Value_Of with new parameter
38762         Src_Index.
38763
38764         * make.ads, make.adb (Insert_Q): New parameter Index, defaulted to 0
38765         (Extract_From_Q): New out parameter Index
38766         (Mark, Is_Marked): Subprograms moved to Makeutl
38767         (Switches_Of): New parameter Source_Index
38768         (Add_Switch): New parameter Index
38769         (Check): New parameter Source_Index
38770         (Collect_Arguments): New parameter Source_Index
38771         (Collect_Arguments_And_Compile): New parameter Source_Index
38772         (Compile): New parameter Source_Index
38773         Put subprograms in alphabetical order
38774         Add support for multi-source sources, including in project files.
38775
38776         * makeutl.ads, makeutl.adb (Unit_Index_Of): New function
38777         (Mark, Is_Marked, Delete_All_Marks): New subprograms, moved from
38778         Make.
38779
38780         * makeusg.adb: New gnatmake switch -eInnn
38781
38782         * mlib-prj.adb (Build_Library): Add new parameter Src_Index to call to
38783         Prj.Util.Value_Of.
38784
38785         * opt.ads (Main_Index): New variable, defaulted to 0.
38786
38787         * osint.ads, osinte.adb (Add_File): New parameter Index
38788         (Current_Source_Index): New function
38789
38790         * prj.adb: Take into account new components Index and Src_Index
38791
38792         * prj.ads (String_Element): New component Index
38793         (Variable_Value): New component Index
38794         (Array_Element): New component Src_Index
38795
38796         * prj-attr.adb: Indicate that optional index may be specified for
38797         attributes Main, Executable, Spec, Body and some of Switches.
38798
38799         * prj-attr.ads (Attribute_Kind): New values for optional indexes
38800         (Attribute_Record): New component Optional_Index
38801
38802         * prj-com.ads (File_Name_Data): New component Index
38803
38804         * prj-dect.adb (Parse_Attribute_Declaration): Process optional index
38805
38806         * prj-env.adb (Put): Output optional index
38807
38808         * prj-makr.adb: Put indexes for multi-unit sources in SFN pragmas and
38809         attributes Spec and Body.
38810
38811         * prj-nmsc.adb: Process optional indexes
38812
38813         * prj-pp.adb: Ouput "at" for optional indexes
38814
38815         * prj-proc.adb: Take into account optional indexes
38816
38817         * prj-strt.ads, prj-strt.adb (Terms): New Boolean parameter
38818         Optional_Index. For string literal,
38819         process optional index when Optional_Index is True.
38820         (Parse_Expresion): New Boolean parameter Optional_Index
38821
38822         * prj-tree.ads, prj-tree.adb (Source_Index_Of): New function
38823         (Set_Source_Index_Of): New procedure
38824
38825         * prj-util.adb (Executable_Of, Value_Of): Take into account optional
38826         index.
38827
38828         * prj-util.ads (Executable_Of): New parameter Index
38829         (Value_Of (Name_Id, Array_Element_Id) returning Variable_Value):
38830         New parameter Src_Index, defaulted to 0.
38831
38832 2004-05-05  Ed Schonberg  <schonberg@gnat.com>
38833
38834         PR ada/15257
38835         * sem_ch3.adb (Access_Definition): If this is an access parameter
38836         whose designated type is imported through a limited_with clause, do
38837         not add the enclosing subprogram to the list of private dependents of
38838         the type.
38839
38840 2004-05-05  Ed Schonberg  <schonberg@gnat.com>
38841
38842         PR ada/15258
38843         * sem_ch6.adb (Base_Types_Match): True if one type is imported through
38844         a limited_with clause, and the other is its non-limited view.
38845
38846 2004-05-05  Thomas Quinot  <quinot@act-europe.fr>
38847
38848         * cstand.adb (Create_Standard): Initialize Stand.Boolean_Literals.
38849
38850         * exp_attr.adb, exp_ch5.adb, exp_ch9.adb, exp_disp.adb,
38851         exp_fixd.adb, sem_attr.adb, sem_dist.adb, sem_util.adb: Use
38852         Stand.Boolean_Literals to produce references to entities
38853         Standard_False and Standard_True from compile-time computed boolean
38854         values.
38855
38856         * stand.ads (Boolean_Literals): New variable, provides the entity
38857         values for False and True, for use by the expander.
38858
38859 2004-05-05  Doug Rupp  <rupp@gnat.com>
38860
38861         * 5vinmaop.adb, 5[vx]system.ads: Add Short_Address subtype
38862         5vinmaop.adb: Unchecked convert Short_Address vice Address
38863
38864         * adaint.c, raise.c: Caste CRTL function return value
38865         to avoid gcc error on 32/64 bit IVMS.
38866
38867         * Makefile.in [VMS]: Use iar archiver if host = Alpha/VMS and
38868         target = IA64/VMS.
38869
38870         * init.c[VMS]: Only call Alpha specific __gnat_error_prehandler IN_RTS.
38871
38872         * 5qsystem.ads (Address): Declare as Long_Integer
38873         (Short_Address): Declare as 32 bit subtype of Address
38874         Declare  abstract address operations to avoid gratuitous ambiguities.
38875
38876 2004-05-05  Jose Ruiz  <ruiz@act-europe.fr>
38877
38878         * gnat_rm.texi: Use the new restriction Simple_Barriers (AI-249)
38879         instead of the old Boolean_Entry_Barriers.
38880         Ditto for No_Task_Attributes_Package instead of No_Task_Attributes.
38881
38882 2004-05-05  GNAT Script  <nobody@gnat.com>
38883
38884         * Make-lang.in: Makefile automatically updated
38885
38886 2004-05-03  Arnaud Charlet  <charlet@act-europe.fr>
38887
38888         * 50system.ads, 59system.ads, s-thread.ads: Removed, no longer used.
38889
38890 2004-05-03  Olivier Hainque  <hainque@act-europe.fr>
38891
38892         PR ada/15152
38893         * exp_ch2.adb (Expand_Current_Value): Leave Machine_Code Asm arguments
38894         alone. Replacing object references by literals is inappropriate in a
38895         so low level context.
38896
38897 2004-05-03  Arnaud Charlet  <charlet@act-europe.fr>
38898
38899         * a-exexpr.adb: Add comments
38900
38901 2004-05-03  Joel Brobecker  <brobecker@gnat.com>
38902
38903         * a-tags.adb (Tag_Table): Add Index_Check pragma Suppress. Allows us to
38904         declare the Ancestor_Tags array in Type_Specific_Data with a small size
38905         without risking a bounds check error when accessing one of its
38906         components.
38907         (Type_Specific_Data): Define Ancestor_Tags as a small array.
38908         This prevents us from hitting a limitation during the debug info
38909         generation when using stabs.
38910
38911         * a-tags.adb (Dispatch_Table): Define the Prims_Ptr component as a
38912         small array.
38913         This prevents us from hitting a limitation during the debug info
38914         generation when using stabs.
38915
38916 2004-05-03  Eric Botcazou  <ebotcazou@act-europe.fr>
38917
38918         lang-specs.h: Remove -gnatz* from specs.
38919
38920 2004-05-03  Vincent Celier  <celier@gnat.com>
38921
38922         * gprmake.adb, makegpr.ads, makegpr.adb: New files.
38923
38924         * Make-lang.in, Makefile.in: Add gprmake
38925
38926 2004-05-03  Thomas Quinot  <quinot@act-europe.fr>
38927
38928         * sem_aggr.adb: Fix typo in comment.
38929
38930 2004-05-03  Robert Dewar  <dewar@gnat.com>
38931
38932         * make.adb: Minor reformatting
38933
38934         * rtsfind.ads, rtsfind.adb: (RTU_Loaded): New function
38935
38936         * sem_attr.adb (Eval_Attribute, case Type_Class): Fix check for address
38937         so that it works when address is not a private type.
38938
38939         * sem_ch13.adb (Check_Expr_Constants, case N_Integer_Literal): Deal
38940         properly with rewritten unchecked conversions. This prevents
38941         order-of-elaboration issues that can otherwise arise.
38942         (Minimum_Size): Don't check size of access types under VMS
38943
38944         * sem_ch4.adb (Remove_Address_Interpretation): New circuit to remove
38945         interpretations of integer literals as type System.Address.
38946
38947         * sem_util.ads, sem_util.adb (Is_Descendent_Of_Address): New function
38948         (Is_Descendent_Of): New function
38949
38950 2004-05-03  Jose Ruiz  <ruiz@act-europe.fr>
38951
38952         * sem_prag.adb: Boolean_Entry_Barriers is a synonym of Simple_Barriers.
38953         Max_Entry_Queue_Depth is a synonym of Max_Entry_Queue_Length.
38954         No_Dynamic_Interrupts is a synonym of No_Dynamic_Attachment.
38955
38956         * sem_res.adb: Use the new restriction Max_Entry_Queue_Length instead
38957         of the old Max_Entry_Queue_Depth.
38958
38959         * snames.adb: Boolean_Entry_Barriers is a synonym of Simple_Barriers.
38960         Max_Entry_Queue_Depth is a synonym of Max_Entry_Queue_Length
38961         No_Dynamic_Interrupts is a synonym of No_Dynamic_Attachment
38962
38963         * snames.ads: New entry for proper handling of Boolean_Entry_Barriers.
38964         New entry for proper handling of Max_Entry_Queue_Depth.
38965         New entry for proper handling of No_Dynamic_Interrupts.
38966
38967         * s-rident.ads: Adding restriction Simple_Barriers (AI-00249) that
38968         supersedes the GNAT specific restriction Boolean_Entry_Barriers.
38969         Adding restriction Max_Entry_Queue_Length (AI-00249) that supersedes
38970         the GNAT specific restriction Max_Entry_Queue_Depth.
38971         Adding restriction No_Dynamic_Attachment (AI-00249) that supersedes
38972         the GNAT specific restriction No_Dynamic_Interrupts.
38973
38974         * restrict.ads, restrict.adb: Use the new restriction Simple_Barriers
38975         instead of the old Boolean_Entry_Barriers.
38976         Use the new restriction No_Dynamic_Attachment instead of the old
38977         No_Dynamic_Interrupts.
38978
38979         * exp_ch9.adb: Check restriction Simple_Barriers (AI-00249) that
38980         supersedes the GNAT specific restriction Boolean_Entry_Barriers.
38981
38982         * gnatbind.adb: Use the new restriction Max_Entry_Queue_Length instead
38983         of the old Max_Entry_Queue_Depth.
38984
38985 2004-05-03  GNAT Script  <nobody@gnat.com>
38986
38987         * Make-lang.in: Makefile automatically updated
38988
38989 2004-04-29  Ed Schonberg  <schonberg@gnat.com>
38990
38991         * checks.adb (Enable_Range_Check): If the prefix of an index component
38992         is an access to an unconstrained array, perform check unconditionally.
38993
38994 2004-04-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
38995
38996         * decl.c (gnat_to_gnu_field): Also call make_packable_type if
38997         Component_Clause.
38998
38999 2004-04-29  Olivier Hainque  <hainque@act-europe.fr>
39000
39001         * init.c (__gnat_install_handler, __gnat_error_handler): Remove
39002         alternate stack setting. There was no support for the tasking cases
39003         and the changes eventually caused a number of side-effect failures in
39004         the non-tasking case too.
39005
39006 2004-04-29  Eric Botcazou  <ebotcazou@act-europe.fr>
39007
39008         lang-specs.h: Redirect output to /dev/null if -gnatc or -gnatz or
39009         -gnats is passed.
39010
39011 2004-04-29  Vincent Celier  <celier@gnat.com>
39012
39013         * make.adb (Gnatmake): Increase max size of argument array for
39014         gnatbind for the potential addition of -F.
39015         If there are Stand-Alone Library projects, invoke gnatbind with -F to
39016         be sure that elaboration flags will be checked.
39017
39018         * switch-c.adb: Correct call to Scan_Pos for -gnateI
39019
39020 2004-04-29  Thomas Quinot  <quinot@act-europe.fr>
39021
39022         * sem_warn.adb (Check_References): Move '<access-variable> may be
39023         null' warning out of under Warn_On_No_Value_Assigned.
39024
39025 2004-04-29  Ed Falis  <falis@gnat.com>
39026
39027         * gnat_ugn.texi: Fixed texi error
39028
39029 2004-04-29  Robert Dewar  <dewar@gnat.com>
39030
39031         * sem_ch4.adb (Remove_Abstract_Operations): Unconditionally remove
39032         abstract operations if they come from predefined files.
39033
39034         * gnat_rm.texi: Fix bad doc for pragma Elaboration_Checks (should be
39035         Dynamic, not RM).
39036
39037         * s-addope.adb: Correct obvious error in mod function
39038
39039 2004-04-28  Andrew W. Reynolds  <awreynolds@mac.com>
39040
39041         * Makefile.in: Add target pairs for powerpc darwin*
39042         tasking support.
39043
39044         * a-intnam-darwin.ads, s-osinte-darwin.adb,
39045         s-osinte-darwin.ads, system-darwin-ppc.ads: New files.
39046
39047 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
39048
39049         * Makefile.in: Add target macro definitions for s390*-linux*.
39050         * system-linux-s390.ads: New file.
39051         * system-linux-s390x.ads: New file.
39052
39053 2004-04-28  Joseph S. Myers  <jsm@polyomino.org.uk>
39054
39055         * gnat_ugn.texi: Correct argument to @setfilename.
39056
39057 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
39058
39059         * a-exexpr.adb (Unwind_Word): New data type.
39060         (Unwind_Exception): Use it as type of Private1 and Private2.
39061
39062         * raise.c (db_action_for): Fix debug printf.
39063
39064 2004-04-27  Ed Schonberg  <schonberg@gnat.com>
39065
39066         * a-wtmoio.ads: Formal type must be a modular type, not a signed
39067         integer type.
39068
39069 2004-04-27  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
39070
39071         * decl.c (gnat_to_gnu_entity, case object): Call
39072         __builtin_update_setjmp_buf.
39073
39074         * gigi.h (update_setjmp_buf): Deleted.
39075         (ADT_update_setjmp_buf_decl, update_setjmp_buf_decl): New.
39076
39077         * misc.c: (update_setjmp_buf): Deleted.
39078
39079         * trans.c (gnat_to_gnu): Call do_pending_stack_adjust and emit_queue
39080         around block of RTL.
39081
39082         * utils.c (init_gigi_decls): Initialize update_setjmp_buf.
39083
39084 2004-04-26  Thomas Quinot  <quinot@act-europe.fr>
39085
39086         * sem_dist.adb, exp_dist.adb: When constructing a RAS value for a local
39087         subprogram for which no pragma All_Calls_Remote applies, store the
39088         address of the real subprogram in the underlying record type, so local
39089         dereferences do not go through the PCS.
39090
39091 2004-04-26  Robert Dewar  <dewar@gnat.com>
39092
39093         * i-c.ads: Add some type qualifications to avoid ambiguities when
39094         compiling with s-auxdec.ads and a non-private address type.
39095
39096 2004-04-26  Arnaud Charlet  <charlet@act-europe.fr>
39097
39098         * Makefile.rtl: Fix error in previous check-in:
39099         Add s-addope.o to non tasking object list (rather than tasking object
39100         list).
39101
39102 2004-04-26  Javier Miranda  <miranda@gnat.com>
39103
39104         * sem_aggr.adb: Fix typo in comments
39105         (Resolve_Aggr_Expr): Propagate the type to the nested aggregate.
39106         Required to check the null-exclusion attribute.
39107
39108         * sem_attr.adb (Resolve_Attribute): Check the accessibility level in
39109         case of anonymous access types in record and array components. For a
39110         component definition the level is the same of the enclosing composite
39111         type.
39112
39113         * sem_ch3.adb (Analyze_Component_Declaration): In case of components
39114         that are anonymous access types the level of accessibility depends on
39115         the enclosing type declaration. In order to have this information, set
39116         the scope of the anonymous access type to the enclosing record type
39117         declaration.
39118         (Array_Type_Declaration): In case of components that are anonymous
39119         access types the level of accessibility depends on the enclosing type
39120         declaration. In order to have this information, set the scope of the
39121         anonymous access type to the enclosing array type declaration.
39122
39123         * sem_ch3.adb (Array_Type_Declaration): Set the scope of the anonymous
39124         access type.
39125
39126         * sem_ch8.adb (Analyze_Object_Renaming): Add check to verify that
39127         renaming of anonymous access-to-constant types allowed if and only if
39128         the renamed object is access-to-constant.
39129
39130         * sem_util.adb (Type_Access_Level): In case of anonymous access types
39131         that are component_definition or discriminants of a nonlimited type,
39132         the level is the same as that of the enclosing component type.
39133
39134 2004-04-26  Sergey Rybin  <rybin@act-europe.fr>
39135
39136         * sem_elim.adb: Some minor code reorganization from code reading. Fix
39137         misprint in the function name (File_Name_Match).
39138
39139 2004-04-23  Laurent Guerby  <laurent@guerby.net>
39140
39141         * Makefile.in: Remove RANLIB_TEST, use -$(RANLIB) including after
39142         install.
39143
39144 2004-04-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
39145
39146         * Make-lang.in (GNATBIND_OBJS): Add s-addope.o.
39147
39148 2004-04-23  Emmanuel Briot  <briot@act-europe.fr>
39149
39150         * adaint.c (__gnat_try_lock): No longer requires that the parent
39151         directory be writable, the directory itself is enough.
39152         (gnat_is_absolute_path): Change profile, so that the call from
39153         GNAT.OS_Lib can be made more efficient.
39154
39155         * adaint.h (gnat_is_absolute_path): Change profile, so that the call
39156         from GNAT.OS_Lib can be made more efficient.
39157
39158         * g-os_lib.adb (Is_Absolute_Path): More efficient implementation, avoid
39159         one copy of the file name. Found by code reading.
39160
39161 2004-04-23  Vincent Celier  <celier@gnat.com>
39162
39163         * gnat_ugn.texi: Add documentation for gnatmake switch -eL
39164         Correct documentation on gnatmake switches transmitted to the compiler
39165
39166         * ali.ads: Minor comment fix
39167
39168 2004-04-23  Javier Miranda  <miranda@gnat.com>
39169
39170         * sem_ch6.adb: (Confirming Types): Code cleanup
39171
39172         * decl.c (gnat_to_gnu_entity): Give support to anonymous access to
39173         subprogram types: E_Anonymous_Access_Subprogram_Type and
39174         E_Anonymous_Access_Protected_Subprogram_Type.
39175
39176 2004-04-23  Thomas Quinot  <quinot@act-europe.fr>
39177
39178         * sem_dist.adb: Add a new paramter to the RAS_Access TSS indicating
39179         whether a pragma All_Calls_Remote applies to the subprogram on which
39180         'Access is taken.
39181         No functional change is introduced by this revision; the new parameter
39182         will be used to allow calls to local RCI subprograms to be optimized
39183         to not use the PCS in the case where no pragma All_Calls_Remote applies,
39184         as is already done in the PolyORB implementation of the DSA.
39185
39186         * exp_dist.adb: Add a new paramter to the RAS_Access TSS indicating
39187         whether a pragma All_Calls_Remote applies to the subprogram on which
39188         'Access is taken.
39189         No functional change is introduced by this revision; the new parameter
39190         will be used to allow calls to local RCI subprograms to be optimized
39191         to not use the PCS in the case where no pragma All_Calls_Remote applies,
39192         as is already done in the PolyORB implementation of the DSA.
39193
39194 2004-04-23  Robert Dewar  <dewar@gnat.com>
39195
39196         * Makefile.rtl: Add entry for s-addope.o in run time library list
39197         * Make-lang.in: Add entry for s-addope.o to GNAT1 objects
39198         * s-addope.ads, s-addope.adb: New files.
39199
39200         * s-carsi8.adb, s-carun8.adb, s-casi16.adb, s-casi32.adb,
39201         s-casi64.adb, s-caun16.adb, s-caun32.adb, s-caun64.adb,
39202         s-finimp.adb, s-geveop.adb, s-stoele.adb: Modifications to allow
39203         System.Address to be non-private and signed.
39204
39205         * sem_elim.adb: Minor reformatting (fairly extensive)
39206         Some minor code reorganization from code reading
39207         Add a couple of ??? comments
39208
39209 2004-04-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
39210
39211         * trans.c (tree_transform, build_unit_elab): Don't call getdecls.
39212         (tree_transform, case N_If_Statement): Remove non-determinism.
39213
39214         * utils.c (begin_subprog_body): Just set DECL_CONTEXT in PARM_DECL.
39215
39216 2004-04-23  Sergey Rybin  <rybin@act-europe.fr>
39217
39218         * gnat_rm.texi: Small fixes in the changes made in the 'pragma
39219         Eliminate' section.
39220
39221         * snames.ads, snames.adb: Remove Name_Homonym_Number (Homonym_Number is
39222         no longer used as a parameter name for Eliminate pragma).
39223
39224 2004-04-22  Laurent Guerby  <laurent@guerby.net>
39225
39226         PR optimization/14984
39227         PR optimization/14985
39228         * trans.c (gigi): Fix non determinism leading to bootstrap
39229         comparison failures.
39230
39231 2004-04-21  Pascal Obry  <obry@gnat.com>
39232
39233         * adaint.c (__gnat_portable_spawn): Quote first argument (argv[0])
39234         passed to spawnvp() to properly handle program pathname with spaces on
39235         Win32.
39236
39237 2004-04-21  Emmanuel Briot  <briot@act-europe.fr>
39238
39239         * g-debpoo.adb (Print_Info): Avoid extra work if Display_Slots is False.
39240         (Allocate, Deallocate, Free_Physically): Make sure the tasks are
39241         unlocked in case of exceptions.
39242
39243 2004-04-21  Joel Brobecker  <brobecker@gnat.com>
39244
39245         * gigi.h (get_target_no_dollar_in_label): Remove extern declaration.
39246         This function does not exist anymore.
39247
39248 2004-04-21  Thomas Quinot  <quinot@act-europe.fr>
39249
39250         * gnatbind.adb, gnatlink.adb: Update name of imported C symbol.
39251
39252         * link.c: Move variables to the __gnat name space.
39253
39254         * Makefile.in: list link.o explicitly when needed.
39255
39256         * mlib.adb: Remove pragma Linker_Option for "link.o" from mlib.
39257
39258 2004-04-21  Javier Miranda  <miranda@gnat.com>
39259
39260         * einfo.adb (Original_Access_Type): New subprogram
39261         (Set_Original_Access_Type): New subprogram
39262         (Write_Field21_Name): Write the name of the new field
39263
39264         * einfo.ads (Original_Access_Type): New field present in access to
39265         subprogram types.
39266         Addition of two new entities: E_Anonymous_Access_Subprogram_Type, and
39267         E_Anonymous_Access_Protected_Subprogram_Type.
39268
39269         * lib-xref.adb (Output_One_Ref): Give support to anonymous access to
39270         subprogram types.
39271
39272         * lib-xref.ads (Xref_Entity_Letters): Initialize values corresponding
39273         to anonymous access to subprogram types.
39274
39275         * sem_attr.adb (Resolve_Attribute): Give support to anonymous access
39276         to subprogram types.
39277
39278         * sem_ch3.adb (Access_Definition): Complete decoration of entities
39279         corresponding to anonymous access to subprogram types.
39280         (Analyze_Component_Declaration): Add new actual to the call to
39281         subprogram replace_anonymous_access_to_protected_subprogram.
39282         (Array_Type_Declaration): Add new actual to the call to subprogram
39283         replace_anonymous_access_to_protected_subprogram.
39284         (Process_Discriminants): Add new actual to the call to subprogram
39285         replace_anonymous_access_to_protected_subprogram.
39286         (Replace_Anonymous_Access_To_Protected_Subprogram): New formal.
39287
39288         * sem_ch3.ads (Replace_Anonymous_Access_To_Protected_Subprogram): New
39289         formal.
39290
39291         * sem_ch6.adb, sem_type.adb, sem_res.adb: Give support to anonymous
39292         access to subprogram types.
39293
39294         * sem_util.adb (Has_Declarations): Addition of package_specification
39295         nodes.
39296
39297 2004-04-21  Ed Schonberg  <schonberg@gnat.com>
39298
39299         * sem_prag.adb (Make_Inline): If subprogram is a renaming, propagate
39300         inlined flags to renamed entity only if in current unit.
39301
39302 2004-04-21  Thomas Quinot  <quinot@act-europe.fr>
39303
39304         * s-parint.ads: Add DSA implementation marker.
39305
39306         * rtsfind.ads, rtsfind.adb, snames.ads, snames.adb, s-rpc.adb: Use the
39307         value of System.Partition_Interface.DSA_Implementation to determine
39308         what version of the distributed systems annex is available (no
39309         implementation, GLADE, or PolyORB).
39310
39311 2004-04-21  Joel Brobecker  <brobecker@gnat.com>
39312
39313         * targtyps.c (get_target_no_dollar_in_label): Remove, no longer used.
39314
39315 2004-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
39316
39317         * utils.c (convert, case CONSTRUCTOR, COMPONENT_REF): Do not make node
39318         with new type if alias sets differ.
39319         Fixes ACATS c41103b.
39320
39321 2004-04-21  Vincent Celier  <celier@gnat.com>
39322
39323         * prj.ads: Remove FORTRAN as an accepted language: not tested yet.
39324         Add array Lang_Args for the language specific compiling argument
39325         switches.
39326
39327         * gnat_ugn.texi: Explain in more details when a library is rebuilt.
39328
39329 2004-04-21  Sergey Rybin  <rybin@act-europe.fr>
39330
39331         * gnat_rm.texi: Update the descripton of the Eliminate pragma
39332         according to the recent changes in the format of the parameters of the
39333         pragma (replacing Homonym_Number with Source_Location).
39334
39335 2004-04-19  Arnaud Charlet  <charlet@act-europe.fr>
39336
39337         * 5isystem.ads: Removed, unused.
39338
39339         * gnat_rm.texi: Redo 1.13 change.
39340
39341 2004-04-19  Robert Dewar  <dewar@gnat.com>
39342
39343         * s-stoele.ads: Clean up definition of Storage_Offset (the new
39344         definition is cleaner, avoids the kludge of explicit Standard operator
39345         references, and also is consistent with a visible System.Address with
39346         no visible operations.
39347
39348         * s-geveop.adb: Add declarations to avoid assumption of visible
39349         operations on type System.Address (since these might not be available
39350         if Address is a non-private type for which the operations
39351         are made abstract).
39352
39353         * sem_eval.adb: Minor reformatting
39354
39355         * s-carsi8.ads, s-carun8.ads, s-casi16.ads, s-casi32.ads,
39356         s-casi64.ads, s-caun16.ads, s-caun32.ads, s-caun64.ads: Minor
39357         reformatting (new function spec format).
39358
39359         * s-auxdec.adb, s-carsi8.adb, s-carun8.adb, s-casi16.adb,
39360         s-casi32.adb, s-casi64.adb, s-caun16.adb, s-caun32.adb,
39361         s-caun64.adb: Add declarations to avoid assumption of visible
39362         operations on type System.Address (since these might not be available
39363         if Address is a non-private type for which the operations are made
39364         abstract).
39365
39366         * lib.ads, lib.adb (Synchronize_Serial_Number): New procedure.
39367
39368         * exp_intr.adb: Minor comment update
39369
39370         * exp_aggr.adb, exp_attr.adb, exp_ch13.adb: Minor reformatting.
39371
39372         * 5omastop.adb: Add declarations to avoid assumption of visible
39373         operations on type System.Address (since these might not be available
39374         if Address is a non-private type for which the operations
39375         are made abstract).
39376
39377 2004-04-19  Vincent Celier  <celier@gnat.com>
39378
39379         * switch-m.adb: (Scan_Make_Switches): Process new switch -eL
39380
39381         * prj-pars.ads (Parse): New Boolean parameter Process_Languages,
39382         defaulted to Ada.
39383
39384         * prj-proc.adb (Process): New Boolean parameter Process_Languages,
39385         defaulted to Ada.
39386         Call Check with Process_Languages.
39387         (Check): New Boolean parameter Process_Languages. Call Recursive_Check
39388         with Process_Languages.
39389         (Recursive_Check): New Boolean parameter Process_Languages. Call
39390         Nmsc.Ada_Check or Nmsc.Other_Languages_Check according to
39391         Process_Languages.
39392
39393         * prj-proc.ads (Process): New Boolean parameter Process_Languages,
39394
39395         * prj-util.ads, prj-util.adb (Executable_Of): New Boolean
39396         parameter Ada_Main, defaulted to True.
39397         Check for Ada specific characteristics only when Ada_Main is True.
39398
39399         * opt.ads: (Follow_Links): New Boolean flag for gnatmake
39400
39401         * prj.adb: (Project_Empty): Add new Project_Data components.
39402
39403         * prj.ads: New types and tables for non Ada languages.
39404         (Project_Data): New components Languages, Impl_Suffixes,
39405         First_Other_Source, Last_Other_Source, Imported_Directories_Switches,
39406         Include_Path, Include_Data_Set.
39407
39408         * prj-env.ads, prj-env.adb: Minor reformatting
39409
39410         * prj-nmsc.ads, prj-nmsc.adb: (Other_Languages_Check): New procedure
39411         Put subprograms in alphabetical order
39412
39413         * prj-pars.adb (Parse): New Boolean parameter Process_Languages,
39414         defaulted to Ada; Call Prj.Proc.Process with Process_Languages and
39415         Opt.Follow_Links.
39416
39417         * mlib-prj.adb: Back out modification in last version, as they are
39418         incorrect.
39419         (Build_Library.Check_Libs): Remove useless pragma Warnings (Off)
39420
39421         * make.adb: (Mains): Moved to package Makeutl
39422         (Linker_Opts): Moved to package Makeutl
39423         (Is_External_Assignment): Moved to package Makeutl
39424         (Test_If_Relative_Path): Moved to package Makeutl
39425         (Gnatmake): Move sorting of linker options to function
39426         Makeutl.Linker_Options_Switches.
39427
39428         * makeutl.ads, makeutl.adb: New files.
39429
39430         * Makefile.in: Add makeutl.o to the object files for gnatmake
39431
39432         * makeusg.adb: Add line for new switch -eL.
39433
39434         * gnatls.adb (Image): New function.
39435         (Output_Unit): If in verbose mode, output the list of restrictions
39436         specified by pragmas Restrictions.
39437
39438         * 5bml-tgt.adb, 5vml-tgt.adb (Build_Dynamic_Library): Do not use
39439         Text_IO.
39440
39441         * a-calend.adb (Split): Shift the date by multiple of 56 years, if
39442         needed, to put it in the range 1970 (included) - 2026 (excluded).
39443         (Time_Of): Do not shift Unix_Min_Year (1970).
39444         Shift the date by multiple of 56 years, if needed, to put it in the
39445         range 1970 (included) - 2026 (excluded).
39446
39447         * adaint.h, adaint.c (__gnat_set_executable): New function.
39448
39449 2004-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
39450
39451         * trans.c (tree_transform, case N_Subprogram_Body): Temporarily push
39452         and pop GC context.
39453         (tree_transform, case N_Procedure_Call): Fix typo in setting TREE_TYPE.
39454         (tree_transform, case N_Label): Don't set LABEL_STMT_FIRST_IN_EH.
39455         (tree_transform, case N_Procedure_Call_Statement): Build a tree.
39456         (tree_transform, case N_Code_Statement): Likewise.
39457         (gnat_expand_stmt, case LABEL_STMT): Don't look at
39458         LABEL_STMT_FIRST_IN_EH.
39459         (gnat_expand_stmt, case ASM_STMT): New case.
39460
39461         * utils2.c (build_unary_op): Properly set TREE_READONLY of
39462         UNCONSTRAINED_ARRAY_REF.
39463
39464         * utils.c (poplevel): Temporarily push/pop GC context around inline
39465         function expansion.
39466
39467         * decl.c (maybe_variable): Properly set TREE_READONLY of
39468         UNCONSTRAINED_ARRAY_REF.
39469         (make_packable_type): Only reference TYPE_IS_PADDING_P for RECORD_TYPE.
39470
39471         * ada-tree.def: (ASM_STMT): New.
39472
39473         * ada-tree.h: (LABEL_STMT_FIRST_IN_EH): Deleted.
39474         (ASM_STMT_TEMPLATE, ASM_STMT_OUTPUT, ASM_STMT_ORIG_OUT,
39475         ASM_STMT_INPUT): New.
39476         (ASM_STMT_CLOBBER): Likewise.
39477
39478 2004-04-19  Thomas Quinot  <quinot@act-europe.fr>
39479
39480         * a-except.adb, s-parint.ads, s-parint.adb, types.ads, types.h: Use
39481         general rcheck mechanism to raise Program_Error for E.4(18), instead
39482         of a custom raiser in System.Partition_Interface.
39483         Part of general cleanup work before PolyORB integration.
39484
39485         * snames.ads, snames.adb: Add new runtime library entities and names
39486         for PolyORB DSA.
39487
39488         * sem_dist.ads, sem_dist.adb (Get_Subprogram_Id): Move from sem_dist to
39489         exp_dist.
39490         (Build_Subprogram_Id): New subprogram provided by exp_dist
39491         Code reorganisation in preparation for PolyORB integration.
39492
39493         * exp_dist.ads, exp_dist.adb (Get_Subprogram_Id): Move from sem_dist to
39494         exp_dist.
39495         (Build_Subprogram_Id): New subprogram provided by exp_dist
39496
39497         * sem_ch4.adb (Analyze_One_Call): Fix error message for mismatch in
39498         actual parameter types for call to dereference of an
39499         access-to-subprogram type.
39500
39501         * rtsfind.ads: Add new runtime library entities and names for PolyORB
39502         DSA.
39503
39504         * gnatlink.adb (Value): Remove. Use Interfaces.C.Strings.Value
39505         instead, which has the same behaviour here since we never pass it a
39506         NULL pointer.
39507
39508         * link.c (run_path_option, Solaris case): Use -Wl, as for other
39509         platforms.
39510
39511         * Makefile.in: adjust object file lists for gnatlink and gnatmake
39512         to account for new dependency upon Interfaces.C.Strings + link.o
39513         For x86 FreeBSD, use 86numaux.
39514
39515         * make.adb, gnatcmd.adb: Linker_Library_Path_Option has been moved up
39516         from Mlib.Tgt to Mlib.
39517
39518         * mlib.ads, mlib.adb (Linker_Library_Path_Option): New subprogram, now
39519         target-independent.
39520
39521         * mlib-tgt.ads, mlib-tgt.adb (Linker_Library_Path_Option): Remove
39522         target-specific versions of this subprogram, now implemented as a
39523         target-independent function in Mlib.
39524
39525         * 5aml-tgt.adb, 5bml-tgt.adb, 5gml-tgt.adb, 5hml-tgt.adb, 5lml-tgt.adb,
39526         5sml-tgt.adb, 5vml-tgt.adb, 5zml-tgt.adb, 5wml-tgt.adb
39527         (Linker_Library_Path_Option): Remove target-specific versions of this
39528         subprogram, now implemented as a target-independent function in Mlib.
39529
39530         * atree.adb: (Allocate_Initialize_Node): New subprogram.
39531         Factors out node table slots allocation.
39532         (Fix_Parents): New subprogram.
39533         Encapsulate the pattern of fixing up parent pointers for syntactic
39534         children of a rewritten node.
39535         (New_Copy_Tree): Use New_Copy to copy non-entity nodes.
39536         (Rewrite): Use New_Copy when creating saved copy of original node.
39537         (Replace): Use Copy_Node to copy nodes.
39538
39539 2004-04-19  Javier Miranda  <miranda@gnat.com>
39540
39541         * sprint.adb (Sprint_Node_Actual): Give support to the new
39542         Access_To_Subprogram node available in Access_Definition nodes. In
39543         addition, give support to the AI-231 node fields: null-exclusion,
39544         all-present, constant-present.
39545
39546         * sem_util.ads, sem_util.adb: (Has_Declarations): New subprogram
39547
39548         * sinfo.ads, sinfo.adb:
39549         New field Access_To_Subprogram_Definition in Access_Definition nodes
39550
39551         * sem_ch6.adb (Process_Formals): Move here the code that creates and
39552         decorates internal subtype declaration corresponding to the
39553         null-excluding formal. This code was previously in Set_Actual_Subtypes.
39554         In addition, carry out some code cleanup on this code. In case of
39555         access to protected subprogram call
39556         Replace_Anonymous_Access_To_Protected_Subprogram.
39557         (Set_Actual_Subtypes): Code cleanup.
39558
39559         * sem_ch8.adb (Analyze_Object_Renaming): Remove un-necessary call to
39560         Find_Type in case of anonymous access renamings. Add warning in case of
39561         null-excluding attribute used in anonymous access renaming.
39562
39563         * sem_ch3.ads (Replace_Anonymous_Access_To_Protected_Subprogram): New
39564         subprogram
39565
39566         * sem_ch3.adb (Replace_Anonymous_Access_To_Protected_Subprogram): New
39567         subprogram.
39568         (Access_Definition): In case of anonymous access to subprograms call
39569         the corresponding semantic routine to decorate the node.
39570         (Access_Subprogram_Declaration): Addition of some comments indicating
39571         some code that probably should be added here. Detected by comparison
39572         with the access_definition subprogram.
39573         (Analyze_Component_Declaration): In case of access to protected
39574         subprogram call Replace_Anonymous_Access_To_Protected.
39575         (Array_Type_Declaration): In case of access to protected subprogram call
39576         Replace_Anonymous_Access_To_Protected_Subprogram.
39577         (Process_Discriminants): In case of access to protected subprogram call
39578         Replace_Anonymous_Access_To_Protected_Subprogram.
39579
39580         * par.adb (P_Access_Definition): New formal that indicates if the
39581         null-exclusion part was present.
39582         (P_Access_Type_Definition): New formal that indicates if the caller has
39583         already parsed the null-excluding part.
39584
39585         * par-ch3.adb (P_Subtype_Declaration): Code cleanup.
39586         (P_Identifier_Declarations): Code cleanup and give support to renamings
39587         of anonymous access to subprogram types.
39588         (P_Derived_Type_Def_Or_Private_Ext_Decl): Code cleanup.
39589         (P_Array_Type_Definition): Give support to AI-254.
39590         (P_Component_Items): Give support to AI-254.
39591         (P_Access_Definition): New formal that indicates if the header was
39592         already parsed by the caller.
39593         (P_Access_Type_Definition): New formal that indicates if the caller has
39594         already parsed the null-excluding part.
39595
39596         * par-ch6.adb (P_Formal_Part): Add the null-excluding parameter to the
39597         call to P_Access_Definition.
39598
39599 2004-04-19  Geert Bosch  <bosch@gnat.com>
39600
39601         * checks.adb (Apply_Float_Conversion_Check): New procedure to implement
39602         the delicate semantics of floating-point to integer conversion.
39603         (Apply_Type_Conversion_Checks): Use Apply_Float_Conversion_Check.
39604
39605         * eval_fat.adb (Machine_Mantissa): Moved to spec.
39606         (Machine_Radix): New function.
39607
39608         * eval_fat.ads (Machine_Mantissa): Moved from body for use in
39609         conversion checks.
39610         (Machine_Radix): New function also for use in conversion checks.
39611
39612 2004-04-19  Ed Schonberg  <schonberg@gnat.com>
39613
39614         * par-prag.adb (Source_File_Name_Project): Fix typo in error message.
39615
39616         * exp_ch9.adb (Expand_Access_Protected_Subprogram_Type): Call analyze
39617         to decorate the access-to-protected subprogram and the equivalent type.
39618
39619         * checks.adb (Null_Exclusion_Static_Checks): Code cleanup. Give support
39620         to anonymous access to subprogram types.
39621
39622         * exp_ch4.adb (Expand_N_In): Preserve Static flag before
39623         constant-folding, for legality checks in contexts that require an RM
39624         static expression.
39625
39626         * exp_ch6.adb (Expand_N_Function_Call): If call may generate large
39627         temporary but stack checking is not enabled, increment serial number
39628         to so that symbol generation is consistent with and without stack
39629         checking.
39630
39631         * exp_util.ads, exp_util.adb (May_Generate_Large_Temp): Predicate is
39632         independent on whether stack checking is enabled, caller must check
39633         the corresponding flag.
39634
39635         * sem_ch3.adb (Constrain_Index): Index bounds given by attributes need
39636         range checks.
39637         (Build_Derived_Concurrent_Type): Inherit Is_Constrained flag from
39638         parent if it has discriminants.
39639         (Build_Derived_Private_Type): Constructed full view does
39640         not come from source.
39641         (Process_Discriminants): Default discriminants on a tagged type are
39642         legal if this is the internal completion of a private untagged
39643         derivation.
39644
39645         * sem_ch6.adb (Set_Actual_Subtypes): The generated declaration needs
39646         no constraint checks, because it corresponds to an existing object.
39647
39648         * sem_prag.adb (Process_Convention): Pragma applies
39649         only to subprograms in the same declarative part, i.e. the same unit,
39650         not the same scope.
39651
39652         * sem_res.adb (Valid_Conversion): In an instance or inlined body,
39653         ignore type mismatch on a numeric conversion if expression comes from
39654         expansion.
39655
39656 2004-04-19  Sergey Rybin  <rybin@act-europe.fr>
39657
39658         * sem_elim.adb (Process_Eliminate_Pragma): Remove the processing for
39659         Homonym_Number parameter, add processing for Source_Location parameter
39660         corresponding.
39661         (Check_Eliminated): Remove the check for homonym numbers, add the check
39662         for source location traces.
39663
39664         * sem_elim.ads (Process_Eliminate_Pragma): Replace Arg_Homonym_Number
39665         with Arg_Source_Location corresponding to the changes in the format of
39666         the pragma.
39667
39668         * sem_prag.adb: (Analyze_Pragma): Changes in the processing of
39669         Eliminate pragma corresponding to the changes in the format of the
39670         pragma: Homonym_Number is replaced with Source_Location, two ways of
39671         distinguishing homonyms are mutially-exclusive.
39672
39673 2004-04-19  Joel Brobecker  <brobecker@gnat.com>
39674
39675         * get_targ.ads (Get_No_Dollar_In_Label): Remove.
39676
39677         * exp_dbug.adb (Output_Homonym_Numbers_Suffix): Remove use of
39678         No_Dollar_In_Label, no longer necessary, as it is always True.
39679         (Strip_Suffixes): Likewise.
39680
39681 2004-04-19  Gary Dismukes  <dismukes@gnat.com>
39682
39683         * s-stalib.ads (type Exception_Code): Use Integer'Size for exponent of
39684         modulus for compatibility with size clause on targets with 16-bit
39685         Integer.
39686
39687         * layout.adb (Discrimify): In the case of private types, set Vtyp to
39688         full type to fix type mismatches on calls to size functions for
39689         discriminant-dependent array components.
39690
39691 2004-04-19  Jerome Guitton  <guitton@act-europe.fr>
39692
39693         * Makefile.in (gnatlib-zcx): New target, for building a ZCX run-time
39694         lib.
39695
39696 2004-04-19  Pascal Obry  <obry@gnat.com>
39697
39698         * mdll-utl.adb (Locate): New version is idempotent.
39699
39700 2004-04-17  Laurent Guerby  <laurent@guerby.net>
39701
39702         PR ada/14988 (partial)
39703         * impunit.adb: Fix typo.
39704
39705 2004-04-14  Nathanael Nerode  <neroden@gcc.gnu.org>
39706
39707         * Make-lang.in: Remove obsolete rts-none, rts-cert, install-rts-none,
39708         and install-rts-cert targets.  Remove all gnatlib and gnattools
39709         targets and all other rts-* targets (moved to libada).  Remove (now)
39710         unused Make variables CHMOD, CHMOD_AX_FLAGS, shext, THREAD_KIND,
39711         TRACE, GNATLIBFLAGS, GNATLIBCFLAGS.
39712
39713 2004-04-08  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
39714
39715         * trans.c (tree_transform): Shortcut returning error_mark_node for
39716         statements in annotate_only_mode.
39717         (tree_transform, case N_Label, case N_Return_Statement,
39718         N_Goto_Statement): Make statement tree instead of generating code.
39719         (tree_transform, case N_Assignment_Statement): No longer check
39720         type_annotate_only.
39721         (gnat_expand_stmt, case GOTO_STMT, case LABEL_STMT, case
39722         RETURN_STMT): New.
39723         (first_nondeleted_insn, build_block_stmt, make_expr_stmt_from_rtl):
39724         New fcns.
39725         (gnat_to_gnu): Collect any RTL generated and deal with it.
39726         (tree_transform, case N_And_Then): Refine when have non-null RTL_EXPR.
39727         (tree_transform case N_If_Statement): Rewrite to make IF_STMT.
39728         (gnat_expand_stmt, case BLOCK_STMT, IF_STMT): New cases.
39729
39730         * ada-tree.def (GOTO_STMT, LABEL_STMT, RETURN_STMT): New tree nodes.
39731
39732         * ada-tree.def (EXPR_STMT): Fix typo in name.
39733         (BLOCK_STMT, IF_STMT): New nodes.
39734
39735         * ada-tree.h (GOTO_STMT_LABEL, LABEL_STMT_LABEL,
39736         LABEL_STMT_FIRST_IN_EH): New macros.
39737         (RETURN_STMT_EXPR): Likewise.
39738
39739         * ada-tree.h: (BLOCK_STMT_LIST, IF_STMT_COND, IF_STMT_TRUE,
39740         IF_STMT_ELSEIF, IF_STMT_ELSE): New macros.
39741
39742 2004-04-08  Thomas Quinot  <quinot@act-europe.fr>
39743
39744         * atree.ads: Correct documentation on extended nodes.
39745
39746         * link.c: Set run_path_option for FreeBSD.
39747
39748 2004-04-08  Vincent Celier  <celier@gnat.com>
39749
39750         * mlib-prj.adb (Build_Library.Check_Libs): On OpenVMS, if dec.ali is
39751         one of the ALI file, do not link with DEC lib.
39752
39753         * par.adb Remove the last two characters ("%s" or "%b") when checking
39754         if a language defined unit may be recompiled.
39755
39756 2004-04-08  Ed Schonberg  <schonberg@gnat.com>
39757
39758         * sem_ch4.adb (Remove_Abstract_Operations): Improve error message when
39759         removal of abstract operation leaves no possible interpretation for
39760         expression.
39761
39762         * sem_eval.adb (Eval_Qualified_Expression): Use
39763         Set_Raises_Constraint_Error on node when needed, so that it does not
39764         get optimized away by subsequent optimizations.
39765
39766         * sem_res.adb (Resolve_Intrinsic_Operator): Save interpretations of
39767         operands even when they are not wrapped in a type conversion.
39768
39769 2004-04-08  Olivier Hainque  <hainque@act-europe.fr>
39770
39771         * sem_prag.adb (Set_Exported): Warn about making static as result of
39772         export only when the export is coming from source. This may be not
39773         be true e.g. on VMS where we expand export pragmas for exception codes
39774         together with imported or exported exceptions, and we don't want the
39775         user to be warned about something he didn't write.
39776
39777 2004-04-08  Thomas Quinot  <quinot@act-europe.fr>
39778
39779         * sem_util.adb (Note_Possible_Modification): Reorganize to remove code
39780         duplication between normal entities and those declared as renamings.
39781         No functional change.
39782
39783         * s-fileio.ads (Form): Remove pragma Inline, as we cannot currently
39784         inline functions returning an unconstrained result.
39785
39786 2004-04-08  Eric Botcazou  <ebotcazou@act-europe.fr>
39787
39788         * utils.c (type_for_mode): Handle BLKmode and VOIDmode properly, to
39789         conform to what other front-ends do.
39790
39791 2004-04-08  Doug Rupp  <rupp@gnat.com>
39792
39793         * 5vml-tgt.adb: Use Gas instead of VMS Macro to build auto init shared
39794         libraries.
39795
39796 2004-04-06  Pascal Obry  <obry@gnat.com>
39797
39798         * adaint.c (DIR_SEPARATOR): Properly set DIR_SEPARATOR on Win32.
39799
39800         * osint.adb (Program_Name): Do not look past a directory separator.
39801
39802 2004-04-06  Thomas Quinot  <quinot@act-europe.fr>
39803
39804         * atree.adb: Update comment (Rewrite_Substitute_Node no longer exists).
39805
39806         * exp_ch6.adb (Rewrite_Function_Call): Clarify documentation of
39807         requirement for preserving a copy of the original assignment node.
39808
39809         * sinfo.ads: Update comment (Original_Tree -> Original_Node).
39810
39811 2004-04-06  Olivier Hainque  <hainque@act-europe.fr>
39812
39813         (__gnat_initialize [Vxworks]): Enable references to the crtstuff bits
39814         when supported.
39815
39816 2004-04-06  Ed Schonberg  <schonberg@gnat.com>
39817
39818         * sem_ch4.adb (Remove_Abstract_Operations): Extend previous changes to
39819         operator calls in functional notation, and apply
39820         Universal_Interpretation to operands, not to their type.
39821
39822 2004-04-06  Robert Dewar  <dewar@gnat.com>
39823
39824         * 5wdirval.adb: Minor reformatting
39825
39826 2004-04-06  Ed Falis  <falis@gnat.com>
39827
39828         * gnat_rm.texi: Improve a reference to the GCC manual
39829
39830 2004-04-05  Vincent Celier  <celier@gnat.com>
39831
39832         * adaint.h, adaint.c: Add function __gnat_named_file_length
39833
39834         * impunit.adb: Add Ada.Directories to the list
39835
39836         * Makefile.in: Add VMS and Windows versions of
39837         Ada.Directories.Validity package body.
39838
39839         * Makefile.rtl: Add a-direct and a-dirval
39840
39841         * mlib-tgt.ads: Minor comment update.
39842
39843         * a-dirval.ads, a-dirval.adb, 5vdirval.adb, 5wdirval.adb,
39844         a-direct.ads, a-direct.adb: New files.
39845
39846 2004-04-05  Vincent Celier  <celier@gnat.com>
39847
39848         PR ada/13620
39849         * make.adb (Scan_Make_Arg): Pass any -fxxx switches to gnatlink, not
39850         just to the compiler.
39851
39852 2004-04-05  Robert Dewar  <dewar@gnat.com>
39853
39854         * a-except.adb (Exception_Name_Simple): Make sure lower bound of
39855         returned string is 1.
39856
39857         * ali-util.adb: Use proper specific form for Warnings (Off, entity)
39858
39859         * eval_fat.ads: Minor reformatting
39860
39861         * g-curexc.ads: Document that lower bound of returned string values
39862         is always one.
39863
39864         * gnatlink.adb: Add ??? comment for previous change
39865         (need to document why this is VMS specific)
39866
39867         * s-stoele.ads: Minor reformatting
39868
39869         * tbuild.ads: Minor reformatting throughout (new function specs)
39870
39871         * par-ch10.adb (P_Context_Clause): Handle comma instead of semicolon
39872         after WITH.
39873
39874         * scng.adb: Minor reformatting
39875
39876 2004-04-05  Geert Bosch  <bosch@gnat.com>
39877
39878         * eval_fat.adb (Machine): Remove unnecessary suppression of warning.
39879         (Leading_Part): Still perform truncation to machine number if the
39880         specified radix_digits is greater or equal to machine_mantissa.
39881
39882 2004-04-05  Javier Miranda  <miranda@gnat.com>
39883
39884         * par-ch3.adb: Complete documentation of previous change
39885         Correct wrong syntax documentation of the OBJECT_DECLARATION rule
39886         (aliased must appear before constant).
39887
39888         * par-ch4.adb: Complete documentation of previous change.
39889
39890         * par-ch6.adb: Complete documentation of previous change.
39891
39892         * sinfo.ads: Fix typo in commment.
39893
39894 2004-04-05  Ed Schonberg  <schonberg@gnat.com>
39895
39896         * sem_ch3.adb (Inherit_Components): If derived type is private and has
39897         stored discriminants, use its discriminants to constrain parent type,
39898         as is done for non-private derived record types.
39899
39900         * sem_ch4.adb (Remove_Abstract_Operations): New subprogram to implement
39901         Ada 2005 AI-310: an abstract non-dispatching operation is not a
39902         candidate interpretation in an overloaded call.
39903
39904         * tbuild.adb (Unchecked_Convert_To): Preserve conversion node if
39905         expression is Null and target type is not an access type (e.g. a
39906         non-private address type).
39907
39908 2004-04-05  Thomas Quinot  <quinot@act-europe.fr>
39909
39910         * exp_ch6.adb (Rewrite_Function_Call): When rewriting an assignment
39911         statement whose right-hand side is an inlined call, save a copy of the
39912         original assignment subtree to preserve enough consistency for
39913         Analyze_Assignment to proceed.
39914
39915         * sem_ch5.adb (Analyze_Assignment): Remove a costly copy of the
39916         complete assignment subtree which is now unnecessary, as the expansion
39917         of inlined call has been improved to preserve a consistent assignment
39918         tree.  Note_Possible_Modification must be called only
39919         after checks have been applied, or else unnecessary checks will
39920         be generated.
39921
39922         * sem_util.adb (Note_Possible_Modification): Reorganise the handling
39923         of explicit dereferences that do not Come_From_Source:
39924          - be selective on cases where we must go back to the dereferenced
39925            pointer (an assignment to an implicit dereference must not be
39926            recorded as modifying the pointer);
39927          - do not rely on Original_Node being present (Analyze_Assignment
39928            calls Note_Possible_Modification on a copied tree).
39929
39930         * sem_warn.adb (Check_References): When an unset reference to a pointer
39931         that is never assigned is encountered, prefer '<pointer> may be null'
39932         warning over '<pointer> is never assigned a value'.
39933
39934 2004-04-05  Ramon Fernandez  <fernandez@gnat.com>
39935
39936         * tracebak.c: Change STOP_FRAME in ppc vxworks to be compliant with
39937         the ABI.
39938
39939 2004-04-05  Olivier Hainque  <hainque@act-europe.fr>
39940
39941         * 5gmastop.adb (Pop_Frame): Comment out the pragma Linker_Option for
39942         libexc. We currently don't reference anything in this library and
39943         linking it in triggers linker warnings we don't want to see.
39944
39945         * init.c: Update comments.
39946
39947 2004-04-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
39948
39949         * decl.c (gnat_to_gnu_entity): Use TYPE_READONLY.
39950         * utils.c (create_field_decl): Likewise.
39951         * utils2.c (build_unary_op, gnat_build_constructor): Likewise.
39952
39953 2004-04-02  Arnaud Charlet  <charlet@act-europe.fr>
39954
39955         * gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Remove RCS tags.
39956         Replace ifinfo by ifnottex, to make makeinfo --html happy again.
39957         Add info directory entry and category.
39958
39959 2004-04-02  Jan Hubicka  <jh@suse.cz>
39960
39961         * utils.c: Include function.h
39962         (end_subprog_body): Clear DECL_STRUCT_FUNCTION.
39963
39964 2004-04-01  Arnaud Charlet  <charlet@act-europe.fr>
39965
39966         PR ada/14150
39967         * Make-lang.in: Clean up generation of documentation
39968
39969         * gnat-style.texi, gnat_rm.texi, ug_words: Resync with AdaCore version
39970
39971         * xgnatug.adb: Removed, replaced by xgnatugn.adb
39972
39973         * xgnatugn.adb: Replaces xgnatug.adb
39974
39975         * gnat_ug.texi: Removed, replaced by gnat_ugn.texi
39976
39977         * gnat_ugn.texi: Replaces gnat_ug.texi. Resync with AdaCore version
39978
39979         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
39980         gnat_ug_wnt.texi: Removed.
39981
39982 2004-04-01  Arnaud Charlet  <charlet@act-europe.fr>
39983
39984         * utils2.c: Update copyright notice.
39985
39986 2004-04-01  Robert Dewar  <dewar@gnat.com>
39987
39988         * checks.adb: Minor reformatting throughout
39989         Note that prev checkin added RM reference to alignment warning
39990
39991 2004-04-01  Ed Schonberg  <schonberg@gnat.com>
39992
39993         * exp_aggr.adb (Get_Component_Val): Treat a string literal as
39994         non-static when building aggregate for bit-packed array.
39995
39996         * exp_ch4.adb (Expand_N_Slice): If a packed slice is an actual of a
39997         function call that is itself the actual in a procedure call, build
39998         temporary for it.
39999
40000         * exp_pakd.adb (Expand_Bit_Packed_Element_Set): If right-hand side is
40001         a string literal, create a temporary for it, constant folding only
40002         handles scalars here.
40003
40004 2004-04-01  Vincent Celier  <celier@gnat.com>
40005
40006         * ali-util.adb (Post_Scan, Error_Msg, Error_Msg_S, Error_Msg_SC,
40007         Error_Msg_SP): New empty procedures to instantiate the Scanner.
40008         (Style, Scanner): Instantiations of Styleg and Scng to be able to scan
40009         tokens.
40010         (Accumulate_Checksum, Initialize_Checksum): Remove procedures.
40011         (Get_File_Checksum): Use the instantiated scanner to scan all the tokens
40012         and get the checksum.
40013
40014         * make.adb (Gnatmake): Do not insert into Q the Main_Source if it is
40015         already in the Q.
40016         Increase the Marking_Label at the end of the Multiple_Main_Loop,
40017         instead of at the beginning.
40018
40019         * osint.adb (Lib_File_Name): Use Multi_Unit_Index_Character, not '~'
40020         directly.
40021         (Osint package elaboration): Change Multi_Unit_Index_Character to '$' if
40022         on VMS.
40023
40024         * osint.ads (Multi_Unit_Index_Character): New Character global variable
40025
40026         * osint-c.adb (Set_Library_Info_Name): Use Multi_Unit_Index_Character,
40027         not '~' directly.
40028
40029         * par.adb: Remove test on file name to detect language defined units.
40030         Add test on unit name, after parsing, to detect language defined units
40031         that are not compiled with -gnatg (except System.RPC and its children)
40032
40033         * par-ch10.adb (P_Compilation_Unit): In multi-unit sources, scan the
40034         following units without style checking.
40035
40036         * switch-c.adb: Change -gnatC to -gnateI
40037
40038         * usage.adb: Document new switch -gnateInnn
40039
40040         * scng.adb (Accumulate_Token_Checksum): New procedure
40041         (Scan): Call Accumulate_Token_Checksum after each identifier, reserved
40042         word or literal number.
40043         (Scan.Nlit.Scan_Integer): Do not accumulate internal '_' in litteral
40044         numbers.
40045
40046 2004-04-01  Thomas Quinot  <quinot@act-europe.fr>
40047
40048         * a-tasatt.adb,
40049         g-comlin.adb, sinput-c.adb, s-secsta.adb, s-tpobop.adb,
40050         switch-m.adb, 56taprop.adb, 5ginterr.adb, 5gmastop.adb,
40051         5staprop.adb, 5vinterr.adb, 5vtaprop.adb, 5vtpopde.adb,
40052         5vtpopde.adb: Add missing 'constant' keywords.
40053
40054 2004-04-01  Javier Miranda  <miranda@gnat.com>
40055
40056         * par-ch4.adb: (P_Allocator): Code cleanup
40057
40058         * sem_ch3.adb (Access_Definition): Properly set the null-excluding
40059         attribute.
40060
40061         * sinfo.ads: Complete documentation of previous change
40062
40063 2004-04-01  Pascal Obry  <obry@gnat.com>
40064
40065         * gnatlink.adb (Process_Binder_File): Remove duplicate linker options
40066         only on VMS.  This special handling was done because an old GNU/ld bug
40067         on Windows which has been fixed.
40068
40069 2004-04-01  GNAT Script  <nobody@gnat.com>
40070
40071         * Make-lang.in: Makefile automatically updated
40072
40073 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
40074
40075         * decl.c (gnat_to_gnu_entity, make_type_from_size):
40076         Use TYPE_UNSIGNED, not TREE_UNSIGNED.
40077         * trans.c (tree_transform, convert_with_check): Likewise.
40078         * utils.c (gnat_signed_or_unsigned_type): Likewise.
40079         (build_vms_descriptor, unchecked_convert): Likewise.
40080         * utils2.c (nonbinary_modular_operation): Likewise.
40081
40082 2004-03-29  Javier Miranda  <miranda@gnat.com>
40083
40084         * checks.adb (Null_Exclusion_Static_Checks): New subprogram
40085         (Install_Null_Excluding_Check): Local subprogram that determines whether
40086         an access node requires a runtime access check and if so inserts the
40087         appropriate run-time check.
40088         (Apply_Access_Check): Call Install_Null_Excluding check if required
40089         (Apply_Constraint_Check): Call Install_Null_Excluding check if required
40090
40091         * checks.ads: (Null_Exclusion_Static_Checks): New subprogram
40092
40093         * einfo.ads: Fix typo in comment
40094
40095         * exp_ch3.adb (Build_Assignment): Generate conversion to the
40096         null-excluding type to force the corresponding run-time check.
40097         (Expand_N_Object_Declaration): Generate conversion to the null-excluding
40098         type to force the corresponding run-time check.
40099
40100         * exp_ch5.adb (Expand_N_Assignment_Statement): Generate conversion to
40101         the null-excluding type to force the corresponding run-time check.
40102
40103         * exp_ch6.adb (Expand_Call): Do not generate the run-time check in
40104         case of access types unless they have the null-excluding attribute.
40105
40106         * sprint.adb (Sprint_Node_Actual): Give support to the null-exclusing
40107         part.
40108
40109         * exp_util.ads: Fix typo in comment
40110
40111         * par.adb (P_Null_Exclusion): New subprogram
40112         (P_Subtype_Indication): New formal that indicates if the null-excluding
40113         part has been scanned-out and it was present
40114
40115         * par-ch3.adb, par-ch4.adb, par-ch6.adb: Give support to AI-231
40116
40117         * sem_aggr.adb: (Check_Can_Never_Be_Null): New subprogram
40118         (Aggregate_Constraint_Checks): Generate conversion to the null-excluding
40119         type to force the corresponding run-time check
40120         (Resolve_Aggregate): Propagate the null-excluding attribute to the array
40121         components
40122         (Resolve_Array_Aggregate): Carry out some static checks
40123         (Resolve_Record_Aggregate.Get_Value): Carry out some static check
40124
40125         * sem_ch3.adb (Access_Definition): In Ada 0Y the Can_Never_Be_Null
40126         attribute must be set only if specified by means of the null-excluding
40127         part. In addition, we must also propagate the access-constant attribute
40128         if present.
40129         (Access_Subprogram_Declaration, Access_Type_Declaration,
40130         Analyze_Component_Declaration, Analyze_Object_Declaration,
40131         Array_Type_Declaration, Process_Discriminants,
40132         Analyze_Subtype_Declaration): Propagate the null-excluding attribute
40133         and carry out some static checks.
40134         (Build_Derived_Access_Type): Set the null-excluding attribute
40135         (Derived_Type_Declaration, Process_Subtype): Carry out some static
40136         checks.
40137
40138         * sem_ch4.adb (Analyze_Allocator): Carry out some static checks
40139
40140         * sem_ch5.adb (Analyze_Assignment): Carry out some static checks
40141
40142         * sem_ch6.adb (Process_Formals): Carry out some static checks.
40143         (Set_Actual_Subtypes): Generate null-excluding subtype if the
40144         null-excluding part was present; it is not required to be done here in
40145         case of anonymous access types.
40146         (Set_Formal_Mode): Ada 0Y allows anonymous access to have the null
40147         value.
40148
40149         * sem_res.adb (Resolve_Actuals): Carry out some static check
40150         (Resolve_Null): Allow null in anonymous access
40151
40152         * sinfo.adb: New subprogram Null_Exclusion_Present
40153         All_Present and Constant_Present available on access_definition nodes
40154
40155         * sinfo.ads: New flag Null_Exclusion_Present on subtype_declaration,
40156         object_declaration, derived_type_definition, component_definition,
40157         discriminant_specification, access_to_object_definition,
40158         access_function_definition, allocator, access_procedure_definition,
40159         access_definition, parameter_specification, All_Present and
40160         Constant_Present flags available on access_definition nodes.
40161
40162 2004-03-29  Robert Dewar  <dewar@gnat.com>
40163
40164         * fname.adb, fname.ads, fname-sf.adb, fname-uf.adb, fname-uf.ads,
40165         gnat1drv.adb, lib.adb, lib.ads, lib-load.adb, lib-writ.adb,
40166         opt.ads, osint.adb, osint.ads, osint-c.adb, par.adb,
40167         par-ch10.adb, par-load.adb, par-prag.adb, sfn_scan.adb,
40168         sfn_scan.ads, sinput-l.adb, sinput-l.ads, switch-c.adb,
40169         sem_prag.adb: Updates to handle multiple units/file
40170
40171         * par.adb: Change test for s-rpc to s-rp for detecting rpc and children
40172
40173         * par.adb, memtrack.adb, prj-makr.adb, prj-part.adb,
40174         sem_util.adb: Minor reformatting
40175
40176         * sem_ch12.adb: Add comment for previous change
40177
40178 2004-03-29  Laurent Pautet  <pautet@act-europe.fr>
40179
40180         * osint.adb (Executable_Prefix): Set Exec_Name to the current
40181         executable name when not initialized. Otherwise, use its current value.
40182
40183         * osint.ads (Exec_Name): Move Exec_Name from body to spec in order to
40184         initialize it to another executable name than the current one. This
40185         allows to configure paths for an executable name (gnatmake) different
40186         from the current one (gnatdist).
40187
40188 2004-03-29  Ed Schonberg  <schonberg@gnat.com>
40189
40190         * exp_ch6.adb (Expand_Call): A call to a function declared in the
40191         current unit cannot be inlined if it appears in the body of a withed
40192         unit, to avoid order of elaboration problems in gigi.
40193
40194         * exp_ch9.adb (Build_Protected_Sub_Specification): Generate debugging
40195         information for protected (wrapper) operation as well, to simplify gdb
40196         use.
40197
40198         * sem_ch6.adb (Analyze_Subprogram_Body): For a private operation in a
40199         protected body, indicate that the entity for the generated spec comes
40200         from source, to ensure that references are properly generated for it.
40201         (Build_Body_To_Inline): Do not inline a function that returns a
40202         controlled type.
40203
40204         * sem_prag.adb (Process_Convention): If subprogram is overloaded, only
40205         apply convention to homonyms that are declared explicitly.
40206
40207         * sem_res.adb (Make_Call_Into_Operator): If the operation is a function
40208         that renames an equality operator and the operands are overloaded,
40209         resolve them with the declared formal types, before rewriting as an
40210         operator.
40211
40212 2004-03-29  GNAT Script  <nobody@gnat.com>
40213
40214         * Make-lang.in: Makefile automatically updated
40215
40216 2004-03-25  Vasiliy Fofanov  <fofanov@act-europe.fr>
40217
40218         * memtrack.adb: Log realloc calls, which are treated as free followed
40219         by alloc.
40220
40221 2004-03-25  Vincent Celier  <celier@gnat.com>
40222
40223         * prj-makr.adb (Process_Directories): Detect when a file contains
40224         several units. Do not include such files in the config pragmas or
40225         in the naming scheme.
40226
40227         * prj-nmsc.adb (Record_Source): New parameter Trusted_Mode.
40228         Resolve links only when not in Trusted_Mode.
40229         (Find_Sources, Recursive_Find_Dirs, Find_Source_Dirs, Locate_Directory):
40230         Do not resolve links for the display names.
40231
40232         * prj-part.adb (Parse_Single_Project, Project_Path_Name_Of): Do not
40233         resolve links when computing the display names.
40234
40235 2004-03-25  Thomas Quinot  <quinot@act-europe.fr>
40236
40237         * sem_attr.adb (Check_Dereference): When the prefix of a 'Tag
40238         attribute reference does not denote a subtype, it can be any
40239         expression that has a classwide type, potentially after an implicit
40240         dereference.  In particular, the prefix can be a view conversion for
40241         a classwide type (for which Is_Object_Reference holds), but it can
40242         also be a value conversion for an access-to-classwide type. In the
40243         latter case, there is an implicit dereference, and the original node
40244         for the prefix does not verify Is_Object_Reference.
40245
40246         * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): A view
40247         conversion of a discriminant-dependent component of a mutable object
40248         is one itself.
40249
40250 2004-03-25  Ed Schonberg  <schonberg@gnat.com>
40251
40252         * freeze.adb (Freeze_Entity): When an inherited subprogram is
40253         inherited, has convention C, and has unconstrained array parameters,
40254         place the corresponding warning on the derived type declaration rather
40255         than the original subprogram.
40256
40257         * sem_ch12.adb (Instantiate_Formal_Subprogram): Set From_Default
40258         indication on renaming declaration, if formal has a box and actual
40259         is absent.
40260
40261         * sem_ch8.adb (Analyze_Subprogram_Renaming): Use From_Default flag to
40262         determine whether to generate an implicit or explicit reference to
40263         the renamed entity.
40264
40265         * sinfo.ads, sinfo.adb: New flag From_Default, to indicate that a
40266         subprogram renaming comes from a defaulted formal subprogram in an
40267         instance.
40268
40269 2004-03-25  Gary Dismukes  <dismukes@gnat.com>
40270
40271         * sem_elab.adb (Check_Elab_Call): Refine loop that checks for default
40272         value expressions to ensure that calls within a component definition
40273         will be checked (since those are evaluated during the record type's
40274         elaboration).
40275
40276 2004-03-25  Arnaud Charlet  <charlet@act-europe.fr>
40277
40278         * s-tpobop.adb: Code clean up:
40279         (Requeue_Call): Extract from PO_Service_Entries to remove duplicated
40280         code.
40281         (PO_Do_Or_Queue): Remove duplicated code and use Requeue_Call.
40282
40283 2004-03-25  Jose Ruiz  <ruiz@act-europe.fr>
40284
40285         * Makefile.in: Clean up in the ravenscar run time.
40286
40287 2004-03-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
40288
40289         * decl.c (gnat_to_gnu_entity, case E_Access_Type): Pass value
40290         of No_Strict_Aliasing to build_pointer_type_for_mode.
40291         * utils.c (update_pointer_to): Walk pointer and ref chains.
40292
40293 2004-03-22  Cyrille Comar  <comar@act-europe.fr>
40294
40295         * ali.ads: Fix Comment about Dynamic_Elab.
40296
40297         * gnatls.adb (Output_Unit): Add output of many flags (Dynamic_Elab,
40298         Has_RACW, Is_Generic, etc.)
40299         (Output_Object, Gnatls): Take into account ALI files not attached to
40300         an object.
40301
40302 2004-03-22  Vincent Celier  <celier@gnat.com>
40303
40304         * gprep.adb: Change all String_Access to Name_Id
40305         (Is_ASCII_Letter): new function
40306         (Double_File_Name_Buffer): New procedure
40307         (Preprocess_Infile_Name): New procedure
40308         (Process_Files): New procedure
40309         (Gnatprep): Check if output and input are existing directories.
40310         Call Process_Files to do the real job.
40311
40312 2004-03-22  Robert Dewar  <dewar@gnat.com>
40313
40314         * prj-env.adb, prj-nmsc.ads, prj-proc.ads,
40315         s-stache.ads, s-stache.adb: Comment updates. Minor reformatting.
40316
40317 2004-03-22  Sergey Rybin  <rybin@act-europe.fr>
40318
40319         * scn.adb (Contains): Add check for EOF, is needed for a degenerated
40320         case when the source contains only comments.
40321
40322 2004-03-22  Ed Schonberg  <schonberg@gnat.com>
40323
40324         * sem_ch10.adb (Analyze_Compilation_Unit): When generating a
40325         declaration for a child subprogram body that acts as a spec, indicate
40326         that the entity in the declaration needs debugging information.
40327
40328         * sem_ch3.adb (Complete_Private_Subtype): Do not build an underlying
40329         full view if the subtype is created for a constrained record component;
40330         gigi has enough information to construct the record, and there is no
40331         place in the tree for the declaration.
40332
40333         * sem_ch6.adb (Build_Body_To_Inline): Use an internal name without
40334         serial number for the dummy body that is built for analysis, to avoid
40335         inconsistencies in the generation of internal names when compiling
40336         with -gnatN.
40337
40338 2004-03-22  Thomas Quinot  <quinot@act-europe.fr>
40339
40340         * sem_util.adb (Is_Object_Reference): A view conversion denotes an
40341         object.
40342
40343 2004-03-22  GNAT Script  <nobody@gnat.com>
40344
40345         * Make-lang.in: Makefile automatically updated
40346
40347 2004-03-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
40348
40349         * decl.c (gnat_to_gnu_entity): Use SUBSTITUTE_PLACEHOLDER_IN_EXPR.
40350         * trans.c (tree_transform, emit_index_check): Likewise.
40351         * utils.c (build_template): Likewise.
40352         (max_size, convert): Remove handling of WITH_RECORD_EXPR.
40353         (maybe_unconstrained_array, unchecked_convert): Likewise.
40354         * utils2.c (gnat_truthvalue_conversion, build_binary_op): Likewise.
40355         (build_unary_op): Likewise.
40356         (compare_arrays, build_allocator): Use SUBSTITUTE_PLACEHOLDER_IN_EXPR.
40357         (fill_vms_descriptor): Likewise.
40358         (build_call_alloc_dealloc): Likewise.
40359         ALIGN is unsigned.
40360         * gigi.h (build_call_alloc_dealloc): Alignment is unsigned.
40361
40362 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
40363
40364         PR other/14630
40365         * gnat_ug.texi: Add info directory category and entry.
40366         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
40367         gnat_ug_wnt.texi: Regenerate.
40368
40369 2004-03-19  Arnaud Charlet  <charlet@act-europe.fr>
40370
40371         * ada-tree.h: Update copyright notice.
40372         Minor reformatting.
40373
40374 2004-03-19  Olivier Hainque  <hainque@act-europe.fr>
40375
40376         * decl.c (gnat_to_gnu_entity, case E_Exception): Handle VMS exceptions
40377         as regular exception objects and not as mere integers representing the
40378         condition code.  The latter approach required some dynamics to mask off
40379         severity bits, which did not fit well into the GCC table based model.
40380         (gnat_to_gnu_entity, objects): Don't supply an external name for VMS
40381         exception data objects. We don't it and it would conflict with the other
40382         external symbol we have to generate for such exceptions.
40383
40384         * trans.c (tree_transform, case N_Exception_Handler): Remove part of
40385         the special code for VMS exceptions, since these are now represented
40386         as regular exceptions objects.
40387
40388 2004-03-19 Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
40389
40390         * decl.c (debug_no_type_hash): Remove.
40391         (gnat_to_gnu_entity, case E_Array_Type): Don't set and clear it.
40392         * misc.c (LANG_HOOK_HASH_TYPE): Redefine.
40393
40394 2004-03-19  Laurent Guerby  <laurent@guerby.net>
40395
40396         * sem_prag.adb (Suppress_Unsuppress_Echeck): use loop instead of
40397         aggregate, allows bootstrap from 3.3 on powerpc-darwin.
40398
40399 2004-03-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
40400
40401         * ada-tree.h (TYPE_LEFT_JUSTIFIED_MODULAR_P): Add checking.
40402         (TYPE_CONTAINS_TEMPLATE_P, TYPE_OBJECT_RECORD_TYPE): Likewise.
40403         (TYPE_RM_SIZE_INT): Directly use type.values.
40404         (TREE_LOOP_ID): Clean up check.
40405         * decl.c (gnat_to_gnu_entity, case E_Enumeration_Type): Use
40406         TYPE_VALUES, not TYPE_FIELDS.
40407         * trans.c (convert_with_check): Delay access of bounds of basetype
40408         until sure is numeric.
40409
40410 2004-03-18  Arnaud Charlet  <charlet@act-europe.fr>
40411
40412         * 5atpopsp.adb: Remove RTEMS from list of platforms using this file.
40413
40414         Code clean up:
40415         * 5ataprop.adb, 5ftaprop.adb, 5htaprop.adb, 5itaprop.adb, 5staprop.adb,
40416         5vtaprop.adb, 5wtaprop.adb, 7staprop.adb (Finalize_TCB): Use
40417         Specific.Set instead of direct call to e.g pthread_setspecific.
40418
40419 2004-03-18  Thomas Quinot  <quinot@act-europe.fr>
40420
40421         * adaint.c: Update comments.
40422
40423         * Makefile.in: set PREFIX_OBJS, SYMLIB, THREADSLIB, and
40424         GNATLIB_SHARED for FreeBSD.
40425
40426 2004-03-18  Jose Ruiz  <ruiz@act-europe.fr>
40427
40428         * init.c [VxWorks]: Do not fix the stack size for the environment task.
40429         When needed (stack checking) the stack size is retrieved
40430         from the VxWorks kernel.
40431
40432         * Makefile.in: Flag -nostdinc is required when building the run time
40433         for avoiding looking for files in the base compiler.
40434         Add the VxWorks specific version of the package body for
40435         System.Stack_checking.Operations (5zstchop.adb).
40436
40437         * Make-lang.in: Add the object file for
40438         System.Stack_Checking.Operations.
40439
40440         * Makefile.rtl: Add object file for the package
40441         System.Stack_Checking.Operations.
40442
40443         * s-stchop.ads, s-stchop.adb, 5zstchop.adb: New files.
40444
40445         * s-stache.ads, s-stache.adb: Move the operations related to stack
40446         checking from this package to package System.Stack_Checking.Operations.
40447         This way, stack checking operations are only linked in the final
40448         executable when using the -fstack-check flag.
40449
40450 2004-03-18  Doug Rupp  <rupp@gnat.com>
40451
40452         * Makefile.in [VMS]: Handle 64 bit specs (5qsystem.ads, 5xcrtl.ads).
40453         Reorganize ifeq's.
40454
40455         * 5qsystem.ads, 5xcrtl.ads: New files.
40456
40457 2004-03-18  Vincent Celier  <celier@gnat.com>
40458
40459         * prj.adb (Reset): Reset hash table Files_Htable
40460
40461         * prj-env.adb (Source_Paths, Object_Paths): New tables.
40462         (Add_To_Source_Path, Add_To_Object_Path): New procedures, to replace
40463         the procedures Add_To_Path_File.
40464         (Set_Ada_Paths): Accumulate source and object dirs in the tables,
40465         making sure that each directory is present only once and, for object
40466         dirs, when a directory already present is added, the duplicate is
40467         removed and the directory is always put as the last in the table.
40468         Write the path files at the end of these accumulations.
40469
40470         * prj-nmsc.adb (Record_Source): Add source file name in hash table
40471         Files_Htable for all sources.
40472
40473         * prj-proc.adb (Process): Remove restrictions between not directly
40474         related extending projects.
40475
40476 2004-03-18  Emmanuel Briot  <briot@act-europe.fr>
40477
40478         * prj-nmsc.ads, prj-nmsc.adb (Ada_Check): New parameter Trusted_Mode.
40479         (Find_Sources): Minor speed optimization.
40480
40481         * prj-proc.ads, prj-proc.adb (Check, Recursive_Check, Process): New
40482         parameter Trusted_Mode.
40483
40484 2004-03-18  Sergey Rybin  <rybin@act-europe.fr>
40485
40486         * scn.adb (Determine_License): Take into account a degenerated case
40487         when the source contains only comments.
40488
40489 2004-03-18  Ed Schonberg  <schonberg@gnat.com>
40490
40491         * sem_warn.adb (Check_References): For a warning on a selected
40492         component that does not come from source, locate an uninitialized
40493         component of the record type to produce a more precise error message.
40494
40495 2004-03-15  Jerome Guitton  <guitton@act-europe.fr>
40496
40497         * 3zsoccon.ads: Fix multicast options.
40498
40499         * s-thread.ads: Move unchecked conversion from ATSD_Access to Address
40500         in the spec.
40501
40502 2004-03-15  Robert Dewar  <dewar@gnat.com>
40503
40504         * sem_prag.adb: Make sure No_Strict_Aliasing flag is set right when
40505         pragma used for a private type.
40506
40507         * lib-xref.adb (Generate_Reference): Do not generate warning if
40508         reference is in a different unit from the pragma Unreferenced.
40509
40510         * 5vtpopde.adb: Minor reformatting
40511         Fix casing of To_Task_ID
40512
40513         * sem_ch13.adb (Validate_Unchecked_Conversion): Set No_Strict_Aliasing
40514         flag if we have an unchecked conversion to an access type in the same
40515         unit.
40516
40517 2004-03-15  Geert Bosch  <bosch@gnat.com>
40518
40519         * a-ngcoty.adb (Modulus): In alternate formula for large real or
40520         imaginary parts, use Double precision throughout.
40521
40522         * a-tifiio.adb (Put_Scaled): Remove remaining pragma Debug. Not only
40523         we want to be able to compile run-time with -gnata for testing, but
40524         this may also be instantiated in user code that is compiled with -gnata.
40525
40526 2004-03-15  Olivier Hainque  <hainque@act-europe.fr>
40527
40528         * s-stalib.ads (Exception_Code): New type, to represent Import/Export
40529         codes. Having a separate type for this is useful to enforce consistency
40530         throughout the various run-time units.
40531         (Exception_Data): Use Exception_Code for Import_Code.
40532
40533         * s-vmextra.ads, s-vmexta.adb: Use Exception_Code instead of a mix of
40534         Natural and Integer in various places.
40535         (Register_VMS_Exception): Use Base_Code_In to compute the exception code
40536         with the severity bits masked off.
40537         (Register_VMS_Exception): Handle the additional exception data pointer
40538         argument.
40539
40540         * raise.c (_GNAT_Exception structure): Remove the handled_by_others
40541         component, now reflected by an exported accessor.
40542         (is_handled_by): New routine to compute whether the propagated
40543         occurrence matches some handler choice specification. Extracted out of
40544         get_action_description_for, and expanded to take care of the VMS
40545         specifities.
40546         (get_action_description_for): Use is_handled_by instead of an explicit
40547         complex condition to decide if the current choice at hand catches the
40548         propagated occurrence.
40549
40550         * raise.h (Exception_Code): New type for C.
40551
40552         * rtsfind.ads (RE_Id, RE_Unit_Table): Add
40553         System.Standard_Library.Exception_Code, to allow references from the
40554         pragma import/export expander.
40555
40556         * a-exexpr.adb (Is_Handled_By_Others, Language_For, Import_Code_For):
40557         New accessors to allow easy access to GNAT exception data
40558         characteristics.
40559         (GNAT_GCC_Exception record, Propagate_Exception): Get rid of the
40560         redundant Handled_By_Others component, helper for the personality
40561         routine which will now be able to call the appropriate exception data
40562         accessor instead.
40563
40564         * cstand.adb (Create_Standard): Adjust the type of the Import_Code
40565         component of Standard_Exception_Type to be the closest possible to
40566         Exception_Code in System.Standard_Library, that we cannot get at this
40567         point. Expand a ??? comment to notify that this type node should
40568         probably be rewritten later on.
40569
40570         * exp_prag.adb (Expand_Pragma_Import_Export_Exception): Adjust the
40571         registration call to include a pointer to the exception object in the
40572         arguments.
40573
40574         * init.c (__gnat_error_handler): Use Exception_Code and Base_Code_In
40575         instead of int and explicit bitmasks.
40576
40577 2004-03-15  Vincent Celier  <celier@gnat.com>
40578
40579         * vms_data.ads: Add new GNAT BIND qualifier /STATIC. Makes /NOSHARED
40580         equivalent to /STATIC and /NOSTATIC equivalent to /SHARED.
40581
40582         * a-tasatt.adb (To_Access_Code): Remove this UC instantiation, no
40583         longer needed now that it is in the spec of
40584         System.Tasking.Task_Attributes.
40585
40586         * adaint.h, adaint.c: (__gnat_create_output_file): New function
40587
40588         * gnatcmd.adb: Fix bug introduced in previous rev: /= instead of =
40589
40590         * g-os_lib.ads, g-os_lib.adb (Create_Output_Text_File): New function.
40591
40592         * make.adb (Gnatmake): Do not check the executable suffix; it is being
40593         taken care of in Scan_Make_Arg.
40594         (Scan_Make_Arg): Add the executable suffix only if the argument
40595         following -o, in canonical case, does not end with the executable
40596         suffix.  When in verbose mode and executable file name does not end
40597         with executable suffix, output the executable name, in canonical case.
40598
40599         * s-tataat.ads (Access_Dummy_Wrapper): Add pragma No_Strict_Aliasing
40600         to avoid warnings when instantiating Ada.Task_Attributes.
40601         Minor reformating.
40602
40603         * mlib-prj.adb (Process_Imported_Libraries): Get the imported libraries
40604         in the correct order.
40605
40606         * prj-makr.adb (Process_Directory): No longer use GNAT.Expect, but
40607         redirect standard output and error to a file for the invocation of the
40608         compiler, then read the file.
40609
40610         * prj-nmsc.adb (Find_Sources): Use the Display_Value for each
40611         directory, instead of the Value.
40612         (Find_Source_Dirs): Remove useless code & comments.
40613
40614 2004-03-15  Ed Schonberg  <schonberg@gnat.com>
40615
40616         * exp_ch3.adb (Freeze_Record_Type): If a primitive operation of a
40617         tagged type is inherited, and the parent operation is not frozen yet,
40618         force generation of a freeze node for the inherited operation, so the
40619         corresponding dispatch entry is properly initialized.
40620         (Make_Predefined_Primitive_Specs): Check that return type is Boolean
40621         when looking for user-defined equality operation.
40622
40623         * exp_ch4.adb (Expand_Composite_Equality): Check that return type is
40624         boolean when locating primitive equality of tagged component.
40625
40626         * exp_ch5.adb (Expand_Assign_Array): If the left-hand side is a
40627         bit-aligned field and the right-hand side a string literal, introduce
40628         a temporary before expanding assignment into a loop.
40629
40630         * exp_ch9.adb (Expand_N_Task_Type_Declaration): Copy expression for
40631         priority in full, to ensure that any expanded subepxressions of it are
40632         elaborated in the scope of the init_proc.
40633
40634         * exp_prag.adb (Expand_Pragma_Import): Search for initialization call
40635         after object declaration, skipping over code that may have been
40636         generated for validity checks.
40637
40638         * sem_ch12.adb (Validate_Private_Type_Instance): If type has unknown
40639         discriminants, ignore the known discriminants of its full view, if
40640         any, to check legality.
40641
40642         * sem_ch3.adb (Complete_Private_Subtype): Do not create constrained
40643         component if type has unknown discriminants.
40644         (Analyze_Private_Extension_Declaration): Discriminant constraint is
40645         null if type has unknown discriminants.
40646
40647         * sem_ch6.adb (Analyze_Generic_Subprogram_Body): Generate reference
40648         for end label when present.
40649
40650         * s-fileio.adb (Open): When called with a C_Stream, use given name for
40651         temporary file, rather than an empty string.
40652
40653 2004-03-15  Ed Falis  <falis@gnat.com>
40654
40655         * s-thread.adb: Removed, no longer used.
40656
40657 2004-03-15  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
40658
40659         * decl.c (target.h): Now include.
40660         (gnat_to_gnu_entity, case E_Access_Type): Use mode derived from ESIZE
40661         in new build_pointer_from_mode calls for non-fat/non-thin pointer.
40662         (validate_size): For POINTER_TYPE, get smallest size permitted on
40663         machine.
40664
40665         * fe.h: Sort Einfo decls and add Set_Mechanism.
40666
40667         * Makefile.in: (LIBGNAT_SRCS): Remove types.h.
40668         (ada/decl.o): Depends on target.h.
40669
40670         * trans.c (tree_transform, N_Unchecked_Type_Conversion): Do not use
40671         FUNCTION_BOUNDARY; always use TYPE_ALIGN.
40672
40673 2004-03-15  Thomas Quinot  <quinot@act-europe.fr>
40674
40675         * 5ztpopsp.adb, 56tpopsp.adb: Fix spelling of Task_ID.
40676
40677         * exp_ch4.adb (Expand_N_Indexed_Component): Do not call
40678         Insert_Dereference_Action when rewriting an implicit dereference into
40679         an explicit one, this will be taken care of during expansion of the
40680         explicit dereference.
40681         (Expand_N_Slice): Same. Always do the rewriting, even for the case
40682         of non-packed slices, since the dereference action generated by
40683         expansion of the explicit dereference is needed in any case.
40684         (Expand_N_Selected_Component): When rewriting an implicit dereference,
40685         analyze and resolve the rewritten explicit dereference so it is seen
40686         by the expander.
40687         (Insert_Dereference_Action): This procedure is now called only for the
40688         expansion of an N_Explcit_Dereference_Node. Do insert a check even for
40689         dereferences that do not come from source (including explicit
40690         dereferences resulting from rewriting implicit ones), but do not
40691         recursively insert a check for the dereference nodes contained within
40692         the check.
40693         (Insert_Dereference_Action): Clarify and correct comment.
40694
40695 2004-03-08  Paolo Bonzini  <bonzini@gnu.org>
40696
40697         PR ada/14131
40698         Move language detection to the top level.
40699         * config-lang.in: Build by default.
40700
40701 2004-03-05  Robert Dewar  <dewar@gnat.com>
40702
40703         * 56taprop.adb, 5ataprop.adb: Remove unneeded unchecked conversions
40704
40705         * a-tags.adb, a-tags.ads, s-finimp.adb, s-finroo.ads,
40706         i-cpoint.ads, i-cpoint.adb, i-cstrin.adb, i-cstrin.ads,
40707         5iosinte.ads, 5sosinte.ads, 5staspri.ads, 5itaprop.adb,
40708         5staprop.adb, 5wtaprop.adb, s-tataat.ads, s-tataat.adb: Move
40709         unchecked conversion to spec to avoid warnings.
40710
40711         * s-tasini.adb, s-taskin.ads, 5atpopsp.adb: Correct spelling Task_Id
40712         to Task_ID
40713
40714         * 7stpopsp.adb: Correct casing in To_Task_ID call
40715
40716         * a-strsea.ads, a-strsea.adb: Minor reformatting
40717
40718         * einfo.ads, einfo.adb: Define new flag No_Strict_Aliasing
40719
40720         * errout.ads: Switch for VMS is now NO_STRICT_ALIASING.
40721         Adjust Max_Msg_Length to be clearly large enough.
40722
40723         * fe.h: Define In_Same_Source_Unit
40724
40725         * osint.adb: Add pragma Warnings Off to suppress warnings
40726         * g-dyntab.adb, g-table.adb, g-thread.adb: Add Warnings (Off) to kill
40727         aliasing warnings.
40728
40729         * opt.ads: Put entries in alpha order. Add entry for No_Strict_Aliasing
40730
40731         * par-prag.adb: Add dummy entry for No_Strict_Aliasing pragma
40732
40733         * sem_ch13.adb: Generate validate unchecked conversion nodes for gcc.
40734
40735         * sem_ch3.adb: Set No_Strict_Aliasing flag if config pragma set.
40736
40737         * sem_prag.adb: Implement pragma No_Strict_Aliasing.
40738
40739         * sinfo.ads: Remove obsolete comment on validate unchecked conversion
40740         node. We now do generate them for gcc back end.
40741
40742         * table.adb, sinput.adb: Add pragma Warnings Off to suppress aliasing
40743         warning.
40744
40745         * sinput-c.adb: Fix bad name in header.
40746         Add pragma Warnings Off to suppress aliasing warning.
40747
40748         * sinput-l.adb: Add pragma Warnings Off to suppress aliasing warning.
40749
40750         * snames.h, snames.ads, snames.adb: Add entry for pragma
40751         No_Strict_Aliasing.
40752
40753 2004-03-05  Vincent Celier  <celier@gnat.com>
40754
40755         * prj-com.ads: Add hash table Files_Htable to check when a file name
40756         is already a source of another project.
40757
40758         * prj-nmsc.adb (Record_Source): Before recording a new source, check
40759         if its file name is not already a source of another project. Report an
40760         error if it is.
40761
40762         * gnatcmd.adb: When GNAT PRETTY is invoked with a project file and no
40763         source file name, call gnatpp with all the sources of the main project.
40764
40765         * vms_conv.adb (Initialize): GNAT PRETTY may be called with any number
40766         of file names.
40767
40768         * vms_data.ads: Correct documentation of new /OPTIMIZE keyword
40769         NO_STRICT_ALIASING. Add new qualifier for GNAT PRETTY:
40770         /RUNTIME_SYSTEM=, converted to --RTS=
40771         /NOTABS, converted to -notabs
40772
40773 2004-03-05  Pascal Obry  <obry@gnat.com>
40774
40775         * make.adb: Minor reformatting.
40776
40777 2004-03-05  Ed Schonberg  <schonberg@gnat.com>
40778
40779         Part of implemention of AI-262.
40780         * par-ch10.adb (P_Context_Clause): Recognize private with_clauses.
40781
40782         * sem_ch10.ads, sem_ch10.adb: (Install_Private_With_Clauses): New
40783         procedure.
40784
40785         * sem_ch3.adb (Analyze_Component_Declaration): Improve error message
40786         when component type is a partially constrained class-wide subtype.
40787         (Constrain_Discriminated_Type): If parent type has unknown
40788         discriminants, a constraint is illegal, even if full view has
40789         discriminants.
40790         (Build_Derived_Record_Type): Inherit discriminants when deriving a type
40791         with unknown discriminants whose full view is a discriminated record.
40792
40793         * sem_ch7.adb (Preserve_Full_Attributes): Preserve Has_Discriminants
40794         flag, to handle properly derivations of tagged types with unknown
40795         discriminants.
40796         (Analyze_Package_Spec, Analyze_Package_Body): Install
40797         Private_With_Clauses before analyzing private part or body.
40798
40799         * einfo.ads: Indicate that both Has_Unknown_Discriminants and
40800         Has_Discriminants can be true for a given type (documentation).
40801
40802 2004-03-05  Arnaud Charlet  <charlet@act-europe.fr>
40803
40804         * s-restri.ads: Fix license (GPL->GMGPL).
40805
40806         * s-tassta.adb: Minor reformatting.
40807
40808         * s-tasren.adb: Replace manual handling of Self_Id.ATC_Nesting_Level
40809         by calls to Exit_One_ATC_Level, since additional clean up is performed
40810         by this function.
40811
40812         * s-tpobop.adb: Replace manual handling of Self_Id.ATC_Nesting_Level
40813         by calls to Exit_One_ATC_Level, since additional clean up is performed
40814         by this function.
40815
40816 2004-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
40817
40818         * trans.c: Reflect GCC changes to fix bootstrap problem.
40819         Add warning for suspicious aliasing unchecked conversion.
40820
40821 2004-03-05  GNAT Script  <nobody@gnat.com>
40822
40823         * Make-lang.in: Makefile automatically updated
40824
40825 2004-03-02  Emmanuel Briot  <briot@act-europe.fr>
40826
40827         * ali.adb (Read_Instantiation_Instance): Do not modify the
40828         current_file_num when reading information about instantiations, since
40829         this corrupts files in later references.
40830
40831 2004-03-02  Vincent Celier  <celier@gnat.com>
40832
40833         * bcheck.adb (Check_Consistency): Get the full path of an ALI file
40834         before checking if it is read-only.
40835
40836         * bld.adb (Recursive_Process): Concatenate <PROJECT>.src_dirs in front
40837         of SRC_DIRS and eliminate duplicates.
40838
40839         * gprcmd.adb: Replace command "path" with command "path_sep" to return
40840         the path separator.
40841         (Usage): Document path_sep
40842
40843         * Makefile.generic: For Ada and GNU C++ cases, link directly with the
40844         C++ compiler. No need for a script.
40845         Replace use of C*_INCLUDE_PATH env var for GCC compilers with CPATH.
40846         Do not call gprcmd to build the C*_INCLUDE_PATHs, do it with function
40847         subst.
40848
40849         * prj-env.adb (For_All_Source_Dirs): Only add source dirs in project
40850         where there are Ada sources.
40851         (Set_Ada_Paths): Only add to the include path the source dirs of project
40852         with Ada sources.
40853         (Add_To_Path): Add the Display_Values of the directories, not their
40854         Values.
40855
40856         * prj-nmsc.adb (Find_Sources): Set flag Sources_Present in the project
40857         data.
40858
40859         * prj-nmsc.adb (Add_ALI_For): Make sure that the element Display_Value
40860         is not No_Name.
40861         (Find_Source_Dirs): Set Display_Value to a non canonicalized value, only
40862         Value is canonicalized.
40863         (Language_Independent_Check): Do not copy Value to Display_Value when
40864         canonicalizing Value.
40865
40866         * prj-part.adb (Post_Parse_Context_Clause): Compare canonical cased
40867         path to find limited with cycles.
40868         (Parse_Single_Project): Use canonical cased path to find the end of a
40869         with cycle.
40870
40871 2004-03-02  Ed Schonberg  <schonberg@gnat.com>
40872
40873         * sem_ch10.adb (Optional_Subunit): Verify that unit contains a subunit
40874         and not a child unit.
40875
40876         * sinfo.ads, sinfo.adb: Rearrange flags so that Private_Present can
40877         appear in a with_clause.
40878
40879         * decl.c (gnat_to_gnu_type): If entity is a generic type, which can
40880         only happen in type_annotate mode, do not try to elaborate it.
40881
40882         * exp_util.adb (Force_Evaluation): If expression is a selected
40883         component on the left of an assignment, use a renaming rather than a
40884         temporary to remove side effects.
40885
40886         * freeze.adb (Freeze_Entity): Do not freeze a global entity within an
40887         inlined instance body, which is analyzed before the end of the
40888         enclosing scope.
40889
40890 2004-03-02  Robert Dewar  <dewar@gnat.com>
40891
40892         * par-ch10.adb, par-ch3.adb, par-ch4.adb, scng.adb,
40893         sem_ch4.adb: Use new feature for substitution of keywords in VMS
40894
40895         * errout.ads, errout.adb: Implement new circuit for substitution of
40896         keywords in VMS.
40897
40898         * sem_case.adb (Analyze_Choices): Place message properly when case is
40899         a subtype reference rather than an explicit range.
40900
40901         * sem_elim.adb, s-tpobop.ads, exp_ch2.adb: Minor reformatting
40902
40903 2004-03-02  Doug Rupp  <rupp@gnat.com>
40904
40905         * init.c (__gnat_initialize)[VMS]: Resignal RDB-E-STREAM_EOF.
40906
40907 2004-03-02  Thomas Quinot  <quinot@act-europe.fr>
40908
40909         * s-tporft.adb: Add missing locking around call to Initialize_ATCB.
40910
40911 2004-03-02  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
40912
40913         * utils.c (finish_record_type): Do not set DECL_NONADDRESSABLE for a
40914         BLKmode bitfield.
40915
40916 2004-02-25  Robert Dewar  <dewar@gnat.com>
40917
40918         * 51osinte.ads, 52osinte.ads, 53osinte.ads, 54osinte.ads,
40919         55osinte.ads, 56osinte.ads, 5aosinte.ads, 5bosinte.ads,
40920         5cosinte.ads, 5fosinte.ads, 5gosinte.ads, 5hosinte.ads,
40921         5iosinte.ads, 5losinte.ads, 5nosinte.ads, 5oosinte.ads,
40922         5posinte.ads, 5sosinte.ads, 5tosinte.ads, 5vosinte.ads,
40923         5wosinte.ads, 5zosinte.ads: Move instances of Unchecked_Conversion to
40924         the defining instance of the type to avoid aliasing problems.
40925         Fix copyright header.  Fix bad comments in package header.
40926
40927         * exp_util.adb, prj-part.adb, prj-part.adb: Minor reformatting
40928
40929 2004-02-25  Ed Schonberg  <schonberg@gnat.com>
40930
40931         * exp_ch2.adb (Param_Entity): Handle properly formals that have been
40932         rewritten as references when aliased through an address clause.
40933
40934         * sem_ch4.adb (Try_Indirect_Call): Normalize actuals before checking
40935         whether call can be interpreted as an indirect call to the result of a
40936         parameterless function call returning an access subprogram.
40937
40938 2004-02-25  Arnaud Charlet  <charlet@act-europe.fr>
40939
40940         Code clean up:
40941         * exp_ch7.adb (Make_Clean): Remove generation of calls to
40942         Unlock[_Entries], since this is now done by Service_Entries directly.
40943
40944         * exp_ch9.adb (Build_Protected_Subprogram_Body): ditto.
40945
40946         * s-tpobop.ads, s-tpobop.adb (PO_Service_Entries): New nested procedure
40947         Requeue_Call for better code readability. Change spec and update calls:
40948         PO_Service_Entries now unlock the PO on exit.
40949         (Protected_Entry_Call, Timed_Protected_Entry_Call): Update calls to
40950         PO_Service_Entries.
40951
40952         * s-tposen.ads, s-tposen.adb (Service_Entry): Now unlock the PO on exit.
40953
40954         * s-taenca.adb, s-tasren.adb: Update calls to PO_Service_Entries.
40955
40956 2004-02-25  Sergey Rybin  <rybin@act-europe.fr>
40957
40958         * exp_ch9.adb (Build_Simple_Entry_Call): Prevent expanding the
40959         protected subprogram call and analyzing the result of such expanding
40960         in case when the called protected subprogram is eliminated.
40961
40962         * sem_elim.adb (Check_Eliminated): Skip blocks when comparing scope
40963         names.
40964
40965 2004-02-25  Jerome Guitton  <guitton@act-europe.fr>
40966
40967         * Makefile.in: Clean ups.
40968
40969 2004-02-23  Ed Schonberg  <schonberg@gnat.com>
40970
40971         * exp_ch6.adb (Expand_N_Subprogram_Declaration): Do not create
40972         protected operations if original subprogram is flagged as eliminated.
40973         (Expand_N_Subprogram_Body): For a protected operation, create
40974         discriminals for next operation before checking whether the operation
40975         is eliminated.
40976
40977         * exp_ch9.adb (Expand_N_Protected_Body,
40978         Expand_N_Protected_Type_Declaration): Do not generate specs and bodies
40979         for internal protected operations if the original subprogram is
40980         eliminated.
40981
40982         * sem_elim.adb (Check_Eliminated): Handle properly protected operations
40983         declared in a single protected object.
40984
40985 2004-02-23  Vincent Celier  <celier@gnat.com>
40986
40987         * prj-attr.adb: Make attribute Builder'Executable an associative array,
40988         case insensitive if file names are case insensitive, instead of a
40989         standard associative array.
40990
40991         * prj-attr.adb (Initialize): For 'b' associative arrays, do not set
40992         them as case insensitive on platforms where the file names are case
40993         sensitive.
40994
40995         * prj-part.adb (Parse_Single_Project): Make sure, when checking if
40996         project file has already been parsed that canonical path are compared.
40997
40998 2004-02-23  Robert Dewar  <dewar@gnat.com>
40999
41000         * sinput-c.ads: Correct bad unit title in header
41001
41002         * freeze.adb: Minor reformatting
41003
41004 2004-02-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
41005
41006         * trans.c (tree_transform, case N_Procedure_Call_Statement): For
41007         nonaddressable COMPONENT_REF that is removing padding that we are
41008         taking the address of, take the address of the padded record instead
41009         if item is variable size.
41010
41011 2004-02-20  Robert Dewar  <dewar@gnat.com>
41012
41013         * bld.adb, exp_util.adb, gprcmd.adb: Minor reformatting
41014
41015 2004-02-20  Ed Schonberg  <schonberg@gnat.com>
41016
41017         * freeze.adb (Freeze_Record_Type): Generalize mechanism that generates
41018         itype references for the constrained designated type of a component
41019         whose base type is already frozen.
41020
41021 2004-02-20  Arnaud Charlet  <charlet@act-europe.fr>
41022
41023         * init.c (__gnat_error_handler [tru64]): Rewrite previous change to
41024         avoid GCC warnings.
41025
41026 2004-02-20  Sergey Rybin  <rybin@act-europe.fr>
41027
41028         * sem_ch12.adb (Analyze_Formal_Package): Create a new defining
41029         identifier for a phantom package that rewrites the formal package
41030         declaration with a box. The Add semantic decorations for the defining
41031         identifier from the original node (that represents the formal package).
41032
41033 2004-02-19  Matt Kraai  <kraai@alumni.cmu.edu>
41034
41035         * Make-lang.in (ada/stamp-sdefault): Use the top level
41036         move-if-change.
41037
41038 2004-02-19  Richard Henderson  <rth@redhat.com>
41039
41040         * misc.c (record_code_position): Add third build arg for RTL_EXPR.
41041
41042 2004-02-18  Emmanuel Briot  <briot@act-europe.fr>
41043
41044         * ali.ads, ali.adb (First_Sdep_Entry): No longer a constant, so that
41045         Scan_ALI can be used for multiple ALI files without reinitializing
41046         between calls.
41047
41048 2004-02-18  Robert Dewar  <dewar@gnat.com>
41049
41050         * debug.adb: Minor reformatting.
41051
41052 2004-02-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
41053
41054         * decl.c (gnat_to_gnu_entity, case object): Set DECL_POINTER_ALIAS_SET
41055         to zero if there is an address clause.
41056
41057 2004-02-18  Thomas Quinot  <quinot@act-europe.fr>
41058
41059         * exp_util.adb (Side_Effect_Free): Any literal is side effects free.
41060
41061 2004-02-18  Gary Dismukes  <dismukes@gnat.com>
41062
41063         * layout.adb (Layout_Component_List): Revise generation of call to
41064         discriminant-checking function to pass selections of all of the type's
41065         discriminants rather than just the variant-controlling discriminant.
41066
41067 2004-02-18  Olivier Hainque  <hainque@act-europe.fr>
41068
41069         * 5gmastop.adb (Pop_Frame): Do not call exc_unwind, which is bound to
41070         fail in the current setup and triggers spurious system error messages.
41071         Pretend it occurred and failed instead.
41072
41073 2004-02-18  Vincent Celier  <celier@gnat.com>
41074
41075         * bld.adb: Mark FLDFLAGS as saved
41076         (Process_Declarative_Items): Add Linker'Linker_Options to FLDFLAGS when
41077         it is not the root project.  Put each directory to be
41078         extended between double quotes to prevent it to be expanded on Windows.
41079         (Recursive_Process): Reset CFLAGS/CXXFLAGS to nothing before processing
41080         the project file. Set them back to their initial values if they have not
41081         been set in the project file.
41082
41083         * gprcmd.adb: (Gprdebug, Debug): New global variables
41084         (Display_Command): New procedure
41085         (Usage): Document new command "linkopts"
41086         Call Display_Command when env var GPRDEBUG has the value "TRUE"
41087         Implement new command "linkopts"
41088         Remove quotes that may be around arguments for "extend"
41089         Always call Normalize_Pathname with arguments formatted for the platform
41090
41091         * Makefile.generic: Link C/C++ mains with $(FLDFLAGS)
41092         Change @echo to @$(display) in target clean to be able to clean silently
41093
41094         * Makefile.prolog: Save FLDFLAGS and give it an initial empty value
41095
41096         * prj-part.adb (Project_Path_Name_Of): Do not put final result in
41097         canonical case.
41098
41099         * prj-part.adb (Parse_Single_Project): Always call with From_Extended
41100         = Extending_All when current project is an extending all project.
41101
41102         * vms_conv.adb (Output_File_Expected): New Boolean global variable,
41103         set to True only for LINK command, after Unix switch -o.
41104         (Process_Arguments): Set Output_File_Expected to True for LINK command
41105         after Unix switch -o. When Output_File_Expected is True, never add an
41106         extension to a file name.
41107
41108         * 5vml-tgt.adb (Build_Dynamic_Library): Do not append "/OPTIONS" to the
41109         option file name, only to the --for-linker= switch.
41110         (Option_File_Name): If option file name do not end with ".opt", append
41111         "/OPTIONS".
41112
41113 2004-02-18  GNAT Script  <nobody@gnat.com>
41114
41115         * Make-lang.in: Makefile automatically updated
41116
41117 2004-02-17  Matt Kraai  <kraai@alumni.cmu.edu>
41118
41119         * Make-lang.in (stamp-sdefault): Do not depend on
41120         move-if-change.
41121
41122 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
41123
41124         * config-lang.in: Disable Ada by default until probe logic for
41125         a bootstrap Ada compiler can be moved to the top level configure
41126         script.
41127
41128 2004-02-12  Olivier Hainque  <hainque@act-europe.fr>
41129
41130         * decl.c (components_to_record): Don't claim that the internal fields
41131         we make to hold the variant parts are semantically addressable, because
41132         they are not.
41133
41134         * exp_pakd.adb (Create_Packed_Array_Type): Rename Esiz into PASize and
41135         adjust the comment describing the modular type form when we can use it.
41136         (Install_PAT): Account for the Esiz renaming.
41137
41138         * init.c (__gnat_error_handler for alpha-tru64): Arrange to clear the
41139         sc_onstack context indication before raising the exception to which
41140         the signal is mapped. Allows better handling of later signals possibly
41141         triggered by the resumed user code if the exception is handled.
41142
41143 2004-02-12  Arnaud Charlet  <charlet@act-europe.fr>
41144
41145         * 5zinit.adb: Removed, no longer used.
41146
41147 2004-02-12  Robert Dewar  <dewar@gnat.com>
41148
41149         * ali.adb: Remove separating space between parameters on R line. Makes
41150         format consistent with format used by the binder for Set_Globals call.
41151
41152         * atree.ads, atree.adb: Minor reformatting (new function header format)
41153
41154         * bindgen.adb: Add Run-Time Globals documentation section containing
41155         detailed documentation of the globals passed from the binder file to
41156         the run time.
41157
41158         * gnatls.adb: Minor reformatting
41159
41160         * init.c (__gnat_set_globals): Add note pointing to documentation in
41161         bindgen.
41162
41163         * lib-writ.ads, lib-writ.adb: Remove separating space between
41164         parameters on R line.
41165         Makes format consistent with format used by the binder for Set_Globals
41166         call.
41167
41168         * osint.ads: Add 2004 to copyright notice
41169         Minor reformatting
41170
41171         * snames.ads: Correct capitalization of FIFO_Within_Priorities
41172         Noticed during code reading, documentation issue only
41173
41174         * usage.adb: Remove junk line for obsolete C switch
41175         Noticed during code reading
41176
41177 2004-02-12  Vincent Celier  <celier@gnat.com>
41178
41179         * bld.adb (Process_Declarative_Items): For Source_Dirs call gprcmd
41180         extend for each directory, so that multiple /** directories are
41181         extended individually.
41182         (Recursive_Process): Set the default for LANGUAGES to ada
41183
41184         * gprcmd.adb: Define new command "ignore", to do nothing.
41185         Implement new comment "path".
41186
41187         * Makefile.generic: Suppress output when SILENT is set
41188         Make sure that when compiler for C/C++ is gcc, the correct -x switch is
41189         used, so that the correct compiler is invoked.
41190         When compiler is gcc/g++, put search path in env vars C_INCLUDE_PATH/
41191         CXX_INCLUDE_PATH, to avoid failure with too long command lines.
41192
41193 2004-02-12  Jerome Guitton  <guitton@act-europe.fr>
41194
41195         * Makefile.in: Clean ups and remove obsolete targets.
41196
41197 2004-02-12  Ed Schonberg  <schonberg@gnat.com>
41198
41199         * exp_ch5.adb: Remove Possible_Unligned_Slice, in favor of the similar
41200         predicate declared in exp_util.
41201
41202         * exp_util.adb: Add comments.
41203
41204         * sem_ch10.adb (Analyze_Subunit): Remove ultimate parent unit from
41205         visibility before compiling context of the subunit.
41206
41207         * sem_res.adb (Check_Parameterless_Call): If the context expects a
41208         value but the name is a procedure, do not attempt to analyze as a call,
41209         in order to obtain more telling diagnostics.
41210
41211         * sem_util.adb (Wrong_Type): Further enhancement to diagnose missing
41212         'Access on parameterless function calls.
41213         (Normalize_Actuals): For a parameterless function call with missing
41214         actuals, defer diagnostic until resolution of enclosing call.
41215
41216         * sem_util.adb (Wrong_Type): If the context type is an access to
41217         subprogram and the expression is a procedure name, suggest a missing
41218         'attribute.
41219
41220 2004-02-10  Arnaud Charlet  <charlet@act-europe.fr>,
41221             Nathanael Nerode  <neroden@gcc.gnu.org>
41222
41223         PR ada/6637
41224         PR ada/5911
41225         Merge with libada-branch:
41226         * config-lang.in: Build libada only when ada is built.
41227
41228 2004-02-09  Ed Schonberg  <schonberg@gnat.com>
41229
41230         * exp_ch4.adb (Expand_N_Op_Eq): When looking for the primitive equality
41231         for a tagged type, verify that both formals have the same type.
41232
41233         * exp_ch6.adb (Add_Call_By_Copy_Code): Initialize properly the
41234         temporary when the formal is an in-parameter and the actual a possibly
41235         unaligned slice.
41236
41237         * exp_ch9.adb (Expand_Entry_Barrier): Resolve barrier expression even
41238         when expansion is disabled, to ensure proper name capture with
41239         overloaded literals.  Condition can be of any boolean type, resolve
41240         accordingly.
41241
41242         * sem_ch8.adb (Analyze_Subprogram_Renaming): Emit warning if the
41243         renaming is for a formal subprogram with a default operator name, and
41244         there is a usable operator that is visible at the point of
41245         instantiation.
41246
41247 2004-02-09  Robert Dewar  <dewar@gnat.com>
41248
41249         * ali.adb (Scan_Ali) Add Ignore_Errors argument. This is a major
41250         rewrite to ignore errors in ali files, intended to allow tools downward
41251         compatibility with new versions of ali files.
41252
41253         * ali.ads: Add new parameter Ignore_Errors
41254
41255         * bcheck.adb (Check_Consistent_Restrictions): Fix error of sometimes
41256         duplicating the error message giving the file with restrictions.
41257
41258         * debug.adb: Add debug flag I for gnatbind
41259
41260         * errout.adb (Set_Msg_Insertion_Node): Suppress extra quotes around
41261         operators for the case where the operator is a defining operator.
41262
41263         * exp_ch3.adb: Minor reformatting (new function spec format).
41264
41265         * exp_ch4.adb: Add comment for previous change, and make minor
41266         adjustment to loop to always check for improper loop termination.
41267         Minor reformatting throughout (new function spec format).
41268
41269         * gnatbind.adb: Implement -di debug flag for gnatbind
41270
41271         * gnatlink.adb: Call Scan_ALI with Ignore_Errors set to True
41272
41273         * gnatls.adb: Call Scan_ALI with Ignore_Errors set to True
41274
41275         * lib-load.adb: Fix bad assertion.
41276         Found by testing and code reading.
41277         Minor reformatting.
41278
41279         * lib-load.ads: Minor reformatting.
41280
41281         * lib-writ.adb: There is only one R line now.
41282
41283         * lib-writ.ads: Add documentation on making downward compatible changes
41284         to ali files so old tools work with new ali files.
41285         There is only one R line now.
41286         Add documentation on format incompatibilities (with special GPS note)
41287
41288         * namet.ads, namet.adb: (Is_Operator_Name): New procedure
41289
41290         * par-load.adb: Minor reformatting
41291
41292         * sem_ch8.adb: Fix to error message from last update
41293         Minor reformatting and restructuring of code from last update
41294
41295         * par-prag.adb, snames.adb, snames.ads, snames.h,
41296         sem_prag.adb: Implement pragma Profile.
41297
41298         * stylesw.adb: Implement -gnatyN switch to turn off all style check
41299         options.
41300
41301         * usage.adb: Add line for -gnatyN switch
41302
41303         * vms_data.ads: Add entry STYLE_CHECKS=NONE for -gnatyN
41304
41305 2004-02-09  Albert Lee  <lee@gnat.com>
41306
41307         * errno.c: define _SGI_MP_SOURCE for task-safe errno on IRIX
41308
41309 2004-02-09  Ed Schonberg  <schonberg@gnat.com>
41310
41311         * exp_ch3.adb (Build_Slice_Assignment): Handle properly case of null
41312         slices.
41313
41314         * exp_ch6.adb (Expand_Call): Do not inline a call when the subprogram
41315         is nested in an instance that is not frozen yet, to avoid
41316         order-of-elaboration problems in gigi.
41317
41318         * sem_attr.adb (Analyze_Attribute, case 'Access): Within an inlined
41319         body the attribute is legal.
41320
41321 2004-02-09  Robert Dewar  <dewar@gnat.com>
41322
41323         * s-rident.ads: Minor comment correction
41324
41325         * targparm.adb: Remove dependence on uintp completely. There was
41326         always a bug in Make in that it called Targparm before initializing
41327         the Uint package. The old code appeared to get away with this, but
41328         the new code did not! This caused an assertion error in gnatmake.
41329
41330         * targparm.ads: Fix bad comment, restriction pragmas with parameters
41331         are indeed fully supported.
41332
41333 2004-02-06  Alan Modra  <amodra@bigpond.net.au>
41334
41335         * misc.c (default_pass_by_ref): Update INIT_CUMULATIVE_ARGS call.
41336
41337 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
41338
41339         * ada/utils.c (create_param_decl): Replace PROMOTE_PROTOTYPES
41340         with targetm.calls.promote_prototypes.
41341
41342 2004-02-04  Robert Dewar  <dewar@gnat.com>
41343
41344         * 5gtasinf.adb, 5gtasinf.ads, 5gtaprop.adb, ali.adb,
41345         ali.ads, gprcmd.adb: Minor reformatting
41346
41347         * bindgen.adb: Output restrictions string for new style restrictions
41348         handling
41349
41350         * impunit.adb: Add s-rident.ads (System.Rident) and
41351         s-restri (System.Restrictions)
41352
41353         * lib-writ.adb: Fix bug in writing restrictions string (last few
41354         entries wrong)
41355
41356         * s-restri.ads, s-restri.adb: Change name Restrictions to
41357         Run_Time_Restrictions to avoid conflict with package name.
41358         Add circuit to read and acquire run time restrictions.
41359
41360 2004-02-04  Jose Ruiz  <ruiz@act-europe.fr>
41361
41362         * restrict.ads, restrict.adb: Use the new restriction
41363         No_Task_Attributes_Package instead of the old No_Task_Attributes.
41364
41365         * sem_prag.adb: No_Task_Attributes is a synonym of
41366         No_Task_Attributes_Package.
41367
41368         * snames.ads, snames.adb: New entry for proper handling of
41369         No_Task_Attributes.
41370
41371         * s-rident.ads: Adding restriction No_Task_Attributes_Package
41372         (AI-00249) that supersedes the GNAT specific restriction
41373         No_Task_Attributes.
41374
41375 2004-02-04  Ed Schonberg  <schonberg@gnat.com>
41376
41377         * sem_prag.adb:
41378         (Analyze_Pragma, case Warnings): In an inlined body, as in an instance
41379          body, an identifier may be wrapped in an unchecked conversion.
41380
41381 2004-02-04  Vincent Celier  <celier@gnat.com>
41382
41383         * lib-writ.ads: Comment update for the W lines
41384
41385         * bld.adb: (Expression): An empty string list is static
41386
41387         * fname-uf.adb: Minor comment update
41388
41389         * fname-uf.ads: (Get_File_Name): Document new parameter May_Fail
41390
41391         * gnatbind.adb: Initialize Cumulative_Restrictions with the
41392         restrictions on the target.
41393
41394 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
41395
41396         * ada/trans.c (gigi): Use gen_rtx_SYMBOL_REF instead of
41397         gen_rtx.
41398
41399 2004-02-02  Arnaud Charlet  <charlet@gnat.com>
41400
41401         * Makefile.in: Remove setting of THREADSLIB on mips o32, unneeded.
41402
41403 2004-02-02  Vincent Celier  <celier@gnat.com>
41404
41405         * gprcmd.adb (Check_Args): If condition is false, print the invoked
41406         comment before the usage.
41407         Gprcmd: Fail when command is not recognized.
41408         (Usage): Document command "prefix"
41409
41410         * g-md5.adb (Digest): Process last block.
41411         (Update): Do not process last block. Store remaining characters and
41412         length in Context.
41413
41414         * g-md5.ads (Update): Document that several call to update are
41415         equivalent to one call with the concatenated string.
41416         (Context): Add fields to allow new Update behaviour.
41417
41418         * fname-uf.ads/adb (Get_File_Name): New Boolean parameter May_Fail,
41419         defaulted to False.
41420         When May_Fail is True and no existing file can be found, return No_File.
41421
41422         * 6vcstrea.adb: Inlined functions are now wrappers to implementation
41423         functions.
41424
41425         * lib-writ.adb (Write_With_Lines): When body file does not exist, use
41426         spec file name instead on the W line.
41427
41428 2004-02-02  Robert Dewar  <dewar@gnat.com>
41429
41430         * ali.adb: Read and acquire info from new format restrictions lines
41431
41432         * bcheck.adb: Add circuits for checking restrictions with parameters
41433
41434         * bindgen.adb: Output dummy restrictions data
41435         To be changed later
41436
41437         * ali.ads, checks.adb, exp_aggr.adb, exp_attr.adb, exp_ch11.adb,
41438         exp_ch3.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_util.adb,
41439         freeze.adb, gnat1drv.adb, sem_attr.adb, sem_ch10.adb, sem_ch11.adb,
41440         sem_ch12.adb, targparm.adb, targparm.ads, tbuild.adb, sem_ch2.adb,
41441         sem_elab.adb, sem_res.adb: Minor changes for new restrictions handling.
41442
41443         * exp_ch9.adb (Build_Master_Entity): Cleanup the code (also suppresses
41444         the warning message on access to possibly uninitialized variable S)
41445         Minor changes for new restrictions handling.
41446
41447         * gnatbind.adb: Minor reformatting
41448         Minor changes for new restrictions handling
41449         Move circuit for -r processing here from bcheck (cleaner)
41450
41451         * gnatcmd.adb, gnatlink.adb: Minor reformatting
41452
41453         * lib-writ.adb: Output new format restrictions lines
41454
41455         * lib-writ.ads: Document new R format lines for new restrictions
41456         handling.
41457
41458         * s-restri.ads/adb: New files
41459
41460         * Makefile.rtl: Add entry for s-restri.ads/adb
41461
41462         * par-ch3.adb: Fix bad error messages starting with upper case letter
41463         Minor reformatting
41464
41465         * restrict.adb: Major rewrite throughout for new restrictions handling
41466         Major point is to handle restrictions with parameters
41467
41468         * restrict.ads: Major changes in interface to handle restrictions with
41469         parameters. Also generally simplifies setting of restrictions.
41470
41471         * snames.ads/adb: New entry for proper handling of No_Requeue
41472
41473         * sem_ch3.adb (Count_Tasks): New circuitry for implementing Max_Tasks
41474         restriction counting.
41475         Other minor changes for new restrictions handling
41476
41477         * sem_prag.adb: No_Requeue is a synonym for No_Requeue_Statements.
41478         Restriction_Warnings now allows full parameter notation
41479         Major rewrite of Restrictions for new restrictions handling
41480
41481 2004-02-02  Javier Miranda  <miranda@gnat.com>
41482
41483         * par-ch3.adb (P_Identifier_Declarations): Give support to the Ada 0Y
41484         syntax rule for object renaming declarations.
41485         (P_Array_Type_Definition): Give support for the Ada 0Y syntax rule for
41486         component definitions.
41487
41488         * sem_ch3.adb (Analyze_Component_Declaration): Give support to access
41489         components.
41490         (Array_Type_Declaration): Give support to access components. In addition
41491         it was also modified to reflect the name of the object in anonymous
41492         array types. The old code did not take into account that it is possible
41493         to have an unconstrained anonymous array with an initial value.
41494         (Check_Or_Process_Discriminants): Allow access discriminant in
41495         non-limited types.
41496         (Process_Discriminants): Allow access discriminant in non-limited types
41497         Initialize the new Access_Definition field in N_Object_Renaming_Decl
41498         node.  Change Ada0Y to Ada 0Y in comments
41499
41500         * sem_ch4.adb (Find_Equality_Types): Allow anonymous access types in
41501         equality operators.
41502         Change Ada0Y to Ada 0Y in comments
41503
41504         * sem_ch8.adb (Analyze_Object_Renaming): Give support to access
41505         renamings Change Ada0Y to Ada 0Y in comments
41506
41507         * sem_type.adb (Find_Unique_Type): Give support to the equality
41508         operators for universal access types
41509         Change Ada0Y to Ada 0Y in comments
41510
41511         * sinfo.adb (Access_Definition, Set_Access_Definition): New subprograms
41512
41513         * sinfo.ads (N_Component_Definition): Addition of Access_Definition
41514         field.
41515         (N_Object_Renaming_Declaration): Addition of Access_Definition field
41516         Change Ada0Y to Ada 0Y in comments
41517
41518         * sprint.adb (Sprint_Node_Actual): Give support to the new syntax for
41519         component definition and object renaming nodes
41520         Change Ada0Y to Ada 0Y in comments
41521
41522 2004-02-02  Jose Ruiz  <ruiz@act-europe.fr>
41523
41524         * restrict.adb: Use the new restriction identifier
41525         No_Requeue_Statements instead of the old No_Requeue for defining the
41526         restricted profile.
41527
41528         * sem_ch9.adb (Analyze_Requeue): Check the new restriction
41529         No_Requeue_Statements.
41530
41531         * s-rident.ads: Adding restriction No_Requeue_Statements (AI-00249)
41532         that supersedes the GNAT specific restriction No_Requeue. The later is
41533         kept for backward compatibility.
41534
41535 2004-02-02  Ed Schonberg  <schonberg@gnat.com>
41536
41537         * lib.ads, i-cobol.ads, * s-stoele.ads, s-thread.ads, style.ads,
41538         5staprop.adb, atree.adb, atree.ads, g-crc32.ads: Remove redundant
41539         pragma and fix incorrect ones.
41540
41541         * sem_prag.adb For pragma Inline and pragma Pure_Function, emit a
41542         warning if the pragma is redundant.
41543
41544 2004-02-02  Thomas Quinot  <quinot@act-europe.fr>
41545
41546         * 5staprop.adb: Add missing 'constant' keywords.
41547
41548         * Makefile.in: use consistent value for SYMLIB on
41549         platforms where libaddr2line is supported.
41550
41551 2004-02-02  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
41552
41553         * utils.c (end_subprog_body): Do not call rest_of_compilation if just
41554         annotating types.
41555
41556 2004-02-02  Olivier Hainque  <hainque@act-europe.fr>
41557
41558         * init.c (__gnat_install_handler): Setup an alternate stack for signal
41559         handlers in the environment thread. This allows proper propagation of
41560         an exception on stack overflows in this thread even when the builtin
41561         ABI stack-checking scheme is used without support for a stack reserve
41562         region.
41563
41564         * utils.c (create_field_decl): Augment the head comment about bitfield
41565         creation, and don't account for DECL_BIT_FIELD in DECL_NONADDRESSABLE_P
41566         here, because the former is not accurate enough at this point.
41567         Let finish_record_type decide instead.
41568         Don't make a bitfield if the field is to be addressable.
41569         Always set a size for the field if the record is packed, to ensure the
41570         checks for bitfield creation are triggered.
41571         (finish_record_type): During last pass over the fields, clear
41572         DECL_BIT_FIELD when possible in the !STRICT_ALIGNMENT case, as this is
41573         not covered by the calls to layout_decl.  Adjust DECL_NONADDRESSABLE_P
41574         from DECL_BIT_FIELD.
41575
41576 2004-01-30  Kelley Cook  <kcook@gcc.gnu.org>
41577
41578         * Make-lang.in (doc/gnat_ug_unx.dvi): Use $(abs_docdir).
41579         (doc/gnat_ug_vms.dvi, doc/gnat_ug_unx.dvi): Likewise.
41580         (doc/gnat_ug_unx.dvi, doc/gnat-style.dvi): Likewise.
41581
41582 2004-01-26  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
41583
41584         * Makefile.in (mips-sgi-irix5): Remove -lathread from THREADSLIB.
41585
41586         * 5fsystem.ads (Functions_Return_By_DSP): Set to False.
41587         (ZCX_By_Default): Likewise.
41588         (Front_End_ZCX_Support): Likewise.
41589
41590         * 5gtaprop.adb (Stack_Guard): Mark T, On unreferenced.
41591         (Initialize_Lock): Mark Level unreferenced.
41592         (Sleep): Mark Reason unreferenced.
41593         (Timed_Sleep): Likewise.
41594         (Wakeup): Likewise.
41595         (Exit_Task): Use Result.
41596         (Check_No_Locks): Mark Self_ID unreferenced.
41597
41598         * 5gtasinf.adb (New_Sproc): Make Attr constant.
41599         (Bound_Thread_Attributes): Make Sproc constant.
41600         (New_Bound_Thread_Attributes): Likewise.
41601
41602 2004-01-26  Ed Schonberg  <schonberg@gnat.com>
41603
41604         * exp_ch3.adb (Build_Slice_Assignment): New TSS procedure for
41605         one-dimensional array an slice assignments, when component type is
41606         controlled.
41607
41608         * exp_ch5.adb (Expand_Assign_Array): If array is one-dimensional,
41609         component type is controlled, and control_actions are in effect, use
41610         TSS procedure rather than generating inline code.
41611
41612         * exp_tss.ads (TSS_Slice_Assign): New TSS procedure for one-dimensional
41613         arrays with controlled components.
41614
41615 2004-01-26  Vincent Celier  <celier@gnat.com>
41616
41617         * gnatcmd.adb (GNATCmd): Add specification of argument file on the
41618         command line for the non VMS case.
41619
41620         * gnatlink.adb (Process_Binder_File): When building object file, if
41621         GNU linker is used, put all object paths between quotes, to prevent ld
41622         error when there are unusual characters (such as '!') in the paths.
41623
41624         * Makefile.generic: When there are sources in Ada and the main is in
41625         C/C++, invoke gnatmake with -B, instead of -z.
41626
41627         * vms_conv.adb (Preprocess_Command_Data): New procedure, extracted
41628         from VMS_Conversion.
41629         (Process_Argument): New procedure, extracted from VMS_Conversion. Add
41630         specification of argument file on the command line.
41631
41632 2004-01-26  Bernard Banner  <banner@gnat.com>
41633
41634         * Makefile.in: Enable GMEM_LIB and SYMLIB for x86_64
41635
41636 2004-01-26  Ed Schonberg  <schonberg@gnat.com>
41637
41638         * snames.adb: Update copyright notice.
41639         Add info on slice assignment for controlled arrays.
41640
41641 2004-01-23  Robert Dewar  <dewar@gnat.com>
41642
41643         * exp_aggr.adb: Minor reformatting
41644
41645         * exp_ch9.adb: Minor code clean up
41646         Minor reformatting
41647         Fix bad character in comment
41648
41649         PR ada/13471
41650         * targparm.adb (Get_Target_Parameters): Give clean abort error on
41651         unexpected end of file, along with more detailed message.
41652
41653 2004-01-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
41654
41655         * exp_pakd.adb (Install_PAT): Clear Freeze_Node for PAT and Etype of
41656         PAT.
41657
41658         * decl.c (copy_alias_set): New function.
41659         (gnat_to_gnu_entity, make_aligning_type, make_packable_type): Use it.
41660
41661 2004-01-23  Doug Rupp  <rupp@gnat.com>
41662
41663         * Makefile.in (install-gnatlib): Change occurrences of lib$$file to
41664         lib$${file} in case subsequent character is not a separator.
41665
41666 2004-01-23  Vincent Celier  <celier@gnat.com>
41667
41668         * 5vml-tgt.adb (Build_Dynamic_Library): Invoke gcc with -shared-libgcc
41669         when the GCC version is at least 3.
41670
41671         * make.adb: (Scan_Make_Arg): Pass -B to Scan_Make_Switches
41672         Remove all "Opt.", to prepare for opt split
41673
41674         * prj-part.adb (Parse_Single_Project): New Boolean out parameter
41675         Extends_All. Set to True when the project parsed is an extending all
41676         project. Fails for importing an extending all project only when the
41677         imported project is an extending all project.
41678         (Post_Parse_Context_Clause): Set Is_Extending_All to the with clause,
41679         depending on the value of Extends_All returned.
41680
41681         * prj-proc.adb (Process): Check that no project shares its object
41682         directory with a project that extends it, directly or indirectly,
41683         including a virtual project.
41684         Check that no project extended by another project shares its object
41685         directory with another also extended project.
41686
41687         * prj-tree.adb (Is_Extending_All, Set_Is_Extending_All): Allow for
41688         Kind = N_With_Clause
41689
41690         * prj-tree.ads: Minor reformatting
41691         Indicate that Flag2 also applies to N_With_Clause (Is_Extending_All).
41692
41693 2004-01-23  Ed Schonberg  <schonberg@gnat.com>
41694
41695         * sem_ch13.adb (Analyze_Attribute_Definition_Clause): If the attribute
41696         applies to a type with an incomplete view, use full view in Name of
41697         clause, for consistency with uses of Get_Attribute_Definition_Clause.
41698
41699 2004-01-23  Arnaud Charlet  <charlet@act-europe.fr>
41700
41701         * 5itaprop.adb (Set_Priority): Reset the priority to 0 when using
41702         SCHED_RR, since other values are not supported by this policy.
41703         (Initialize): Move initialization of mutex attribute to package
41704         elaboration, to prevent early access to this variable.
41705
41706         * Makefile.in: Remove mention of Makefile.adalib, unused.
41707
41708         * Makefile.adalib, 1aexcept.adb, 1aexcept.ads, 1ic.ads, 1ssecsta.adb,
41709         1ssecsta.ads: Removed, unused.
41710
41711 2004-01-21  Javier Miranda  <miranda@gnat.com>
41712
41713         * exp_aggr.adb (Build_Record_Aggr_Code): Do not build the master
41714         entity if already built in the current scope.
41715
41716         * exp_ch9.adb (Build_Master_Entity): Do not set the has_master_entity
41717         reminder in internal scopes. Required for nested limited aggregates.
41718
41719 2004-01-21  Doug Rupp  <rupp@gnat.com>
41720
41721         * Makefile.in (hyphen): New variable, default value '-'. Set to '_' on
41722         VMS. Replace all occurences of libgnat- and libgnarl- with
41723         libgnat$(hyphen) and libgnarl$(hyphen).
41724         Fixed shared library build problem on VMS.
41725
41726 2004-01-21  Robert Dewar  <dewar@gnat.com>
41727
41728         * mlib-prj.adb: Minor reformatting
41729
41730 2004-01-21  Thomas Quinot  <quinot@act-europe.fr>
41731
41732         * prj-tree.adb, 7staprop.adb, vms_conv.adb, xr_tabls.adb: Add missing
41733         'constant' keywords for declaration of pointers that are not modified.
41734
41735         * exp_pakd.adb: Fix English in comment.
41736
41737 2004-01-21  Ed Schonberg  <schonberg@gnat.com>
41738
41739         PR ada/10889
41740         * sem_ch3.adb (Analyze_Subtype_Declaration): For an array subtype,
41741         copy all attributes of the parent, including the foreign language
41742         convention.
41743
41744 2004-01-21  Sergey Rybin  <rybin@act-europe.fr>
41745
41746         PR ada/10565
41747         * sem_ch9.adb (Analyze_Delay_Alternative): Add expression type check
41748         for 'delay until' statement.
41749
41750 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
41751
41752         * Make-lang.in: Replace $(docdir) with doc.
41753         (doc/gnat_ug_unx.info, doc/gnat_ug_vwx.info, doc/gnat_ug_vms.info
41754         doc/gnat_ug_wnt.info, doc/gnat_rm.info, doc/gnat-style.info): Update
41755         to use consistent MAKEINFO rule.
41756         (ada.man, ada.srcman): Dummy entry.
41757         (ADA_INFOFILES): Define.
41758         (ada.info, ada.srcinfo): New rules.
41759
41760 2004-01-19  Arnaud Charlet  <charlet@act-europe.fr>
41761
41762         * utils.c: Update copyright notice, missed in previous change.
41763
41764 2004-01-19  Vincent Celier  <celier@gnat.com>
41765
41766         * mlib-prj.adb (Build_Library.Add_ALI_For): Only add the ALI to the
41767         args if Bind is True. Set First_ALI, if not already done.
41768         (Build_Library): For Stand Alone Libraries, extract from one ALI file
41769         an eventual --RTS switch, for gnatbind, and all backend switches +
41770         --RTS, for linking.
41771
41772 2004-01-19  Robert Dewar  <dewar@gnat.com>
41773
41774         * sem_attr.adb, memtrack.adb: Minor reformatting
41775
41776 2004-01-19  Ed Schonberg  <schonberg@gnat.com>
41777
41778         * exp_ch6.adb (Expand_Call): Remove code to fold calls to functions
41779         that rename enumeration literals. This is properly done in sem_eval.
41780
41781         * sem_eval.ads, sem_eval.adb (Eval_Call): New procedure to fold calls
41782         to functions that rename enumeration literals.
41783
41784         * sem_res.adb (Resolve_Call): Use Eval_Call to fold static calls to
41785         functions that rename enumeration literals.
41786
41787 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
41788
41789         * Make-lang.in (utils.o): Depend on target.h.
41790         * utils.c: Include target.h.
41791         (process_attributes): Use targetm.have_named_sections instead
41792         of ASM_OUTPUT_SECTION_NAME.
41793
41794 2004-01-16  Andreas Jaeger  <aj@suse.de>
41795
41796         * Makefile.in: Add $(DESTDIR).
41797
41798 2004-01-15  Olivier Hainque  <hainque@act-europe.fr>
41799
41800         * decl.c (gnat_to_gnu_entity, E_Variable): Retrieve the object size
41801         also when not defining if a Size clause applies. That information is
41802         not to be ignored.
41803
41804 2004-01-15  Arnaud Charlet  <charlet@act-europe.fr>
41805
41806         * Makefile.in (install-gnatlib, gnatlib-shared-default): Set up
41807         symbolic links for the shared gnat run time when needed.
41808
41809 2004-01-15  Vasiliy Fofanov  <fofanov@act-europe.fr>
41810
41811         * memtrack.adb (Gmem_Initialize): check that gmem.out could be opened
41812         for writing, and terminate with an error message if not.
41813
41814 2004-01-15  Ed Schonberg  <schonberg@gnat.com>
41815
41816         * sem_attr.adb (Resolve_Attribute, case 'Access): Remove spurious
41817         warning on an access to subprogram in an instance, when the target
41818         type is declared in the same generic unit.
41819         (Eval_Attribute): If 'access is known to fail accessibility check,
41820         rewrite as a raise statement.
41821
41822 2004-01-15  GNAT Script  <nobody@gnat.com>
41823
41824         * Make-lang.in: Makefile automatically updated
41825
41826 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
41827
41828         * Make-lang.in (ada.srcextra): Dummy entry.
41829
41830 2004-01-14  Kelley Cook  <kcook@gcc.gnu.org>
41831
41832         * Make-lang.in: Only regenerate texi files if --enable-maintainer-mode.
41833
41834 2004-01-13  Ed Schonberg  <schonberg@gnat.com>
41835
41836         * exp_ch3.adb (Build_Assignment): Fix bug in handling of controlled
41837         components that are initialized with aggregates.
41838
41839 2004-01-13  Vincent Celier  <celier@gnat.com>
41840
41841         * gnatlink.adb (Process_Binder_File): To find directory of shared
41842         libgcc, if "gcc-lib" is not a subdirectory, look for the last
41843         subdirectory "lib" in the path of the shared libgnat or libgnarl.
41844
41845         * make.adb (Gnatmake): If GCC version is at least 3, link with
41846         -shared-libgcc, when there is at least one shared library project.
41847
41848         * opt.ads (GCC_Version): New integer constant.
41849
41850         * adaint.c (get_gcc_version): New function.
41851
41852 2004-01-13  Robert Dewar  <dewar@gnat.com>
41853
41854         * sem_dist.adb, sem_res.adb, sem_util.adb,
41855         sprint.adb, 3zsocthi.adb, einfo.adb, cstand.adb,
41856         exp_ch4.adb, exp_ch9.adb, exp_dist.adb: Minor reformatting
41857
41858 2004-01-13  Thomas Quinot  <quinot@act-europe.fr>
41859
41860         * s-interr.adb, s-stache.adb, s-taenca.adb, g-regpat.adb,
41861         g-spitbo.adb, 5itaprop.adb: Add missing 'constant' keywords in object
41862         declarations.
41863
41864 2004-01-12  Arnaud Charlet  <charlet@act-europe.fr>
41865
41866         * misc.c: Remove trailing spaces.
41867         Update copyright notice missed in previous change.
41868
41869         PR ada/13572
41870         * bld.adb (Recursive_Process): Reference prefix/share/gnat instead of
41871         prefix/share/make
41872
41873         * Makefile.generic: Update copyright.
41874         Add license notice.
41875
41876         * Makefile.in (ADA_SHARE_MAKE_DIR): Set to prefix/share/gnat instead
41877         of prefix/share/make.
41878
41879         * Makefile.prolog: Update copyright.
41880         Add license notice.
41881
41882 2004-01-12  Laurent Pautet  <pautet@act-europe.fr>
41883
41884         * 3vsocthi.adb, 3vsocthi.ads, 3wsocthi.adb,
41885         3wsocthi.ads, 3zsocthi.adb, 3zsocthi.ads, g-socthi.adb,
41886         g-socthi.ads (Socket_Error_Message): Return C.Strings.chars_ptr
41887         instead of String.
41888
41889         * g-socket.adb (Raise_Socket_Error): Use new Socket_Error_Message
41890         signature.
41891
41892 2004-01-12  Javier Miranda  <miranda@gnat.com>
41893
41894         * cstand.adb, exp_aggr.adb, exp_ch3.adb, exp_ch9.adb, exp_dist.adb,
41895         exp_imgv.adb, exp_pakd.adb, exp_util.adb, par-ch3.adb, sem.adb,
41896         sem_ch12.adb, sem_ch3.adb, sem_dist.adb, sem_prag.adb, sem_res.adb,
41897         sem_util.adb, sinfo.adb, sinfo.ads, sprint.adb: Addition of
41898         Component_Definition node.
41899
41900 2004-01-12  Ed Falis  <falis@gnat.com>
41901
41902         * impunit.adb: Add GNAT.Secondary_Stack_Info as user-visible unit
41903
41904 2004-01-12  Thomas Quinot  <quinot@act-europe.fr>
41905
41906         * link.c: Change default libgnat kind to STATIC for FreeBSD.
41907
41908 2004-01-12  Bernard Banner  <banner@gnat.com>
41909
41910         * Makefile.in: map 86numaux to a-numaux for x86_64
41911
41912 2004-01-12  Ed Schonberg  <schonberg@gnat.com>
41913
41914         * lib-xref.adb (Get_Type_Reference): If the type is the subtype entity
41915         generated to rename a generic actual, go to the actual itself, the
41916         subtype is not a user-visible entity.
41917
41918         * sem_ch7.adb (Uninstall_Declarations): If an entity in the visible
41919         part is a private subtype, reset the visibility of its full view, if
41920         any, to be consistent.
41921
41922         PR ada/13417
41923         * sem_ch12.adb (Analyze_Formal_Package): Diagnose properly an attempt
41924         to use a generic package G as a formal package for another generic
41925         declared within G.
41926
41927 2004-01-12  Robert Dewar  <dewar@gnat.com>
41928
41929         * trans.c (Eliminate_Error_Msg): New procedure called to generate msg
41930
41931         * usage.adb: Remove mention of obsolete -gnatwb switch
41932         Noticed during code reading
41933
41934 2004-01-12  Jerome Guitton  <guitton@act-europe.fr>
41935
41936         * 1ssecsta.adb: Minor changes for -gnatwa warnings
41937
41938 2004-01-12  GNAT Script  <nobody@gnat.com>
41939
41940         * Make-lang.in: Makefile automatically updated
41941
41942 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
41943
41944         * misc.c (gnat_expand_expr): Add alt_rtl parameter.
41945
41946 2004-01-07  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
41947
41948         * link.c [sgi] (shared_libgnat_default): Change to STATIC.
41949
41950 2004-01-05  Kelley Cook  <kcook@gcc.gnu.org>
41951
41952         * Make-lang.in: Revert stamp-xgnatug change from 2003-12-18.
41953         Update comment and copyright date.
41954         * stamp-xgnatug: Delete.
41955
41956 2004-01-05  Robert Dewar  <dewar@gnat.com>
41957
41958         * 1ssecsta.ads: Default_Secondary_Stack is not a constant since it may
41959         be modified by the binder generated main program if the -D switch is
41960         used.
41961
41962         * 4onumaux.ads, 4znumaux.ads: Add Pure_Function pragmas for all
41963         imported functions (since now we expect this to be done for imported
41964         functions)
41965
41966         * 5vtaprop.adb: Add several ??? for sections requiring more comments
41967         Minor reformatting throughout
41968
41969         * 5zinit.adb: Minor reformatting
41970         Add 2004 to copyright date
41971         Minor changes to avoid -gnatwa warnings
41972         Correct some instances of using OR instead of OR ELSE (noted while
41973         doing reformatting)
41974
41975         * sprint.adb: Minor updates to avoid -gnatwa warnings
41976
41977         * s-secsta.ads, s-secsta.adb:
41978         (SS_Get_Max): New function to obtain high water mark for ss stack
41979         Default_Secondary_Stack is not a constant since it may be modified by
41980         the binder generated main program if the -D switch is used.
41981
41982         * switch-b.adb: New -Dnnn switch for binder
41983
41984         * switch-c.adb:
41985         Make -gnatg imply all warnings currently in -gnatwa
41986
41987         * vms_conv.adb: Minor reformatting
41988         Add 2004 to copyright notice
41989         Add 2004 to printed copyright notice
41990
41991         * 3vexpect.adb, 4zsytaco.adb, 3wsocthi.adb, 3zsocthi.adb,
41992         3zsocthi.adb, 56taprop.adb, 56tpopsp.adb, 5amastop.adb,
41993         5aml-tgt.adb, 5ataprop.adb, 5ataprop.adb, 5atpopsp.adb,
41994         5ftaprop.adb, 5ginterr.adb, 5gmastop.adb, 5gml-tgt.adb,
41995         5gtaprop.adb, 5hml-tgt.adb, 5hml-tgt.adb, 5hml-tgt.adb,
41996         5htaprop.adb, 5htraceb.adb, 5itaprop.adb, 5lml-tgt.adb,
41997         5sml-tgt.adb, 5staprop.adb, 5staprop.adb, 5stpopsp.adb,
41998         5vasthan.adb, 5vinmaop.adb, 5vinterr.adb, 5vtaprop.adb,
41999         5vml-tgt.adb, 5vtaprop.adb, 5wosprim.adb, 5wtaprop.adb,
42000         5zinterr.adb, 5zintman.adb, 5zml-tgt.adb, 5ztaprop.adb,
42001         6vcpp.adb, 6vcstrea.adb, 7staprop.adb, 7stpopsp.adb,
42002         vxaddr2line.adb, vxaddr2line.adb, xref_lib.adb, xr_tabls.adb,
42003         xr_tabls.ads, s-tasdeb.adb, s-tasdeb.adb, sem_res.ads,
42004         sem_util.adb, sem_util.adb, sem_util.ads, s-interr.adb,
42005         checks.adb, clean.adb, cstand.adb, einfo.ads,
42006         einfo.adb, exp_aggr.adb, exp_ch11.adb, exp_ch3.adb,
42007         exp_ch4.adb, exp_ch5.adb, exp_ch7.adb, exp_ch9.adb,
42008         prj-nmsc.adb, prj-pp.adb, prj-util.adb, sem_attr.adb,
42009         sem_ch10.adb, sem_ch12.adb, sem_ch4.adb, g-dirope.adb,
42010         g-dirope.ads, gnatlbr.adb, i-cstrea.adb, inline.adb,
42011         lib-xref.adb, sem_ch5.adb, sem_ch7.adb, sem_ch8.adb:
42012         Minor reformatting and code clean ups.
42013         Minor changes to prevent -gnatwa warnings
42014
42015         * ali.adb: Minor reformatting and cleanup of code
42016         Acquire new SS indication of secondary stack use from ali files
42017
42018         * a-numaux.ads: Add Pure_Function pragmas for all imported functions
42019         (since now we expect this to be done for imported functions)
42020
42021         * bindgen.adb: Generate call to modify default secondary stack size if
42022         -Dnnn switch given
42023
42024         * bindusg.adb: Add line for new -D switch
42025
42026         * exp_aggr.adb (Type_May_Have_Bit_Aligned_Components): More appropriate
42027         replacement name for Type_May_Have_Non_Bit_Aligned_Components!
42028         Add circuitry for both records and arrays to avoid gigi
42029         processing if the type involved has non-bit-aligned components
42030
42031         * exp_ch5.adb (Expand_Assign_Array): Avoid assumption that
42032         N_String_Literal node always references an E_String_Literal_Subtype
42033         entity. This may not be true in the future.
42034         (Possible_Bit_Aligned_Component): Move processing of
42035         Component_May_Be_Bit_Aligned from exp_ch5 to exp_util
42036
42037         * exp_ch6.adb (Expand_Thread_Body): Pick up
42038         Default_Secondary_Stack_Size as variable so that we get value modified
42039         by possible -Dnnn binder parameter.
42040
42041         * exp_util.adb (Component_May_Be_Bit_Aligned): New function.
42042         (Type_May_Have_Bit_Aligned_Components): New function.
42043
42044         * exp_util.ads (Component_May_Be_Bit_Aligned): New function.
42045         (Type_May_Have_Bit_Aligned_Components): New function.
42046
42047         * fe.h: (Set_Identifier_Casing): Fix prototype.
42048         Add declaration for Sem_Elim.Eliminate_Error_Msg.
42049         Minor reformatting.
42050
42051         * freeze.adb (Freeze_Entity): Add RM reference to error message about
42052         importing constant atomic/volatile objects.
42053         (Freeze_Subprogram): Reset Is_Pure indication for imported subprogram
42054         unless explicit Pure_Function pragma given, to avoid insidious bug of
42055         call to non-pure imported function getting eliminated.
42056
42057         * gnat1drv.adb, gnatbind.adb, gnatchop.adb, gnatfind.adb,
42058         gnatls.adb, gnatlink.adb, gnatmem.adb, gnatname.adb, gnatsym.adb,
42059         gnatxref.adb, gprcmd.adb, gprep.adb, make.adb: Minor reformatting
42060         Add 2004 to printed copyright notice
42061
42062         * lib-writ.ads, lib-writ.adb: Put new SS flag in ali file if secondary
42063         stack used.
42064
42065         * Makefile.rtl: Add entry for g-sestin.o
42066         g-sestin.ads: New file.
42067
42068         * mdll.adb: Minor changes to avoid -gnatwa warnings
42069
42070         * mlib-tgt.adb: Minor reformatting
42071
42072         * opt.ads: New parameter Default_Secondary_Stack_Size (GNATBIND)
42073         New switch Sec_Stack_Used (GNAT, GNATBIND)
42074         Make Default_Secondary_Stack_Size a variable instead of a constant,
42075         so that it can be modified by the new -Dnnn bind switch.
42076
42077         * rtsfind.adb (Load_Fail): Give full error message in configurable
42078         run-time mode if all_errors mode is set. This was not done in the case
42079         of a file not found, which was an oversight.
42080         Note if secondary stack unit is used by compiler.
42081
42082         * sem_elab.adb (Check_A_Call): Rewrite to avoid trying to put
42083         ineffective elaborate all pragmas on non-visible packages (this
42084         happened when a renamed subprogram was called). Now the elaborate all
42085         always goes on the package containing the renaming rather than the one
42086         containing the renamed subprogram.
42087
42088         * sem_elim.ads, sem_elim.adb (Eliminate_Error_Msg): New procedure
42089         (Process_Eliminate_Pragma): Add parameter to capture pragma location.
42090
42091         * sem_eval.adb (Eval_String_Literal): Do not assume that string literal
42092         has an Etype that references an E_String_Literal.
42093         (Eval_String_Literal): Avoid assumption that N_String_Literal node
42094         always references an E_String_Literal_Subtype entity. This may not
42095         be true in the future.
42096
42097         * sem_prag.adb (Process_Eliminate_Pragma): Add parameter to capture
42098         pragma location.
42099
42100         * sem_res.adb (Resolve): Specialize msg for function name used in proc
42101         call.
42102
42103 2004-01-05  Ed Falis  <falis@gnat.com>
42104
42105         * g-debuti.adb: Replaced direct boolean operator with short-circuit
42106         form.
42107
42108 2004-01-05  Vincent Celier  <celier@gnat.com>
42109
42110         * bld.adb: Minor comment updates
42111         (Process_Declarative_Items): Correct incorrect name (Index_Name instead
42112         of Item_Name).
42113
42114         * make.adb (Gnatmake): Special process for files to compile/check when
42115         -B is specified. Fail when there are only foreign mains in attribute
42116         Main of the project file and -B is not specified. Do not skip bind/link
42117         steps when -B is specified.
42118
42119         * makeusg.adb: Document new switch -B
42120
42121         * opt.ads (Build_Bind_And_Link_Full_Project): New Boolean flag
42122
42123         * switch-m.adb: (Scan_Make_Switches): Process -B switch
42124
42125         * vms_data.ads: Add new GNAT PRETTY qualifier
42126         /FORM_FEED_AFTER_PRAGMA_PAGE for switch -ff
42127
42128 2004-01-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
42129
42130         * trans.c (tree_transform, case N_Free_Statement): Handle thin pointer
42131         case.
42132
42133         * misc.c (gnat_printable_name): If VERBOSITY is 2, call
42134         Set_Identifier_Casing.
42135
42136         * decl.c (gnat_to_gnu_entity, E_Function): Give error if return type
42137         has size that overflows.
42138
42139 2004-01-05  Gary Dismukes  <dismukes@gnat.com>
42140
42141         * exp_ch4.adb (Expand_Array_Comparison): Add Boolean constant to avoid
42142         -gnatwa warning on static condition.
42143
42144 2004-01-05  Doug Rupp  <rupp@gnat.com>
42145
42146         * link.c: (shared_libgnat_default) [VMS]: Change to STATIC.
42147
42148 2004-01-05  Arnaud Charlet  <charlet@act-europe.fr>
42149
42150         * Makefile.in: Install ali files using INSTALL_DATA_DATE to preserve
42151         all attributes, including read-only attribute.
42152
42153 2004-01-05  Pascal Obry  <obry@gnat.com>
42154
42155         * bindgen.adb (Gen_Object_Files_Options): Generate the new shared
42156         library naming scheme.
42157
42158         * mlib-prj.adb (Build_Library): Generate different names for the static
42159         or dynamic version of the GNAT runtime. This is needed to support the
42160         new shared library naming scheme.
42161         (Process_Binder_File): Add detection of shared library in binder file
42162         based on the new naming scheme.
42163
42164         * gnatlink.adb (Process_Binder_File): Properly detect the new naming
42165         scheme for the shared runtime libraries.
42166
42167         * Makefile.in:
42168         (LIBRARY_VERSION) [VMS]: Convert all . to _ to conform to new naming
42169         scheme.
42170         (install-gnatlib): Do not create symlinks for shared libraries.
42171         (gnatlib-shared-default): Idem.
42172         (gnatlib-shared-dual-win32): New target. Not used for now as the
42173         auto-import feature does not support arrays/records.
42174         (gnatlib-shared-win32): Do not create copy for the shared libraries.
42175         (gnatlib-shared-vms): Fix shared runtime libraries names.
42176
42177         * osint.ads, osint.adb (Shared_Lib): New routine, returns the target
42178         dependent runtime shared library name.
42179
42180 2004-01-05  Vasiliy Fofanov  <fofanov@act-europe.fr>
42181
42182         * osint.adb (Read_Library_Info): Remove bogus check if ALI is older
42183         than the object.
42184
42185 2004-01-05  Ed Schonberg  <schonberg@gnat.com>
42186
42187         * sem_ch4.adb (Analyze_Allocator): Check restriction on dynamic
42188         protected objects when allocator has a subtype indication, not a
42189         qualified expression. Note that qualified expressions may have to be
42190         checked when limited aggregates are implemented.
42191
42192         * sem_prag.adb (Analyze_Pragma, case Import): If enclosing package is
42193         pure, emit warning.
42194         (Analyze_Pragma, case Pure_Function): If enclosing package is pure and
42195         subprogram is imported, remove warning.
42196
42197 2004-01-05  Geert Bosch  <bosch@gnat.com>
42198
42199         * s-poosiz.adb: Update copyright notice.
42200         (Allocate): Use Task_Lock to protect against concurrent access.
42201         (Deallocate): Likewise.
42202
42203 2004-01-05  Joel Brobecker  <brobecker@gnat.com>
42204
42205         * s-stalib.adb (Elab_Final_Code): Add missing year in date inside ???
42206         comment.
42207
42208 2003-12-23  Kelley Cook  <kcook@gcc.gnu.org>
42209
42210         * gnat_ug.texi: Force a CVS commit by updating copyright.
42211         * gnat_ug_vxw.texi: Regenerate.
42212         * gnat_ug_wnt.texi: Regenerate.
42213         * gnat_ug_vms.texi: Regenerate.
42214         * gnat_ug_unx.texi: Regenerate.
42215
42216 2003-12-20  Kazu Hirata  <kazu@cs.umass.edu>
42217
42218         * trans.c: Remove uses of "register" specifier in
42219         declarations of local variables.
42220
42221 2003-12-18  Kelley Cook  <kcook@gcc.gnu.org>
42222
42223         * stamp-xgnatug: New stamp file.
42224         * Make-lang.in (stamp-xgnatug):  New stamp file and comment.
42225         (ada/doctools/xgnatug): Add $(build_exeext).
42226         (ada/gnat_ug_unx.texi, ada/gnat_ug_vwx.texi, ada/gnat_ug_vms.texi
42227         ada/gnat_ug_wnt.texi): Update to depend on stamp-xgnatug.
42228
42229 2003-12-17  Ed Falis  <falis@gnat.com>
42230
42231         * a-elchha.adb (Tailored_Exception_Information): made Info constant to
42232         eliminate warning.
42233
42234         * a-exextr.adb: Add context clause for
42235         Ada.Exceptions.Last_Chance_Handler.
42236
42237 2003-12-17  Sergey Rybin  <rybin@act-europe.fr>
42238
42239         * cstand.adb (Create_Standard): Change the way how the declaration of
42240         the Duration type is created (making it the same way as it is for all
42241         the other standard types).
42242
42243 2003-12-17  Robert Dewar  <dewar@gnat.com>
42244
42245         * s-crtl.ads: Fix header format
42246         Change Pure to Preelaborate
42247
42248 2003-12-17  Ed Schonberg  <schonberg@gnat.com>
42249
42250         * checks.adb (Selected_Length_Checks): Generate an Itype reference for
42251         the expression type only if it is declared in the current unit.
42252
42253         * sem_ch3.adb (Constrain_Index): Handle properly a range whose bounds
42254         are universal and already analyzed, as can occur in constrained
42255         subcomponents that depend on discriminants, when one constraint is a
42256         subtype mark.
42257
42258         * sem_res.adb (Resolve_Type_Conversion): Any arithmetic expression of
42259         type Any_Fixed is legal as the argument of a conversion, if only one
42260         fixed-point type is in context.
42261
42262 2003-12-17  GNAT Script  <nobody@gnat.com>
42263
42264         * Make-lang.in: Makefile automatically updated
42265
42266 2003-12-15  Robert Dewar  <dewar@gnat.com>
42267
42268         * exp_ch6.adb (Expand_Thread_Body): Fix error in picking up default
42269         sec stack size.
42270
42271 2003-12-15  Vincent Celier  <celier@gnat.com>
42272
42273         * gnatchop.adb: (Error_Msg): Do not exit on error for a warning
42274         (Gnatchop): Do not set failure status when reporting the number of
42275         warnings.
42276
42277 2003-12-15  Doug Rupp  <rupp@gnat.com>
42278
42279         * s-ctrl.ads: New file.
42280
42281         * Makefile.rtl (GNAT_RTL_NONTASKING_OBJS): Add s-crtl$(objext).
42282
42283         * Make-lang.in: (GNAT_ADA_OBJS): Add ada/s-crtl.o.
42284         (GNATBIND_OBJS): Add ada/s-crtl.o.
42285
42286         * Makefile.in [VMS]: Clean up ifeq rules.
42287
42288         * gnatlink.adb, 6vcstrea.adb, a-direio.adb, a-sequio.adb,
42289         a-ststio.adb, a-textio.adb, g-os_lib.adb, a-witeio.adb,
42290         g-os_lib.ads, i-cstrea.adb, i-cstrea.ads, s-direio.adb,
42291         s-fileio.adb, s-memcop.ads, s-memory.adb, s-stache.adb,
42292         s-tasdeb.adb: Update copyright.
42293         Import System.CRTL.
42294         Make minor modifications to use System.CRTL declared functions instead
42295         of importing locally.
42296
42297 2003-12-15  GNAT Script  <nobody@gnat.com>
42298
42299         * Make-lang.in: Makefile automatically updated
42300
42301 2003-12-11  Ed Falis  <falis@gnat.com>
42302
42303         * 5zinit.adb: Clean up.
42304
42305         * 5zintman.adb (Notify_Exception): replaced case statement with a call
42306         to __gnat_map_signal, imported from init.c to support
42307         signal -> exception mappings that depend on the vxWorks version.
42308
42309         * init.c:
42310         Created and exported __gnat_map_signal to support signal -> exception
42311         mapping that is dependent on the VxWorks version.
42312         Change mapping of SIGBUS from Program_Error to Storage_Error on VxWorks
42313
42314 2003-12-11  Vasiliy Fofanv  <fofanov@act-europe.fr>
42315
42316         * 5wosinte.ads: Link with -mthreads switch.
42317
42318 2003-12-11  Arnaud Charlet  <charlet@act-europe.fr>
42319
42320         * init.c (__gnat_install_handler [NetBSD]): Set
42321         __gnat_handler_installed, as done on all other platforms.
42322         Remove duplicated code.
42323
42324 2003-12-11  Jerome Guitton  <guitton@act-europe.fr>
42325
42326         * Makefile.in (rts-zfp, rts-ravenscar): Create libgnat.a.
42327
42328 2003-12-11  Thomas Quinot  <quinot@act-europe.fr>
42329
42330         * sinfo.ads: Fix inconsistent example code in comment.
42331
42332 2003-12-11  Robert Dewar  <dewar@gnat.com>
42333
42334         * a-tiinau.adb: Add a couple of comments
42335
42336         * sem_ch3.adb: Minor reformatting
42337
42338         * sem_prag.adb:
42339         Fix bad prototype of Same_Base_Type in body (code reading cleanup)
42340         Minor reformatting throughout
42341
42342 2003-12-11  Ed Schonberg  <schonberg@gnat.com>
42343
42344         * exp_ch7.adb (Establish_Transient_Scope): If the call is within the
42345         bounds of a loop, create a separate block in order to generate proper
42346         cleanup actions to prevent memory leaks.
42347
42348         * sem_res.adb (Resolve_Call): After a call to
42349         Establish_Transient_Scope, the call may be rewritten and relocated, in
42350         which case no further processing is needed.
42351
42352         * sem_util.adb: (Wrong_Type): Refine previous fix.
42353          Fixes ACATS regressions.
42354
42355         PR ada/13353
42356         * sem_prag.adb (Back_End_Cannot_Inline): A renaming_as_body can always
42357         be inlined.
42358
42359 2003-12-08  Jerome Guitton  <guitton@act-europe.fr>
42360
42361         * 5ytiitho.adb, 5zthrini.adb, 5ztiitho.adb, i-vthrea.adb,
42362         i-vthrea.ads, s-tpae65.adb, s-tpae65.ads: Cleanup: Remove a bunch of
42363         obsolete files.
42364
42365         * Makefile.in: (rts-ravenscar): Generate an empty libgnat.a.
42366         (rts-zfp): Ditto.
42367
42368 2003-12-08  Robert Dewar  <dewar@gnat.com>
42369
42370         * 7sintman.adb: Minor reformatting
42371
42372         * bindgen.adb: Configurable_Run_Time mode no longer suppresses the
42373         standard linker options to get standard libraries linked. We now plan
42374         to provide dummy versions of these libraries to match the appropriate
42375         configurable run-time (e.g. if a library is not needed at all, provide
42376         a dummy empty library).
42377
42378         * targparm.ads: Configurable_Run_Time mode no longer affects linker
42379         options (-L parameters and standard libraries). What we plan to do is
42380         to provide dummy libraries where the libraries are not required.
42381
42382         * gnatbind.adb: Minor comment improvement
42383
42384 2003-12-08  Javier Miranda  <miranda@gnat.com>
42385
42386         * exp_aggr.adb (Build_Record_Aggr_Code): Do not remove the expanded
42387         aggregate in the parent. Otherwise constants with limited aggregates
42388         are not supported. Add new formal to pass the component type (Ctype).
42389         It is required to call the corresponding IP subprogram in case of
42390         default initialized components.
42391         (Gen_Assign): In case of default-initialized component, generate a
42392         call to the IP subprogram associated with the component.
42393         (Build_Record_Aggr_Code): Remove the aggregate from the parent in case
42394         of aggregate with default initialized components.
42395         (Has_Default_Init_Comps): Improve implementation to recursively check
42396         all the present expressions.
42397
42398         * exp_ch3.ads, exp_ch3.adb (Build_Initialization_Call): Add new formal
42399         to indicate that the initialization call corresponds to a
42400         default-initialized component of an aggregate.
42401         In case of default initialized aggregate with tasks this parameter is
42402         used to generate a null string (this is just a workaround that must be
42403         improved later). In case of discriminants, this parameter is used to
42404         generate a selected component node that gives access to the discriminant
42405         value.
42406
42407         * exp_ch9.ads, exp_ch9.adb (Build_Task_Allocate_Block_With_Stmts): New
42408         subprogram, based on Build_Task_Allocate_Block, but adapted to expand
42409         allocated aggregates with default-initialized components.
42410
42411         * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Improve error message if
42412         the box notation is used in positional aggregates.
42413
42414 2003-12-08  Samuel Tardieu  <tardieu@act-europe.fr>
42415
42416         * lib.ads: Fix typo in comment
42417
42418 2003-12-08  Vincent Celier  <celier@gnat.com>
42419
42420         * prj.adb (Project_Empty): New component Unkept_Comments
42421         (Scan): Remove procedure; moved to Prj.Err.
42422
42423         * prj.ads (Project_Data): New Boolean component Unkept_Comments
42424         (Scan): Remove procedure; moved to Prj.Err.
42425
42426         * prj-dect.adb: Manage comments for the different declarations.
42427
42428         * prj-part.adb (With_Record): New component Node
42429         (Parse): New Boolean parameter Store_Comments, defaulted to False.
42430         Set the scanner to return ends of line and comments as tokens, if
42431         Store_Comments is True.
42432         (Pre_Parse_Context_Clause): Create the N_With_Clause nodes so that
42433         comments are associated with these nodes. Store the node IDs in the
42434         With_Records.
42435         (Post_Parse_Context_Clause): Use the N_With_Clause nodes stored in the
42436         With_Records.
42437         (Parse_Single_Project): Call Pre_Parse_Context_Clause before creating
42438         the N_Project node. Call Tree.Save and Tree.Reset before scanning the
42439         current project. Call Tree.Restore afterwards. Set the various nodes
42440         for comment storage (Next_End, End_Of_Line, Previous_Line,
42441         Previous_End).
42442
42443         * prj-part.ads (Parse): New Boolean parameter Store_Comments,
42444         defaulted to False.
42445
42446         * prj-pp.adb (Write_String): New Boolean parameter Truncated, defaulted
42447         to False. When Truncated is True, truncate the string, never go to the
42448         next line.
42449         (Write_End_Of_Line_Comment): New procedure
42450         (Print): Process comments for nodes N_With_Clause,
42451         N_Package_Declaration, N_String_Type_Declaration,
42452         N_Attribute_Declaration, N_Typed_Variable_Declaration,
42453         N_Variable_Declaration, N_Case_Construction, N_Case_Item.
42454         Process nodes N_Comment.
42455
42456         * prj-tree.ads, prj-tree.adb (Default_Project_Node): If it is a node
42457         without comments and there are some comments, set the flag
42458         Unkept_Comments to True.
42459         (Scan): If there are comments, set the flag Unkept_Comments to True and
42460         clear the comments.
42461         (Project_Node_Kind): Add enum values N_Comment_Zones, N_Comment
42462         (Next_End_Nodes: New table
42463         (Comment_Zones_Of): New function
42464         (Scan): New procedure; moved from Prj. Accumulate comments in the
42465         Comments table and set end of line comments, comments after, after end
42466         and before end.
42467         (Add_Comments): New procedure
42468         (Save, Restore, Seset_State): New procedures
42469         (There_Are_Unkept_Comments): New function
42470         (Set_Previous_Line_Node, Set_Previous_End_Node): New procedures
42471         (Set_End_Of_Line, Set_Next_End_Node, Remove_Next_End_Node): New
42472         procedures.
42473         (First_Comment_After, First_Comment_After_End): New functions
42474         (First_Comment_Before, First_Comment_Before_End): New functions
42475         (Next_Comment): New function
42476         (End_Of_Line_Comment, Follows_Empty_Line,
42477         Is_Followed_By_Empty_Line): New functions
42478         (Set_First_Comment_After, Set_First_Comment_After_End): New procedures
42479         (Set_First_Comment_Before, Set_First_Comment_Before_End): New procedures
42480         (Set_Next_Comment): New procedure
42481         (Default_Project_Node): Associate comment before if the node can store
42482         comments.
42483
42484         * scans.ads (Token_Type): New enumeration value Tok_Comment
42485         (Comment_Id): New global variable
42486
42487         * scng.ads, scng.adb (Comment_Is_Token): New Boolean global variable,
42488         defaulted to False.
42489         (Scan): Store position of start of comment. If comments are tokens, set
42490         Comment_Id and set Token to Tok_Comment when scanning a comment.
42491         (Set_Comment_As_Token): New procedure
42492
42493         * sinput-p.adb: Update Copyright notice
42494         (Source_File_Is_Subunit): Call Prj.Err.Scanner.Scan instead of Prj.Scan
42495         that no longer exists.
42496
42497 2003-12-08  Javier Miranda  <miranda@gnat.com>
42498
42499         * sem_aggr.adb: Add dependence on Exp_Tss package
42500         Correct typo in comment
42501         (Resolve_Aggregate): In case of array aggregates set the estimated
42502         type of the aggregate before calling resolve. This is needed to know
42503         the name of the corresponding IP in case of limited array aggregates.
42504         (Resolve_Array_Aggregate): Delay the resolution to the expansion phase
42505         in case of default initialized array components.
42506
42507         * sem_ch12.adb (Analyze_Formal_Object_Declaration): Allow limited
42508         types. Required to give support to limited aggregates in generic
42509         formals.
42510
42511 2003-12-08  Ed Schonberg  <schonberg@gnat.com>
42512
42513         * sem_ch3.adb (Check_Initialization): For legality purposes, an
42514         inlined body functions like an instantiation.
42515         (Decimal_Fixed_Point_Declaration): Do not set kind of first subtype
42516         until bounds are analyzed, to diagnose premature use of type.
42517
42518         * sem_util.adb (Wrong_Type): Improve error message when the type of
42519         the expression is used prematurely.
42520
42521 2003-12-08  GNAT Script  <nobody@gnat.com>
42522
42523         * Make-lang.in: Makefile automatically updated
42524
42525 2003-12-08  Arnaud Charlet  <charlet@act-europe.fr>
42526
42527         * sinfo.h, einfo.h, nmake.ads, nmake.adb, treeprs.ads: Removed, since
42528         they are automatically generated by Make-lang.in and cause nothing but
42529         maintenance troubles.
42530
42531 2003-12-05  Thomas Quinot  <quinot@act-europe.fr>
42532
42533         * 3ssoliop.ads: Fix comment (this is the Solaris, not the UnixWare,
42534         version of this unit).
42535
42536 2003-12-05  Olivier Hainque  <hainque@act-europe.fr>
42537
42538         * 53osinte.ads, 54osinte.ads, 55osinte.ads, 56osinte.ads, 5bosinte.ads,
42539         5cosinte.ads, 5hosinte.ads, 5iosinte.ads, 5losinte.ads,
42540         5tosinte.ads: Define the SA_SIGINFO constant, to allow references from
42541         the body of System.Interrupt_Management common to several targets.
42542         Update copyright notice when appropriate.
42543
42544         * 52osinte.ads, 5posinte.ads: Define a dummy value for the SA_SIGINFO
42545         constant.
42546
42547         * 7sintman.adb (elaboration): Set SA_SIGINFO in the sigaction flags,
42548         to ensure that the kernel fills in the interrupted context structure
42549         before calling a signal handler, which is necessary to be able to
42550         unwind past it. Update the copyright notice.
42551
42552 2003-12-05  Jerome Guitton  <guitton@act-europe.fr>
42553
42554         * a-elchha.ads: New file.
42555
42556         * a-elchha.adb: New default last chance handler. Contents taken from
42557         Ada.Exceptions.Exception_Traces.Unhandled_Exception_Terminate.
42558
42559         * a-exextr.adb (Unhandled_Exception_Terminate): Most of this routine
42560         is moved to a-elchha.adb to provide a target-independent default last
42561         chance handler.
42562
42563         * Makefile.rtl: Add a-elchha.o
42564
42565         * Make-lang.in (GNAT_ADA_OBJS, GNATBIND_OBJS): Add a-elchha.o.
42566
42567 2003-12-05  Ed Schonberg  <schonberg@gnat.com>
42568
42569         * exp_ch6.adb (Expand_Call): If the subprogram is inlined and is
42570         declared in an instance, do not inline the call if the instance is not
42571         frozen yet, to prevent order of elaboration problems.
42572
42573         * sem_prag.adb: Add comments for previous fix.
42574
42575 2003-12-05  Samuel Tardieu  <tardieu@act-europe.fr>
42576
42577         * g-table.adb: Use the right variable in Set_Item.
42578         Update copyright notice.
42579
42580 2003-12-05  Arnaud Charlet  <charlet@act-europe.fr>
42581
42582         * Makefile.in: Remove unused rules.
42583
42584 2003-12-05  Vincent Celier  <celier@gnat.com>
42585
42586         * switch-c.adb (Scan_Front_End_Switches): Remove processing of
42587         -nostdlib. Not needed here after all.
42588
42589 2003-12-03  Thomas Quinot  <quinot@act-europe.fr>
42590
42591         PR ada/11724
42592         * adaint.h, adaint.c, g-os_lib.ads:
42593         Do not assume that the offset argument to lseek(2) is a 32 bit integer,
42594         on some platforms (including FreeBSD), it is a 64 bit value.
42595         Introduce a __gnat_lseek wrapper in adaint.c to allow for portability.
42596
42597 2003-12-03  Arnaud Charlet  <charlet@act-europe.fr>
42598
42599         * gnatvsn.ads (Library_Version): Now contain only the relevant
42600         version info.
42601         (Verbose_Library_Version): New constant.
42602
42603         * g-spipat.adb, g-awk.adb, g-debpoo.adb,
42604         g-memdum.adb, g-thread.adb, s-geveop.adb, s-interr.adb,
42605         s-taskin.adb, s-tassta.adb: Make code compile with -gnatwa.
42606
42607         * gnatlbr.adb: Clean up: replace Library_Version by
42608         Verbose_Library_Version.
42609
42610         * make.adb, lib-writ.adb, exp_attr.adb:
42611         Clean up: replace Library_Version by Verbose_Library_Version.
42612
42613         * 5lintman.adb: Removed.
42614
42615         * Makefile.in:
42616         Update and simplify computation of LIBRARY_VERSION.
42617         Fix computation of GSMATCH_VERSION.
42618         5lintman.adb is no longer used: replaced by 7sintman.adb.
42619
42620 2003-12-03  Robert Dewar  <dewar@gnat.com>
42621
42622         * exp_ch5.adb:
42623         (Possible_Bit_Aligned_Component): Maybe_Bit_Aligned_Large_Component new
42624         name. Modified to consider small non-bit-packed arrays as troublesome
42625         and in need of component-by-component assigment expansion.
42626
42627 2003-12-03  Vincent Celier  <celier@gnat.com>
42628
42629         * lang-specs.h: Process nostdlib as nostdinc
42630
42631         * back_end.adb: Update Copyright notice
42632         (Scan_Compiler_Arguments): Process -nostdlib directly.
42633
42634 2003-12-03  Jose Ruiz  <ruiz@act-europe.fr>
42635
42636         * Makefile.in:
42637         When defining LIBGNAT_TARGET_PAIRS for bare board targets, remove the
42638         redundant inclusion of EXTRA_HIE_NONE_TARGET_PAIRS, which is always
42639         included in HIE_NONE_TARGET_PAIRS.
42640
42641 2003-12-03  Ed Schonberg  <schonberg@gnat.com>
42642
42643         * sem_attr.adb:
42644         (Legal_Formal_Attribute): Attribute is legal in an inlined body, as it
42645         is legal in an instance, because legality is cheched in the template.
42646
42647         * sem_prag.adb:
42648         (Analyze_Pragma, case Warnings): In an inlined body, the pragma may be
42649         appplied to an unchecked conversion of a formal parameter.
42650
42651         * sem_warn.adb:
42652         (Output_Unreferenced_Messages): Suppress "not read" warnings on imported
42653         variables.
42654
42655 2003-12-03  Olivier Hainque  <hainque@act-europe.fr>
42656
42657         * tb-alvms.c (unwind_regular_code, unwind_kernel_handler): New
42658         routines. The second one is new functionality to deal with backtracing
42659         through signal handlers.
42660         (unwind): Split into the two separate subroutines above.
42661         Update the documentation, and deal properly with sizeof (REG) different
42662         from sizeof (void*).
42663
42664 2003-12-01  Nicolas Setton  <setton@act-europe.fr>
42665
42666         * a-except.adb (Raise_Current_Excep): Add a pragma Inspection_Point,
42667         so that the debugger can reliably access the value of the parameter,
42668         and therefore is able to display the exception name when an exception
42669         breakpoint is reached.
42670
42671 2003-12-01  Thomas Quinot  <quinot@act-europe.fr>
42672
42673         * fmap.adb: Fix typo in warning message.
42674
42675         * g-socket.ads, g-socket.adb: Make Free a visible instance of
42676         Ada.Unchecked_Deallocation (no need to wrap it in a subprogram).
42677
42678 2003-12-01  Vincent Celier  <celier@gnat.com>
42679
42680         * mlib-prj.adb (Build_Library.Process): Do not check a withed unit if
42681         ther is no Afile.
42682         (Build_Library): Get the switches only if Default_Switches is declared
42683         in package Binder.
42684
42685 2003-12-01  Ed Schonberg  <schonberg@gnat.com>
42686
42687         * exp_ch6.adb (Expand_Actuals): When applying validity checks to
42688         actuals that are indexed components, reanalyze actual to ensure that
42689         packed array references are properly expanded.
42690
42691         * sem_ch5.adb (Diagnose_Non_Variable_Lhs): Add special case for
42692         attempted assignment to a discriminant.
42693
42694 2003-12-01  Robert Dewar  <dewar@gnat.com>
42695
42696         * rtsfind.adb, exp_ch4.adb, s-exnint.ads, s-exnint.adb: Minor
42697         reformatting.
42698
42699         * switch-c.adb: Minor reformatting of comments
42700
42701 2003-12-01  Arnaud Charlet  <charlet@act-europe.fr>
42702
42703         * Makefile.in: Clean ups.
42704
42705 2003-12-01  GNAT Script  <nobody@gnat.com>
42706
42707         * Make-lang.in: Makefile automatically updated
42708
42709 2003-12-01  Arnaud Charlet  <charlet@act-europe.fr>
42710
42711         * 5wsystem.ads: Disable zero cost exception, not ready yet.
42712
42713 2003-11-29  Ulrich Weigand  <uweigand@de.ibm.com>
42714
42715         * Make-lang.in (nmake.ads): Add dependency on ada/nmake.adb
42716         to force serialization.
42717
42718 2003-11-26  Thomas Quinot  <quinot@act-europe.fr>
42719
42720         * g-socket.ads, g-socket.adb:
42721         Clarify documentation of function Stream. Introduce a Free procedure
42722         to release the returned Stream once it becomes unused.
42723
42724         * 5asystem.ads: For Alpha Tru64, enable ZCX by default.
42725
42726 2003-11-26  Arnaud Charlet  <charlet@act-europe.fr>
42727
42728         (Cond_Timed_Wait): Introduce new constant Time_Out_Max,
42729         since NT 4 cannot handle timeout values that are too large,
42730         e.g. DWORD'Last - 1.
42731
42732 2003-11-26  Ed Schonberg  <schonberg@gnat.com>
42733
42734         * exp_ch4.adb:
42735         (Expand_N_Slice): Recognize all cases of slices that appear as actuals
42736         in procedure calls and whose expansion must be deferred.
42737
42738         * exp_ch6.adb (Add_Call_By_Copy_Node): Remove previous fix. Proper fix
42739         is in exp_ch4.
42740
42741         * sem_ch3.adb:
42742         (Build_Derived_Array_Type): Create operator for unconstrained type
42743         if ancestor is unconstrained.
42744
42745 2003-11-26  Vincent Celier  <celier@gnat.com>
42746
42747         * make.adb (Project_Object_Directory): New global variable
42748         (Change_To_Object_Directory): New procedure
42749         (Collect_Arguments_And_Compile): Call Change_To_Object_Directory instead
42750         of Change_Dir directly. Do not change working directory to object
42751         directory of main project after each compilation.
42752         (Gnatmake): Use Change_To_Object_Directory instead of Change_Dir
42753         directly.
42754         Change to object directory of main project before binding step.
42755         (Initialize): Initialize Project_Object_Directory to No_Project
42756
42757         * mlib-prj.adb:
42758         (Build_Library): Take into account Builder'Default_Switches ("Ada") when
42759         binding a Stand-Alone Library.
42760
42761         * output.adb: Update Copyright notice
42762         (Write_Char): Output buffer when full
42763
42764 2003-11-26  Robert Dewar  <dewar@gnat.com>
42765
42766         * sem_ch13.adb: (Check_Size): Reset size if size is too small
42767
42768         * sem_ch13.ads:
42769         (Check_Size): Fix documentation to include bit-packed array case
42770
42771         * sem_res.adb: Implement restriction No_Direct_Boolean_Operators
42772
42773         * s-rident.ads: Put No_Direct_Boolean_Operators in proper order
42774
42775         * s-rident.ads: Add new restriction No_Direct_Boolean_Operators
42776
42777 2003-11-24  Arnaud Charlet  <charlet@act-europe.fr>
42778
42779         PR ada/13142
42780         * utils.c (init_gigi_decls): Change name of built-in setjmp to
42781         __builtin_setjmp, since this is apparently needed by recent
42782         non Ada changes.
42783
42784 2003-11-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
42785
42786         * adadecode.c: Only include ctype.h if not IN_GCC.
42787         (__gnat_decode): Use ISDIGIT from safe-ctype.h.
42788
42789 2003-11-24  Jose Ruiz  <ruiz@act-europe.fr>
42790
42791         * Makefile.in:
42792         Use 5zintman.ads for VxWorks targets. This file avoid confusion between
42793         signals and interrupts.
42794
42795         * 5zintman.ads: New File.
42796
42797         * 5zintman.adb: Replace Exception_Interrupts by Exception_Signals, and
42798         add exception signals to the set of unmasked signals.
42799
42800         * 5ztaprop.adb:
42801         Use Abort_Task_Signal instead of Abort_Task_Interrupt to avoid confusion
42802         between signals and interrupts.
42803         Add to Unblocked_Signal_Mask the set of signals that are in
42804         Keep_Unmasked.
42805
42806         * 7sinmaop.adb:
42807         Adding a check to see whether the Interrupt_ID we want to unmask is in
42808         the range of Keep_Unmasked (in procedure Interrupt_Self_Process). The
42809         reason is that the index type of the Keep_Unmasked array is not always
42810         Interrupt_ID; it may be a subtype of Interrupt_ID.
42811
42812 2003-11-24  Gary Dismukes  <dismukes@gnat.com>
42813
42814         * exp_util.adb:
42815         (Remove_Side_Effects): Condition constantness of object created for a
42816          an unchecked type conversion on the constantness of the expression
42817          to ensure the correct value for 'Constrained when passing components
42818          of view-converted class-wide objects.
42819
42820 2003-11-24  Robert Dewar  <dewar@gnat.com>
42821
42822         * par-load.adb (Load): Improve handling of misspelled and missing units
42823         Removes several cases of compilation abandoned messages
42824
42825         * lib.adb: (Remove_Unit): New procedure
42826
42827         * lib.ads: (Remove_Unit): New procedure
42828
42829         * lib-load.adb: Minor reformatting
42830
42831 2003-11-24  Vincent Celier  <celier@gnat.com>
42832
42833         * make.adb:
42834         (Gnatmake, Initialize): Call Usage instead of Makeusg directly
42835         (Marking_Label): Label to mark processed source files. Incremented for
42836         each executable.
42837         (Gnatmake): Increase Marking_Labet for each executable
42838         (Is_Marked): Compare against marking label
42839         (Mark): Mark with marking label
42840
42841 2003-11-24  Jerome Guitton  <guitton@act-europe.fr>
42842
42843         * s-thread.ads:
42844         Move the declaration of the TSD for System.Threads to System.Soft_Links.
42845         Add some comments.
42846
42847         * Makefile.in: Added target pair for s-thread.adb for cert runtime.
42848         (rts-cert): build a single relocatable object for the run-time lib.
42849         Fix perms.
42850
42851 2003-11-24  Vasiliy Fofanov  <fofanov@act-europe.fr>
42852
42853         * Make-lang.in:
42854         Use gnatls rather than gcc to obtain the location of GNAT RTL for
42855         crosstools build.
42856
42857 2003-11-24  Sergey Rybin  <rybin@act-europe.fr>
42858
42859         * opt.adb (Tree_Write): Gnat_Version_String is now a function, so we
42860         can not use it as before (that is, as a variable) when dumping it into
42861         the tree file. Add a local variable to store the result of this
42862         function and to be used as the string to be written into the tree.
42863
42864         * scn.adb (Initialize_Scanner): Add comments explaining the recent
42865         changes.
42866
42867         * sinput.adb (Source_First, Source_Last): In case of
42868         Internal_Source_File, replace returning attributes of
42869         Internal_Source_Ptr (which is wrong) with returning attributes of
42870         Internal_Source.
42871
42872 2003-11-24  Ed Schonberg  <schonberg@gnat.com>
42873
42874         * sem_ch3.adb:
42875         (New_Concatenation_Op): Proper name for New_Binary_Operator, only
42876         used for implicit concatenation operators.
42877         Code cleanup.
42878
42879         * sem_elab.adb:
42880         (Check_Elab_Call): Set No_Elaboration_Check appropriately on calls in
42881         task bodies that are in the scope of a Suppress pragma.
42882         (Check_A Call): Use the flag to prevent spurious elaboration checks.
42883
42884         * sinfo.ads, sinfo.adb:
42885         New flag No_Elaboration_Check on function/procedure calls, to properly
42886         suppress checks on calls in task bodies that are within a local suppress
42887         pragma.
42888
42889         * exp_ch4.adb:
42890         (Expand_Concatenate_Other): Use the proper integer type for the
42891         expression for the upper bound, to avoid universal_integer computations
42892         when possible.
42893
42894 2003-11-21  Kelley Cook  <kcook@gcc.gnu.org>
42895
42896         * .cvsignore: Delete.
42897
42898 2003-11-21  Andreas Schwab  <schwab@suse.de>
42899
42900         * 55system.ads: Set ZCX_By_Default and GCC_ZCX_Support to True.
42901
42902 2003-11-21  Vasiliy Fofanov  <fofanov@act-europe.fr>
42903
42904         * 5wsystem.ads: Enable zero cost exception.
42905
42906 2003-11-21  Jerome Guitton  <guitton@act-europe.fr>
42907
42908         * 5ztiitho.adb: Remove an unreferenced variable.
42909
42910 2003-11-21  Thomas Quinot  <quinot@act-europe.fr>
42911
42912         * adaint.c: For FreeBSD, use mkstemp.
42913
42914 2003-11-21  Arnaud Charlet  <charlet@act-europe.fr>
42915
42916         * gnatlbr.adb: Now reference Gnat_Static_Version_String.
42917
42918 2003-11-21  Robert Dewar  <dewar@gnat.com>
42919
42920         * bld.adb: Remove useless USE of gnatvsn
42921
42922         * gnatchop.adb: Minor reformatting
42923         Clean up version handling to be more consistent
42924
42925         * gnatxref.adb: Minor reformatting
42926
42927         * gprcmd.adb: Minor reformatting
42928         Fix output of copyright to be more consistent with other tools
42929
42930 2003-11-21  Vincent Celier  <celier@gnat.com>
42931
42932         * make.adb (Scan_Make_Args): Do not transmit --RTS= to gnatlink
42933
42934 2003-11-21  Sergey Rybin  <rybin@act-europe.fr>
42935
42936         * atree.adb (Initialize): Add initializations for global variables
42937         used in New_Copy_Tree.
42938
42939         * cstand.adb (Create_Standard): Add call to Initialize_Scanner (with
42940         Internal_Source_File as the actual).
42941         Put the set of statements creating Any_Character before the set of
42942         statements creating Any_Array to have Any_Character fully initialized
42943         when it is used in creating Any_Array.
42944
42945         * scn.adb (Initialize_Scanner): Do not set Comes_From_Source ON and do
42946         not call Scan in case if the actual is Internal_Source_File
42947         Add 2003 to copyright note.
42948
42949         * sinput.adb (Source_First, Source_Last, Source_Text): Add code for
42950         processing Internal_Source_File.
42951
42952         * types.ads: Add the constant Internal_Source_File representing the
42953         source buffer for artificial source-code-like strings created within
42954         the compiler (the definition of Source_File_Index is changed).
42955
42956 2003-11-20  Arnaud Charlet  <charlet@act-europe.fr>
42957
42958         * 35soccon.ads, 45intnam.ads, 55osinte.adb, 55osinte.ads,
42959         56system.ads: New file, FreeBSD version.
42960
42961 2003-11-20  Joseph S. Myers  <jsm@polyomino.org.uk>
42962
42963         * Make-lang.in (ada.extraclean): Delete.
42964
42965 2003-11-19  Arnaud Charlet  <charlet@act-europe.fr>
42966
42967         * gnatmem.adb: Clean up verbose output.
42968
42969         * gprcmd.adb: Change copyright to FSF.
42970
42971 2003-11-19  Vincent Celier  <celier@gnat.com>
42972
42973         * symbols.adb: (Initialize): New parameters Reference, Symbol_Policy
42974         and Version (ignored).
42975
42976         * symbols.ads: (Policy): New type
42977         (Initialize): New parameter Reference, Symbol_Policy and
42978         Library_Version.
42979         Remove parameter Force.
42980         Minor reformatting.
42981
42982         * snames.ads, snames.adbadb: New standard names
42983         Library_Reference_Symbol_File and Library_Symbol_Policy
42984
42985         * mlib-prj.adb:
42986         (Build_Library): Call Build_Dinamic_Library with the Symbol_Data of the
42987         project.
42988
42989         * mlib-tgt.adb:
42990         (Build_Dynamic_Library): New parameter Symbol_Data (ignored)
42991
42992         * mlib-tgt.ads: (Build_Dynamic_Library): New parameter Symbol_Data
42993
42994         * prj.adb: (Project_Empty): New component Symbol_Data
42995
42996         * prj.ads: (Policy, Symbol_Record): New types
42997         (Project_Data): New component Symbol_Data
42998
42999         * prj-attr.adb:
43000         New attributes Library_Symbol_File, Library_Symbol_Policy and
43001         Library_Reference_Symbol_File.
43002
43003         * prj-nmsc.adb:
43004         (Ada_Check): When project is a Stand-Alone library project, process
43005         attribute Library_Symbol_File, Library_Symbol_Policy and
43006         Library_Reference_Symbol_File.
43007
43008         * 5aml-tgt.adb, 5bml-tgt.adb, 5gml-tgt.adb, 5hml-tgt.adb,
43009         5wml-tgt.adb, 5zml-tgt.adb, 5lml-tgt.adb,
43010         5sml-tgt.adb (Build_Dynamic_Library): New parameter
43011         Symbol_Data (ignored).
43012
43013         * 5vml-tgt.adb (VMS_Options): Remove --for-linker=gsmatch=equal,1,0
43014         (Build_Dynamic_Library): New parameter Symbol_Data. New internal
43015         functions Option_File_Name and Version_String. Set new options of
43016         gnatsym related to symbol file, symbol policy and reference symbol
43017         file.
43018
43019         * 5vsymbol.adb:
43020         Extensive modifications to take into account the reference symbol file,
43021         the symbol policy, the library version and to put in the symbol file the
43022         minor and major IDs.
43023
43024         * bld.adb (Process_Declarative_Items): Put second argument of
43025         gprcmd to_absolute between single quotes, to avoid problems with
43026         Windows.
43027
43028         * bld-io.adb: Update Copyright notice.
43029         (Flush): Remove last character of a line, if it is a back slash, to
43030         avoid make problems.
43031
43032         * gnatsym.adb:
43033         Implement new scheme with reference symbol file and symbol policy.
43034
43035         * g-os_lib.ads: (Is_Directory): Clarify comment
43036
43037 2003-11-19  Robert Dewar  <dewar@gnat.com>
43038
43039         * atree.adb: Move New_Copy_Tree global variables to head of package
43040
43041         * errout.adb: Minor reformatting
43042
43043 2003-11-19  Javier Miranda  <miranda@gnat.com>
43044
43045         * sem_ch4.adb: (Diagnose_Call): Improve error message.
43046         Add reference to Ada0Y (AI-50217)
43047
43048         * sem_ch6.adb, sem_ch8.adb, sem_type.adb,
43049         sem_util.adb: Add reference to AI-50217
43050
43051         * sinfo.ads: (N_With_Clause): Document fields referred to AI-50217
43052
43053         * sprint.adb: Add reference to Ada0Y (AI-50217, AI-287)
43054
43055         * sem_aggr.adb: Complete documentation of AI-287 changes
43056
43057         * par-ch4.adb: Document previous changes.
43058
43059         * lib-load.adb, lib-writ.adb, einfo.ads, par-ch10.adb,
43060         sem_cat.adb, sem_ch3.adb, sem_ch10.adb, sem_ch12.adb: Add references to
43061         Ada0Y (AI-50217)
43062
43063         * exp_aggr.adb: Add references to AI-287 in previous changes
43064
43065 2003-11-19  Ed Schonberg  <schonberg@gnat.com>
43066
43067         * exp_ch6.adb:
43068         (Add_Call_By_Copy_Node): Do not original node of rewritten expression
43069         in the rewriting is the result of an inlined call.
43070
43071         * exp_ch6.adb (Add_Call_By_Copy_Node): If actual for (in-)out
43072         parameter is a type conversion, use original node to construct the
43073         post-call assignment, because expression may have been rewritten, e.g.
43074         if it is a packed array.
43075
43076         * sem_attr.adb:
43077         (Resolve_Attribute, case 'Constrained): Attribute is legal in an inlined
43078         body, just as it is in an instance.
43079         Categorization routines
43080
43081         * sem_ch12.adb (Analyze_Association, Instantiate_Formal_Subprogram,
43082         Instantiate_Object): Set proper sloc reference for message on missing
43083         actual.
43084
43085 2003-11-19  Thomas Quinot  <quinot@act-europe.fr>
43086
43087         * Makefile.in: Add FreeBSD libgnat pairs.
43088
43089         * usage.adb: Fix typo in usage message.
43090
43091 2003-11-19  Jerome Guitton  <guitton@act-europe.fr>
43092
43093         * Makefile.in: On powerpc-wrs-vxworksae: Add s-thread.ad?,
43094         s-thrini.ad? and s-tiitho.adb to the full runtime, to support the
43095         pragma Thread_Body.
43096         Remove i-vthrea.ad? and s-tpae65.ad?, not needed anymore.
43097
43098         * s-thread.adb: This file is now a dummy implementation of
43099         System.Thread.
43100
43101 2003-11-19  Sergey Rybin  <rybin@act-europe.fr>
43102
43103         * rtsfind.adb (Initialize): Add initialization for RTE_Is_Available
43104
43105 2003-11-19  Emmanuel Briot  <briot@act-europe.fr>
43106
43107         * xref_lib.adb (Parse_Identifier_Info): Add handling of generic
43108         instanciation references in the parent type description.
43109
43110 2003-11-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
43111
43112         * ada-tree.def: (ALLOCATE_EXPR): Class is "2", not "s".
43113
43114         * decl.c (gnat_to_gnu_entity, case E_Floating_Point_Subtype): Set
43115         TYPE_PRECISION directly from esize.
43116
43117 2003-11-18  Thomas Quinot  <quinot@act-europe.fr>
43118
43119         * cstreams.c:
43120         Use realpath(3) on FreeBSD. Fix typo in comment while we are at it.
43121
43122         * init.c: Initialization routines for FreeBSD
43123
43124         * link.c: Link info for FreeBSD
43125
43126         * sysdep.c: Add the case of FreeBSD
43127
43128 2003-11-17  Jerome Guitton  <guitton@act-europe.fr>
43129
43130         * 5zthrini.adb: Remove the call to Init_RTS at elaboration, as it is
43131         already called in System.Threads.
43132
43133         * 5ztiitho.adb (Initialize_Task_Hooks): Remove the registration of the
43134         environment task, as it has been moved to System.Threads.Initialization.
43135
43136 2003-11-17  Arnaud Charlet  <charlet@act-europe.fr>
43137
43138         * adaint.c (__gnatlib_install_locks): Only reference
43139         __gnat_install_locks on VMS, since other platforms can avoid using
43140         --enable-threads=gnat
43141
43142 2003-11-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
43143
43144         * ada-tree.h: (TYPE_IS_PACKED_ARRAY_TYPE_P): New macro.
43145
43146         * decl.c (gnat_to_gnu_entity, case E_Array_Subtype): Set
43147         TYPE_PACKED_ARRAY_TYPE_P.
43148         (validate_size): Do not verify size if TYPE_IS_PACKED_ARRAY_TYPE_P.
43149
43150         Part of PR ada/12806
43151         * utils.c (float_type_for_precision): Renamed from float_type_for_size.
43152         Use GET_MODE_PRECISION instead of GET_MODE_BITSIZE.
43153
43154 2003-11-17  Vincent Celier  <celier@gnat.com>
43155
43156         * gnatchop.adb (Error_Msg): New Boolean parameter Warning, defaulted
43157         to False.
43158         Do not set exit status to Failure when Warning is True.
43159         (Gnatchop): Make errors "no compilation units found" and
43160         "no source files written" warnings only.
43161
43162         * make.adb (Gnatmake): When using a project file, set
43163         Look_In_Primary_Dir to False.
43164         (Configuration_Pragmas_Switch): Check for Global_Configuration_Pragmas
43165         and Local_Configuration_Pragmas in the project where they are declared
43166         not an extending project which might have inherited them.
43167
43168         * osint.adb (Locate_File): If Name is already an absolute path, do not
43169         look for a directory.
43170
43171         * par-ch10.adb (P_Compilation_Unit): If source contains no token, and
43172         -gnats (Check_Syntax) is used, issue only a warning, not an error.
43173
43174         * prj.adb (Register_Default_Naming_Scheme): Add new component Project
43175         in objects of type Variable_Value.
43176
43177         * prj.ads: (Variable_Value): New component Project
43178
43179         * prj-nmsc.adb (Ada_Check.Warn_If_Not_Sources): No warning if source
43180         is in a project extended by Project.
43181
43182         * prj-proc.adb (Add_Attributes): New parameter Project. Set component
43183         Project of Variable_Values to this new parameter value.
43184         (Expression): Set component Project of Variable_Values.
43185         (Process_Declarative_Items): Call Add_Attributes with parameter Project.
43186         Set the component Project in array elements.
43187
43188 2003-11-17  Sergey Rybin  <rybin@act-europe.fr>
43189
43190         * errout.adb: (Initialize): Add initialization for error nodes.
43191
43192         * sem_ch12.adb (Initialize): Add missing initializations for
43193         Exchanged_Views and Hidden_Entities.
43194
43195 2003-11-17  Ed Schonberg  <schonberg@gnat.com>
43196
43197         * sem_ch12.adb (Copy_Generic_Node): Preserve entity when copying an
43198         already instantiated tree for use in subsequent inlining.
43199         (Analyze_Associations, Instantiate_Formal_Subprogram,
43200         Instantiate_Object): improve error message for mismatch in
43201         instantiations.
43202
43203         * sem_ch6.adb (Build_Body_To_Inline): Major cleanup to handle
43204         instantiations of subprograms declared in instances.
43205
43206 2003-11-17  Javier Miranda  <miranda@gnat.com>
43207
43208         * sem_ch4.adb (Analyze_Allocator): Previous modification must be
43209         executed only under the Extensions_Allowed flag.
43210
43211 2003-11-17  Robert Dewar  <dewar@gnat.com>
43212
43213         * a-exexda.adb (Address_Image): Fix documentation to indicate leading
43214         zeroes suppressed.
43215         (Address_Image): Fix bug of returning 0x instead of 0x0
43216         Minor reformatting (function specs).
43217
43218         * einfo.ads: Minor fix for documentation of Is_Bit_Packed_Array
43219         (missed case of 33-63)
43220
43221         * freeze.adb, sem_ch13.adb: Properly check size of packed bit array
43222
43223         * s-thread.adb: Add comments for pragma Restriction
43224
43225         * exp_aggr.adb, g-debuti.adb, par-ch4.adb, sem_aggr.adb,
43226         sem_ch6.adb, sprint.adb, xref_lib.adb: Minor reformatting
43227
43228 2003-11-17  Ed Falis  <falis@gnat.com>
43229
43230         * s-thread.adb: Added No_Tasking restriction for this implementation.
43231
43232 2003-11-17  Emmanuel Briot  <briot@act-europe.fr>
43233
43234         * xref_lib.adb (Parse_Identifier_Info): Add handling of generic
43235         instanciation references in the parent type description.
43236
43237 2003-11-17  GNAT Script  <nobody@gnat.com>
43238
43239         * Make-lang.in: Makefile automatically updated
43240
43241 2003-11-16  Jason Merrill  <jason@redhat.com>
43242
43243         * Make-lang.in (ada.tags): Create TAGS.sub files in each directory
43244         and TAGS files that include them for each front end.
43245
43246 2003-11-14  Andreas Jaeger  <aj@suse.de>
43247
43248         * lang.opt: Change -Wno-long-long to -Wlong-long since the latter
43249         is the canonical version.
43250         * misc.c (gnat_handle_option): Likewise.
43251
43252         * Makefile.in (LIBGNAT_TARGET_PAIRS): Add rules for x86_64-linux.
43253
43254         * 5nsystem.ads: New file for x86_64-linux-gnu.
43255
43256 2003-11-14  Arnaud Charlet  <charlet@act-europe.fr>
43257
43258         * nmake.ads, nmake.adb, sinfo.h, treeprs.ads: Regenerated.
43259
43260         * comperr.adb: Fix logic in previous change.
43261
43262 2003-11-13  Vincent Celier  <celier@gnat.com>
43263
43264         * 5bml-tgt.adb (Build_Dynamic_Library): Use
43265         Osint.Include_Dir_Default_Prefix instead of
43266         Sdefault.Include_Dir_Default_Name.
43267
43268         * gnatlbr.adb: Update Copyright notice
43269         (Gnatlbr): : Use Osint.Include_Dir_Default_Prefix instead of
43270         Sdefault.Include_Dir_Default_Name and Osint.Object_Dir_Default_Prefix
43271         instead of Sdefault.Object_Dir_Default_Name
43272
43273         * gnatlink.adb:
43274         (Process_Binder_File): Never suppress the option following -Xlinker
43275
43276         * mdll-utl.adb:
43277         (Gcc): Use Osint.Object_Dir_Default_Prefix instead of
43278         Sdefault.Object_Dir_Default_Name.
43279
43280         * osint.ads, osint.adb:
43281         (Include_Dir_Default_Prefix, Object_Dir_Default_Prefix): New functions
43282         Minor reformatting.
43283
43284         * vms_conv.ads: Minor reformating
43285         Remove GNAT STANDARD and GNAT PSTA
43286
43287         * vms_conv.adb:
43288         Allow GNAT MAKE to have several files on the command line.
43289         (Init_Object_Dirs): Use Osint.Object_Dir_Default_Prefix instead of
43290         Sdefault.Object_Dir_Default_Name.
43291         Minor Reformating
43292         Remove data for GNAT STANDARD
43293
43294         * vms_data.ads:
43295         Add new compiler qualifier /PRINT_STANDARD (-gnatS)
43296         Remove data for GNAT STANDARD
43297         Remove options and documentation for -gnatwb/-gnatwB: these warning
43298         options no longer exist.
43299
43300 2003-11-13  Ed Falis  <falis@gnat.com>
43301
43302         * 5zthrini.adb: (Init_RTS): Made visible
43303
43304         * 5zthrini.adb:
43305         (Register): Removed unnecessary call to taskVarGet that checked whether
43306          an ATSD was already set as a task var for the argument thread.
43307
43308         * s-thread.adb:
43309         Updated comment to reflect that this is a VxWorks version
43310         Added context clause for System.Threads.Initialization
43311         Added call to System.Threads.Initialization.Init_RTS
43312
43313 2003-11-13  Jerome Guitton  <guitton@act-europe.fr>
43314
43315         * 5zthrini.adb:
43316         (Init_RTS): New procedure, for the initialization of the run-time lib.
43317
43318         * s-thread.adb:
43319         Remove dependancy on System.Init, so that this file can be used in the
43320         AE653 sequential run-time lib.
43321
43322 2003-11-13  Robert Dewar  <dewar@gnat.com>
43323
43324         * bindgen.adb: Minor reformatting
43325
43326 2003-11-13  Ed Schonberg  <schonberg@gnat.com>
43327
43328         * checks.adb:
43329         (Apply_Discriminant_Check): Do no apply check if target type is derived
43330         from source type with no applicable constraint.
43331
43332         * lib-writ.adb:
43333         (Ensure_System_Dependency): Do not apply the style checks that may have
43334         been specified for the main unit.
43335
43336         * sem_ch8.adb:
43337         (Find_Selected_Component): Further improvement in error message, with
43338         RM reference.
43339
43340         * sem_res.adb:
43341         (Resolve): Handle properly the case of an illegal overloaded protected
43342         procedure.
43343
43344 2003-11-13  Javier Miranda  <miranda@gnat.com>
43345
43346         * exp_aggr.adb:
43347         (Has_Default_Init_Comps): New function to check the presence of
43348         default initialization in an aggregate.
43349         (Build_Record_Aggr_Code): Recursively expand the ancestor in case of
43350         extension aggregate of a limited record. In addition, a new formal
43351         was added to do not initialize the record controller (if any) during
43352         this recursive expansion of ancestors.
43353         (Init_Controller): Add support for limited record components.
43354         (Expand_Record_Aggregate): In case of default initialized components
43355         convert the aggregate into a set of assignments.
43356
43357         * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Update the comment
43358         describing the new syntax.
43359         Nothing else needed to be done because this subprogram delegates part of
43360         its work to P_Precord_Or_Array_Component_Association.
43361         (P_Record_Or_Array_Component_Association): Give support to the new
43362         syntax for default initialization of components.
43363
43364         * sem_aggr.adb:
43365         (Resolve_Aggregate): Relax the strictness of the frontend in case of
43366         limited aggregates.
43367         (Resolve_Record_Aggregate): Give support to default initialized
43368         components.
43369         (Get_Value): In case of default initialized components, duplicate
43370         the corresponding default expression (from the record type
43371         declaration). In case of default initialization in the *others*
43372         choice, do not check that all components have the same type.
43373         (Resolve_Extension_Aggregate): Give support to limited extension
43374         aggregates.
43375
43376         * sem_ch3.adb:
43377         (Check_Initialization): Relax the strictness of the front-end in case
43378         of aggregate and extension aggregates. This test is now done in
43379         Get_Value in a per-component manner.
43380
43381         * sem_ch4.adb (Analyze_Allocator): Don't post an error if the
43382         expression corresponds to a limited aggregate. This test is now done
43383         in Get_Value.
43384
43385         * sinfo.ads, sinfo.adb (N_Component_Association): Addition of
43386         Box_Present flag.
43387
43388         * sprint.adb (Sprint_Node_Actual): Modified to print an mbox if
43389         present in an N_Component_Association node
43390
43391 2003-11-13  Thomas Quinot  <quinot@act-europe.fr>
43392
43393         * sem_ch9.adb (Analyze_Accept_Statement): A procedure hides a
43394         type-conformant entry only if they are homographs.
43395
43396 2003-11-13  GNAT Script  <nobody@gnat.com>
43397
43398         * Make-lang.in: Makefile automatically updated
43399
43400 2003-11-12  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
43401
43402         * adadecode.c: Use <> form of include for ctype.h.
43403         * sysdep.c [IN_RTS]: Use <> form of include for time.h.
43404
43405 2003-11-12  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
43406
43407         * 5gsystem.ads (Functions_Return_By_DSP): Set to False.
43408         Works around PR middle-end/6552.
43409
43410 2003-11-10  Ed Falis  <falis@gnat.com>
43411
43412         * 5ytiitho.adb: (procStartHookAdd): Definition and call deleted
43413
43414         * 5zinit.adb: (Install_Handler): Moved back to spec
43415         (Install_Signal_Handlers): Deleted
43416
43417         * 5zthrini.adb: Added context clause for System.Storage_Elements
43418         (Register): Only handles creation of taskVar; initialization moved to
43419         Thread_Body_Enter.
43420         (Reset_TSD): Deleted; replaced by Thread_Body_Enter
43421         Added declaration of environment task secondary stack and
43422         initialization.
43423
43424         * s-thread.adb: Implement bodies for thread body processing
43425
43426         * s-thread.ads:
43427         Added comment identifying supported targets for pragma Thread_Body.
43428
43429 2003-11-10  Pascal Obry  <obry@gnat.com>
43430
43431         * adaint.c (_gnat_stat) [WIN32]: Check if name is not bigger than
43432         GNAT_MAX_PATH_LEN.
43433
43434         * s-fileio.adb:
43435         (Open): Properly check for string length before copying into the buffer.
43436         Raises Name_Error if buffer is too small. Note that this was a potential
43437         buffer overflow.
43438
43439 2003-11-10  Romain Berrendonner  <berrendo@act-europe.fr>
43440
43441         * bindgen.adb, comperr.adb: Code clean ups.
43442         * gnatvsn.ads, gnatvsn.adb (Get_Gnat_Version_Type): New function.
43443
43444 2003-11-10  Sergey Rybin  <rybin@act-europe.fr>
43445
43446         * gnat1drv.adb: Add call to Sem_Elim.Initialize.
43447
43448 2003-11-10  Vincent Celier  <celier@gnat.com>
43449
43450         * gprcmd.adb:
43451         (Gprcmd): Add new command "prefix" to get the prefix of the GNAT
43452         installation.
43453
43454         * make.adb (Scan_Make_Arg): Transmit -nostdlib to the compiler
43455
43456         * prj.adb: (Project_Empty): Add new boolean component Virtual
43457
43458         * prj.ads: (Virtual_Prefix): New constant string
43459         (Project_Data): New boolean component Virtual
43460
43461         * prj-nmsc.adb (Language_Independent_Check): Adjust error message when
43462         a library project is extended by a virtual extending project.
43463
43464         * prj-part.adb:
43465         Modifications throughout to implement extending-all project, including:
43466         (Virtual_Hash, Processed_Hash): New hash tables
43467         (Create_Virtual_Extending_Project): New procedure
43468         (Look_For_Virtual_Projects_For): New procedure
43469
43470         * prj-proc.adb:
43471         (Process): After checking the projects, if main project is an
43472         extending-all project, set the object directory of all virtual extending
43473         project to the object directory of the main project.
43474         Adjust error message when a virtual extending project has the same
43475         object directory as an project being extended.
43476         (Recursive_Process): If name starts with the virtual prefix, set Virtual
43477         to True in the project data.
43478
43479         * prj-tree.adb:
43480         (Default_Project_Node): Add new boolean component Extending_All
43481         (Is_Extending_All): New function
43482         (Set_Is_Extending_All): New procedure
43483
43484         * prj-tree.ads: (Is_Extending_All): New function
43485         (Set_Is_Extending_All): New procedure
43486         (Project_Node_Record): New boolean component Extending_All
43487
43488         * switch-c.adb: (Scan_Front_End_Switches): Process -nostdlib
43489
43490         * vms_data.ads:
43491         Add qualifier /NOSTD_LIBRARIES (-nostdlib) for the compiler
43492
43493         * bld.adb (Recursive_Process): If MAKE_ROOT is not defined, call
43494         "gprcmd prefix" to define it.
43495
43496 2003-11-10  Thomas Quinot  <quinot@act-europe.fr>
43497
43498         * einfo.ads: Fix a typo and remove an extraneous word in comments.
43499
43500         * lib-load.adb:
43501         (Create_Dummy_Package_Unit): Set the scope of the entity for the
43502         created dummy package to Standard_Standard, not to itself, to
43503         defend other parts of the front-end against encoutering a cycle in
43504         the scope chain.
43505
43506         * sem_ch10.adb:
43507         (Analyze_With_Clause): When setting the entities for the successive
43508         N_Expanded_Names that constitute the name of a child unit, do not
43509         attempt to go further than Standard_Standard in the chain of scopes.
43510         This case arises from the placeholder units created by
43511         Create_Dummy_Package_Unit in the case of a with_clause for a
43512         nonexistent child unit.
43513
43514 2003-11-10  Ed Schonberg  <schonberg@gnat.com>
43515
43516         * exp_ch6.adb:
43517         (Expand_Thread_Body): Place subprogram on scope stack, so that new
43518         declarations are given the proper scope.
43519
43520         * sem_ch13.adb:
43521         (Check_Expr_Constants): Reject an expression that contains a constant
43522         created during expansion, and that appears after the object to which
43523         the address clause applies.
43524
43525         * sem_ch5.adb (Check_Controlled_Array_Attribute): Subsidiary of
43526         Analyze_Iteration_Scheme, to rewrite a loop parameter specification
43527         that uses 'Range of a function call with controlled components, so
43528         that the function result can be finalized before starting the loop.
43529
43530         * sem_ch8.adb:
43531         (Find_Selected_Component): Improve error message when prefix is
43532         an implicit dereference of an incomplete type.
43533
43534 2003-11-10  Robert Dewar  <dewar@gnat.com>
43535
43536         * opt.ads: New Print_Standard flag for -gnatS switch
43537
43538         * sem_ch13.adb: Remove some additional checks for unaligned arrays
43539
43540         * cstand.adb (Create_Standard): Print out package standard if -gnatS
43541         switch set
43542
43543         * debug.adb: Update doc for -gnatds to discuss relationship with new
43544         -gnatS flag
43545
43546         * sinfo.adb: Add new field Entity_Or_Associated_Node
43547
43548         * sinfo.ads: Add new field Entity_Or_Associated_Node
43549         Update documentation for Associated_Node and Entity fields to clarify
43550         relationship and usage.
43551
43552         * sprint.adb:
43553         (Write_Id): Properly process Associated_Node field in generic template
43554
43555         * switch-c.adb:
43556         Recognize new -gnatS switch for printing package Standard
43557         This replaces gnatpsta
43558
43559         * usage.adb:
43560         Add line for  new -gnatS switch for printing package Standard
43561         This replaces gnatpsta
43562
43563 2003-11-10  Andreas Jaeger  <aj@suse.de>
43564
43565         * 7sosprim.adb: tv_usec of struct_timeval and time_t are long
43566         integer.
43567
43568 2003-11-10  Arnaud Charlet  <charlet@act-europe.fr>
43569
43570         * misc.c, lang.opt: Add handling of -nostdlib, now recognized/needed
43571         by gnat1.
43572
43573 2003-11-10  Arnaud Charlet  <charlet@act-europe.fr>
43574
43575         * Makefile.in, Make-lang.in: Remove build of gnat_wrapper and gnatpsta,
43576         no longer needed.
43577
43578         * gnatpsta.adb, gnat_wrapper.adb: Removed, no longer needed.
43579
43580         * sysdep.c: Add handling of cygwin.
43581
43582 2003-11-10  GNAT Script  <nobody@gnat.com>
43583
43584         * Make-lang.in: Makefile automatically updated
43585
43586 2003-11-10  Arnaud Charlet  <charlet@act-europe.fr>
43587
43588         PR 12950
43589         * osint.ads, osint.adb (Relocate_Path, Executable_Suffix): New
43590         functions. Used to handle dynamic prefix relocation, via set_std_prefix.
43591         Replace GNAT_ROOT by GCC_ROOT.
43592
43593         * Make-lang.in: Use new function Relocate_Path to generate sdefault.adb
43594
43595 2003-11-06  Zack Weinberg  <zack@codesourcery.com>
43596
43597         * misc.c (fp_prec_to_size, fp_size_to_prec): Use GET_MODE_PRECISION
43598         and update for changed meaning of GET_MODE_BITSIZE.
43599
43600 2003-11-04  Doug Rupp  <rupp@gnat.com>
43601
43602         * sysdep.c: Problem discovered during IA64 VMS port.
43603         [VMS] #include <unixio.h> to get proper prototypes.
43604
43605         * adaint.c:
43606         Issues discovered/problems fixed during IA64 VMS port.
43607         [VMS] #define _POSIX_EXIT for proper semantics.
43608         [VMS] #include <unixio.h> for proper prototypes.
43609         [VMS] (fork): #define IA64 version.
43610         (__gnat_os_exit): Remove unnecessary VMS specific code.
43611
43612 2003-11-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
43613
43614         Part of PR ada/12806
43615         * ada-tree.h (TYPE_DIGITS_VALUE, SET_TYPE_DIGITS_VALUE): Save count as
43616         tree, not integer.
43617
43618         * decl.c:
43619         (gnat_to_gnu_entity, case E_Floating_Point_Type): Save count as tree,
43620         not integer.
43621
43622         * targtyps.c, decl.c, misc.c,
43623         gigi.h (fp_prec_to_size, fp_size_to_prec): Temporary
43624         routines to work around change in FP sizing semantics in GCC.
43625
43626         * utils.c:
43627         (build_vms_descriptor): TYPE_DIGITS_VALUE is tree, not integer.
43628
43629         * gigi.h: (enumerate_modes): New function.
43630
43631         * Make-lang.in: (ada/misc.o): Add real.h.
43632
43633         * misc.c: (enumerate_modes): New function.
43634
43635 2003-11-04  Robert Dewar  <dewar@gnat.com>
43636
43637         * 3vtrasym.adb: Minor reformatting
43638         Use terminology encoded/decoded name, rather than C++ specific notion
43639         of mangling (this is the terminology used throughout GNAT).
43640
43641         * einfo.h: Regenerated
43642
43643         * einfo.ads, einfo.adb: Add new flag Is_Thread_Body
43644
43645         * exp_ch6.adb:
43646         (Expand_N_Subprogram_Body): Handle expansion of thread body procedure
43647
43648         * par-prag.adb: Add dummy entry for Thread_Body pragma
43649
43650         * rtsfind.ads:
43651         Add entries for System.Threads entities for thread body processing
43652
43653         * sem_attr.adb:
43654         (Analyze_Pragma, Access attributes): Check these are not applied to a
43655         thread body, since this is not permitted
43656
43657         * sem_prag.adb: Add processing for Thread_Body pragma.
43658         Minor comment fix.
43659
43660         * sem_res.adb:
43661         (Resolve_Call): Check for incorrect attempt to call a thread body
43662          procedure with a direct call.
43663
43664         * snames.ads, snames.adb: Add entry for Thread_Body pragma
43665         Add names associated with thread body expansion
43666
43667         * snames.h: Add entry for Thread_Body pragma
43668
43669         * s-thread.adb: Add entries for thread body processing
43670         These are dummy bodies so far
43671
43672         * s-thread.ads: Add documentation on thread body handling.
43673         Add entries for thread body processing.
43674
43675 2003-11-04  Javier Miranda  <miranda@gnat.com>
43676
43677         * sem_ch10.adb:
43678         (Build_Limited_Views): Return after posting an error in case of limited
43679         with_clause on subprograms, generics, instances or generic renamings
43680         (Install_Limited_Withed_Unit): Do nothing in case of limited with_clause
43681         on subprograms, generics, instances or generic renamings
43682
43683 2003-11-04  Arnaud Charlet  <charlet@act-europe.fr>
43684
43685         * raise.c (setup_to_install): Correct mistake in last revision; two
43686         arguments out of order.
43687
43688         * trans.c, cuintp.c, argv.c, aux-io.c, cal.c, errno.c, exit.c,
43689         gnatbl.c, init.c, stringt.h, utils.c, utils2.c: Update copyright
43690         notice, missed in previous change.
43691         Remove trailing blanks and other style errors introduced in previous
43692         change.
43693
43694 2003-11-04  Olivier Hainque  <hainque@act-europe.fr>
43695
43696         * decl.c (gnat_to_gnu_field): Adjust the conditions under which we get
43697         rid of the wrapper for a LJM type, ensuring we don't do that if the
43698         field is addressable.  This avoids potential low level type view
43699         mismatches later on, for instance in a by-reference argument passing
43700         process.
43701
43702 2003-11-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
43703
43704         * decl.c (gnat_to_gnu_field): No longer check for BLKmode being
43705         aligned at byte boundary.
43706
43707 2003-11-04  Joel Brobecker  <brobecker@gnat.com>
43708
43709         * decl.c (components_to_record): Do not delete the empty variants from
43710         the end of the union type.
43711
43712 2003-11-04  Ed Schonberg  <schonberg@gnat.com>
43713
43714         * exp_ch4.adb (Expand_N_Op_Eq): Use base type when locating primitive
43715         operation for a derived type, an explicit declaration may use a local
43716         subtype of Boolean.
43717
43718 2003-11-04  Vincent Celier  <celier@gnat.com>
43719
43720         * make.adb (Gnatmake): Allow main sources on the command line with a
43721         library project when it is only for compilation (no binding or
43722         linking).
43723
43724 2003-11-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
43725
43726         * Makefile.in: Remove many duplicate variables.
43727
43728 2003-11-03  Kelley Cook  <kcook@gcc.gnu.org>
43729
43730         * Make-lang.in (dvi): Move targets to $(docobjdir).
43731         (gnat_ug_vms.dvi): Simplify rule and adjust target.
43732         (gnat_ug_wnt.dvi): Likewise.
43733         (gnat_ug_unx.dvi): Likewise.
43734         (gnat_ug_vxw.dvi): Likewise.
43735         (gnat_rm.dvi): Likewise.
43736         (gnat-style.dvi): Likewise.
43737
43738 2003-10-31  Kelley Cook  <kcook@gcc.gnu.org>
43739
43740         * gigi.h: Missed commit from update for C90.
43741
43742 2003-10-31  Kelley Cook  <kcook@gcc.gnu.org>
43743
43744         * Makefile.in (ada/b_gnat1.o): Compile with -Wno-error.
43745
43746 2003-10-31  Andreas Schwab  <schwab@suse.de>
43747
43748         * raise.c (get_action_description_for): Fix typo in last change.
43749
43750 2003-10-31  Nathanael Nerode  <neroden@gcc.gnu.org>
43751
43752         PR ada/12761
43753         * ada/Make-lang.in: Move default definitions of X_ADA_CFLAGS,
43754         T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS from here to master Makefile.in.
43755
43756 2003-10-30  Kelley Cook  <kcook@gcc.gnu.org>
43757
43758         * adadecode.c, adaint.c, argv.c, aux-io.c, cal.c, cio.c, cstreams.c,
43759         ctrl_c.c, cuintp.c, decl.c, errno.c, exit.c, expect.c, final.c,
43760         gigi.h, gmem.c, gnatbl.c, init.c, misc.c, mkdir.c, raise.c, socket.c,
43761         sysdep.c, sysdep.c, targtyps.c, tb-alvms.c, tb-alvxw.c, tracebak.c,
43762         trans.c, utils.c, utils2.c: Convert function prototypes to C90.
43763
43764 2003-10-30  Vasiliy Fofanov  <fofanov@act-europe.fr>
43765
43766         * 3vtrasym.adb:
43767         Demangle Ada symbols returned by TBK$SYMBOLIZE. Correctly align line
43768         numbers when symbol name is too long.
43769
43770 2003-10-30  Ed Falis  <falis@gnat.com>
43771
43772         * g-signal.ads, g-signal.adb: New files
43773
43774         * impunit.adb: (Non_Imp_File_Names): Added "g-signal"
43775
43776         * Makefile.rtl: Introduce GNAT.Signals
43777
43778 2003-10-30  Robert Dewar  <dewar@gnat.com>
43779
43780         * freeze.adb: Minor reformatting
43781
43782         * lib-writ.adb (Write_ALI): Never write ali file if -gnats is specified
43783
43784         * par.adb, par-ch12.adb, par-ch13.adb, par-ch2.adb, par-ch3.adb,
43785         par-ch5.adb, par-ch6.adb, par-ch9.adb, par-util.adb:
43786         New handling of Id_Check parameter to improve recognition of keywords
43787         used as identifiers.
43788         Update copyright notice to include 2003
43789
43790 2003-10-29  Robert Dewar  <dewar@gnat.com>
43791
43792         * 3vtrasym.adb, 5vtraent.ads, sprint.adb,
43793         sem_ch10.adb: Minor reformatting
43794
43795         * exp_ch5.adb (Expand_Assign_Array): Test for bit unaligned operands
43796         (Expand_Assign_Record): Test right hand side for bit unaligned as well
43797
43798 2003-10-29  Vasiliy Fofanov  <fofanov@act-europe.fr>
43799
43800         * 3vtrasym.adb, 5vtraent.adb, 5vtraent.ads, tb-alvms.c:
43801         Support for TBK$SYMBOLIZE-based symbolic traceback.
43802
43803 2003-10-29  Jose Ruiz  <ruiz@act-europe.fr>
43804
43805         * exp_disp.adb:
43806         Revert previous change, that did not work well when pragma No_Run_Time
43807         was used in conjunction with a run-time other than ZFP.
43808
43809 2003-10-29  Vincent Celier  <celier@gnat.com>
43810
43811         * make.adb:
43812         (Gnatmake): When there are no Ada mains in attribute Main, disable the
43813          bind and link steps only is switch -z is not used.
43814
43815 2003-10-29  Arnaud Charlet  <charlet@act-europe.fr>
43816
43817         * Makefile.generic: Remove duplicated setting of CC.
43818
43819         * Makefile.prolog: Set CC to gcc by default, to override make's
43820         default (cc).
43821
43822         * einfo.h: Regenerated.
43823
43824 2003-10-29  Ed Schonberg  <schonberg@gnat.com>
43825
43826         * sem_ch10.adb (Analyze_Subunit): Restore state of suppress flags for
43827         current body, after compiling subunit.
43828
43829         * itypes.adb (Create_Itype): In ASIS_Mode, do not freeze the itype
43830         when in deleted code, because gigi needs properly ordered freeze
43831         actions to annotate types.
43832
43833         * freeze.adb (Is_Fully_Defined): Predicate must be recursive, to
43834         prevent the premature freezing of record type that contains
43835         subcomponents with a private type that does not yet have a completion.
43836
43837 2003-10-29  Javier Miranda  <miranda@gnat.com>
43838
43839         * sem_ch12.adb:
43840         (Analyze_Package_Instantiation): Check that instances can not be used in
43841         limited with_clauses.
43842
43843         * sem_ch8.adb:
43844         (Analyze_Package_Renaming): Check that limited withed packages cannot
43845         be renamed. Improve text on error messages related to limited
43846         with_clauses.
43847
43848         * einfo.adb, einfo.ads: Remove Non_Limited_Views attribute.
43849
43850         * sprint.adb: (Sprint_Node_Actual): Print limited with_clauses.
43851         Update copyright notice.
43852
43853         * sem_ch10.adb: (Build_Limited_Views): Complete its documentation.
43854         (Install_Limited_Context_Clauses): New subprogram that isolates all the
43855         checks required for limited context_clauses and installs the limited
43856         view.
43857         (Install_Limited_Withed_Unit): Complete its documentation.
43858         (Analyze_Context): Check that limited with_clauses are only allowed in
43859         package specs.
43860         (Install_Context): Call Install_Limited_Context_Clauses after the
43861         parents have been installed.
43862         (Install_Limited_Withed_Unit): Add documentation. Mark the installed
43863         package as 'From_With_Type'; this mark indicates that the limited view
43864         is installed. Used to check bad usages of limited with_clauses.
43865         (Build_Limited_Views): Do not add shadow entities to the scope's list
43866         of entities. Do not add real entities to the Non_Limited_Views chain.
43867         Improve error notification.
43868         (Remove_Context_Clauses): Remove context clauses in two phases:
43869         limited views first and regular views later (to maintain the
43870         stack model).
43871         (Remove_Limited_With_Clause): If the package is analyzed then reinstall
43872         its visible entities.
43873
43874 2003-10-29  Thomas Quinot  <quinot@act-europe.fr>
43875
43876         * sem_type.adb (Specific_Type): Type Universal_Fixed is compatible
43877         with any type that Is_Fixed_Point_Type.
43878
43879         * sinfo.ads: Fix documentation for Associated_Node attribute.
43880
43881 2003-10-29  Sergey Rybin  <rybin@act-europe.fr>
43882
43883         * switch-c.adb (Scan_Front_End_Switches): ASIS_Mode is set now when
43884         both '-gnatc' and '-gnatt' are specified.
43885
43886         * atree.adb (Initialize): Add initialization for Node_Count (set to
43887         zero).
43888
43889 2003-10-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
43890
43891         * decl.c (gnat_to_gnu_entity, case E_Subprogram): If no return value,
43892         do not consider as Pure.
43893
43894         Part of implementation of function-at-a-time:
43895
43896         * trans.c (gnat_to_gnu_code): If IS_STMT, call expand_expr_stmt.
43897         (tree_transform): Add new argument to build_component_ref.
43898         (tree_transform, case N_Assignment_Statement): Make and return an
43899         EXPR_STMT.
43900         (tree_transform): If result IS_STMT, set flags and return it.
43901         (gnat_expand_stmt, set_lineno_from_sloc): New functions.
43902
43903         * utils2.c (build_simple_component_ref, build_component_ref): Add new
43904         arg, NO_FOLD_P.
43905         (build_binary_op, case EQ_EXPR): Pass additional arg to it.
43906         (build_allocator): Likewise.
43907
43908         * utils.c (convert_to_fat_pointer, convert_to_thin_pointer, convert):
43909         Add new arg to build_component_ref.
43910         (maybe_unconstrained_array, unchecked_convert): Likewise.
43911
43912         * ada-tree.def (EXPR_STMT): New code.
43913
43914         * ada-tree.h (IS_STMT, TREE_SLOC, EXPR_STMT_EXPR): New macros.
43915
43916         * decl.c (gnat_to_gnu_entity, case object): Add extra arg to
43917         build_component_ref calls.
43918
43919         * misc.c (gnat_expand_expr): If IS_STMT, call gnat_expand_stmt.
43920
43921         * gigi.h (gnat_expand_stmt, set_lineno_from_sloc): New functions.
43922         (build_component_ref): Add new argument, NO_FOLD_P.
43923
43924 2003-10-27  Arnaud Charlet  <charlet@act-europe.fr>
43925
43926         * Makefile.generic: Add missing substitution on object_deps handling.
43927
43928         PR ada/5909
43929         * Make-lang.in (check-ada): Enable ACATS test suite.
43930
43931 2003-10-27  Robert Dewar  <dewar@gnat.com>
43932
43933         * exp_ch3.adb:
43934         (Freeze_Array_Type): We do not need an initialization routine for types
43935         derived from String or Wide_String. They should be treated the same
43936         as String and Wide_String themselves. This caused problems with the
43937         use of Initialize_Scalars.
43938
43939         * exp_ch5.adb:
43940         (Expand_Assign_Record): Do component-wise assignment of non-byte aligned
43941         composites. This allows use of component clauses that are not byte
43942         aligned.
43943
43944         * sem_prag.adb:
43945         (Analyze_Pragma, case Pack): Generate warning and ignore pack if there
43946         is an attempt to pack an array of atomic objects.
43947
43948         * make.adb, prj-env.adb, prj-env.ads: Minor reformatting
43949
43950 2003-10-27  Pascal Obry  <obry@gnat.com>
43951
43952         * g-dirope.adb:
43953         (Basename): Check for drive letters in a pathname only on DOS based OS.
43954
43955 2003-10-27  Vincent Celier  <celier@gnat.com>
43956
43957         * make.adb:
43958         (Gnatmake): When unable to change dir to the object dir, display the
43959         content of the parent dir of the obj dir, to try to understand why this
43960         happens.
43961
43962 2003-10-27  GNAT Script  <nobody@gnat.com>
43963
43964         * Make-lang.in: Makefile automatically updated
43965
43966 2003-10-27  Ed Schonberg  <schonberg@gnat.com>
43967
43968         * sem_ch12.adb:
43969         (Inline_Instance_Body): Indicate that the save/restore of use_clauses
43970         should not be done in Save/Restore_Scope_Stack, because it is performed
43971         locally.
43972
43973         * sem_ch8.adb:
43974         (Save_Scope_Stack, Restore_Scope_Stack): Add parameter to indicate
43975         whether use clauses should be removed/restored.
43976
43977         * sem_ch8.ads:
43978         (Save_Scope_Stack, Restore_Scope_Stack): Add parameter to indicate
43979         whether use clauses should be removed/restored.
43980
43981 2003-10-26  Andreas Jaeger  <aj@suse.de>
43982
43983         * Makefile.in: Remove duplicated lines.
43984
43985 2003-10-24  Arnaud Charlet  <charlet@act-europe.fr>
43986
43987         * gnatvsn.ads (Gnat_Static_Version_String): New constant, used to
43988         minimize the differences with ACT tree.
43989
43990         * gnatkr.adb, gnatlink.adb, gnatls.adb, gnatmake.adb,
43991         gnatprep.adb, gnatpsta.adb, gnatvsn.ads: Take advantage of
43992         Gnatvsn.Gnat_Static_Version_String to reduce differences between
43993         ACT and FSF trees.
43994
43995 2003-10-24  Pascal Obry  <obry@gnat.com>
43996
43997         PR ada/12014
43998         * adadecode.c (ostrcpy): New function.
43999         (__gnat_decode): Use ostrcpy of strcpy.
44000         (has_prefix): Set first parameter a const.
44001         (has_suffix): Set first parameter a const.
44002         Update copyright notice. Fix source name in header.
44003         Removes a trailing space.
44004
44005 2003-10-24  Jose Ruiz  <ruiz@act-europe.fr>
44006
44007         * exp_disp.adb:
44008         Remove the test against being in No_Run_Time_Mode before generating a
44009         call to Register_Tag. It is redundant with the test against the
44010         availability of the function Register_Tag.
44011
44012 2003-10-24  Vincent Celier  <celier@gnat.com>
44013
44014         * g-catiio.adb: (Month_Name): Correct spelling of February
44015
44016         * make.adb: (Mains): New package
44017         (Initialize): Call Mains.Delete
44018         (Gnatmake): Check that each main on the command line is a source of a
44019         project file and, if there are several mains, each of them is a source
44020         of the same project file.
44021         (Gnatmake): When a foreign language is specified in attribute Languages,
44022         no main is specified on the command line and attribute Mains is not
44023         empty, only build the Ada main. If there is no Ada main, just compile
44024         the Ada sources and their closure.
44025         (Gnatmake): If a main is specified on the command line with directory
44026         information, check that the source exists and, if it does, that the path
44027         is the actual path of a source of a project.
44028
44029         * prj-env.adb:
44030         (File_Name_Of_Library_Unit_Body): New Boolean parameter Full_Path. When
44031         Full_Path is True, return the full path instead of the simple file name.
44032         (Project_Of): New function
44033
44034         * prj-env.ads:
44035         (File_Name_Of_Library_Unit_Body): New Boolean parameter Full_Path,
44036         defaulted to False.
44037         (Project_Of): New function
44038
44039 2003-10-24  Arnaud Charlet  <charlet@act-europe.fr>
44040
44041         * Makefile.generic:
44042         Ensure objects of main project are always checked and rebuilt if needed.
44043         Set CC to gcc by default.
44044         Prepare new handling of link by creating a global archive (not activated
44045         yet).
44046
44047         * adadecode.h, atree.h, elists.h, nlists.h, raise.h,
44048         stringt.h: Update copyright notice. Remove trailing blanks.
44049         Fix source name in header.
44050
44051 2003-10-24  Robert Dewar  <dewar@gnat.com>
44052
44053         * sem_ch12.adb: Minor reformatting
44054
44055         * sem_ch3.adb:
44056         Minor reformatting (including new function return style throughout)
44057
44058         * sem_ch3.ads:
44059         Minor reformatting (including new function return style throughout)
44060
44061 2003-10-24  Arnaud Charlet  <charlet@act-europe.fr>
44062
44063         * adadecode.h, atree.h, elists.h, nlists.h, raise.h,
44064         stringt.h: Update copyright notice. Remove trailing blanks.
44065         Fix source name in header.
44066
44067 2003-10-24  GNAT Script  <nobody@gnat.com>
44068
44069         * Make-lang.in: Makefile automatically updated
44070
44071 2003-10-23  Nathanael Nerode  <neroden@gcc.gnu.org>
44072
44073         * adadecode.h, atree.h, elists.h, namet.h, nlists.h, raise.h,
44074         stringt.h: Convert to ISO C90 declarations and definitions.
44075
44076 2003-10-23  Thomas Quinot  <quinot@act-europe.fr>
44077
44078         PR ada/11978
44079         * exp_ch13.adb (Expand_N_Freeze_Entity): Do not consider inherited
44080         External_Tag attribute definition clauses.
44081
44082 2003-10-23  Ed Schonberg  <schonberg@gnat.com>
44083
44084         PR ada/7613
44085         * exp_dbug.adb (Debug_Renaming_Declaration): For the renaming of a
44086         child unit, generate a fully qualified name to avoid spurious errors
44087         when the context contains renamings of different child units with
44088         the same simple name.
44089
44090         * exp_dbug.ads: Add documentation on name qualification for renamings
44091         of child units.
44092
44093 2003-10-23  Robert Dewar  <dewar@gnat.com>
44094
44095         * g-regpat.ads, g-regpat.adb: Minor reformatting
44096
44097 2003-10-23  Jose Ruiz  <ruiz@act-europe.fr>
44098
44099         * Makefile.in: Use the file 1atags.ads with the ZFP and cert run-times.
44100
44101 2003-10-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
44102
44103         * trans.c: (tree_transform, case N_Real_Literal): Add extra arg to
44104         Machine call.
44105
44106         * urealp.h: (Machine): Update to proper definition.
44107
44108 2003-10-23  Arnaud Charlet  <charlet@act-europe.fr>
44109
44110         * init.c, adaint.c: Minor reformatting.
44111
44112 2003-10-23  Danny Smith  <dannysmith@users.sourceforge.net>
44113
44114         * adaint.c (w32_epoch_offset): Define static const at file level.
44115         (win32_filetime): Replace offset with w32_epoch_offset. Use NULL
44116         rather than t_create, t_access in call to GetFileTime. Use union
44117         to convert between FILETIME and  unsigned long long.
44118         (__gnat_file_time_name): Test for invalid file handle.
44119         (__gnat_set_filetime_name): Support win32 targets using
44120         w32api SetFileTime.
44121
44122 2003-10-22  Danny Smith  <dannysmith@users.sourceforge.net>
44123
44124         * sysdep.c: Include conio.h if __MINGW32__ and !OLD_MINGW.
44125
44126         * ctrl_c.c (__gnat_int_handler): Remove declaration.
44127
44128         * decl.c (creat_concat_name):  Const-ify prefix.
44129
44130         * adaint.c: Include ctype.h if __MINGW32__.
44131         (__gnat_readlink): Mark arguments as possibly unused.
44132         (__gnat_symlink): Likewise.
44133         (__gnat_is_symbolic_link): Likewise.
44134         (__gnat_portable_spawn): Likewise.  Cast last arg of spawnvp to match
44135         declaration
44136         (__gnat_file_time_name): Don't declare struct stat statbuf when
44137         not needed.
44138         (__gnat_is_absolute_path): Add parenthesis around condition of
44139         'if' statement to avoid warning.
44140         (__gnat_plist_init): Specify void as parameter.
44141         (plist_enter): Likewise.
44142         (plist_leave): Likewise.
44143         (remove_handle): Make static. Initialize prev.
44144
44145 2003-10-22  Arnaud Charlet  <charlet@act-europe.fr>
44146
44147         PR ada/10110
44148         * Makefile.in: Disable build of gnatpsta.
44149         * cstreams.c (__gnat_full_name): Minor improvements and clean up
44150         of previous change.
44151
44152 2003-10-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
44153
44154         * tracebak.c (MAX): Avoid redefinition warning.
44155
44156         * init.c [sgi] (__gnat_error_handler): Remove i, unused.
44157         Change msg to const char *.
44158         (__gnat_install_handler): Remove ss, unused.
44159         [sun && __SVR4 && !__vxworks] (__gnat_error_handler): Change msg
44160         to const char *.
44161         * cstreams.c (__gnat_full_name): Declare p only when used.
44162         (__gnat_full_name) [sgi] Return buffer.
44163
44164 2003-10-22  Arnaud Charlet  <charlet@act-europe.fr>
44165
44166         * mingw32.h: New file.
44167         * gnat_wrapper.adb: New file.
44168
44169 2003-10-22  Jerome Roussel  <roussel@act-europe.fr>
44170
44171         * g-regpat.ads, g-regpat.adb (Match): new function, to know if a
44172         string match a pre compiled regular expression (the corresponding
44173         version of the function working on a raw regular expression)
44174         Fix typos in various comments
44175         Update copyright notice in spec
44176
44177 2003-10-21  Gary Dismukes  <dismukes@gnat.com>
44178
44179         * exp_ch3.adb:
44180         (Component_Needs_Simple_Initialization): Return False when the type is a
44181         packed bit array. Revise spec comments to document this case.
44182
44183         * exp_prag.adb:
44184         (Expand_Pragma_Import): Set any expression on the imported object to
44185         empty to avoid initializing imported objects (in particular this
44186         covers the case of zero-initialization of bit arrays).
44187         Update copyright notice.
44188
44189 2003-10-21  Ed Schonberg  <schonberg@gnat.com>
44190
44191         * sem_ch12.adb:
44192         (Load_Parent_Of_Generic): If parent is compilation unit, stop search,
44193         a subunit is missing.
44194         (Instantiate_Subprogram_Body): If body of function is missing, set type
44195         of return expression explicitly in dummy body, to prevent cascaded
44196         errors when a subunit is missing.
44197         Fixes PR 5677.
44198
44199         * sem_ch3.adb:
44200         (Access_Subprogram_Declaration): Verify that return type is valid.
44201         Fixes PR 8693.
44202
44203         * sem_elab.adb:
44204         (Check_Elab_Calls): Do not apply elaboration checks if the main unit is
44205         generic.
44206         Fixes PR 12318.
44207
44208         * sem_util.adb:
44209         (Corresponding_Discriminant): If the scope of the discriminant is a
44210         private type without discriminant, use its full view.
44211         Fixes PR 8247.
44212
44213 2003-10-21  Arnaud Charlet  <charlet@act-europe.fr>
44214
44215         * 3psoccon.ads, 3veacodu.adb, 3vexpect.adb, 3vsoccon.ads,
44216         3vsocthi.adb, 3vsocthi.ads, 3vtrasym.adb, 3zsoccon.ads,
44217         3zsocthi.adb, 3zsocthi.ads, 50system.ads, 51system.ads,
44218         55system.ads, 56osinte.adb, 56osinte.ads, 56taprop.adb,
44219         56taspri.ads, 56tpopsp.adb, 57system.ads, 58system.ads,
44220         59system.ads, 5aml-tgt.adb, 5bml-tgt.adb, 5csystem.ads,
44221         5dsystem.ads, 5fosinte.adb, 5gml-tgt.adb, 5hml-tgt.adb,
44222         5isystem.ads, 5lparame.adb, 5msystem.ads, 5psystem.ads,
44223         5sml-tgt.adb, 5sosprim.adb, 5stpopsp.adb, 5tsystem.ads,
44224         5usystem.ads, 5vml-tgt.adb, 5vsymbol.adb, 5vtraent.adb,
44225         5vtraent.ads, 5wml-tgt.adb, 5xparame.ads, 5xsystem.ads,
44226         5xvxwork.ads, 5yparame.ads, 5ytiitho.adb, 5zinit.adb,
44227         5zml-tgt.adb, 5zparame.ads, 5ztaspri.ads, 5ztfsetr.adb,
44228         5zthrini.adb, 5ztiitho.adb, 5ztpopsp.adb, 7stfsetr.adb,
44229         7straces.adb, 7strafor.adb, 7strafor.ads, 7stratas.adb,
44230         a-excach.adb, a-exexda.adb, a-exexpr.adb, a-exextr.adb,
44231         a-exstat.adb, a-strsup.adb, a-strsup.ads, a-stwisu.adb,
44232         a-stwisu.ads, bld.adb, bld.ads, bld-io.adb,
44233         bld-io.ads, clean.adb, clean.ads, ctrl_c.c,
44234         erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
44235         err_vars.ads, final.c, g-arrspl.adb, g-arrspl.ads,
44236         g-boubuf.adb, g-boubuf.ads, g-boumai.ads, g-bubsor.adb,
44237         g-bubsor.ads, g-comver.adb, g-comver.ads, g-ctrl_c.ads,
44238         g-dynhta.adb, g-dynhta.ads, g-eacodu.adb, g-excact.adb,
44239         g-excact.ads, g-heasor.adb, g-heasor.ads, g-memdum.adb,
44240         g-memdum.ads, gnatclean.adb, gnatsym.adb, g-pehage.adb,
44241         g-pehage.ads, g-perhas.ads, gpr2make.adb, gpr2make.ads,
44242         gprcmd.adb, gprep.adb, gprep.ads, g-semaph.adb,
44243         g-semaph.ads, g-string.adb, g-string.ads, g-strspl.ads,
44244         g-wistsp.ads, i-vthrea.adb, i-vthrea.ads, i-vxwoio.adb,
44245         i-vxwoio.ads, Makefile.generic, Makefile.prolog, Makefile.rtl,
44246         prep.adb, prep.ads, prepcomp.adb, prepcomp.ads,
44247         prj-err.adb, prj-err.ads, s-boarop.ads, s-carsi8.adb,
44248         s-carsi8.ads, s-carun8.adb, s-carun8.ads, s-casi16.adb,
44249         s-casi16.ads, s-casi32.adb, s-casi32.ads, s-casi64.adb,
44250         s-casi64.ads, s-casuti.adb, s-casuti.ads, s-caun16.adb,
44251         s-caun16.ads, s-caun32.adb, s-caun32.ads, s-caun64.adb,
44252         s-caun64.ads, scng.adb, scng.ads, s-exnint.adb,
44253         s-exnllf.adb, s-exnlli.adb, s-expint.adb, s-explli.adb,
44254         s-geveop.adb, s-geveop.ads, s-hibaen.ads, s-htable.adb,
44255         s-htable.ads, sinput-c.adb, sinput-c.ads, s-memcop.ads,
44256         socket.c, s-purexc.ads, s-scaval.adb, s-stopoo.adb,
44257         s-strcom.adb, s-strcom.ads, s-strxdr.adb, s-rident.ads,
44258         s-thread.adb, s-thread.ads, s-tpae65.adb, s-tpae65.ads,
44259         s-tporft.adb, s-traent.adb, s-traent.ads, styleg.adb,
44260         styleg.ads, styleg-c.adb, styleg-c.ads, s-veboop.adb,
44261         s-veboop.ads, s-vector.ads, symbols.adb, symbols.ads,
44262         tb-alvms.c, tb-alvxw.c, tempdir.adb, tempdir.ads,
44263         vms_conv.ads, vms_conv.adb, vms_data.ads,
44264         vxaddr2line.adb: Files added. Merge with ACT tree.
44265
44266         * 4dintnam.ads, 4mintnam.ads, 4uintnam.ads, 52system.ads,
44267         5dosinte.ads, 5etpopse.adb, 5mosinte.ads, 5qosinte.adb,
44268         5qosinte.ads, 5qstache.adb, 5qtaprop.adb, 5qtaspri.ads,
44269         5stpopse.adb, 5uintman.adb, 5uosinte.ads, adafinal.c,
44270         g-enblsp.adb, io-aux.c, scn-nlit.adb, scn-slit.adb,
44271         s-exnflt.ads, s-exngen.adb, s-exngen.ads, s-exnlfl.ads,
44272         s-exnlin.ads, s-exnsfl.ads, s-exnsin.ads, s-exnssi.ads,
44273         s-expflt.ads, s-expgen.adb, s-expgen.ads, s-explfl.ads,
44274         s-explin.ads, s-expllf.ads, s-expsfl.ads, s-expsin.ads,
44275         s-expssi.ads, style.adb: Files removed. Merge with ACT tree.
44276
44277         * 1ic.ads, 31soccon.ads, 31soliop.ads, 3asoccon.ads,
44278         3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3ssoccon.ads,
44279         3ssoliop.ads, 3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads,
44280         3wsoliop.ads, 41intnam.ads, 42intnam.ads, 4aintnam.ads,
44281         4cintnam.ads, 4gintnam.ads, 4hexcpol.adb, 4hintnam.ads,
44282         4lintnam.ads, 4nintnam.ads, 4ointnam.ads, 4onumaux.ads,
44283         4pintnam.ads, 4sintnam.ads, 4vcaldel.adb, 4vcalend.adb,
44284         4vintnam.ads, 4wexcpol.adb, 4wintnam.ads, 4zintnam.ads,
44285         51osinte.adb, 51osinte.ads, 52osinte.adb, 52osinte.ads,
44286         53osinte.ads, 54osinte.ads, 5aosinte.adb, 5aosinte.ads,
44287         5asystem.ads, 5ataprop.adb, 5atasinf.ads, 5ataspri.ads,
44288         5atpopsp.adb, 5avxwork.ads, 5bosinte.adb, 5bosinte.ads,
44289         5bsystem.ads, 5cosinte.ads, 5esystem.ads, 5fintman.adb,
44290         5fosinte.ads, 5fsystem.ads, 5ftaprop.adb, 5ftasinf.ads,
44291         5ginterr.adb, 5gintman.adb, 5gmastop.adb, 5gosinte.ads,
44292         5gproinf.ads, 5gsystem.ads, 5gtaprop.adb, 5gtasinf.ads,
44293         5gtpgetc.adb, 5hosinte.adb, 5hosinte.ads, 5hsystem.ads,
44294         5htaprop.adb, 5htaspri.ads, 5htraceb.adb, 5iosinte.adb,
44295         5itaprop.adb, 5itaspri.ads, 5ksystem.ads, 5kvxwork.ads,
44296         5lintman.adb, 5lml-tgt.adb, 5losinte.ads, 5lsystem.ads,
44297         5mvxwork.ads, 5ninmaop.adb, 5nintman.adb, 5nosinte.ads,
44298         5ntaprop.adb, 5ntaspri.ads, 5ointerr.adb, 5omastop.adb,
44299         5oosinte.adb, 5oosinte.ads, 5oosprim.adb, 5oparame.adb,
44300         5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5posinte.ads,
44301         5posprim.adb, 5pvxwork.ads, 5sintman.adb, 5sosinte.adb,
44302         5sosinte.ads, 5ssystem.ads, 5staprop.adb, 5stasinf.ads,
44303         5staspri.ads, 5svxwork.ads, 5tosinte.ads, 5vasthan.adb,
44304         5vinmaop.adb, 5vinterr.adb, 5vintman.adb, 5vintman.ads,
44305         5vmastop.adb, 5vosinte.adb, 5vosinte.ads, 5vosprim.adb,
44306         5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads, 5vtpopde.adb,
44307         5vtpopde.ads, 5wgloloc.adb, 5wintman.adb, 5wmemory.adb,
44308         5wosprim.adb, 5wsystem.ads, 5wtaprop.adb, 5wtaspri.ads,
44309         5ysystem.ads, 5zinterr.adb, 5zintman.adb, 5zosinte.adb,
44310         5zosinte.ads, 5zosprim.adb, 5zsystem.ads, 5ztaprop.adb,
44311         6vcpp.adb, 6vcstrea.adb, 6vinterf.ads, 7sinmaop.adb,
44312         7sintman.adb, 7sosinte.adb, 7sosprim.adb, 7staprop.adb,
44313         7staspri.ads, 7stpopsp.adb, 7straceb.adb, 9drpc.adb,
44314         a-caldel.adb, a-caldel.ads, a-charac.ads, a-colien.ads,
44315         a-comlin.adb, adaint.c, adaint.h, ada-tree.def,
44316         a-diocst.adb, a-diocst.ads, a-direio.adb, a-except.adb,
44317         a-except.ads, a-excpol.adb, a-exctra.adb, a-exctra.ads,
44318         a-filico.adb, a-interr.adb, a-intsig.adb, a-intsig.ads,
44319         ali.adb, ali.ads, ali-util.adb, ali-util.ads,
44320         a-ngcefu.adb, a-ngcoty.adb, a-ngelfu.adb, a-nudira.adb,
44321         a-nudira.ads, a-nuflra.adb, a-nuflra.ads, a-reatim.adb,
44322         a-reatim.ads, a-retide.ads, a-sequio.adb, a-siocst.adb,
44323         a-siocst.ads, a-ssicst.adb, a-ssicst.ads, a-strbou.adb,
44324         a-strbou.ads, a-strfix.adb, a-strmap.adb, a-strsea.ads,
44325         a-strunb.adb, a-strunb.ads, a-ststio.adb, a-stunau.adb,
44326         a-stunau.ads, a-stwibo.adb, a-stwibo.ads, a-stwifi.adb,
44327         a-stwima.adb, a-stwiun.adb, a-stwiun.ads, a-tags.adb,
44328         a-tags.ads, a-tasatt.adb, a-taside.adb, a-teioed.adb,
44329         a-textio.adb, a-textio.ads, a-tienau.adb, a-tifiio.adb,
44330         a-tiflau.adb, a-tiflio.adb, a-tigeau.adb, a-tigeau.ads,
44331         a-tiinau.adb, a-timoau.adb, a-tiocst.adb, a-tiocst.ads,
44332         atree.adb, atree.ads, a-witeio.adb, a-witeio.ads,
44333         a-wtcstr.adb, a-wtcstr.ads, a-wtdeio.adb, a-wtedit.adb,
44334         a-wtenau.adb, a-wtflau.adb, a-wtinau.adb, a-wtmoau.adb,
44335         bcheck.adb, binde.adb, bindgen.adb, bindusg.adb,
44336         checks.adb, checks.ads, cio.c, comperr.adb,
44337         comperr.ads, csets.adb, cstand.adb, cstreams.c,
44338         debug_a.adb, debug_a.ads, debug.adb, decl.c,
44339         einfo.adb, einfo.ads, errout.adb, errout.ads,
44340         eval_fat.adb, eval_fat.ads, exp_aggr.adb, expander.adb,
44341         expander.ads, exp_attr.adb, exp_ch11.adb, exp_ch13.adb,
44342         exp_ch2.adb, exp_ch3.adb, exp_ch3.ads, exp_ch4.adb,
44343         exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch7.ads,
44344         exp_ch8.adb, exp_ch9.adb, exp_code.adb, exp_dbug.adb,
44345         exp_dbug.ads, exp_disp.adb, exp_dist.adb, expect.c,
44346         exp_fixd.adb, exp_imgv.adb, exp_intr.adb, exp_pakd.adb,
44347         exp_prag.adb, exp_strm.adb, exp_strm.ads, exp_tss.adb,
44348         exp_tss.ads, exp_util.adb, exp_util.ads, exp_vfpt.adb,
44349         fe.h, fmap.adb, fmap.ads, fname.adb,
44350         fname.ads, fname-uf.adb, fname-uf.ads, freeze.adb,
44351         freeze.ads, frontend.adb, g-awk.adb, g-awk.ads,
44352         g-busora.adb, g-busora.ads, g-busorg.adb, g-busorg.ads,
44353         g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads,
44354         g-cgi.adb, g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads,
44355         g-cgideb.adb, g-cgideb.ads, g-comlin.adb, g-comlin.ads,
44356         g-crc32.adb, g-crc32.ads, g-debpoo.adb, g-debpoo.ads,
44357         g-debuti.adb, g-debuti.ads, g-diopit.adb, g-diopit.ads,
44358         g-dirope.adb, g-dirope.ads, g-dyntab.adb, g-dyntab.ads,
44359         g-except.ads, g-exctra.adb, g-exctra.ads, g-expect.adb,
44360         g-expect.ads, g-hesora.adb, g-hesora.ads, g-hesorg.adb,
44361         g-hesorg.ads, g-htable.adb, g-htable.ads, gigi.h,
44362         g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads,
44363         g-locfil.adb, g-locfil.ads, g-md5.adb, g-md5.ads,
44364         gmem.c, gnat1drv.adb, gnatbind.adb, gnatchop.adb,
44365         gnatcmd.adb, gnatfind.adb, gnatkr.adb, gnatlbr.adb,
44366         gnatlink.adb, gnatls.adb, gnatmake.adb, gnatmem.adb,
44367         gnatname.adb, gnatprep.adb, gnatprep.ads, gnatpsta.adb,
44368         gnatxref.adb, g-os_lib.adb, g-os_lib.ads, g-regexp.adb,
44369         g-regexp.ads, g-regist.adb, g-regist.ads, g-regpat.adb,
44370         g-regpat.ads, g-soccon.ads, g-socket.adb, g-socket.ads,
44371         g-socthi.adb, g-socthi.ads, g-soliop.ads, g-souinf.ads,
44372         g-speche.adb, g-speche.ads, g-spipat.adb, g-spipat.ads,
44373         g-spitbo.adb, g-spitbo.ads, g-sptabo.ads, g-sptain.ads,
44374         g-sptavs.ads, g-table.adb, g-table.ads, g-tasloc.adb,
44375         g-tasloc.ads, g-thread.adb, g-thread.ads, g-traceb.adb,
44376         g-traceb.ads, g-trasym.adb, g-trasym.ads, hostparm.ads,
44377         i-c.ads, i-cobol.adb, i-cpp.adb, i-cstrea.ads,
44378         i-cstrin.adb, i-cstrin.ads, impunit.adb, init.c,
44379         inline.adb, interfac.ads, i-pacdec.ads, itypes.adb,
44380         itypes.ads, i-vxwork.ads, lang.opt, lang-specs.h,
44381         layout.adb, lib.adb, lib.ads, lib-list.adb,
44382         lib-load.adb, lib-load.ads, lib-sort.adb, lib-util.adb,
44383         lib-writ.adb, lib-writ.ads, lib-xref.adb, lib-xref.ads,
44384         link.c, live.adb, make.adb, make.ads,
44385         Makefile.adalib, Makefile.in, Make-lang.in, makeusg.adb,
44386         mdll.adb, mdll-fil.adb, mdll-fil.ads, mdll-utl.adb,
44387         mdll-utl.ads, memroot.adb, memroot.ads, memtrack.adb,
44388         misc.c, mkdir.c, mlib.adb, mlib.ads,
44389         mlib-fil.adb, mlib-fil.ads, mlib-prj.adb, mlib-prj.ads,
44390         mlib-tgt.adb, mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads,
44391         namet.adb, namet.ads, namet.h, nlists.ads,
44392         nlists.h, nmake.adt, opt.adb, opt.ads,
44393         osint.adb, osint.ads, osint-b.adb, osint-c.adb,
44394         par.adb, par-ch10.adb, par-ch11.adb, par-ch2.adb,
44395         par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb,
44396         par-ch9.adb, par-endh.adb, par-labl.adb, par-load.adb,
44397         par-prag.adb, par-sync.adb, par-tchk.adb, par-util.adb,
44398         prj.adb, prj.ads, prj-attr.adb, prj-attr.ads,
44399         prj-com.adb, prj-com.ads, prj-dect.adb, prj-dect.ads,
44400         prj-env.adb, prj-env.ads, prj-ext.adb, prj-ext.ads,
44401         prj-makr.adb, prj-makr.ads, prj-nmsc.adb, prj-nmsc.ads,
44402         prj-pars.adb, prj-pars.ads, prj-part.adb, prj-part.ads,
44403         prj-pp.adb, prj-pp.ads, prj-proc.adb, prj-proc.ads,
44404         prj-strt.adb, prj-strt.ads, prj-tree.adb, prj-tree.ads,
44405         prj-util.adb, prj-util.ads, raise.c, raise.h,
44406         repinfo.adb, repinfo.h, restrict.adb, restrict.ads,
44407         rident.ads, rtsfind.adb, rtsfind.ads, s-addima.ads,
44408         s-arit64.adb, s-assert.adb, s-assert.ads, s-atacco.adb,
44409         s-atacco.ads, s-auxdec.adb, s-auxdec.ads, s-bitops.adb,
44410         scans.ads, scn.adb, scn.ads, s-crc32.adb,
44411         s-crc32.ads, s-direio.adb, sem.adb, sem.ads,
44412         sem_aggr.adb, sem_attr.adb, sem_attr.ads, sem_case.adb,
44413         sem_case.ads, sem_cat.adb, sem_cat.ads, sem_ch10.adb,
44414         sem_ch11.adb, sem_ch12.adb, sem_ch12.ads, sem_ch13.adb,
44415         sem_ch13.ads, sem_ch3.adb, sem_ch3.ads, sem_ch4.adb,
44416         sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
44417         sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads,
44418         sem_ch9.adb, sem_disp.adb, sem_disp.ads, sem_dist.adb,
44419         sem_elab.adb, sem_eval.adb, sem_eval.ads, sem_intr.adb,
44420         sem_maps.adb, sem_mech.adb, sem_prag.adb, sem_prag.ads,
44421         sem_res.adb, sem_res.ads, sem_type.adb, sem_type.ads,
44422         sem_util.adb, sem_util.ads, sem_warn.adb, s-errrep.adb,
44423         s-errrep.ads, s-exctab.adb, s-exctab.ads, s-exnint.ads,
44424         s-exnllf.ads, s-exnlli.ads, s-expint.ads, s-explli.ads,
44425         s-expuns.ads, s-fatflt.ads, s-fatgen.adb, s-fatgen.ads,
44426         s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads, s-fileio.adb,
44427         s-fileio.ads, s-finimp.adb, s-finimp.ads, s-finroo.adb,
44428         s-finroo.ads, sfn_scan.adb, s-gloloc.adb, s-gloloc.ads,
44429         s-imgdec.adb, s-imgenu.adb, s-imgrea.adb, s-imgwch.adb,
44430         sinfo.adb, sinfo.ads, s-inmaop.ads, sinput.adb,
44431         sinput.ads, sinput-d.adb, sinput-l.adb, sinput-l.ads,
44432         sinput-p.adb, sinput-p.ads, s-interr.adb, s-interr.ads,
44433         s-intman.ads, s-maccod.ads, s-mastop.adb, s-mastop.ads,
44434         s-memory.adb, s-memory.ads, snames.adb, snames.ads,
44435         snames.h, s-osprim.ads, s-parame.ads, s-parint.ads,
44436         s-pooloc.adb, s-pooloc.ads, s-poosiz.adb, sprint.adb,
44437         s-proinf.ads, s-scaval.ads, s-secsta.adb, s-secsta.ads,
44438         s-sequio.adb, s-shasto.adb, s-shasto.ads, s-soflin.ads,
44439         s-stache.adb, s-stache.ads, s-stalib.adb, s-stalib.ads,
44440         s-stoele.ads, s-stopoo.ads, s-stratt.adb, s-stratt.ads,
44441         s-strops.adb, s-strops.ads, s-taasde.adb, s-taasde.ads,
44442         s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads,
44443         s-taenca.adb, s-taenca.ads, s-taprob.adb, s-taprob.ads,
44444         s-taprop.ads, s-tarest.adb, s-tarest.ads, s-tasdeb.adb,
44445         s-tasdeb.ads, s-tasinf.adb, s-tasinf.ads, s-tasini.adb,
44446         s-tasini.ads, s-taskin.adb, s-taskin.ads, s-tasque.adb,
44447         s-tasque.ads, s-tasren.adb, s-tasren.ads, s-tasres.ads,
44448         s-tassta.adb, s-tassta.ads, s-tasuti.adb, s-tasuti.ads,
44449         s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
44450         s-tpoben.adb, s-tpoben.ads, s-tpobop.adb, s-tpobop.ads,
44451         s-tposen.adb, s-tposen.ads, s-traceb.adb, s-traceb.ads,
44452         stringt.adb, stringt.ads, stringt.h, style.ads,
44453         stylesw.adb, stylesw.ads, s-unstyp.ads, s-vaflop.ads,
44454         s-valrea.adb, s-valuti.adb, s-vercon.adb, s-vmexta.adb,
44455         s-wchcnv.ads, s-wchcon.ads, s-widcha.adb, switch.adb,
44456         switch.ads, switch-b.adb, switch-c.adb, switch-m.adb,
44457         s-wwdcha.adb, s-wwdwch.adb, sysdep.c, system.ads,
44458         table.adb, table.ads, targparm.adb, targparm.ads,
44459         targtyps.c, tbuild.adb, tbuild.ads, tracebak.c,
44460         trans.c, tree_io.adb, treepr.adb, treeprs.adt,
44461         ttypes.ads, types.ads, types.h, uintp.adb,
44462         uintp.ads, uintp.h, uname.adb, urealp.adb,
44463         urealp.ads, urealp.h, usage.adb, utils2.c,
44464         utils.c, validsw.adb, validsw.ads, widechar.adb,
44465         xeinfo.adb, xnmake.adb, xref_lib.adb, xref_lib.ads,
44466         xr_tabls.adb, xr_tabls.ads, xtreeprs.adb, xsnames.adb,
44467         einfo.h, sinfo.h, treeprs.ads, nmake.ads, nmake.adb,
44468         gnatvsn.ads: Merge with ACT tree.
44469
44470         * gnatvsn.adb: Rewritten in a simpler and more efficient way.
44471
44472 2003-10-20  Mark Mitchell  <mark@codesourcery.com>
44473
44474         * Make-lang.in (gnat_ug_unx.info): Add dependency on stmp-docobjdir.
44475         (gnat_ug_vmx.info): Likewise.
44476         (gnat_ug_vxw.info): Likewise.
44477         (gnat_ug_wnt.info): Likewise.
44478         (gnat_rm.info): Likewise.
44479         (gnat-style.info): Likewise.
44480
44481         * Make-lang.in (ada.install-info): Remove target.
44482         (info): New target.
44483         (install-info): Likewise.
44484         (gnat_ug_unx.info): Simplify rule.
44485         (gnat_ug_vmx.info): Likewise.
44486         (gnat_ug_vxw.info): Likewise.
44487         (gnat_ug_wnt.info): Likewise.
44488         (gnat_rm.info): Likewise.
44489         (gnat-style.info): Likewise.
44490
44491 2003-10-14  Nathanael Nerode  <neroden@gcc.gnu.org>
44492
44493         * Make-lang.in: Replace uses of $(target_alias) with
44494         $(target_noncanonical).
44495         * ada/Makefile.in: Remove unused mention of $(target_alias).
44496
44497 2003-10-06  Mark Mitchell  <mark@codesourcery.com>
44498
44499         * Make-lang.in (ada.info): Replace with ...
44500         (info): ... this.
44501         (ada.dvi): Replace with ...
44502         (dvi): ... this.
44503
44504 2003-09-29  Zack Weinberg  <zack@codesourcery.com>
44505
44506         * trans.c (gigi): Use REAL_ARITHMETIC, not REAL_VALUE_ATOF, to
44507         initialize dconstp5 and dconstmp5.
44508
44509 2003-09-28  Richard Henderson  <rth@redhat.com>
44510
44511         * trans.c (tree_transform): Update call to expand_asm_operands.
44512
44513 2003-09-21  Richard Henderson  <rth@redhat.com>
44514
44515         * trans.c, utils.c: Revert.
44516
44517 2003-09-21  Richard Henderson  <rth@redhat.com>
44518
44519         * trans.c, utils.c: Update for DECL_SOURCE_LOCATION rename and
44520         change to const.
44521
44522 2003-09-04  Michael Matz  <matz@suse.de>
44523
44524         * misc.c: Include "target.h".
44525         * Make-lang.in (misc.o): Add dependency on target.h.
44526
44527 2003-09-03  DJ Delorie  <dj@redhat.com>
44528
44529         * misc.c (default_pass_by_ref): Convert to calls.return_in_memory
44530         hook.
44531
44532 2003-08-30  Zack Weinberg  <zack@codesourcery.com>
44533
44534         * Makefile.in: Update substitutions to match changes to
44535         configure.  Use include directives instead of @-insertions
44536         to read in host and target fragments.  Add a rule to
44537         regenerate ada/Makefile.
44538
44539 2003-07-18  Neil Booth  <neil@daikokuya.co.uk>
44540
44541         * lang-options.h: Remove.
44542         * lang.opt: Add help text.
44543
44544 2003-07-07  Nathan Sidwell  <nathan@codesourcery.com>
44545
44546         * trans.c (build_unit_elab, set_lineno): Adjust emit_line_note
44547         calls.
44548
44549 2003-07-06  Neil Booth  <neil@daikokuya.co.uk>
44550
44551         * misc.c (gnat_handle_option): Don't handle filenames.
44552
44553 2003-07-04  H.J. Lu  <hongjiu.lu@intel.com>
44554
44555         * Make-lang.in: Replace PWD with PWD_COMMAND.
44556         * Makefile.adalib: Likewise.
44557         * Makefile.in: Likewise.
44558
44559 2003-07-04  Matt Kraai  <kraai@alumni.cmu.edu>
44560
44561         * misc.c (gnat_argv): Revert last change.
44562         (gnat_handle_option, gnat_init_options): Copy arguments.
44563
44564 2003-07-03  Neil Booth  <neil@daikokuya.co.uk>
44565
44566         * misc.c (gnat_argv): Make const.
44567
44568 2003-07-02  Neil Booth  <neil@daikokuya.co.uk>
44569
44570         * misc.c (save_argc, save_argv): Keep non-static!
44571
44572 2003-07-02  Neil Booth  <neil@daikokuya.co.uk>
44573
44574         * misc.c (save_argc, save_argv): Make static.
44575         (gnat_init_options): New prototype.
44576         (gnat_init_options): Update.
44577
44578 2003-07-01  Matt Kraai  <kraai@alumni.cmu.edu>
44579
44580         * gnat_ug.texi: Remove unlikely characters from @vars.
44581         * gnat_ug_vms.texi: Regenerate.
44582
44583 2003-06-27  Nathan Sidwell  <nathan@codesourcery.com>
44584
44585         * misc.c (record_code_position): Adjust emit_note call.
44586
44587 2003-06-26  Neil Booth  <neil@daikokuya.co.uk>
44588
44589         * misc.c (gnat_handle_option): Don't check for missing arguments.
44590
44591 2003-06-20  Nathan Sidwell  <nathan@codesourcery.com>
44592
44593         * utils.c (end_subprog_body): Adjust expand_function_end call.
44594
44595 2003-06-16  Matt Kraai  <kraai@alumni.cmu.edu>
44596
44597         * bindgen.adb (Gen_Main_Ada, Gen_Main_C): Do not test
44598         Bind_Main_Program.
44599
44600 2003-06-15  Neil Booth  <neil@daikokuya.co.uk>
44601
44602         * lang.opt: Declare Ada.
44603         * misc.c (gnat_init_options): Update.
44604
44605 2003-06-14  Nathan Sidwell  <nathan@codesourcery.com>
44606
44607         * utils.c (begin_subprog_body): Adjust init_function_start call.
44608
44609 2003-06-14  Neil Booth  <neil@daikokuya.co.uk>
44610
44611         * Make-lang.in: Update to use options.c and options.h.
44612         * misc.c: Include options.h not aoptions.h.
44613         (gnat_handle_option): Abort on unrecognized switch.
44614         (gnat_init_options): Request Ada switches.
44615
44616 2003-06-14  Neil Booth  <neil@daikokuya.co.uk>
44617
44618         * lang.opt: Add -Wall.
44619         * misc.c (gnat_handle_option): Handle it.
44620
44621 2003-06-12  Neil Booth  <neil@daikokuya.co.uk>
44622
44623         * misc.c (gnat_handle_option): Fix warnings.
44624
44625 2003-06-11  Matt Kraai  <kraai@alumni.cmu.edu>
44626
44627         * Make-lang.in (gnatbind): Remove $(LIBIBERTY).
44628
44629 2003-06-11  Neil Booth  <neil@daikokuya.co.uk>
44630
44631         * Make-lang.in: Update to handle command-line options.
44632         * lang.opt: New file.
44633         * misc.c: Include aoptions.h.
44634         (cl_options_count, cl_options): Remove.
44635         (gnat_handle_option): New.
44636         (gnat_decode_option): Remove.
44637         (LANG_HOOKS_DECODE_OPTION): Remove.
44638         (LANG_HOOKS_HANDLE_OPTION): Override.
44639
44640 2003-06-10  Nathanael Nerode  <neroden@gcc.gnu.org>
44641
44642         * init.c, misc.c, trans.c, utils.c: Remove dead code.
44643
44644 2003-06-09  Nathanael Nerode  <neroden@gcc.gnu.org>
44645
44646         * Makefile.in: Replace "host_canonical" with "host" for autoconf
44647         substitution.
44648
44649 2003-06-08  Neil Booth  <neil@daikokuya.co.uk>
44650
44651         * Make-lang.in: Update.
44652         * misc.c: Include opts.h. Define cl_options_count and cl_options.
44653
44654 2003-06-07  Neil Booth  <neil@daikokuya.co.uk>
44655
44656         * misc.c (gnat_init_options): Update.
44657
44658 2003-06-05  Matt Kraai  <kraai@alumni.cmu.edu>
44659
44660         * Make-lang.in (ada/b_gnatb.o-warn): Remove.
44661         * bindgen.adb (Gen_Main_C): Mark ensure_reference with
44662         __attribute__ ((__unused__)).
44663
44664 2003-06-05  Jan Hubicka  <jh@suse.cz>
44665
44666         * Make-lang.in:  Add support for stageprofile and stagefeedback
44667
44668 2003-06-05  Matt Kraai  <kraai@alumni.cmu.edu>
44669
44670         * bindgen.adb (Gen_Adafinal_C, Gen_Adainit_C, Gen_Elab_Defs_C)
44671         (Gen_Main_C, Gen_Output_File_C): Generate ISO C.
44672
44673 2003-06-04  Matt Kraai  <kraai@alumni.cmu.edu>
44674
44675         * gnat_ug.texi (The GNAT Run-Time Library Builder gnatlbr):
44676         Remove non-VMS directive.
44677         (Switches for gnatlbr, Optimization Levels): Remove non-VMS
44678         alternatives.
44679         (Examples of gnatls Usage): Remove VMS alternative.
44680
44681 2003-06-04  Olivier Hainque  <hainque@act-europe.fr>
44682
44683         PR ada/9953
44684         * 5hsystem.ads: Remove pragma Linker_Option for pthreads library,
44685         and turn ZCX_By_Default back to False since the underlying support
44686         is not quite there yet.
44687
44688 2003-06-01  Andreas Jaeger  <aj@suse.de>
44689
44690         * utils.c (finish_record_type): Remove usages of ROUND_TYPE_SIZE
44691         and ROUND_TYPE_SIZE_UNIT.
44692
44693 2003-05-22   Geert Bosch  <bosch@gnat.com>
44694
44695         * gnat_rm.texi : Remove reference to Ada Core Technologies.
44696
44697 2003-05-03  Nathan Sidwell  <nathan@codesourcery.com>
44698
44699         * trans.c (tree_transform): Use location_t and input_location
44700         directly.
44701         (build_unit_elab): Likewise.
44702         * utils.c (create_label_decl): Likewise.
44703
44704 2003-05-01  Nathan Sidwell  <nathan@codesourcery.com>
44705
44706         * trans.c (tree_transform, build_unit_elab,
44707         set_lineno): Rename lineno to input_line.
44708         * utils.c (pushdecl, create_label_decl, begin_subprog_body,
44709         end_subprog_body): Likewise.
44710         * utils2.c (build_call_raise): Likewise.
44711
44712 2003-05-01  Laurent Guerby  <guerby@acm.org>
44713
44714         PR ada/10546
44715         * 5iosinte.ads: Increase pthread_cond_t size to match recent
44716         LinuxThread and NPTL version, merge from ACT.
44717
44718 2003-04-28  Zack Weinberg  <zack@codesourcery.com>
44719
44720         * utils.c (convert): No need to clear TREE_CST_RTL.
44721
44722 2003-04-23   Geert Bosch  <bosch@gnat.com>
44723
44724         * 1aexcept.adb, 1aexcept.ads, 1ic.ads, 1ssecsta.adb,
44725         1ssecsta.ads, 31soccon.ads, 31soliop.ads, 3asoccon.ads,
44726         3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3ssoccon.ads,
44727         3ssoliop.ads, 3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads,
44728         3wsoliop.ads, 41intnam.ads, 42intnam.ads, 4aintnam.ads,
44729         4cintnam.ads, 4dintnam.ads, 4gintnam.ads, 4hexcpol.adb,
44730         4hintnam.ads, 4lintnam.ads, 4mintnam.ads, 4nintnam.ads,
44731         4ointnam.ads, 4onumaux.ads, 4pintnam.ads, 4rintnam.ads,
44732         4sintnam.ads, 4uintnam.ads, 4vcaldel.adb, 4vcalend.adb,
44733         4vcalend.ads, 4vintnam.ads, 4wcalend.adb, 4wexcpol.adb,
44734         4wintnam.ads, 4zintnam.ads, 4znumaux.ads, 4zsytaco.adb,
44735         4zsytaco.ads, 51osinte.adb, 51osinte.ads, 52osinte.adb,
44736         52osinte.ads, 52system.ads, 53osinte.ads, 54osinte.ads,
44737         5amastop.adb, 5aosinte.adb, 5aosinte.ads, 5asystem.ads,
44738         5ataprop.adb, 5atasinf.ads, 5ataspri.ads, 5atpopsp.adb,
44739         5avxwork.ads, 5bosinte.adb, 5bosinte.ads, 5bsystem.ads,
44740         5cosinte.ads, 5dosinte.ads, 5esystem.ads, 5etpopse.adb,
44741         5fintman.adb, 5fosinte.ads, 5fsystem.ads, 5ftaprop.adb,
44742         5ftasinf.ads, 5ginterr.adb, 5gintman.adb, 5gmastop.adb,
44743         5gosinte.ads, 5gproinf.adb, 5gproinf.ads, 5gsystem.ads,
44744         5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads, 5gtpgetc.adb,
44745         5hosinte.adb, 5hosinte.ads, 5hparame.ads, 5hsystem.ads,
44746         5htaprop.adb, 5htaspri.ads, 5htraceb.adb, 5iosinte.adb,
44747         5iosinte.ads, 5itaprop.adb, 5itaspri.ads, 5ksystem.ads,
44748         5kvxwork.ads, 5lintman.adb, 5lml-tgt.adb, 5losinte.ads,
44749         5lsystem.ads, 5mosinte.ads, 5mvxwork.ads, 5ninmaop.adb,
44750         5nintman.adb, 5nosinte.ads, 5ntaprop.adb, 5ntaspri.ads,
44751         5ointerr.adb, 5omastop.adb, 5oosinte.adb, 5oosinte.ads,
44752         5oosprim.adb, 5oparame.adb, 5osystem.ads, 5otaprop.adb,
44753         5otaspri.ads, 5posinte.ads, 5posprim.adb, 5pvxwork.ads,
44754         5qosinte.adb, 5qosinte.ads, 5qstache.adb, 5qtaprop.adb,
44755         5qtaspri.ads, 5rosinte.adb, 5rosinte.ads, 5rparame.adb,
44756         5sintman.adb, 5sosinte.adb, 5sosinte.ads, 5sparame.adb,
44757         5ssystem.ads, 5staprop.adb, 5stasinf.adb, 5stasinf.ads,
44758         5staspri.ads, 5stpopse.adb, 5svxwork.ads, 5tosinte.ads,
44759         5uintman.adb, 5uosinte.ads, 5vasthan.adb, 5vinmaop.adb,
44760         5vinterr.adb, 5vintman.adb, 5vintman.ads, 5vmastop.adb,
44761         5vosinte.adb, 5vosinte.ads, 5vosprim.adb, 5vosprim.ads,
44762         5vparame.ads, 5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads,
44763         5vtpopde.adb, 5vtpopde.ads, 5vvaflop.adb, 5wgloloc.adb,
44764         5wintman.adb, 5wmemory.adb, 5wosinte.ads, 5wosprim.adb,
44765         5wsystem.ads, 5wtaprop.adb, 5wtaspri.ads, 5ysystem.ads,
44766         5zinterr.adb, 5zintman.adb, 5zosinte.adb, 5zosinte.ads,
44767         5zosprim.adb, 5zsystem.ads, 5ztaprop.adb, 6vcpp.adb,
44768         6vcstrea.adb, 6vinterf.ads, 7sinmaop.adb, 7sintman.adb,
44769         7sosinte.adb, 7sosprim.adb, 7staprop.adb, 7staspri.ads,
44770         7stpopsp.adb, 7straceb.adb, 86numaux.adb, 86numaux.ads,
44771         9drpc.adb, a-astaco.adb, a-astaco.ads, a-caldel.adb,
44772         a-caldel.ads, a-calend.adb, a-calend.ads, a-chahan.adb,
44773         a-chahan.ads, a-charac.ads, a-chlat1.ads, a-chlat9.ads,
44774         a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
44775         a-comlin.adb, a-comlin.ads, a-cwila1.ads, a-cwila9.ads,
44776         a-decima.adb, a-decima.ads, a-diocst.adb, a-diocst.ads,
44777         a-direio.adb, a-direio.ads, a-dynpri.adb, a-dynpri.ads,
44778         a-einuoc.adb, a-einuoc.ads, a-except.adb, a-except.ads,
44779         a-excpol.adb, a-exctra.adb, a-exctra.ads, a-filico.adb,
44780         a-filico.ads, a-finali.adb, a-finali.ads, a-flteio.ads,
44781         a-fwteio.ads, a-inteio.ads, a-interr.adb, a-interr.ads,
44782         a-intnam.ads, a-intsig.adb, a-intsig.ads, a-ioexce.ads,
44783         a-iwteio.ads, a-lfteio.ads, a-lfwtio.ads, a-liteio.ads,
44784         a-liwtio.ads, a-llftio.ads, a-llfwti.ads, a-llitio.ads,
44785         a-lliwti.ads, a-ncelfu.ads, a-ngcefu.adb, a-ngcefu.ads,
44786         a-ngcoty.adb, a-ngcoty.ads, a-ngelfu.adb, a-ngelfu.ads,
44787         a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads,
44788         a-nllcty.ads, a-nllefu.ads, a-nscefu.ads, a-nscoty.ads,
44789         a-nselfu.ads, a-nucoty.ads, a-nudira.adb, a-nudira.ads,
44790         a-nuelfu.ads, a-nuflra.adb, a-nuflra.ads, a-numaux.ads,
44791         a-numeri.ads, a-reatim.adb, a-reatim.ads, a-retide.adb,
44792         a-retide.ads, a-sequio.adb, a-sequio.ads, a-sfteio.ads,
44793         a-sfwtio.ads, a-siocst.adb, a-siocst.ads, a-siteio.ads,
44794         a-siwtio.ads, a-ssicst.adb, a-ssicst.ads, a-ssitio.ads,
44795         a-ssiwti.ads, a-stmaco.ads, a-storio.adb, a-storio.ads,
44796         a-strbou.adb, a-strbou.ads, a-stream.ads, a-strfix.adb,
44797         a-strfix.ads, a-string.ads, a-strmap.adb, a-strmap.ads,
44798         a-strsea.adb, a-strsea.ads, a-strunb.adb, a-strunb.ads,
44799         a-ststio.adb, a-ststio.ads, a-stunau.adb, a-stunau.ads,
44800         a-stwibo.adb, a-stwibo.ads, a-stwifi.adb, a-stwifi.ads,
44801         a-stwima.adb, a-stwima.ads, a-stwise.adb, a-stwise.ads,
44802         a-stwiun.adb, a-stwiun.ads, a-suteio.adb, a-suteio.ads,
44803         a-swmwco.ads, a-swuwti.adb, a-swuwti.ads, a-sytaco.adb,
44804         a-sytaco.ads, a-tags.adb, a-tags.ads, a-tasatt.adb,
44805         a-tasatt.ads, a-taside.adb, a-taside.ads, a-teioed.adb,
44806         a-teioed.ads, a-textio.adb, a-textio.ads, a-ticoau.adb,
44807         a-ticoau.ads, a-ticoio.adb, a-ticoio.ads, a-tideau.adb,
44808         a-tideau.ads, a-tideio.adb, a-tideio.ads, a-tienau.adb,
44809         a-tienau.ads, a-tienio.adb, a-tienio.ads, a-tifiio.adb,
44810         a-tifiio.ads, a-tiflau.adb, a-tiflau.ads, a-tiflio.adb,
44811         a-tiflio.ads, a-tigeau.adb, a-tigeau.ads, a-tiinau.adb,
44812         a-tiinau.ads, a-tiinio.adb, a-tiinio.ads, a-timoau.adb,
44813         a-timoau.ads, a-timoio.adb, a-timoio.ads, a-tiocst.adb,
44814         a-tiocst.ads, a-titest.adb, a-titest.ads, a-unccon.ads,
44815         a-uncdea.ads, a-witeio.adb, a-witeio.ads, a-wtcoau.adb,
44816         a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads, a-wtcstr.adb,
44817         a-wtcstr.ads, a-wtdeau.adb, a-wtdeau.ads, a-wtdeio.adb,
44818         a-wtdeio.ads, a-wtedit.adb, a-wtedit.ads, a-wtenau.adb,
44819         a-wtenau.ads, a-wtenio.adb, a-wtenio.ads, a-wtfiio.adb,
44820         a-wtfiio.ads, a-wtflau.adb, a-wtflau.ads, a-wtflio.adb,
44821         a-wtflio.ads, a-wtgeau.adb, a-wtgeau.ads, a-wtinau.adb,
44822         a-wtinau.ads, a-wtinio.adb, a-wtinio.ads, a-wtmoau.adb,
44823         a-wtmoau.ads, a-wtmoio.adb, a-wtmoio.ads, a-wttest.adb,
44824         a-wttest.ads, ada-tree.h, ada.ads, ada.h,
44825         adadecode.c, adadecode.h, ali-util.adb, ali-util.ads,
44826         ali.adb, ali.ads, alloc.ads, argv.c,
44827         atree.adb, atree.ads, atree.h, aux-io.c,
44828         back_end.adb, back_end.ads, bcheck.adb, bcheck.ads,
44829         binde.adb, binde.ads, binderr.adb, binderr.ads,
44830         bindgen.adb, bindgen.ads, bindusg.adb, bindusg.ads,
44831         butil.adb, butil.ads, cal.c, calendar.ads,
44832         casing.adb, casing.ads, ceinfo.adb, checks.adb,
44833         checks.ads, cio.c, comperr.adb, comperr.ads,
44834         config-lang.in, csets.adb, csets.ads, csinfo.adb,
44835         cstand.adb, cstand.ads, cuintp.c, debug.adb,
44836         debug.ads, debug_a.adb, debug_a.ads, dec-io.adb,
44837         dec-io.ads, dec.ads, deftarg.c, directio.ads,
44838         einfo.adb, einfo.ads, elists.adb, elists.ads,
44839         elists.h, errno.c, errout.adb, errout.ads,
44840         eval_fat.adb, eval_fat.ads, exit.c, exp_aggr.adb,
44841         exp_aggr.ads, exp_attr.adb, exp_attr.ads, exp_ch10.ads,
44842         exp_ch11.adb, exp_ch11.ads, exp_ch12.adb, exp_ch12.ads,
44843         exp_ch13.adb, exp_ch13.ads, exp_ch2.adb, exp_ch2.ads,
44844         exp_ch3.adb, exp_ch3.ads, exp_ch4.adb, exp_ch4.ads,
44845         exp_ch5.adb, exp_ch5.ads, exp_ch6.adb, exp_ch6.ads,
44846         exp_ch7.adb, exp_ch7.ads, exp_ch8.adb, exp_ch8.ads,
44847         exp_ch9.adb, exp_ch9.ads, exp_code.adb, exp_code.ads,
44848         exp_dbug.adb, exp_dbug.ads, exp_disp.adb, exp_disp.ads,
44849         exp_dist.adb, exp_dist.ads, exp_fixd.adb, exp_fixd.ads,
44850         exp_imgv.adb, exp_imgv.ads, exp_intr.adb, exp_intr.ads,
44851         exp_pakd.adb, exp_pakd.ads, exp_prag.adb, exp_prag.ads,
44852         exp_smem.adb, exp_smem.ads, exp_strm.adb, exp_strm.ads,
44853         exp_tss.adb, exp_tss.ads, exp_util.adb, exp_util.ads,
44854         exp_vfpt.adb, exp_vfpt.ads, expander.adb, expander.ads,
44855         fmap.adb, fmap.ads, fname-sf.adb, fname-sf.ads,
44856         fname-uf.adb, fname-uf.ads, fname.adb, fname.ads,
44857         freeze.adb, freeze.ads, frontend.adb, frontend.ads,
44858         g-awk.adb, g-awk.ads, g-busora.adb, g-busora.ads,
44859         g-busorg.adb, g-busorg.ads, g-calend.adb, g-calend.ads,
44860         g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads,
44861         g-cgi.adb, g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads,
44862         g-cgideb.adb, g-cgideb.ads, g-comlin.adb, g-comlin.ads,
44863         g-crc32.adb, g-crc32.ads, g-curexc.ads, g-debpoo.adb,
44864         g-debpoo.ads, g-debuti.adb, g-debuti.ads, g-diopit.adb,
44865         g-diopit.ads, g-dirope.adb, g-dirope.ads, g-dyntab.adb,
44866         g-dyntab.ads, g-enblsp.adb, g-except.ads, g-exctra.adb,
44867         g-exctra.ads, g-expect.adb, g-expect.ads, g-flocon.ads,
44868         g-hesora.adb, g-hesora.ads, g-hesorg.adb, g-hesorg.ads,
44869         g-htable.adb, g-htable.ads, g-io.adb, g-io.ads,
44870         g-io_aux.adb, g-io_aux.ads, g-locfil.ads, g-md5.adb,
44871         g-md5.ads, g-moreex.adb, g-moreex.ads, g-os_lib.adb,
44872         g-os_lib.ads, g-regexp.adb, g-regexp.ads, g-regist.ads,
44873         g-regpat.adb, g-regpat.ads, g-soccon.ads, g-socket.adb,
44874         g-socket.ads, g-socthi.adb, g-socthi.ads, g-soliop.ads,
44875         g-souinf.ads, g-speche.adb, g-speche.ads, g-spipat.adb,
44876         g-spipat.ads, g-spitbo.adb, g-spitbo.ads, g-sptabo.ads,
44877         g-sptain.ads, g-sptavs.ads, g-table.adb, g-table.ads,
44878         g-tasloc.adb, g-tasloc.ads, g-thread.adb, g-thread.ads,
44879         g-traceb.adb, g-traceb.ads, g-trasym.adb, g-trasym.ads,
44880         get_targ.adb, get_targ.ads, gnat-style.texi, gnat.ads,
44881         gnat1drv.adb, gnat1drv.ads, gnatbind.adb, gnatbind.ads,
44882         gnatbl.c, gnatchop.adb, gnatcmd.adb, gnatcmd.ads,
44883         gnatdll.adb, gnatfind.adb, gnatkr.adb, gnatkr.ads,
44884         gnatlbr.adb, gnatlink.adb, gnatlink.ads, gnatls.adb,
44885         gnatls.ads, gnatmake.adb, gnatmake.ads, gnatmem.adb,
44886         gnatname.adb, gnatname.ads, gnatprep.adb, gnatprep.ads,
44887         gnatpsta.adb, gnatvsn.adb, gnatvsn.ads, gnatxref.adb,
44888         hlo.adb, hlo.ads, hostparm.ads, i-c.adb,
44889         i-c.ads, i-cexten.ads, i-cobol.adb, i-cobol.ads,
44890         i-cpoint.adb, i-cpoint.ads, i-cpp.adb, i-cpp.ads,
44891         i-cstrea.adb, i-cstrea.ads, i-cstrin.adb, i-cstrin.ads,
44892         i-fortra.adb, i-fortra.ads, i-os2err.ads, i-os2lib.adb,
44893         i-os2lib.ads, i-os2syn.ads, i-os2thr.ads, i-pacdec.adb,
44894         i-pacdec.ads, i-vxwork.ads, impunit.adb, impunit.ads,
44895         inline.adb, inline.ads, interfac.ads, ioexcept.ads,
44896         itypes.adb, itypes.ads, krunch.adb, krunch.ads,
44897         layout.adb, layout.ads, lib-list.adb, lib-load.adb,
44898         lib-load.ads, lib-sort.adb, lib-util.adb, lib-util.ads,
44899         lib-writ.adb, lib-writ.ads, lib-xref.adb, lib-xref.ads,
44900         lib.adb, lib.ads, live.adb, live.ads,
44901         machcode.ads, make.adb, make.ads, makeusg.adb,
44902         makeusg.ads, math_lib.adb, mdll-fil.adb, mdll-fil.ads,
44903         mdll-utl.adb, mdll-utl.ads, mdll.adb, mdll.ads,
44904         memroot.adb, memroot.ads, memtrack.adb, mlib-fil.adb,
44905         mlib-fil.ads, mlib-prj.adb, mlib-prj.ads, mlib-tgt.adb,
44906         mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads, mlib.adb,
44907         mlib.ads, namet.adb, namet.ads, nlists.adb,
44908         nlists.ads, opt.adb, opt.ads, osint-b.adb,
44909         osint-b.ads, osint-c.adb, osint-c.ads, osint-l.adb,
44910         osint-l.ads, osint-m.adb, osint-m.ads, osint.adb,
44911         osint.ads, output.adb, output.ads, par-ch10.adb,
44912         par-ch11.adb, par-ch12.adb, par-ch13.adb, par-ch2.adb,
44913         par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb,
44914         par-ch7.adb, par-ch8.adb, par-ch9.adb, par-endh.adb,
44915         par-labl.adb, par-load.adb, par-prag.adb, par-sync.adb,
44916         par-tchk.adb, par-util.adb, par.adb, par.ads,
44917         prj-attr.adb, prj-attr.ads, prj-com.adb, prj-com.ads,
44918         prj-dect.adb, prj-dect.ads, prj-env.adb, prj-env.ads,
44919         prj-ext.adb, prj-ext.ads, prj-makr.adb, prj-makr.ads,
44920         prj-nmsc.adb, prj-nmsc.ads, prj-pars.adb, prj-pars.ads,
44921         prj-part.adb, prj-part.ads, prj-pp.adb, prj-pp.ads,
44922         prj-proc.adb, prj-proc.ads, prj-strt.adb, prj-strt.ads,
44923         prj-tree.adb, prj-tree.ads, prj-util.adb, prj-util.ads,
44924         prj.adb, prj.ads, repinfo.adb, repinfo.ads,
44925         restrict.adb, restrict.ads, rident.ads, rtsfind.adb,
44926         rtsfind.ads, s-addima.adb, s-addima.ads, s-arit64.adb,
44927         s-arit64.ads, s-assert.adb, s-assert.ads, s-asthan.adb,
44928         s-asthan.ads, s-atacco.adb, s-atacco.ads, s-auxdec.adb,
44929         s-auxdec.ads, s-bitops.adb, s-bitops.ads, s-chepoo.ads,
44930         s-crc32.adb, s-crc32.ads, s-direio.adb, s-direio.ads,
44931         s-errrep.adb, s-errrep.ads, s-except.ads, s-exctab.adb,
44932         s-exctab.ads, s-exnflt.ads, s-exngen.adb, s-exngen.ads,
44933         s-exnint.ads, s-exnlfl.ads, s-exnlin.ads, s-exnllf.ads,
44934         s-exnlli.ads, s-exnsfl.ads, s-exnsin.ads, s-exnssi.ads,
44935         s-expflt.ads, s-expgen.adb, s-expgen.ads, s-expint.ads,
44936         s-explfl.ads, s-explin.ads, s-expllf.ads, s-explli.ads,
44937         s-expllu.adb, s-expllu.ads, s-expmod.adb, s-expmod.ads,
44938         s-expsfl.ads, s-expsin.ads, s-expssi.ads, s-expuns.adb,
44939         s-expuns.ads, s-fatflt.ads, s-fatgen.adb, s-fatgen.ads,
44940         s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads, s-ficobl.ads,
44941         s-fileio.adb, s-fileio.ads, s-finimp.adb, s-finimp.ads,
44942         s-finroo.adb, s-finroo.ads, s-fore.adb, s-fore.ads,
44943         s-gloloc.adb, s-gloloc.ads, s-imgbiu.adb, s-imgbiu.ads,
44944         s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads,
44945         s-imgdec.adb, s-imgdec.ads, s-imgenu.adb, s-imgenu.ads,
44946         s-imgint.adb, s-imgint.ads, s-imgllb.adb, s-imgllb.ads,
44947         s-imglld.adb, s-imglld.ads, s-imglli.adb, s-imglli.ads,
44948         s-imgllu.adb, s-imgllu.ads, s-imgllw.adb, s-imgllw.ads,
44949         s-imgrea.adb, s-imgrea.ads, s-imguns.adb, s-imguns.ads,
44950         s-imgwch.adb, s-imgwch.ads, s-imgwiu.adb, s-imgwiu.ads,
44951         s-inmaop.ads, s-interr.adb, s-interr.ads, s-intman.ads,
44952         s-io.adb, s-io.ads, s-maccod.ads, s-mantis.adb,
44953         s-mantis.ads, s-mastop.adb, s-mastop.ads, s-memory.adb,
44954         s-memory.ads, s-osprim.ads, s-pack03.adb, s-pack03.ads,
44955         s-pack05.adb, s-pack05.ads, s-pack06.adb, s-pack06.ads,
44956         s-pack07.adb, s-pack07.ads, s-pack09.adb, s-pack09.ads,
44957         s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads,
44958         s-pack12.adb, s-pack12.ads, s-pack13.adb, s-pack13.ads,
44959         s-pack14.adb, s-pack14.ads, s-pack15.adb, s-pack15.ads,
44960         s-pack17.adb, s-pack17.ads, s-pack18.adb, s-pack18.ads,
44961         s-pack19.adb, s-pack19.ads, s-pack20.adb, s-pack20.ads,
44962         s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads,
44963         s-pack23.adb, s-pack23.ads, s-pack24.adb, s-pack24.ads,
44964         s-pack25.adb, s-pack25.ads, s-pack26.adb, s-pack26.ads,
44965         s-pack27.adb, s-pack27.ads, s-pack28.adb, s-pack28.ads,
44966         s-pack29.adb, s-pack29.ads, s-pack30.adb, s-pack30.ads,
44967         s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads,
44968         s-pack34.adb, s-pack34.ads, s-pack35.adb, s-pack35.ads,
44969         s-pack36.adb, s-pack36.ads, s-pack37.adb, s-pack37.ads,
44970         s-pack38.adb, s-pack38.ads, s-pack39.adb, s-pack39.ads,
44971         s-pack40.adb, s-pack40.ads, s-pack41.adb, s-pack41.ads,
44972         s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads,
44973         s-pack44.adb, s-pack44.ads, s-pack45.adb, s-pack45.ads,
44974         s-pack46.adb, s-pack46.ads, s-pack47.adb, s-pack47.ads,
44975         s-pack48.adb, s-pack48.ads, s-pack49.adb, s-pack49.ads,
44976         s-pack50.adb, s-pack50.ads, s-pack51.adb, s-pack51.ads,
44977         s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads,
44978         s-pack54.adb, s-pack54.ads, s-pack55.adb, s-pack55.ads,
44979         s-pack56.adb, s-pack56.ads, s-pack57.adb, s-pack57.ads,
44980         s-pack58.adb, s-pack58.ads, s-pack59.adb, s-pack59.ads,
44981         s-pack60.adb, s-pack60.ads, s-pack61.adb, s-pack61.ads,
44982         s-pack62.adb, s-pack62.ads, s-pack63.adb, s-pack63.ads,
44983         s-parame.adb, s-parame.ads, s-parint.adb, s-parint.ads,
44984         s-pooglo.adb, s-pooglo.ads, s-pooloc.adb, s-pooloc.ads,
44985         s-poosiz.adb, s-poosiz.ads, s-powtab.ads, s-proinf.adb,
44986         s-proinf.ads, s-rpc.adb, s-rpc.ads, s-scaval.ads,
44987         s-secsta.adb, s-secsta.ads, s-sequio.adb, s-sequio.ads,
44988         s-shasto.adb, s-shasto.ads, s-soflin.adb, s-soflin.ads,
44989         s-sopco3.adb, s-sopco3.ads, s-sopco4.adb, s-sopco4.ads,
44990         s-sopco5.adb, s-sopco5.ads, s-stache.adb, s-stache.ads,
44991         s-stalib.adb, s-stalib.ads, s-stoele.adb, s-stoele.ads,
44992         s-stopoo.ads, s-stratt.adb, s-stratt.ads, s-strops.adb,
44993         s-strops.ads, s-taasde.adb, s-taasde.ads, s-tadeca.adb,
44994         s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-taenca.adb,
44995         s-taenca.ads, s-taprob.adb, s-taprob.ads, s-taprop.ads,
44996         s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads,
44997         s-tasinf.adb, s-tasinf.ads, s-tasini.adb, s-tasini.ads,
44998         s-taskin.adb, s-taskin.ads, s-tasque.adb, s-tasque.ads,
44999         s-tasren.adb, s-tasren.ads, s-tasres.ads, s-tassta.adb,
45000         s-tassta.ads, s-tasuti.adb, s-tasuti.ads, s-tataat.adb,
45001         s-tataat.ads, s-tpinop.adb, s-tpinop.ads, s-tpoben.adb,
45002         s-tpoben.ads, s-tpobop.adb, s-tpobop.ads, s-tposen.adb,
45003         s-tposen.ads, s-traceb.adb, s-traceb.ads, s-traces.adb,
45004         s-traces.ads, s-tratas.adb, s-tratas.ads, s-unstyp.ads,
45005         s-vaflop.adb, s-vaflop.ads, s-valboo.adb, s-valboo.ads,
45006         s-valcha.adb, s-valcha.ads, s-valdec.adb, s-valdec.ads,
45007         s-valenu.adb, s-valenu.ads, s-valint.adb, s-valint.ads,
45008         s-vallld.adb, s-vallld.ads, s-vallli.adb, s-vallli.ads,
45009         s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads,
45010         s-valuns.adb, s-valuns.ads, s-valuti.adb, s-valuti.ads,
45011         s-valwch.adb, s-valwch.ads, s-vercon.adb, s-vercon.ads,
45012         s-vmexta.adb, s-vmexta.ads, s-wchcnv.adb, s-wchcnv.ads,
45013         s-wchcon.ads, s-wchjis.adb, s-wchjis.ads, s-wchstw.adb,
45014         s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, s-widboo.adb,
45015         s-widboo.ads, s-widcha.adb, s-widcha.ads, s-widenu.adb,
45016         s-widenu.ads, s-widlli.adb, s-widlli.ads, s-widllu.adb,
45017         s-widllu.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb,
45018         s-wwdcha.ads, s-wwdenu.adb, s-wwdenu.ads, s-wwdwch.adb,
45019         s-wwdwch.ads, scans.adb, scans.ads, scn-nlit.adb,
45020         scn-slit.adb, scn.adb, scn.ads, sdefault.ads,
45021         sem.adb, sem.ads, sem_aggr.adb, sem_aggr.ads,
45022         sem_attr.adb, sem_attr.ads, sem_case.adb, sem_case.ads,
45023         sem_cat.adb, sem_cat.ads, sem_ch10.adb, sem_ch10.ads,
45024         sem_ch11.adb, sem_ch11.ads, sem_ch12.adb, sem_ch12.ads,
45025         sem_ch13.adb, sem_ch13.ads, sem_ch2.adb, sem_ch2.ads,
45026         sem_ch3.adb, sem_ch3.ads, sem_ch4.adb, sem_ch4.ads,
45027         sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
45028         sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads,
45029         sem_ch9.adb, sem_ch9.ads, sem_disp.adb, sem_disp.ads,
45030         sem_dist.adb, sem_dist.ads, sem_elab.adb, sem_elab.ads,
45031         sem_elim.adb, sem_elim.ads, sem_eval.adb, sem_eval.ads,
45032         sem_intr.adb, sem_intr.ads, sem_maps.adb, sem_maps.ads,
45033         sem_mech.adb, sem_mech.ads, sem_prag.adb, sem_prag.ads,
45034         sem_res.adb, sem_res.ads, sem_smem.adb, sem_smem.ads,
45035         sem_type.adb, sem_type.ads, sem_util.adb, sem_util.ads,
45036         sem_vfpt.adb, sem_vfpt.ads, sem_warn.adb, sem_warn.ads,
45037         sequenio.ads, sfn_scan.adb, sfn_scan.ads, sinfo-cn.adb,
45038         sinfo-cn.ads, sinfo.adb, sinfo.ads, sinput-d.adb,
45039         sinput-d.ads, sinput-l.adb, sinput-l.ads, sinput-p.adb,
45040         sinput-p.ads, sinput.adb, sinput.ads, snames.adb,
45041         snames.ads, sprint.adb, sprint.ads, stand.adb,
45042         stand.ads, stringt.adb, stringt.ads, style.adb,
45043         style.ads, stylesw.adb, stylesw.ads, switch-b.adb,
45044         switch-b.ads, switch-c.adb, switch-c.ads, switch-m.adb,
45045         switch-m.ads, switch.adb, switch.ads, system.ads,
45046         table.adb, table.ads, targparm.adb, targparm.ads,
45047         tbuild.adb, tbuild.ads, text_io.ads, trans.c,
45048         tree_gen.adb, tree_gen.ads, tree_in.adb, tree_in.ads,
45049         tree_io.adb, tree_io.ads, treepr.adb, treepr.ads,
45050         ttypef.ads, ttypes.ads, types.adb, types.ads,
45051         uintp.adb, uintp.ads, uname.adb, uname.ads,
45052         unchconv.ads, unchdeal.ads, urealp.adb, urealp.ads,
45053         usage.adb, usage.ads, validsw.adb, validsw.ads,
45054         widechar.adb, widechar.ads, xeinfo.adb, xnmake.adb,
45055         xr_tabls.adb, xr_tabls.ads, xref_lib.adb, xref_lib.ads,
45056         xsinfo.adb, xsnames.adb, xtreeprs.adb : Merge header,
45057         formatting and other trivial changes from ACT.
45058
45059 2003-04-12  Zack Weinberg  <zack@codesourcery.com>
45060
45061         * gigi.h, utils2.c (build_constructor):
45062         Rename gnat_build_constructor. Use build_constructor.
45063         * decl.c (gnat_to_gnu_entity)
45064         * trans.c (tree_transform, pos_to_constructor, extract_values)
45065         * ada/utils.c (build_template, convert_to_fat_pointer, convert)
45066         (unchecked_convert)
45067         * ada/utils2.c (build_binary_op, build_call_raise, build_allocator)
45068         (fill_vms_descriptor):
45069         Update to match.
45070
45071 2003-04-06  Zack Weinberg  <zack@codesourcery.com>
45072
45073         * ada-tree.def: Make fourth element for GNAT_LOOP_ID zero.
45074         * misc.c (gnat_tree_size): New function.
45075         (LANG_HOOKS_TREE_SIZE): Override.
45076
45077 2003-04-03  Jason Merrill  <jason@redhat.com>
45078
45079         * misc.c (gnat_adjust_rli): #if 0.
45080
45081 2003-03-31   Geert Bosch  <bosch@gnat.com>
45082
45083         PR ada/10020
45084         * link.c : Fix misspelled "const" keyword
45085
45086 2003-03-23  Mark Mitchell  <mark@codesourcery.com>
45087
45088         PR c++/7086
45089         * utils2.c: Adjust calls to put_var_into_stack.
45090
45091 2003-03-12  Nathanael Nerode  <neroden@gcc.gnu.org>
45092
45093         * Make-lang.in, Makefile.in, config-lang.in: GCC, not GNU CC.
45094
45095 2003-03-08  Neil Booth  <neil@daikokuya.co.uk>
45096
45097         * misc.c (gnat_init): Update for new prototype.
45098
45099 2003-03-05  Olivier Hainque  <hainque@gnat.com>
45100
45101         ada/9961
45102         * raise.c (__gnat_Unwind_RaiseException): Add prototype to avoid
45103         warning, and fix return type for the IN_RTS && !SJLJ case.
45104
45105 2003-03-04  Tom Tromey  <tromey@redhat.com>
45106
45107         * Make-lang.in (ada.tags): New target.
45108
45109 2003-03-04  Olivier Hainque  <hainque@act-europe.fr>
45110
45111         ada/9911
45112         * a-except.adb (Unwind_RaiseException): Import a GNAT specific
45113         wrapper, which name remains constant whatever underlying GCC
45114         scheme.
45115
45116         * raise.c (__gnat_Unwind_RaiseException): New wrappers, providing
45117         the stable interface needed for a-except.
45118
45119 2003-03-02  Andreas Jaeger  <aj@suse.de>
45120
45121         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
45122         gnat_ug_wnt.texi: Regenerate.
45123
45124 2003-03-02  Laurent Guerby  <guerby@acm.org>
45125
45126         * Makefile.in (install-gnatlib): Match previous change there
45127         so it works.
45128
45129 2003-02-28  Andreas Schwab  <schwab@suse.de>
45130
45131         * Make-lang.in (install-gnatlib): Change to ada directory before
45132         running make instead of using ada/Makefile directly.
45133
45134 2003-02-18  Ben Elliston  <bje@redhat.com>
45135
45136         Part of PR ada/9406
45137         * gnat_ug.texi (Binder output file): Grammar fix.
45138
45139 2003-02-18  Ben Elliston  <bje@redhat.com>
45140
45141         PR other/7350
45142         * 5qtaprop.adb (Sleep): Fix typo in comment.
45143
45144 2003-02-04  Joseph S. Myers  <jsm@polyomino.org.uk>
45145
45146         * gnat_rm.texi, gnat_ug.texi: Update to GFDL 1.2.
45147         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
45148         gnat_ug_wnt.texi: Regenerate.
45149
45150 2003-02-03  Christian Cornelssen  <ccorn@cs.tu-berlin.de>
45151
45152         * Make-lang.in (ada.install-info): Let $(DESTDIR)$(infodir)
45153         be created if necessary.
45154         (ada.install-common): Let $(DESTDIR)$(bindir) be created
45155         if necessary.  Remove erroneous and redundant gnatchop
45156         installation commands.  Test for gnatdll before attempting
45157         to install it.
45158         (ada.uninstall): Also uninstall gnatfind, gnatxref, gnatlbr,
45159         and gnatdll from all plausible locations.
45160
45161 2003-02-01  Richard Sandiford  <rsandifo@redhat.com>
45162
45163         * utils2.c (build_unary_op): Don't check flag_volatile.
45164         * gnat_ug.texi: Remove -fvolatile from example.
45165         * gnat_ug_vxw.texi: Likewise.
45166
45167 2003-01-29  Laurent Guerby  <guerby@acm.org>
45168
45169         PR ada/8344
45170         * final.c: rename to adafinal.c to avoid file name conflicts with gcc file.
45171         * Makefile.in: match previous change.
45172         * Make-lang.in: match previous change.
45173
45174 2003-01-29  Joel Sherrill  <joel@OARcorp.com>
45175
45176         * 5rosinte.ads: Add SIGXCPU.
45177         * 5rtpopsp.adb: New file.
45178         * Make-lang.in: Do not build gnatpsta and gnatpsys when cross.
45179         * Makefile.in: Recognize more RTEMS targets and add the RTEMS
45180         specific file 5rtpopsp.adb.
45181         * adaint.h: Add include of <stdio.h> when target is RTEMS.  This
45182         is likely needed for all newlib targets.
45183         * init.c: Add RTEMS specific version of __gnat_initialize().
45184
45185 2003-01-28  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
45186
45187         * adaint.c, adaint.h, gmem.c, init.c: Update copyright year.
45188
45189 2003-01-27  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
45190
45191         * init.c (__gnat_error_handler): Make msg const.
45192
45193         * gmem.c (convert_addresses): Move declaration ...
45194         * adaint.h: ... here.
45195         * adaint.c (convert_addresses): Adapt addrs type to match
45196         prototype.
45197
45198         * adaint.c (__gnat_try_lock): Cast pid_t to long, adapt format.
45199
45200 2003-01-24  Andreas Schwab  <schwab@suse.de>
45201
45202         * ada-tree.h (SET_TYPE_DIGITS_VALUE): Add intermediate cast to
45203         size_t to avoid warning.
45204
45205 2003-01-21  Zack Weinberg  <zack@codesourcery.com>
45206
45207         * Make-lang.in: Disable -Werror for tracebak.c and b_gnatb.c.
45208
45209 2003-01-09  Geoffrey Keating  <geoffk@apple.com>
45210
45211         * gnat_rm.texi: Remove RCS version number.
45212
45213         * ada-tree.h (union lang_tree_node): Add chain_next option.
45214
45215 2003-01-09  Christian Cornelssen  <ccorn@cs.tu-berlin.de>
45216
45217         * Make-lang.in (ada.install-info, ada.install-common,
45218         ada.uninstall): Prepend $(DESTDIR) to the destination
45219         directory in all (un)installation commands.
45220         * Makefile.in (install-gnatlib, install-rts): Ditto.
45221
45222 2002-12-28  Joseph S. Myers  <jsm@polyomino.org.uk>
45223
45224         * gnat_rm.texi, gnat_ug.texi: Use @copying.
45225         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
45226         gnat_ug_wnt.texi: Regenerate.
45227
45228 2002-12-23  Joseph S. Myers  <jsm@polyomino.org.uk>
45229
45230         * gnat_rm.texi: Include gcc-common.texi.  Use GCC version number
45231         only.
45232         * Make-lang.in ($(srcdir)/ada/gnat_ug_unx.info,
45233         $(srcdir)/ada/gnat_ug_vms.info, $(srcdir)/ada/gnat_ug_vxw.info,
45234         $(srcdir)/ada/gnat_ug_wnt.info, $(srcdir)/ada/gnat_rm.info,
45235         ada/gnat_ug_unx.dvi, ada/gnat_ug_vms.dvi, ada/gnat_ug_vxw.dvi,
45236         ada/gnat_ug_wnt.dvi, ada/gnat_rm.dvi): Depend on
45237         $(srcdir)/doc/include/gcc-common.texi.
45238
45239 2002-12-15   Geert Bosch  <bosch@gnat.com>
45240
45241         * sem_ch6.adb (Analyze_Subprogram_Body): Fix typo and formatting
45242
45243 2002-12-14   Geert Bosch  <bosch@gnat.com>
45244
45245         PR ada/5690
45246         * sem_ch6.adb (Analyze_Subprogram_Body): Recognize additional
45247         case of a body created for a Renaming_As_Body, on which
45248         conformance checks are not performed.
45249
45250 2002-11-30  Zack Weinberg  <zack@codesourcery.com>
45251
45252         * cuintp.c, decl.c, deftarg.c, misc.c, targtyps.c, trans.c,
45253         utils.c, utils2.c: Include coretypes.h and tm.h, and system.h when
45254         not already included.
45255         * Make-lang.in: Update dependencies.
45256
45257 2002-11-18  Nathanael Nerode  <neroden@gcc.gnu.org>
45258         * adaint.c (__gnat_tmp_name): Better, but good enough for now,
45259         solution to buffer overflow bug on GNU/Linux.
45260
45261 2002-11-14  Nathanael Nerode  <neroden@gcc.gnu.org>
45262
45263         PR ada/5856
45264         PR ada/6919
45265         * bindgen.adb: Remove all references to Public_Version.
45266         * comperr.adb: Remove all references to Public_Version and
45267         GNATPRO_Version; correct bug reporting instructions.
45268         * comperr.ads: Change to match bug box.
45269         * gnatvsn.ads: Remove all references to Public version and
45270         GNATPRO version.
45271
45272 2002-11-13  Nathanael Nerode  <neroden@gcc.gnu.org>
45273
45274         PR ada/6919
45275         * adaint.c (__gnat_tmp_name): Remove buffer overflow bug on
45276         GNU/Linux.
45277
45278         PR ada/6558
45279         * config-lang.in: Remove diff_excludes.
45280
45281 2002-11-05  Graham Stott  <graham.stott@btinternet.com>
45282
45283         PR ada/8358
45284         * trans.c (gnu_pending_elaboration_lists): New GC root.
45285         (build_unit_elab): Use..
45286
45287 2002-10-30   Geert Bosch  <bosch@gnat.com>
45288
45289         PR ada/6558
45290         * misc.c : Include optabs.h
45291
45292         * Make-lang.in (misc.o): Add dependency on optabs.h
45293
45294 2002-10-29   Geert Bosch  <bosch@gnat.com>
45295
45296         PR ada/6558
45297         * Make-lang.in (gnatbind): Depend on CONFIG_H
45298
45299 2002-10-29  Geert bosch  <bosch@gnat.com>
45300
45301         PR ada/6558
45302         * misc.c: Unrevert misc.c (1.13)
45303
45304 2002-10-28  Nathanael Nerode  <neroden@gcc.gnu.org>
45305
45306         * a-chlat9.ads a-cwila9.ads a-dynpri.adb a-retide.adb: Update
45307         maintainership comments.
45308
45309 2002-09-25  Nathanael Nerode  <neroden@gcc.gnu.org>
45310
45311         PR ada/5904
45312         * 5ataprop.adb 5atpopsp.adb 5bosinte.adb 5ftaprop.adb
45313         5gtaprop.adb 5htaprop.adb 5rosinte.ads 5staprop.adb
45314         5stpopse.adb 5vtaspri.ads 5zintman.adb 5ztaprop.adb
45315         7staprop.adb: Correct statements in comments about
45316         maintainership of GNAT.
45317
45318         PR ada/5904
45319         * 1ssecsta.adb 1ssecsta.ads adadecode.c adadecode.h aux-io.c
45320         gnatname.adb gnatname.ads mkdir.c osint-b.adb osint-b.ads
45321         osint-c.adb osint-c.ads osint-l.adb osint-l.ads osint-m.adb
45322         osint-m.ads prj-makr.adb prj-makr.ads prj-pp.adb prj-pp.ads
45323         s-atacco.ads s-traceb.adb s-traceb.ads s-traces.adb
45324         s-traces.ads s-tratas.adb s-tratas.ads sinput-d.adb
45325         sinput-d.ads switch-b.adb switch-b.ads switch-c.adb
45326         switch-c.ads switch-m.adb switch-m.ads: Correct statements in
45327         comments about maintainership of GNAT.
45328
45329         PR ada/6919 (forward port of patch for PR ada/5904)
45330         * 1aexcept.adb 1aexcept.ads 41intnam.ads 42intnam.ads
45331         4aintnam.ads 4cintnam.ads 4dintnam.ads 4hexcpol.adb
45332         4lintnam.ads 4mintnam.ads 4nintnam.ads 4onumaux.ads
45333         4pintnam.ads 4rintnam.ads 4sintnam.ads 4uintnam.ads
45334         4vcalend.adb 4vintnam.ads 4wcalend.adb 4wexcpol.adb
45335         4wintnam.ads 4zintnam.ads 4znumaux.ads 4zsytaco.adb
45336         4zsytaco.ads 51osinte.adb 51osinte.ads 52osinte.adb
45337         52osinte.ads 52system.ads 53osinte.ads 5aosinte.ads
45338         5asystem.ads 5atasinf.ads 5ataspri.ads 5avxwork.ads
45339         5bosinte.ads 5bsystem.ads 5cosinte.ads 5dosinte.ads
45340         5esystem.ads 5fosinte.ads 5fsystem.ads 5ftasinf.ads
45341         5ginterr.adb 5gmastop.adb 5gosinte.ads 5gproinf.adb
45342         5gproinf.ads 5gsystem.ads 5gtasinf.adb 5gtasinf.ads
45343         5gtpgetc.adb 5hparame.ads 5hsystem.ads 5htaspri.ads
45344         5iosinte.ads 5itaspri.ads 5ksystem.ads 5kvxwork.ads
45345         5losinte.ads 5lsystem.ads 5mosinte.ads 5mvxwork.ads
45346         5ninmaop.adb 5nintman.adb 5nosinte.ads 5ntaspri.ads
45347         5oosprim.adb 5oparame.adb 5osystem.ads 5posinte.ads
45348         5posprim.adb 5pvxwork.ads 5rosinte.ads 5rparame.adb
45349         5sintman.adb 5sosinte.ads 5sparame.adb 5ssystem.ads
45350         5stasinf.adb 5stasinf.ads 5staspri.ads 5svxwork.ads
45351         5tosinte.ads 5uosinte.ads 5vasthan.adb 5vinterr.adb
45352         5vintman.ads 5vosinte.ads 5vosprim.adb 5vosprim.ads
45353         5vparame.ads 5vsystem.ads 5vtaspri.ads 5vtpopde.adb
45354         5vtpopde.ads 5vvaflop.adb 5wintman.adb 5wmemory.adb
45355         5wosinte.ads 5wosprim.adb 5wsystem.ads 5wtaprop.adb
45356         5wtaspri.ads 5ysystem.ads 5zinterr.adb 5zosinte.adb
45357         5zosinte.ads 5zosprim.adb 5zsystem.ads 6vcpp.adb 6vcstrea.adb
45358         7sosprim.adb 86numaux.adb 86numaux.ads 9drpc.adb a-astaco.adb
45359         a-caldel.ads a-calend.adb a-calend.ads a-chahan.adb
45360         a-chahan.ads a-colien.adb a-colien.ads a-colire.adb
45361         a-colire.ads a-comlin.adb a-comlin.ads a-cwila1.ads
45362         a-decima.adb a-decima.ads a-diocst.adb a-diocst.ads
45363         a-direio.adb a-direio.ads a-einuoc.adb a-einuoc.ads
45364         a-except.adb a-except.ads a-excpol.adb a-exctra.adb
45365         a-exctra.ads a-filico.adb a-filico.ads a-finali.adb
45366         a-finali.ads a-interr.ads a-intsig.adb a-intsig.ads
45367         a-ngcefu.adb a-ngcoty.adb a-ngcoty.ads a-ngelfu.adb
45368         a-nudira.adb a-nudira.ads a-nuflra.adb a-nuflra.ads
45369         a-numaux.ads a-reatim.ads a-retide.ads a-sequio.adb
45370         a-sequio.ads a-siocst.adb a-siocst.ads a-ssicst.adb
45371         a-ssicst.ads a-stmaco.ads a-storio.adb a-strbou.adb
45372         a-strbou.ads a-stream.ads a-strfix.adb a-strfix.ads
45373         a-strmap.adb a-strmap.ads a-strsea.adb a-strsea.ads
45374         a-strunb.adb a-strunb.ads a-ststio.adb a-ststio.ads
45375         a-stunau.adb a-stunau.ads a-stwibo.adb a-stwibo.ads
45376         a-stwifi.adb a-stwima.adb a-stwima.ads a-stwise.adb
45377         a-stwise.ads a-stwiun.adb a-stwiun.ads a-suteio.adb
45378         a-suteio.ads a-swmwco.ads a-swuwti.adb a-swuwti.ads
45379         a-sytaco.adb a-sytaco.ads a-tags.adb a-tags.ads a-tasatt.ads
45380         a-taside.adb a-taside.ads a-teioed.adb a-teioed.ads
45381         a-textio.adb a-textio.ads a-ticoau.adb a-ticoau.ads
45382         a-ticoio.adb a-ticoio.ads a-tideau.adb a-tideau.ads
45383         a-tideio.adb a-tideio.ads a-tienau.adb a-tienau.ads
45384         a-tienio.adb a-tienio.ads a-tifiio.adb a-tifiio.ads
45385         a-tiflau.adb a-tiflau.ads a-tiflio.adb a-tiflio.ads
45386         a-tigeau.adb a-tigeau.ads a-tiinau.adb a-tiinau.ads
45387         a-tiinio.adb a-tiinio.ads a-timoau.adb a-timoau.ads
45388         a-timoio.adb a-timoio.ads a-tiocst.adb a-tiocst.ads
45389         a-titest.adb a-witeio.adb a-witeio.ads a-wtcoau.adb
45390         a-wtcoau.ads a-wtcoio.adb a-wtcstr.adb a-wtcstr.ads
45391         a-wtdeau.adb a-wtdeau.ads a-wtdeio.adb a-wtdeio.ads
45392         a-wtedit.adb a-wtedit.ads a-wtenau.adb a-wtenau.ads
45393         a-wtenio.adb a-wtenio.ads a-wtfiio.adb a-wtfiio.ads
45394         a-wtflau.adb a-wtflau.ads a-wtflio.adb a-wtflio.ads
45395         a-wtgeau.adb a-wtgeau.ads a-wtinau.adb a-wtinau.ads
45396         a-wtinio.adb a-wtmoau.adb a-wtmoau.ads a-wtmoio.adb
45397         a-wtmoio.ads a-wttest.adb ada-tree.def ada-tree.h ada.h
45398         adaint.c adaint.h ali-util.adb ali-util.ads ali.adb ali.ads
45399         alloc.ads argv.c atree.adb atree.ads atree.h back_end.adb
45400         back_end.ads bcheck.adb bcheck.ads binde.adb binde.ads
45401         binderr.adb binderr.ads bindgen.adb bindgen.ads bindusg.adb
45402         bindusg.ads butil.adb butil.ads cal.c casing.adb casing.ads
45403         ceinfo.adb checks.adb checks.ads cio.c comperr.adb comperr.ads
45404         csets.adb csets.ads csinfo.adb cstand.adb cstand.ads
45405         cstreams.c cuintp.c debug.adb debug.ads debug_a.adb
45406         debug_a.ads dec-io.adb dec-io.ads dec.ads decl.c deftarg.c
45407         einfo.adb einfo.ads einfo.h elists.adb elists.ads elists.h
45408         errno.c errout.adb errout.ads eval_fat.adb eval_fat.ads exit.c
45409         exp_aggr.adb exp_aggr.ads exp_attr.adb exp_attr.ads
45410         exp_ch10.ads exp_ch11.adb exp_ch11.ads exp_ch12.adb
45411         exp_ch12.ads exp_ch13.adb exp_ch13.ads exp_ch2.adb exp_ch2.ads
45412         exp_ch3.adb exp_ch3.ads exp_ch4.adb exp_ch4.ads exp_ch5.adb
45413         exp_ch5.ads exp_ch6.adb exp_ch6.ads exp_ch7.adb exp_ch7.ads
45414         exp_ch8.adb exp_ch8.ads exp_ch9.adb exp_ch9.ads exp_code.adb
45415         exp_code.ads exp_dbug.adb exp_dbug.ads exp_disp.adb
45416         exp_disp.ads exp_dist.adb exp_dist.ads exp_fixd.adb
45417         exp_fixd.ads exp_imgv.adb exp_imgv.ads exp_intr.adb
45418         exp_intr.ads exp_pakd.adb exp_pakd.ads exp_prag.adb
45419         exp_prag.ads exp_smem.adb exp_smem.ads exp_strm.adb
45420         exp_strm.ads exp_tss.adb exp_tss.ads exp_util.adb exp_util.ads
45421         exp_vfpt.adb exp_vfpt.ads expander.adb expander.ads fe.h
45422         final.c fmap.adb fmap.ads fname-sf.adb fname-sf.ads
45423         fname-uf.adb fname-uf.ads fname.adb fname.ads freeze.adb
45424         freeze.ads frontend.adb frontend.ads g-calend.ads g-comlin.adb
45425         g-debpoo.adb g-debpoo.ads g-locfil.adb g-os_lib.ads
45426         g-regist.adb g-regist.ads get_targ.adb get_targ.ads gigi.h
45427         gmem.c gnat1drv.adb gnat1drv.ads gnat_ug.texi gnatbind.adb
45428         gnatbind.ads gnatbl.c gnatcmd.adb gnatcmd.ads gnatdll.adb
45429         gnatfind.adb gnatkr.adb gnatkr.ads gnatlbr.adb gnatlink.adb
45430         gnatlink.ads gnatls.adb gnatls.ads gnatmake.adb gnatmake.ads
45431         gnatmem.adb gnatprep.adb gnatprep.ads gnatpsta.adb gnatvsn.ads
45432         gnatxref.adb hlo.adb hlo.ads hostparm.ads i-c.adb i-cexten.ads
45433         i-cobol.adb i-cobol.ads i-cpoint.adb i-cpoint.ads i-cpp.adb
45434         i-cpp.ads i-cstrea.adb i-cstrea.ads i-cstrin.adb i-cstrin.ads
45435         i-fortra.adb i-os2err.ads i-os2lib.adb i-os2lib.ads
45436         i-os2syn.ads i-os2thr.ads i-pacdec.adb i-pacdec.ads
45437         impunit.adb impunit.ads init.c inline.adb inline.ads io-aux.c
45438         itypes.adb itypes.ads krunch.adb krunch.ads lang-options.h
45439         lang-specs.h layout.adb layout.ads lib-list.adb lib-load.adb
45440         lib-load.ads lib-sort.adb lib-util.adb lib-util.ads
45441         lib-writ.adb lib-writ.ads lib-xref.adb lib-xref.ads lib.adb
45442         lib.ads link.c live.adb live.ads make.adb make.ads makeusg.adb
45443         makeusg.ads math_lib.adb mdll.adb mdll.ads memtrack.adb misc.c
45444         namet.adb namet.ads namet.h nlists.adb nlists.ads nlists.h
45445         nmake.adb nmake.ads nmake.adt opt.adb opt.ads osint.adb
45446         osint.ads output.adb output.ads par-ch10.adb par-ch11.adb
45447         par-ch12.adb par-ch13.adb par-ch2.adb par-ch3.adb par-ch4.adb
45448         par-ch5.adb par-ch6.adb par-ch7.adb par-ch8.adb par-ch9.adb
45449         par-endh.adb par-labl.adb par-load.adb par-prag.adb
45450         par-sync.adb par-tchk.adb par-util.adb par.adb par.ads
45451         prj-attr.adb prj-attr.ads prj-com.adb prj-com.ads prj-dect.adb
45452         prj-dect.ads prj-env.adb prj-env.ads prj-ext.adb prj-ext.ads
45453         prj-nmsc.adb prj-nmsc.ads prj-pars.adb prj-pars.ads
45454         prj-part.adb prj-part.ads prj-proc.adb prj-proc.ads
45455         prj-strt.adb prj-strt.ads prj-tree.adb prj-tree.ads
45456         prj-util.adb prj-util.ads prj.adb prj.ads raise.c raise.h
45457         repinfo.adb repinfo.ads repinfo.h restrict.adb restrict.ads
45458         rident.ads rtsfind.adb rtsfind.ads s-addima.adb s-addima.ads
45459         s-arit64.adb s-arit64.ads s-assert.adb s-assert.ads
45460         s-asthan.adb s-asthan.ads s-atacco.adb s-auxdec.adb
45461         s-auxdec.ads s-bitops.adb s-bitops.ads s-chepoo.ads
45462         s-direio.adb s-direio.ads s-except.ads s-exctab.adb
45463         s-exctab.ads s-exnflt.ads s-exngen.adb s-exngen.ads
45464         s-exnint.ads s-exnlfl.ads s-exnlin.ads s-exnllf.ads
45465         s-exnlli.ads s-exnsfl.ads s-exnsin.ads s-exnssi.ads
45466         s-expflt.ads s-expgen.adb s-expgen.ads s-expint.ads
45467         s-explfl.ads s-explin.ads s-expllf.ads s-explli.ads
45468         s-expllu.adb s-expllu.ads s-expmod.adb s-expmod.ads
45469         s-expsfl.ads s-expsin.ads s-expssi.ads s-expuns.adb
45470         s-expuns.ads s-fatflt.ads s-fatgen.adb s-fatgen.ads
45471         s-fatlfl.ads s-fatllf.ads s-fatsfl.ads s-ficobl.ads
45472         s-fileio.adb s-fileio.ads s-finimp.adb s-finimp.ads
45473         s-finroo.adb s-finroo.ads s-fore.adb s-fore.ads s-imgbiu.adb
45474         s-imgbiu.ads s-imgboo.adb s-imgboo.ads s-imgcha.adb
45475         s-imgcha.ads s-imgdec.adb s-imgdec.ads s-imgenu.adb
45476         s-imgenu.ads s-imgint.adb s-imgint.ads s-imgllb.adb
45477         s-imgllb.ads s-imglld.adb s-imglld.ads s-imglli.adb
45478         s-imglli.ads s-imgllu.adb s-imgllu.ads s-imgllw.adb
45479         s-imgllw.ads s-imgrea.adb s-imgrea.ads s-imguns.adb
45480         s-imguns.ads s-imgwch.adb s-imgwch.ads s-imgwiu.adb
45481         s-imgwiu.ads s-inmaop.ads s-interr.adb s-interr.ads
45482         s-intman.ads s-io.adb s-io.ads s-maccod.ads s-mantis.adb
45483         s-mantis.ads s-memory.adb s-memory.ads s-osprim.ads
45484         s-pack03.adb s-pack03.ads s-pack05.adb s-pack05.ads
45485         s-pack06.adb s-pack06.ads s-pack07.adb s-pack07.ads
45486         s-pack09.adb s-pack09.ads s-pack10.adb s-pack10.ads
45487         s-pack11.adb s-pack11.ads s-pack12.adb s-pack12.ads
45488         s-pack13.adb s-pack13.ads s-pack14.adb s-pack14.ads
45489         s-pack15.adb s-pack15.ads s-pack17.adb s-pack17.ads
45490         s-pack18.adb s-pack18.ads s-pack19.adb s-pack19.ads
45491         s-pack20.adb s-pack20.ads s-pack21.adb s-pack21.ads
45492         s-pack22.adb s-pack22.ads s-pack23.adb s-pack23.ads
45493         s-pack24.adb s-pack24.ads s-pack25.adb s-pack25.ads
45494         s-pack26.adb s-pack26.ads s-pack27.adb s-pack27.ads
45495         s-pack28.adb s-pack28.ads s-pack29.adb s-pack29.ads
45496         s-pack30.adb s-pack30.ads s-pack31.adb s-pack31.ads
45497         s-pack33.adb s-pack33.ads s-pack34.adb s-pack34.ads
45498         s-pack35.adb s-pack35.ads s-pack36.adb s-pack36.ads
45499         s-pack37.adb s-pack37.ads s-pack38.adb s-pack38.ads
45500         s-pack39.adb s-pack39.ads s-pack40.adb s-pack40.ads
45501         s-pack41.adb s-pack41.ads s-pack42.adb s-pack42.ads
45502         s-pack43.adb s-pack43.ads s-pack44.adb s-pack44.ads
45503         s-pack45.adb s-pack45.ads s-pack46.adb s-pack46.ads
45504         s-pack47.adb s-pack47.ads s-pack48.adb s-pack48.ads
45505         s-pack49.adb s-pack49.ads s-pack50.adb s-pack50.ads
45506         s-pack51.adb s-pack51.ads s-pack52.adb s-pack52.ads
45507         s-pack53.adb s-pack53.ads s-pack54.adb s-pack54.ads
45508         s-pack55.adb s-pack55.ads s-pack56.adb s-pack56.ads
45509         s-pack57.adb s-pack57.ads s-pack58.adb s-pack58.ads
45510         s-pack59.adb s-pack59.ads s-pack60.adb s-pack60.ads
45511         s-pack61.adb s-pack61.ads s-pack62.adb s-pack62.ads
45512         s-pack63.adb s-pack63.ads s-parame.adb s-parame.ads
45513         s-parint.adb s-parint.ads s-pooglo.adb s-pooglo.ads
45514         s-pooloc.adb s-pooloc.ads s-poosiz.adb s-poosiz.ads
45515         s-powtab.ads s-proinf.adb s-proinf.ads s-rpc.adb s-rpc.ads
45516         s-scaval.ads s-secsta.adb s-secsta.ads s-sequio.adb
45517         s-sequio.ads s-shasto.adb s-shasto.ads s-soflin.adb
45518         s-soflin.ads s-sopco3.adb s-sopco3.ads s-sopco4.adb
45519         s-sopco4.ads s-sopco5.adb s-sopco5.ads s-stache.adb
45520         s-stache.ads s-stalib.adb s-stalib.ads s-stoele.adb
45521         s-stopoo.ads s-stratt.adb s-stratt.ads s-strops.adb
45522         s-strops.ads s-taprob.ads s-taprop.ads s-tarest.ads
45523         s-tasdeb.adb s-tasdeb.ads s-tasinf.adb s-tasinf.ads
45524         s-tasini.ads s-taskin.ads s-tasren.ads s-tasres.ads
45525         s-tassta.ads s-tpinop.adb s-tpinop.ads s-tpoben.ads
45526         s-tpobop.ads s-unstyp.ads s-vaflop.adb s-vaflop.ads
45527         s-valboo.adb s-valboo.ads s-valcha.adb s-valcha.ads
45528         s-valdec.adb s-valdec.ads s-valenu.adb s-valenu.ads
45529         s-valint.adb s-valint.ads s-vallld.adb s-vallld.ads
45530         s-vallli.adb s-vallli.ads s-valllu.adb s-valllu.ads
45531         s-valrea.adb s-valrea.ads s-valuns.adb s-valuns.ads
45532         s-valuti.adb s-valuti.ads s-valwch.adb s-valwch.ads
45533         s-vercon.adb s-vercon.ads s-vmexta.adb s-vmexta.ads
45534         s-wchcnv.adb s-wchcnv.ads s-wchcon.ads s-wchjis.adb
45535         s-wchjis.ads s-wchstw.adb s-wchstw.ads s-wchwts.adb
45536         s-wchwts.ads s-widboo.adb s-widboo.ads s-widcha.adb
45537         s-widcha.ads s-widenu.adb s-widenu.ads s-widlli.adb
45538         s-widlli.ads s-widllu.adb s-widllu.ads s-widwch.adb
45539         s-widwch.ads s-wwdcha.adb s-wwdcha.ads s-wwdenu.adb
45540         s-wwdenu.ads s-wwdwch.adb s-wwdwch.ads scans.adb scans.ads
45541         scn-nlit.adb scn-slit.adb scn.adb scn.ads sdefault.ads sem.adb
45542         sem.ads sem_aggr.adb sem_aggr.ads sem_attr.adb sem_attr.ads
45543         sem_case.adb sem_case.ads sem_cat.adb sem_cat.ads sem_ch10.adb
45544         sem_ch10.ads sem_ch11.adb sem_ch11.ads sem_ch12.adb
45545         sem_ch12.ads sem_ch13.adb sem_ch13.ads sem_ch2.adb sem_ch2.ads
45546         sem_ch3.adb sem_ch3.ads sem_ch4.adb sem_ch4.ads sem_ch5.adb
45547         sem_ch5.ads sem_ch6.adb sem_ch6.ads sem_ch7.adb sem_ch7.ads
45548         sem_ch8.adb sem_ch8.ads sem_ch9.adb sem_ch9.ads sem_disp.adb
45549         sem_disp.ads sem_dist.adb sem_dist.ads sem_elab.adb
45550         sem_elab.ads sem_elim.adb sem_elim.ads sem_eval.adb
45551         sem_eval.ads sem_intr.adb sem_intr.ads sem_maps.adb
45552         sem_maps.ads sem_mech.adb sem_mech.ads sem_prag.adb
45553         sem_prag.ads sem_res.adb sem_res.ads sem_smem.adb sem_smem.ads
45554         sem_type.adb sem_type.ads sem_util.adb sem_util.ads
45555         sem_vfpt.adb sem_vfpt.ads sem_warn.adb sem_warn.ads
45556         sfn_scan.adb sfn_scan.ads sinfo-cn.adb sinfo-cn.ads sinfo.adb
45557         sinfo.ads sinfo.h sinput-l.adb sinput-l.ads sinput-p.adb
45558         sinput-p.ads sinput.adb sinput.ads snames.adb snames.ads
45559         snames.h sprint.adb sprint.ads stand.adb stand.ads stringt.adb
45560         stringt.ads stringt.h style.adb style.ads stylesw.adb
45561         stylesw.ads switch.adb switch.ads sysdep.c system.ads
45562         table.adb table.ads targparm.adb targparm.ads targtyps.c
45563         tbuild.adb tbuild.ads trans.c tree_gen.adb tree_gen.ads
45564         tree_in.adb tree_in.ads tree_io.adb tree_io.ads treepr.adb
45565         treepr.ads treeprs.ads treeprs.adt ttypef.ads ttypes.ads
45566         types.adb types.ads types.h uintp.adb uintp.ads uintp.h
45567         uname.adb uname.ads urealp.adb urealp.ads urealp.h usage.adb
45568         usage.ads utils.c utils2.c validsw.adb validsw.ads
45569         widechar.adb widechar.ads xeinfo.adb xnmake.adb xr_tabls.adb
45570         xr_tabls.ads xref_lib.adb xref_lib.ads xsinfo.adb xsnames.adb
45571         xtreeprs.adb: Correct statements in comments about maintainership
45572         of GNAT.
45573
45574 2002-09-23  Zack Weinberg  <zack@codesourcery.com>
45575
45576         * Make-lang.in (EXTRA_GNATBIND_OBJS): Add version.o.
45577         * Makefile.in (TOOLS_LIBS): Add ../../version.o.
45578         * gnatvsn.ads: Gnat_Version_String is now a function.
45579         * gnatvsn.adb: New file.  When asked for Gnat_Version_String,
45580         copy the C version_string into a String and return it.
45581         * gnatcmd.adb, gnatkr.adb, gnatlbr.adb, gnatlink.adb,
45582         gnatls.adb,gnatmake.adb, gnatprep.adb, gnatpsta.adb:
45583         Remove pragma Ident (Gnat_Version_String).  If this was the
45584         sole use of package Gnatvsn, remove the with statement too.
45585         * gnat1drv.adb: Tweak -gnatv output.
45586
45587 2002-09-17  Richard Henderson  <rth@redhat.com>
45588
45589         * trans.c (tree_transform): Use real_ldexp not REAL_VALUE_LDEXP.
45590         * config/dsp16xx/dsp16xx.md (fixuns_trunchfhi2): Use real_2expN.
45591         * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
45592         (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
45593         * config/m68k/m68k.c (floating_exact_log2): Use real_exponent
45594         and real_2expN instead of a loop.
45595         * doc/tm.texi (REAL_VALUE_LDEXP): Remove.
45596         (REAL_VALUE_RNDZINT, REAL_VALUE_UNSIGNED_RNDZINT): Remove.
45597
45598 2002-08-25  Andre Leis  <a.leis@gmx.net>
45599             David Billinghurst  <David.Billinghurst@riotinto.com>
45600
45601         * sysdep.c (__gnat_ttyname): include <termios.h> on cygwin
45602
45603 2002-08-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
45604
45605         * Make-lang.in (gnatbind$(exeext)): Link with $(SYSLIBS).
45606         Remove $(CONFIG_H) dependency.
45607
45608 2002-08-08  Nathan Sidwell  <nathan@codesourcery.com>
45609
45610         * ada/Make-lang.in (ada.mostlyclean): Remove coverage files.
45611
45612 2002-07-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
45613
45614         * adadecode.c (ada_demangle): Use xstrdup in lieu of
45615         xmalloc/strcpy.
45616         * misc.c (gnat_decode_option): Likewise.
45617
45618 2002-07-15  Florian Weimer  <fw@deneb.enyo.de>
45619
45620         * make.adb (Add_Switch): Make Generic_Position a procedure.  The
45621         function approach did not work well because of a side effect (the
45622         function call could reallocate the table which was being indexed
45623         using its result). Fixes ada/4851. [RESURRECTED]
45624
45625 2002-07-01  Roger Sayle  <roger@eyesopen.com>
45626
45627         * ada/utils.c (builtin_function): Accept an additional parameter.
45628
45629 2002-06-28  Andreas Jaeger  <aj@suse.de>
45630
45631         PR ada/7144
45632         * Makefile.in: Fix typo in comment, patch by Adrian Knoth
45633         <adi@thur.de>.
45634
45635 2002-06-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
45636
45637         * Makefile.in (SHELL): Set to @SHELL@.
45638
45639 2002-06-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
45640
45641         * utils.c (init_gigi_decls): Use ARRAY_SIZE in lieu of explicit
45642         array size calculation.
45643
45644 2002-06-04  Andreas Jaeger  <aj@suse.de>
45645
45646         * Make-lang.in (gnatbind): Readd rule that has been lost in last
45647         patch.
45648
45649 2002-06-03  Geoffrey Keating  <geoffk@redhat.com>
45650
45651         Merge from pch-branch:
45652
45653         * config-lang.in (gtfiles): Add ada-tree.h.
45654         * ada-tree.h (SET_TYPE_CI_CO_LIST): New.
45655         (SET_TYPE_MODULUS): New.
45656         (SET_TYPE_INDEX): New.
45657         (SET_TYPE_DIGITS_VALUE): New.
45658         (SET_TYPE_RM_SIZE): New.
45659         (SET_TYPE_UNCONSTRAINED_ARRAY): New.
45660         (SET_TYPE_ADA_SIZE): New.
45661         (SET_TYPE_ACTUAL_BOUNDS): New.
45662         (SET_DECL_CONST_CORRESPONDING_VAR): New.
45663         (SET_DECL_ORIGINAL_FIELD): New.
45664         (TREE_LOOP_ID): Correct typo.
45665         * decl.c: Use new macros.
45666         * utils.c: Include debug.h, use new macros.
45667         * utils2.c: Use new macros.
45668
45669         * ada-tree.h: Update all macros for new tree description.
45670         (struct tree_loop_id): New.
45671         (union lang_tree_node): New.
45672         (struct lang_decl): New.
45673         (struct lang_type): New.
45674         * misc.c (gnat_mark_tree): Delete.
45675         (LANG_HOOKS_MARK_TREE): Delete.
45676         * trans.c (tree_transform): No longer any need to cast
45677         for TREE_LOOP_ID.
45678
45679         * utils.c (struct language_function): New dummy structure.
45680
45681         * Makefile.in (decl.o): gt-ada-<filename.h> is in objdir, not srcdir.
45682         (misc.o): Likewise.
45683         (utils.o): Likewise; also gtype-ada.h.
45684         * Make-lang.in (gnat1): Add dependency on s-gtype.
45685         (gnatbind): Add dependency on $(CONFIG_H).
45686         * utils.c: Correct last #include.
45687         (stuct e_stack): Remove unnecessary 'static'.
45688         (mark_e_stack): Remove unused prototype.
45689
45690         * scn-nlit.adb: Remove whitespace after version number to
45691         keep lines under 80 chars.
45692         * snames.adb: Likewise.
45693         * treepr.ads: Likewise.
45694
45695         * Makefile.in (decl.o): Include gt-ada-<filename>.h.
45696         (misc.o): Likewise.
45697         (utils.o): Include gt-ada-<filename>.h and gtype-ada.h.
45698         * config-lang.in (gtfiles): New.
45699         * decl.c: Use gengtype for roots.
45700         * gigi.h: Use gengtype for roots.
45701         * trans.c: Use gengtype for roots.
45702         * utils.c: Use gengtype for roots, marking.  Include gtype-ada.h.
45703
45704 2002-06-02  Gabriel Dos Reis  <gdr@codesourcery.com>
45705
45706         * misc.c (gnat_init): Adjust setting of internal_error_function.
45707
45708 2002-06-01  Joseph S. Myers  <jsm28@cam.ac.uk>
45709
45710         * gnat_ug.texi: Use @ifnottex instead of @ifinfo.
45711         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
45712         gnat_ug_wnt.texi: Regenerate.
45713
45714 2002-05-31  Florian Weimer  <fw@deneb.enyo.de>
45715
45716         * 5ntaprop.adb (with System.OS_Primitives): Remove.
45717
45718         * cstreams.c (max_path_len): Move from here ...
45719         * adaint.c (__gnat_max_path_len): ... to here.
45720         * adaint.c (__gnat_max_path_len): Declare.
45721         * g-dirope.adb (Max_Path): Adjust.
45722         * g-os_lib.adb (Normalize_Pathname.Max_Path): Adjust.
45723         * i-cstrea.ads (max_path_len): Adjust.
45724         * osint.adb (Get_RTS_Search_Dir.Max_Path): Adjust.
45725         * xr_tabls.adb (Dir_Name.Max_Path: Adjust.
45726
45727         * Makefile.in, Make-lang.in: Documentation is now built in
45728         Make-lang.in.  Store Info and generated Texinfo files in the
45729         source directory.
45730         * gnat_ug.texi: Remove CVS keywords, correct version number.
45731         Set file name correctly.
45732
45733         * gnat_ug_*.texi: Add.
45734         * .cvsignore: Ignore generated Texinfo files.
45735
45736 2002-05-30  Zack Weinberg  <zack@codesourcery.com>
45737
45738         * ada.h: Add MI guard macro.
45739         (SUBTYPE): Define constants with an anonymous enum, not static
45740         const variables.
45741         (IN): Cast constants to appropriate type before use.
45742
45743 2002-05-26  Joseph S. Myers  <jsm28@cam.ac.uk>
45744
45745         * gnatvsn.ads (Gnat_Version_String): Change to "3.2 20020526
45746         (experimental)".
45747
45748 2002-05-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
45749
45750         * Make-lang.in (CP, ECHO): Copy from Makefile.in.
45751         (X_ADA_CFLAGS, T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS): Likewise.
45752         (ALL_ADAFLAGS, FORCE_DEBUG_ADAFLAGS, ADA_CFLAGS): Likewise.
45753         (ALL_ADA_CFLAGS): Likewise.
45754         (ADA_INCLUDES): Likewise.
45755         Adapt for new working dir.
45756         (GNATBIND): Use Makefile.in version.
45757         (.SUFFIXES): Copy from Makefile.in.
45758         (ada-warn): Define.
45759         (.adb.o, .ads.o): Copy from Makefile.in.
45760         Added $(OUTPUT_OPTION).
45761         (GNAT1_C_OBJS): Moved from Makefile.in.
45762         Prefix with ada subdir.
45763         (GNAT_ADA_OBJS, GNAT1_ADA_OBJS, GNAT1_OBJS, GNATBIND_OBJS): Likewise.
45764         (EXTRA_GNAT1_OBJS): Moved from Makefile.in.
45765         Adapt for new working dir.
45766         (EXTRA_GNATBIND_OBJS): Likewise.
45767         (ADA_BACKEND): Moved from Makefile.in.
45768         Renamed to avoid conflict with global BACKEND.
45769         Use that one.
45770         (TARGET_ADA_SRCS): Moved from Makefile.in.
45771         (gnat1$(exeext)): Replaced recursive rule with Makefile.in version.
45772         Use ADA_BACKEND.
45773         (gnatbind$(exeext)): Replaced recursive rule with Makefile.in version.
45774         (ada_extra_files): Moved from Makefile.in.
45775         Prefix with ada subdir.
45776         (ada/b_gnat1.c, ada/b_gnat1.o, ada/b_gnatb.c, ada/b_gnatb.o): Likewise.
45777         (ada/treeprs.ads, ada/einfo.h, ada/sinfo.h, ada/nmake.adb): Likewise.
45778         (ada/nmake.ads): Likewise.
45779         (update-sources): Moved from Makefile.in.
45780         Prefix with ada subdir.
45781         (ada/sdefault.adb, ada/stamp-sdefault, ada/sdefault.o): Likewise.
45782         (ADA_TREE_H): Likewise.
45783         (ada/a-except.o, ada/s-assert.o, ada/s-memory.o): Likewise.
45784         (ada/memtrack.o): Likewise.
45785         (ada/adadecode.o): Likewise.
45786         Update dependencies.
45787         (ada/adaint.o): New.
45788         (ada/argv.o): Moved from Makefile.in.
45789         Prefix with ada subdir.
45790         Update dependencies.
45791         (ada/cstreams.o, ada/exit.o, ada/final.o, ada/link.o): Likewise.
45792         (ada/cio.o, ada/init.o, ada/raise.o, ada/tracebak.o): Likewise.
45793         (ada/cuintp.o, ada/decl.o, ada/misc.o): Moved from Makefile.in.
45794         Prefix with ada subdir.
45795         (ada/targtyps.o, ada/trans.o, ada/utils.o, ada/utils2.o): Likewise.
45796         (GNAT DEPENDENCIES): Regenerate.
45797         * Makefile.in (MACHMODE_H, RTL_H, TREE_H): Removed, provided by
45798         toplevel Makefile.in.
45799         (EXTRA_GNAT1_OBJS, EXTRA_GNATBIND_OBJS): Removed.
45800         (TARGET_ADA_SRCS): Removed.
45801         (GNAT1_C_OBJS, GNAT_ADA_OBJS, GNAT1_ADA_OBJS, GNAT1_OBJS): Likewise.
45802         (GNATBIND_OBJS): Likewise.
45803         (ADA_INCLUDE_DIR, ADA_RTL_OBJ_DIR): Moved here.
45804         (BACKEND): Removed.
45805         (../gnat1$(exeext), ../gnatbind$(exeext)): Likewise.
45806         (TREE_H): Likewise.
45807         (ada_extra_files): Likewise.
45808         (b_gnat1.c, b_gnat1.o, b_gnatb.c, b_gnatb.o): Likewise.
45809         (treeprs.ads, einfo.h, sinfo.h, nmake.adb, nmake.ads): Likewise.
45810         (update-sources): Likewise.
45811         (sdefault.adb, stamp-sdefault, sdefault.o): Likewise
45812         (ADA_TREE_H): Likewise.
45813         (adadecoce.o): Likewise.
45814         (cuintp.o, decl.o, misc.o, trans.o, utils.o, utils2.o): Likewise.
45815         (GNAT DEPENDENCIES): Likewise.
45816
45817 2002-05-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
45818
45819         * Makefile.adalib: Allow for PWDCMD to override hardcoded pwd.
45820         * Makefile.in: Likewise.
45821
45822 2002-05-14  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
45823
45824         * Make-lang.in (gnat1$(exeext), gnatbind$(exeext), gnattools):
45825         Restore $(CONFIG_H) and prefix.o dependencies.
45826         (ada.stage[1-4]): Depend on stage?-start.
45827
45828         * Makefile.in (b_gnatb.c): Depend on interfac.o.
45829
45830 2002-05-02  Jim Wilson  <wilson@redhat.com>
45831
45832         * utils.c (finish_record_type): Change record_size to record_type.
45833
45834 2001-05-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
45835
45836         * ada/Makefile.in (X_ADA_CFLAGS, T_ADA_CFLAGS): New fragment overrides.
45837         (ALL_ADA_CFLAGS): Define.  Replace ADA_CFLAGS with ALL_ADA_CFLAGS in
45838         ALL_ADAFLAGS, MOST_ADAFLAGS, and all compilations using CC.
45839
45840 2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
45841
45842         * misc.c (gnat_parse_file): Update.
45843
45844 2002-04-24  Neil Booth  <neil@daikokuya.demon.co.uk>
45845
45846         * misc.c (gnat_init): Don't set lang_attribute_common.
45847
45848 2002-04-21  Joseph S. Myers  <jsm28@cam.ac.uk>
45849
45850         * gnat_rm.texi: Use @ifnottex instead of @ifinfo.
45851
45852 2002-04-21  Florian Weimer  <fw@deneb.enyo.de>
45853
45854         * gnat_ug.texi: New file.
45855
45856         * gnat_rm.texi: Do not include texiplus.texi.  Include fdl.texi
45857         instead of gfdl.texi
45858
45859         * xgnatug.adb, ug_words: New files.
45860
45861         * Makefile.in (doc, dvi): New targets.  Build gnat_ug_*,
45862         gnat_rm and gnat-style manuals.
45863
45864 2002-04-18  Neil Booth  <neil@daikokuya.demon.co.uk>
45865
45866         * gigi.h (incomplete_type_error): Remove.
45867         * utils.c (incomplete_type_error): Remove.
45868
45869 2002-04-16  Mark Mitchell  <mark@codesourcery.com>
45870
45871         * trans.c (tree_transform): Add has_scope argument to
45872         expand_start_stmt_expr.
45873
45874 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
45875
45876         * gigi.h (truthvalue_conversion): Rename.
45877         * misc.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
45878         * trans.c (tree_transform): Update.
45879         * utils2.c (truthvalue_conversion): Rename, update.
45880         (build_binary_op, build_unary_op): Update.
45881
45882 2002-04-04  Laurent Guerby  <guerby@acm.org>
45883
45884         * make.adb: Implement -margs, remove restriction about file name placement.
45885         * makeusg.adb: Documentation update.
45886         * Makefile.in (TOOLS_FLAGS_TO_PASS): Add VPATH=$(fsrcdir).
45887         * Makefile.in (gnattools3): Comment out, gnatmem does not build without libaddr2line.
45888
45889 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
45890
45891         * utils.c (create_subprog_decl): Use SET_DECL_ASSEMBLER_NAME.
45892         (builtin_function): Similarly.
45893
45894 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
45895
45896         * decl.c (gnat_to_gnu_entity): Update.
45897         * gigi.h (mark_addressable): Rename.
45898         * misc.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
45899         * trans.c (tree_transform): Update.
45900         * utils.c (create_var_decl): Update.
45901         * util2.c (build_binary_op, build_unary_op,
45902         fill_vms_descriptor): Update.
45903         (mark_addressable): Rename, update.
45904
45905 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
45906
45907         * gigi.h (unsigned_type, signed_type, signed_or_unsigned_type):
45908         Rename.
45909         * misc.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
45910         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
45911         * trans.c (tree_transform, convert_with_check): Update.
45912         * utils.c (unsigned_type, signed_type, signed_or_unsigned_type):
45913         Rename.
45914
45915 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
45916
45917         * gigi.h (finish_incomplete_decl): Rename.
45918         * misc.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL): Redefine.
45919         * utils.c (gnat_init_decl_processing): Don't set hook.
45920         (finish_incomplete_decl): Rename.
45921
45922 2002-03-29  Andreas Schwab  <schwab@suse.de>
45923
45924         * Makefile.in: Pass VPATH=$(fsrcdir) when calling make in rts
45925         directory.
45926
45927 2001-03-28  Robert Dewar  <dewar@gnat.com>
45928
45929         * checks.ads:
45930         (Remove_Checks): New procedure
45931
45932         * checks.adb:
45933         (Remove_Checks): New procedure
45934
45935         * exp_util.adb:
45936         Use new Duplicate_Subexpr functions
45937         (Duplicate_Subexpr_No_Checks): New procedure
45938         (Duplicate_Subexpr_No_Checks_Orig): New procedure
45939         (Duplicate_Subexpr): Restore original form (checks duplicated)
45940         (Duplicate_Subexpr): Call Remove_Checks
45941
45942         * exp_util.ads:
45943         (Duplicate_Subexpr_No_Checks): New procedure
45944         (Duplicate_Subexpr_No_Checks_Orig): New procedure
45945         Add 2002 to copyright notice
45946
45947         * sem_util.adb: Use new Duplicate_Subexpr functions
45948
45949         * sem_eval.adb:
45950         (Eval_Indexed_Component): This is the place to call
45951         Constant_Array_Ref and to replace the value. We simply merge
45952         the code of this function in here, since it is now no longer
45953         used elsewhere. This fixes the problem of the back end not
45954         realizing we were clever enough to see that this was
45955         constant.
45956         (Expr_Val): Remove call to Constant_Array_Ref
45957         (Expr_Rep_Val): Remove call to Constant_Array_Ref
45958         Minor reformatting
45959         (Constant_Array_Ref): Deal with string literals (patch
45960         suggested by Zack Weinberg on the gcc list)
45961
45962 2001-03-28  Ed Schonberg  <schonber@gnat.com>
45963
45964         * exp_util.adb: Duplicate_Subexpr_No_Checks_Orig =>
45965         Duplicate_Subexpr_Move_Checks.
45966
45967         * exp_util.ads: Duplicate_Subexpr_No_Checks_Orig =>
45968         Duplicate_Subexpr_Move_Checks.
45969
45970         * sem_eval.adb: (Constant_Array_Ref): Verify that constant
45971         value of array exists before retrieving it (it may a private
45972         protected component in a function).
45973
45974 2002-03-28   Geert Bosch  <bosch@gnat.com>
45975
45976         * prj-pp.adb : New file.
45977
45978         * prj-pp.ads : New file.
45979
45980 2002-03-28  Andreas Jaeger  <aj@suse.de>
45981
45982         * Makefile.in (stamp-sdefault): Fix path for Makefile.
45983
45984 2002-03-28  Neil Booth  <neil@daikokuya.demon.co.uk>
45985
45986         * misc.c (gnat_expand_expr): Move prototype.
45987
45988 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
45989
45990         * misc.c (insert_default_attributes): Remove.
45991
45992 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
45993
45994         * misc.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
45995         (gnat_init): Don't set hook.
45996         (gnat_expand_expr): Fix prototype.
45997
45998 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
45999
46000         * misc.c (ggc_p): Remove.
46001
46002 2002-03-27  Geert Bosch  <bosch@gnat.com>
46003
46004         * prj-makr.ads, prj-makr.adb : New files.
46005
46006 2002-03-26  Neil Booth  <neil@daikokuya.demon.co.uk>
46007
46008         * misc.c (LANG_HOOKS_MARK_TREE): Redefine.
46009         (lang_mark_tree): Make static, rename.
46010
46011 2002-03-25  Neil Booth  <neil@daikokuya.demon.co.uk>
46012
46013         * misc.c (maybe_build_cleanup): Remove.
46014
46015 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
46016
46017         * gigi.h (yyparse): Remove.
46018
46019 2002-03-23  Florian Weimer  <fw@deneb.enyo.de>
46020
46021         From Ben Brosgol  <brosgol@gnat.com>
46022         * gnat_rm.texi: Sync with ACT version.
46023
46024 2002-03-20  Neil Booth  <neil@daikokuya.demon.co.uk>
46025
46026         * misc.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
46027         (gnat_init): Remove old hook.
46028
46029 2002-03-17  Neil Booth  <neil@daikokuya.demon.co.uk>
46030
46031         * misc.c (LANG_HOOKS_PARSE_FILE): Redefine.
46032         (yyparse): Rename gnat_parse_file.
46033
46034 2002-03-14  Geoffrey Keating  <geoffk@redhat.com>
46035
46036         Delete all lines containing "$Revision:".
46037         * xeinfo.adb: Don't look for revision numbers.
46038         * xnmake.adb: Likewise.
46039         * xsinfo.adb: Likewise.
46040         * xsnames.adb: Likewise.
46041         * xtreeprs.adb: Likewise.
46042
46043 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
46044
46045         * misc.c (gnat_tree_code_type, gnat_tree_code_length,
46046         gnat_tree_code_name): Delete.
46047         (tree_code_type, tree_code_length, tree_code_name): Define.
46048         (gnat_init): Don't try to copy into the various tree_code
46049         arrays.
46050
46051 2002-03-11  Richard Henderson  <rth@redhat.com>
46052
46053         * Makefile.in (.NOTPARALLEL): Add fake tag.
46054
46055 2002-03-07  Geert Bosch  <bosch@gnat.com>
46056
46057         * adadecode.c, adadecode.h, aux-io.c, s-traces.adb, s-traces.ads,
46058         s-tratas.adb, s-tratas.ads, sinput-d.adb, sinput-d.ads,
46059         switch-b.adb, switch-b.ads, switch-c.adb, switch-c.ads,
46060         switch-m.adb, switch-m.ads : New files.
46061
46062 2002-03-07  Geert Bosch  <bosch@gnat.com>
46063
46064         * 41intnam.ads, 42intnam.ads, 4aintnam.ads, 4cintnam.ads,
46065         4dintnam.ads, 4gintnam.ads, 4hintnam.ads, 4lintnam.ads,
46066         4mintnam.ads, 4pintnam.ads, 4rintnam.ads, 4sintnam.ads,
46067         4uintnam.ads, 4vcalend.adb, 4zintnam.ads, 52system.ads,
46068         5amastop.adb, 5asystem.ads, 5ataprop.adb, 5atpopsp.adb,
46069         5avxwork.ads, 5bosinte.adb, 5bsystem.ads, 5esystem.ads,
46070         5fsystem.ads, 5ftaprop.adb, 5ginterr.adb, 5gmastop.adb,
46071         5gsystem.ads, 5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads,
46072         5hparame.ads, 5hsystem.ads, 5htaprop.adb, 5htraceb.adb,
46073         5itaprop.adb, 5ksystem.ads, 5kvxwork.ads, 5lintman.adb,
46074         5lsystem.ads, 5mvxwork.ads, 5ninmaop.adb, 5nosinte.ads,
46075         5ntaprop.adb, 5ointerr.adb, 5omastop.adb, 5oosinte.adb,
46076         5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5pvxwork.ads,
46077         5qtaprop.adb, 5sintman.adb, 5ssystem.ads, 5staprop.adb,
46078         5stpopse.adb, 5svxwork.ads, 5tosinte.ads, 5uintman.adb,
46079         5vasthan.adb, 5vinmaop.adb, 5vinterr.adb, 5vintman.adb,
46080         5vmastop.adb, 5vparame.ads, 5vsystem.ads, 5vtaprop.adb,
46081         5vtpopde.adb, 5wmemory.adb, 5wsystem.ads, 5wtaprop.adb,
46082         5ysystem.ads, 5zinterr.adb, 5zintman.adb, 5zosinte.adb,
46083         5zosinte.ads, 5zsystem.ads, 5ztaprop.adb, 6vcpp.adb, 6vcstrea.adb,
46084         7sintman.adb, 7staprop.adb, 7stpopsp.adb, 9drpc.adb,
46085         Make-lang.in, Makefile.in, a-caldel.adb, a-comlin.ads,
46086         a-dynpri.adb, a-except.adb, a-except.ads, a-finali.adb,
46087         a-ncelfu.ads, a-reatim.adb, a-retide.adb, a-stream.ads,
46088         a-ststio.adb, a-ststio.ads, a-stwifi.adb, a-tags.adb, a-tasatt.adb,
46089         a-textio.adb, a-tideau.adb, a-tiflau.adb, a-tigeau.adb,
46090         a-tigeau.ads, a-tiinau.adb, a-timoau.adb, a-witeio.adb,
46091         a-wtdeau.adb, a-wtenau.adb, a-wtflau.adb, a-wtgeau.adb,
46092         a-wtgeau.ads, a-wtinau.adb, a-wtmoau.adb, ada-tree.def, ada-tree.h,
46093         adaint.c, adaint.h, ali-util.adb, ali.adb, ali.ads, atree.adb,
46094         atree.ads, atree.h, back_end.adb, bcheck.adb, bindgen.adb,
46095         bindusg.adb, checks.adb, comperr.adb, config-lang.in, csets.adb,
46096         csets.ads, cstand.adb, cstreams.c, debug.adb, debug.ads, decl.c,
46097         einfo.adb, einfo.ads, einfo.h, elists.h, errout.adb, errout.ads,
46098         eval_fat.adb, exp_aggr.adb, exp_attr.adb, exp_ch11.adb,
46099         exp_ch12.adb, exp_ch13.adb, exp_ch2.adb, exp_ch3.adb, exp_ch3.ads,
46100         exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch7.ads,
46101         exp_ch9.adb, exp_ch9.ads, exp_dbug.adb, exp_dbug.ads, exp_disp.ads,
46102         exp_dist.adb, exp_fixd.adb, exp_intr.adb, exp_pakd.adb,
46103         exp_prag.adb, exp_strm.adb, exp_util.adb, exp_util.ads,
46104         expander.adb, expect.c, fe.h, fmap.adb, fmap.ads, fname-uf.adb,
46105         freeze.adb, frontend.adb, g-awk.adb, g-cgideb.adb, g-comlin.adb,
46106         g-comlin.ads, g-debpoo.adb, g-dirope.adb, g-dirope.ads,
46107         g-dyntab.adb, g-expect.adb, g-expect.ads, g-io.ads, g-io_aux.adb,
46108         g-io_aux.ads, g-locfil.adb, g-locfil.ads, g-os_lib.adb,
46109         g-os_lib.ads, g-regexp.adb, g-regpat.adb, g-socket.adb,
46110         g-socket.ads, g-spipat.adb, g-table.adb, g-trasym.adb,
46111         g-trasym.ads, gigi.h, gmem.c, gnat1drv.adb, gnatbind.adb, gnatbl.c,
46112         gnatchop.adb, gnatcmd.adb, gnatdll.adb, gnatfind.adb, gnatlbr.adb,
46113         gnatlink.adb, gnatls.adb, gnatmem.adb, gnatprep.adb, gnatvsn.ads,
46114         gnatxref.adb, hlo.adb, hostparm.ads, i-cobol.adb, i-cpp.adb,
46115         i-cstrea.ads, i-cstrin.adb, i-pacdec.adb, i-vxwork.ads,
46116         impunit.adb, init.c, inline.adb, io-aux.c, layout.adb, lib-load.adb,
46117         lib-util.adb, lib-writ.adb, lib-writ.ads, lib-xref.adb,
46118         lib-xref.ads, lib.adb, lib.ads, make.adb, makeusg.adb, mdll.adb,
46119         memroot.adb, misc.c, mlib-tgt.adb, mlib-utl.adb, mlib-utl.ads,
46120         mlib.adb, namet.adb, namet.ads, namet.h, nlists.h, nmake.adb,
46121         nmake.ads, nmake.adt, opt.adb, opt.ads, osint.adb, osint.ads,
46122         output.adb, output.ads, par-ch2.adb, par-ch3.adb, par-ch5.adb,
46123         par-prag.adb, par-tchk.adb, par-util.adb, par.adb, prj-attr.adb,
46124         prj-dect.adb, prj-env.adb, prj-env.ads, prj-nmsc.adb, prj-part.adb,
46125         prj-proc.adb, prj-strt.adb, prj-tree.adb, prj-tree.ads, prj.adb,
46126         prj.ads, raise.c, raise.h, repinfo.adb, restrict.adb, restrict.ads,
46127         rident.ads, rtsfind.adb, rtsfind.ads, s-arit64.adb, s-asthan.adb,
46128         s-atacco.adb, s-atacco.ads, s-auxdec.adb, s-crc32.adb, s-crc32.ads,
46129         s-direio.adb, s-fatgen.adb, s-fileio.adb, s-finimp.adb,
46130         s-gloloc.adb, s-gloloc.ads, s-interr.adb, s-mastop.adb,
46131         s-mastop.ads, s-memory.adb, s-parame.ads, s-parint.adb,
46132         s-pooglo.adb, s-pooloc.adb, s-rpc.adb, s-secsta.adb, s-sequio.adb,
46133         s-shasto.adb, s-soflin.adb, s-soflin.ads, s-stache.adb,
46134         s-taasde.adb, s-taasde.ads, s-tadeca.adb, s-tadeca.ads,
46135         s-tadert.adb, s-tadert.ads, s-taenca.adb, s-taenca.ads,
46136         s-taprob.adb, s-taprop.ads, s-tarest.adb, s-tasdeb.adb,
46137         s-tasini.adb, s-tasini.ads, s-taskin.adb, s-taskin.ads,
46138         s-tasque.adb, s-tasque.ads, s-tasren.adb, s-tasren.ads,
46139         s-tassta.adb, s-tasuti.adb, s-tasuti.ads, s-tataat.adb,
46140         s-tataat.ads, s-tpoben.adb, s-tpoben.ads, s-tpobop.adb,
46141         s-tposen.adb, s-tposen.ads, s-traceb.adb, s-traceb.ads,
46142         s-unstyp.ads, s-widenu.adb, scn-nlit.adb, scn.adb, sem.adb,
46143         sem_aggr.adb, sem_attr.adb, sem_attr.ads, sem_case.adb,
46144         sem_ch10.adb, sem_ch11.adb, sem_ch11.ads, sem_ch12.adb,
46145         sem_ch13.adb, sem_ch13.ads, sem_ch2.adb, sem_ch3.adb, sem_ch3.ads,
46146         sem_ch4.adb, sem_ch5.adb, sem_ch6.adb, sem_ch6.ads, sem_ch7.adb,
46147         sem_ch8.adb, sem_ch8.ads, sem_ch9.adb, sem_disp.adb, sem_dist.adb,
46148         sem_elab.adb, sem_elim.adb, sem_elim.ads, sem_eval.adb,
46149         sem_intr.adb, sem_mech.adb, sem_prag.adb, sem_res.adb,
46150         sem_type.adb, sem_util.adb, sem_util.ads, sem_vfpt.adb,
46151         sem_warn.adb, sinfo.adb, sinfo.ads, sinfo.h, sinput-l.adb,
46152         sinput-l.ads, sinput.adb, sinput.ads, snames.adb, snames.ads,
46153         snames.h, sprint.adb, sprint.ads, stringt.adb, stringt.ads,
46154         stringt.h, style.adb, switch.adb, switch.ads, sysdep.c, system.ads,
46155         table.adb, targparm.adb, targparm.ads, targtyps.c, tbuild.adb,
46156         tbuild.ads, tracebak.c, trans.c, tree_gen.adb, tree_io.adb,
46157         treepr.adb, treepr.ads, treeprs.ads, treeprs.adt, ttypes.ads,
46158         types.adb, types.ads, types.h, uintp.ads, urealp.ads, usage.adb,
46159         utils.c, utils2.c, validsw.adb, xnmake.adb, xr_tabls.adb,
46160         xr_tabls.ads, xref_lib.adb, xref_lib.ads : Merge in ACT changes.
46161
46162         * 1ssecsta.adb, 1ssecsta.ads, a-chlat9.ads, a-cwila9.ads,
46163         g-enblsp.adb, g-md5.adb, g-md5.ads, gnatname.adb, gnatname.ads,
46164         mkdir.c, osint-b.adb, osint-b.ads, osint-c.adb, osint-c.ads,
46165         osint-l.adb, osint-l.ads, osint-m.adb, osint-m.ads : New files
46166
46167         * 3lsoccon.ads, 5qparame.ads, 5qvxwork.ads, 5smastop.adb,
46168         5zparame.ads, gnatmain.adb, gnatmain.ads, gnatpsys.adb : Removed
46169
46170         * mdllfile.adb, mdllfile.ads, mdlltool.adb, mdlltool.ads : Renamed
46171         to mdll-fil.ad[bs] and mdll-util.ad[bs]
46172
46173         * mdll-fil.adb, mdll-fil.ads, mdll-utl.adb, mdll-utl.ads : Renamed
46174         from mdllfile.ad[bs] and mdlltool.ad[bs]
46175
46176 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
46177
46178         * utils.c (init_gnat_to_gnu, init_gigi_decls): Use ARRAY_SIZE in
46179         lieu of explicit sizeof/sizeof.
46180
46181 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
46182
46183         * misc.c (copy_lang_decl): Remove.
46184
46185 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
46186
46187         * misc.c: Delete traditional-mode-related code copied from the
46188         C front end but not used, or used only to permit the compiler
46189         to link.
46190
46191 2002-02-07  Richard Henderson  <rth@redhat.com>
46192
46193         * adaint.c (__gnat_to_gm_time): First arg is int, not time_t.
46194         * adaint.h (__gnat_to_gm_time): Update prototype.
46195
46196 2002-01-30  Richard Henderson  <rth@redhat.com>
46197
46198         * trans.c (tree_transform) [N_Loop_Statement]: Use
46199         expand_exit_loop_top_cond.
46200
46201 2001-12-23  Richard Henderson  <rth@redhat.com>
46202
46203         * utils.c (end_subprog_body): Push GC context around
46204         rest_of_compilation for nested functions.
46205
46206 2001-12-23  Richard Henderson  <rth@redhat.com>
46207
46208         * 5nosinte.ads: Get definition of "int" from Interfaces.C.
46209
46210 2001-12-23  Florian Weimer  <fw@deneb.enyo.de>
46211
46212         * gnat-style.texi (Declarations and Types): Remove ancient style
46213         rule which was mandated by code generation issues.
46214
46215         * gnat-style.texi (header): Add @dircategory, @direntry.
46216         (title page): Remove date.
46217         (general) Add @./@: where approriate, and two spaces after the
46218         full stop at the end of a sentence.  Use @samp markup when
46219         referring concrete lexical entities (keywords, attribute names
46220         etc.), and @syntax for ARM grammar elements. Use @r for English
46221         text in comments.  Use @emph for emphasis.  Change "if-statements"
46222         etc. to "if statements" (without @samp). Break long lines.  Make
46223         casing of section names consistent.
46224         (Identifiers): Use @samp markup for variable names.
46225         (Comments): Use @samp markup for comment characters. Line-end
46226         comments may follow any Ada code, not just statements.  Fix
46227         misspelling of "Integer" as "integer".
46228         (Loop statements): Do not use variable name "I", use "J".
46229         (Subprogram Declarations): Document alignment.
46230         (Subprogram Bodies, Block statements): Document empty line before
46231         "begin".
46232
46233 2001-12-22  Florian Weimer  <fw@deneb.enyo.de>
46234
46235         * make.adb (Add_Switch): Make Generic_Position a procedure.  The
46236         function approach did not work well because of a side effect (the
46237         function call could reallocate the table which was being indexed
46238         using its result). Fixes ada/4851.
46239
46240 2001-12-19  Robert Dewar  <dewar@gnat.com>
46241
46242         * bindgen.adb: Minor reformatting
46243
46244         * cstand.adb: Minor reformatting
46245
46246         * fmap.adb: Minor reformatting
46247         Change name from Add for Add_To_File_Map (Add is much too generic)
46248         Change Path_Name_Of to Mapped_Path_Name
46249         Change File_Name_Of to Mapped_File_Name
46250         Fix copyright dates in header
46251
46252         * fmap.ads:
46253         Change name from Add for Add_To_File_Map (Add is much too generic)
46254         Change Path_Name_Of to Mapped_Path_Name
46255         Change File_Name_Of to Mapped_File_Name
46256         Fix copyright dates in header
46257
46258         * fname-uf.adb: Minor reformatting.  New names of stuff in Fmap.
46259         Add use clause for Fmap.
46260
46261         * make.adb: Minor reformatting
46262
46263         * osint.adb: Minor reformatting.  Change of names in Fmap.
46264         Add use clause for Fmap.
46265
46266         * prj-env.adb: Minor reformatting
46267
46268         * prj-env.ads: Minor reformatting
46269
46270         * switch.adb: Minor reformatting.  Do proper raise of Bad_Switch if
46271         error found (there were odd exceptions to this general rule in
46272         -gnatec/-gnatem processing)
46273
46274 2001-12-19  Olivier Hainque  <hainque@gnat.com>
46275
46276         * raise.c (__gnat_eh_personality): Exception handling personality
46277         routine for Ada.  Still in rough state, inspired from the C++ version
46278         and still containing a bunch of debugging artifacts.
46279         (parse_lsda_header, get_ttype_entry): Local (static) helpers, also
46280         inspired from the C++ library.
46281
46282         * raise.c (eh_personality): Add comments. Part of work for the GCC 3
46283         exception handling integration.
46284
46285 2001-12-19  Arnaud Charlet  <charlet@gnat.com>
46286
46287         * Makefile.in: Remove use of 5smastop.adb which is obsolete.
46288         (HIE_SOURCES): Add s-secsta.ad{s,b}.
46289         (HIE_OBJS): Add s-fat*.o
46290         (RAVEN_SOURCES): Remove files that are no longer required. Add
46291         interrupt handling files.
46292         (RAVEN_MOD): Removed, no longer needed.
46293
46294 2001-12-19  Robert Dewar  <dewar@gnat.com>
46295
46296         * a-ngelfu.adb: Remove ??? comment for inappropriate Inline_Always
46297         Add 2001 to copyright date
46298
46299         * g-regpat.adb: Change pragma Inline_Always to Inline. There is no
46300         need to force universal inlining for these cases.
46301
46302 2001-12-19  Arnaud Charlet  <charlet@gnat.com>
46303
46304         * s-taprob.adb: Minor clean ups so that this unit can be used in
46305         Ravenscar HI.
46306
46307         * exp_ch7.adb: Allow use of secondary stack in HI mode.
46308         Disallow it when pragma Restrictions (No_Secondary_Stack) is specified.
46309
46310 2001-12-19  Vincent Celier  <celier@gnat.com>
46311
46312         * prj-tree.ads (Project_Node_Record): Add comments for components
46313         Pkg_Id and Case_Insensitive.
46314
46315 2001-12-19  Pascal Obry  <obry@gnat.com>
46316
46317         * g-socket.adb: Minor reformatting. Found while reading code.
46318
46319 2001-12-19  Robert Dewar  <dewar@gnat.com>
46320
46321         * prj-tree.ads: Minor reformatting
46322
46323 2001-12-20  Joseph S. Myers  <jsm28@cam.ac.uk>
46324
46325         * config-lang.in (diff_excludes): Remove.
46326
46327 2001-12-17  Ed Schonberg  <schonber@gnat.com>
46328
46329         * sem_res.adb (Resolve_Selected_Component): do not generate a
46330         discriminant check if the selected component is a component of
46331         the argument of an initialization procedure.
46332
46333         * trans.c (tree_transform, case of arithmetic operators): If result
46334         type is private, the gnu_type is the base type of the full view,
46335         given that the full view itself may be a subtype.
46336
46337 2001-12-17  Robert Dewar  <dewar@gnat.com>
46338
46339         * sem_res.adb: Minor reformatting
46340
46341         * trans.c (tree_transform, case N_Real_Literal): Add missing third
46342         parameter in call to Machine (unknown horrible effects from this
46343         omission).
46344
46345         * urealp.h: Add definition of Round_Even for call to Machine
46346         Add third parameter for Machine
46347
46348 2001-12-17  Ed Schonberg  <schonber@gnat.com>
46349
46350         * sem_warn.adb (Check_One_Unit): Suppress warnings completely on
46351         predefined units in No_Run_Time mode.
46352
46353 2001-12-17  Richard Kenner  <kenner@gnat.com>
46354
46355         * misc.c (insn-codes.h): Now include.
46356
46357 2001-12-17  Olivier Hainque  <hainque@gnat.com>
46358
46359         * a-except.adb: Preparation work for future integration of the GCC 3
46360         exception handling mechanism
46361         (Notify_Handled_Exception, Notify_Unhandled_Exception): New routines
46362         to factorize previous code sequences and make them externally callable,
46363         e.g. for the Ada personality routine when the GCC 3 mechanism is used.
46364         (Propagate_Exception, Raise_Current_Excep, Raise_From_Signal_Handler):
46365         Use the new notification routines.
46366
46367 2001-12-17  Emmanuel Briot  <briot@gnat.com>
46368
46369         * prj-tree.ads (First_Choice_Of): Document the when others case
46370
46371 2001-12-17  Arnaud Charlet  <charlet@gnat.com>
46372
46373         * bindgen.adb (Gen_Ada_Init_*): Set priority of environment task in
46374         HI-E mode, in order to support Ravenscar profile properly.
46375
46376         * cstand.adb (Create_Standard): Duration is a 32 bit type in HI-E
46377         mode on 32 bits targets.
46378
46379 2001-12-17  Vincent Celier  <celier@gnat.com>
46380
46381         * fmap.adb: Initial version.
46382
46383         * fmap.ads: Initial version.
46384
46385         * fname-uf.adb (Get_File_Name): Use mapping if unit name mapped.
46386         If search is successfully done, add to mapping.
46387
46388         * frontend.adb: Initialize the mapping if a -gnatem switch was used.
46389
46390         * make.adb:
46391         (Gnatmake): Add new local variable Mapping_File_Name.
46392          Create mapping file when using project file(s).
46393          Delete mapping file before exiting.
46394
46395         * opt.ads (Mapping_File_Name): New variable
46396
46397         * osint.adb (Find_File): Use path name found in mapping, if any.
46398
46399         * prj-env.adb (Create_Mapping_File): New procedure
46400
46401         * prj-env.ads (Create_Mapping_File): New procedure.
46402
46403         * switch.adb (Scan_Front_End_Switches): Add processing for -gnatem
46404         (Mapping_File)
46405
46406         * usage.adb: Add entry for new switch -gnatem.
46407
46408         * Makefile.in: Add dependencies for fmap.o.
46409
46410 2001-12-17  Ed Schonberg  <schonber@gnat.com>
46411
46412         * sem_ch10.adb (Analyze_With_Clause): Retrieve proper entity when unit
46413         is a package instantiation rewritten as a package body.
46414         (Install_Withed_Unit): Undo previous change, now redundant.
46415
46416 2001-12-17  Gary Dismuke  <dismukes@gnat.com>
46417
46418         * layout.adb:
46419         (Compute_Length): Move conversion to Unsigned to callers.
46420         (Get_Max_Size): Convert Len expression to Unsigned after calls to
46421         Compute_Length and Determine_Range.
46422         (Layout_Array_Type): Convert Len expression to Unsigned after calls to
46423         Compute_Length and Determine_Range.
46424         Above changes fix problem with length computation for supernull arrays
46425         where Max (Len, 0) wasn't getting applied due to the Unsigned
46426         conversion used by Compute_Length.
46427
46428 2001-12-17  Arnaud Charlet  <charlet@gnat.com>
46429
46430         * rtsfind.ads:
46431         (OK_To_Use_In_No_Run_Time_Mode): Allow Ada.Exceptions and
46432          System.Secondary_Stack.
46433         (OK_To_Use_In_Ravenscar_Mode): New table needed to implement Ravenscar
46434          in HI-E mode.
46435         Remove unused entity RE_Exception_Data.
46436
46437         * rtsfind.adb (RTE): Allow Ravenscar Profile in HI mode.
46438
46439         * rident.ads (No_Secondary_Stack): New restriction.
46440
46441 2001-12-17  Joel Brobecker  <brobecke@gnat.com>
46442
46443         * gnat_rm.texi: Fix minor typos. Found while reading the section
46444         regarding "Bit_Order Clauses" that was sent to a customer.
46445         Very interesting documentation!
46446
46447 2001-12-17  Robert Dewar  <dewar@gnat.com>
46448
46449         * sem_case.adb (Choice_Image): Avoid creating improper character
46450         literal names by using the routine Set_Character_Literal_Name. This
46451         fixes bombs in certain error message cases.
46452
46453 2001-12-17  Arnaud Charlet  <charlet@gnat.com>
46454
46455         * a-reatim.adb: Minor reformatting.
46456
46457 2001-12-17  Ed Schonberg  <schonber@gnat.com>
46458
46459         * sem_ch12.adb (Validate_Derived_Type_Instance): Handle properly the
46460         case where the formal is an extension of another formal in the current
46461         unit or in a parent generic unit.
46462
46463 2001-12-17  Arnaud Charlet  <charlet@gnat.com>
46464
46465         * s-tposen.adb: Update comments.  Minor reformatting.
46466         Minor code clean up.
46467
46468         * s-tarest.adb: Update comments.  Minor code reorganization.
46469
46470 2001-12-17  Gary Dismukes  <dismukes@gnat.com>
46471
46472         * exp_attr.adb (Attribute_Tag): Suppress expansion of <type_name>'Tag
46473         when Java_VM.
46474
46475 2001-12-17  Robert Dewa  <dewar@gnat.com>
46476
46477         * exp_attr.adb: Minor reformatting
46478
46479 2001-12-17  Ed Schonberg  <schonber@gnat.com>
46480
46481         * sem_ch3.adb (Build_Derived_Private_Type): Refine check to handle
46482         derivations nested within a child unit: verify that the parent
46483         type is declared in an outer scope.
46484
46485 2001-12-17  Robert Dewar  <dewar@gnat.com>
46486
46487         * sem_ch12.adb: Minor reformatting
46488
46489 2001-12-17  Ed Schonberg  <schonber@gnat.com>
46490
46491         * sem_warn.adb (Check_One_Unit): In No_Run_Time mode, do not post
46492         warning if current unit is a predefined one, from which bodies may
46493         have been deleted.
46494
46495 2001-12-17  Robert Dewar  <dewar@gnat.com>
46496
46497         * eval_fat.ads: Add comment that Round_Even is referenced in Ada code
46498         Fix header format. Add 2001 to copyright date.
46499
46500         * exp_dbug.adb (Get_Encoded_Name): Fix out of bounds reference,
46501         which caused CE during compilation if checks were enabled.
46502
46503 2001-12-17  Vincent Celier  <celier@gnat.com>
46504
46505         * make.adb:
46506         (Switches_Of): New function
46507         (Test_If_Relative_Path): New procedure
46508         (Add_Switches): Use new function Switches_Of
46509         (Collect_Arguments_And_Compile): Use new function Switches_Of.
46510         When using a project file, test if there are any relative
46511         search path. Fail if there are any.
46512         (Gnatmake): Only add switches for the primary directory when not using
46513         a project file. When using a project file, change directory to the
46514         object directory of the main project file. When using a project file,
46515         test if there are any relative search path. Fail if there are any.
46516         When using a project file, fail if specified executable is relative
46517         path with directory information, and prepend executable, if not
46518         specified as an absolute path, with the exec directory.  Make sure
46519         that only one -o switch is transmitted to the linker.
46520
46521         * prj-attr.adb (Initialization_Data): Add project attribute Exec_Dir
46522
46523         * prj-nmsc.adb:
46524         (Ada_Check): Get Spec_Suffix_Loc and Impl_Suffix_Loc,
46525         when using a non standard naming scheme.
46526         (Check_Ada_Naming_Scheme): Make sure that error messages
46527         do not raise exceptions.
46528         (Is_Illegal_Append): Return True if there is no dot in the suffix.
46529         (Language_Independent_Check): Check the exec directory.
46530
46531         * prj.adb (Project_Empty): Add new component Exec_Directory
46532
46533         * prj.ads:
46534         (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Add defaults.
46535         (Project_Data): Add component Exec_Directory
46536
46537         * snames.adb: Updated to match snames.ads revision 1.215
46538
46539         * snames.ads: Added Exec_Dir
46540
46541 2001-12-17  Robert Dewar  <dewar@gnat.com>
46542
46543         * make.adb: Minor reformatting
46544
46545         * prj-nmsc.adb: Minor reformatting
46546
46547         * snames.adb: Updated to match snames.ads
46548
46549         * snames.ads: Alphebetize entries for project file
46550
46551 2001-12-17  Ed Schonberg  <schonber@gnat.com>
46552
46553         * trans.c (process_freeze_entity): Do nothing if the entity is a
46554         subprogram that was already elaborated.
46555
46556 2001-12-17  Richard Kenner  <kenner@gnat.com>
46557
46558         * decl.c (gnat_to_gnu_entity, object): Do not back-annotate Alignment
46559         and Esize if object is referenced via pointer.
46560
46561 2001-12-17  Ed Schonberg  <schonber@gnat.com>
46562
46563         * sem_ch3.adb (Analyze_Variant_Part): check that type of discriminant
46564         is discrete before analyzing choices.
46565
46566 2001-12-17  Joel Brobecker  <brobecke@gnat.com>
46567
46568         * bindgen.adb (Gen_Output_File_Ada): Generate a new C-like string
46569         containing the name of the Ada Main Program. This string is mainly
46570         intended for the debugger.
46571         (Gen_Output_File_C): Do the equivalent change when generating a C file.
46572
46573 2001-12-17  Robert Dewar  <dewar@gnat.com>
46574
46575         * ali.adb: Set new Dummy_Entry field in dependency entry
46576
46577         * ali.ads: Add Dummy_Entry field to source dependency table
46578
46579         * bcheck.adb (Check_Consistency): Ignore dummy D lines
46580
46581         * lib-writ.adb (Writ_ALI): Write dummy D lines for missing source files
46582
46583         * lib-writ.ads: Document dummy D lines for missing files.
46584
46585         * types.ads: (Dummy_Time_Stamp): New value for non-existant files
46586
46587 2001-12-17  Robert Dewar  <dewar@gnat.com>
46588
46589         * ali.adb: Type reference does not reset current file.
46590
46591         * ali.adb: Recognize and scan renaming reference
46592
46593         * ali.ads: Add spec for storing renaming references.
46594
46595         * lib-xref.ads: Add documentation for handling of renaming references
46596
46597         * lib-xref.adb: Implement output of renaming reference.
46598
46599         * checks.adb:
46600         (Determine_Range): Document local variables
46601         (Determine_Range): Make sure Hbound is initialized. It looks as though
46602          there could be a real problem here with an uninitialized reference
46603          to Hbound, but no actual example of failure has been found.
46604
46605 2001-12-17  Laurent Pautet  <pautet@gnat.com>
46606
46607         * g-socket.ads:
46608         Fix comment of Shutdown_Socket and Close_Socket. These functions
46609         should not fail silently because if they are called twice, this
46610         probably means that there is a race condition in the user program.
46611         Anyway, this behaviour is consistent with the rest of this unit.
46612         When an error occurs, an exception is raised with the error message
46613         as exception message.
46614
46615 2001-12-17  Robert Dewar  <dewar@gnat.com>
46616
46617         * frontend.adb: Move call to Check_Unused_Withs from Frontend, so
46618         that it happens before modification of Sloc values for -gnatD.
46619
46620         * gnat1drv.adb: Move call to Check_Unused_Withs to Frontend,
46621         so that it happens before modification of Sloc values for -gnatD.
46622
46623         * switch.adb: Minor reformatting
46624
46625 2001-12-15  Richard Henderson  <rth@redhat.com>
46626
46627         * sem_ch7.adb: Wrap comment.
46628
46629 2001-12-16  Joseph S. Myers  <jsm28@cam.ac.uk>
46630
46631         * 5ataprop.adb, 5atpopsp.adb, 5ftaprop.adb, 5gmastop.adb,
46632         5gtaprop.adb, 5htaprop.adb, 5itaprop.adb, 5lintman.adb,
46633         5omastop.adb, 5oosinte.adb, 5otaprop.adb, 5staprop.adb,
46634         5vinterr.adb, 5vtaprop.adb, 5vtpopde.adb, 5wintman.adb,
46635         5wtaprop.adb, 5zinterr.adb, 5ztaprop.adb, 6vcstrea.adb,
46636         7sintman.adb, 7staprop.adb, 9drpc.adb, ChangeLog, Makefile.in,
46637         a-except.adb, a-tags.ads, a-tasatt.adb, a-teioed.adb,
46638         a-textio.ads, a-witeio.ads, a-wtedit.adb, ali.ads, comperr.adb,
46639         cstand.adb, einfo.ads, errout.adb, exp_ch11.adb, exp_ch2.adb,
46640         exp_ch3.adb, exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch9.adb,
46641         exp_util.adb, exp_util.ads, fname-uf.adb, g-cgi.ads, g-exctra.ads,
46642         g-expect.ads, g-regist.adb, g-spipat.adb, gnatchop.adb,
46643         gnatlink.adb, gnatls.adb, gnatmain.adb, gnatmem.adb, init.c,
46644         make.adb, make.ads, mdlltool.adb, nlists.ads, osint.ads,
46645         par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb, par.adb,
46646         repinfo.adb, s-fatflt.ads, s-fatlfl.ads, s-fatllf.ads,
46647         s-fatsfl.ads, s-finimp.adb, s-finimp.ads, s-interr.adb,
46648         s-secsta.ads, s-shasto.ads, s-stalib.adb, s-stalib.ads,
46649         s-tarest.ads, s-tasdeb.adb, s-tassta.adb, s-tassta.ads,
46650         s-vaflop.ads, scans.ads, scn.adb, sem.ads, sem_aggr.adb,
46651         sem_attr.adb, sem_case.ads, sem_ch10.adb, sem_ch12.adb,
46652         sem_ch13.adb, sem_ch3.adb, sem_ch3.ads, sem_ch5.adb, sem_ch7.adb,
46653         sem_ch8.adb, sem_ch8.ads, sem_type.adb, sem_util.ads, sinfo.ads,
46654         sprint.adb, tbuild.ads, types.ads, utils.c, xeinfo.adb: Fix
46655         spelling errors.
46656
46657 2001-12-14  Vincent Celier  <celier@gnat.com>
46658
46659         * osint.adb(Create_Debug_File): When an object file is specified,
46660         put the .dg file in the same directory as the object file.
46661
46662 2001-12-14  Robert Dewar  <dewar@gnat.com>
46663
46664         * osint.adb: Minor reformatting
46665
46666         * lib-xref.adb (Output_Instantiation): New procedure to generate
46667         instantiation references.
46668
46669         * lib-xref.ads: Add documentation of handling of generic references.
46670
46671         * ali.adb (Read_Instantiation_Ref): New procedure to read
46672         instantiation references
46673
46674         * ali.ads: Add spec for storing instantiation references
46675
46676         * bindusg.adb: Minor reformatting
46677
46678         * switch.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
46679
46680         * usage.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
46681
46682         * gnatcmd.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
46683
46684         * csets.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
46685
46686         * csets.ads:
46687         Fix header format
46688         Add 2001 to copyright date
46689         Add entry for Latin-5 (Cyrillic ISO-8859-5)
46690
46691 2001-12-14  Matt Gingell  <gingell@gnat.com>
46692
46693         * adaint.c: mktemp is a macro on Lynx and can not be used as an
46694         expression.
46695
46696 2001-12-14  Richard Kenner  <kenner@gnat.com>
46697
46698         * misc.c (gnat_expand_constant): Do not strip UNCHECKED_CONVERT_EXPR
46699         if operand is CONSTRUCTOR.
46700
46701 2001-12-14  Ed Schonberg  <schonber@gnat.com>
46702
46703         * trans.c (tree_transform, case N_Assignment_Statement): Set lineno
46704         before emiting check on right-hand side, so that exception information
46705         is correct.
46706
46707 2001-12-14  Richard Kenner  <kenner@gnat.com>
46708
46709         * utils.c (create_var_decl): Throw away initializing expression
46710         if just annotating types and non-constant.
46711
46712 2001-12-14  Vincent Celier  <celier@gnat.com>
46713
46714         * prj-nmsc.adb: (Ada_Check): Migrate drom Ada_Default_... to
46715         Default_Ada_...
46716
46717         * prj.adb: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
46718         Remove functions.
46719         (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Move to spec.
46720
46721         * prj.ads: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
46722         Remove functions.
46723         (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Move from body.
46724
46725 2001-12-16  Joseph S. Myers  <jsm28@cam.ac.uk>
46726
46727         * ChangeLog: Remove piece of diff output.
46728
46729 2001-12-14  Geert Bosch  <bosch@gnat.com>
46730
46731         * config-lang.in: Update copyright notice
46732
46733         * layout.adb: Remove commented out code.
46734
46735         * mdllfile.ads: Update copyright notice. Fix header format.
46736
46737         * sem_case.ads: Likewise.
46738
46739         * sem_ch3.adb: Minor reformatting.
46740
46741 2001-12-12  Geert Bosch  <bosch@gnat.com>
46742
46743         * freeze.ads: Update copyright date.
46744
46745         * g-comlin.ads: Minor reformatting.
46746
46747         * gnat-style.texi: Fix typo.
46748
46749 2001-12-12  Geert Bosch  <bosch@gnat.com>
46750
46751         *  einfo.h: Regenerate.
46752
46753 2001-12-12  Ed Schonberg  <schonber@gnat.com>
46754
46755         * sem_ch12.adb (Save_Entity_Descendant): Use syntactic field names
46756         on known node types, rather than untyped fields. Further cleanups.
46757
46758 2001-12-12  Robert Dewar  <dewar@gnat.com>
46759
46760         * sem_ch12.adb:
46761         (Save_Entity_Descendant): Minor comment update.
46762         (Copy_Generic_Node): Deal with incorrect reference to Associated_Node
46763          of an N_Attribute_Reference node. As per note below, this does not
46764         eliminate need for Associated_Node in attribute ref nodes.
46765         (Associated_Node): Documentation explicitly mentions attribute
46766         reference nodes, since this field is used in such nodes.
46767
46768         * sem_ch12.adb (Associated_Node): Minor documentation cleanup.
46769
46770 2001-12-12  Robert Dewar  <dewar@gnat.com>
46771
46772         * s-stalib.adb: Add more comments on with statements being needed
46773
46774         * par-ch12.adb: Minor reformatting
46775
46776         * prj-dect.ads: Fix copyright header
46777
46778         * s-arit64.adb (Multiply_With_Ovflo_Check): Fix case where both
46779         inputs fit in 32 bits, but the result still overflows.
46780
46781         * s-fatgen.ads: Minor comment improvement
46782
46783 2001-12-12  Ed Schonberg  <schonber@gnat.com>
46784
46785         * sem_ch4.adb (Analyze_Selected_Component): If the prefix is of a
46786         formal derived type, look for an inherited component from the full
46787         view of the parent, if any.
46788
46789 2001-12-12  Robert Dewar  <dewar@gnat.com>
46790
46791         * checks.ads (Apply_Alignment_Check): New procedure.
46792
46793         * exp_ch13.adb (Expand_N_Freeze_Entity): Generate dynamic check to
46794         ensure that the alignment of objects with address clauses is
46795         appropriate, and raise PE if not.
46796
46797         * exp_util.ads (Must_Be_Aligned): Removed, replaced by
46798         Exp_Pakd.Known_Aligned_Enough
46799
46800         * mdllfile.ads: Minor reformatting
46801
46802         * mlib-fil.ads: Minor reformatting
46803
46804 2001-12-12  Ed Schonberg  <schonber@gnat.com>
46805
46806         * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Extend previous
46807         fix to any component reference if enclosing record has non-standard
46808         representation.
46809
46810 2001-12-12  Vincent Celier  <celier@gnat.com>
46811
46812         * g-dirope.ads (Find, Wildcard_Iterator): Moved to child package
46813         Iteration
46814
46815 2001-12-12  Ed Schonberg  <schonber@gnat.com>
46816
46817         * freeze.ads: Make Freeze_Fixed_Point_Type visible, for use in
46818         sem_attr.
46819
46820 2001-12-12  Robert Dewar  <dewar@gnat.com>
46821
46822         * impunit.adb: Add entry for GNAT.Directory_Operations.Iteration
46823
46824 2001-12-12  Emmanuel Briot  <briot@gnat.com>
46825
46826         * g-regexp.adb: Remove all debug code, since it isn't required anymore,
46827         and it adds dependencies to system.io.
46828
46829 2001-12-12  Pascal Obry  <obry@gnat.com>
46830
46831         * g-dirope.adb (Expand_Path.Var): Correctly detect end of
46832         variable name.
46833
46834 2001-12-11  Ed Schonberg  <schonber@gnat.com>
46835
46836         * sem_ch10.adb (Install_Withed_Unit): If the unit is a generic instance
46837         that is the parent of other generics, the instance body replaces the
46838         instance node.  Retrieve the instance of the spec, which is the one
46839         that is visible in clients and within the body.
46840
46841 2001-12-11  Vincent Celier  <celier@gnat.com>
46842
46843         * gnatmain.adb: Initial version.
46844
46845         * gnatmain.ads: Initial version.
46846
46847         * prj-attr.adb (Initialisation_Data): Add package Gnatstub.
46848
46849         * snames.adb: Updated to match snames.ads.
46850
46851         * snames.ads: Added Gnatstub.
46852
46853 2001-12-11  Vincent Celier  <celier@gnat.com>
46854
46855         * prj-attr.adb (Initialization_Data): Change name from
46856         Initialisation_Data.
46857
46858 2001-12-11  Emmanuel Briot  <briot@gnat.com>
46859
46860         * g-regpat.adb (Parse_Literal): Properly handle simple operators ?,
46861         + and * applied to backslashed expressions like \r.
46862
46863 2001-12-11  Vasiliy Fofanov  <fofanov@gnat.com>
46864
46865         * g-os_lib.ads: String_List type added, Argument_List type is now
46866         subtype of String_List.
46867
46868 2001-12-11  Robert Dewar  <dewar@gnat.com>
46869
46870         * g-os_lib.ads: Change copyright to FSF
46871         Add comments for String_List type
46872
46873 2001-12-11  Vincent Celier  <celier@gnat.com>
46874
46875         * g-dirope.adb (Expand_Path): Fix bug. (wrong length when adding a
46876         string to the buffer).
46877
46878 2001-12-11  Ed Schonberg  <schonber@gnat.com>
46879
46880         * freeze.adb: Make Freeze_Fixed_Point_Type visible, for use in
46881         sem_attr.
46882
46883         * sem_attr.adb: Simplify previous fix for Address.
46884         (Set_Bounds): If prefix is a non-frozen fixed-point type, freeze now,
46885         to avoid anomalies where the bound of the type appears to raise
46886         constraint error.
46887
46888 2001-12-11  Robert Dewar  <dewar@gnat.com>
46889
46890         * lib-xref.adb (Output_Refs): Make sure pointers are always properly
46891         handled.
46892
46893 2001-12-11  Ed Schonber   <schonber@gnat.com>
46894
46895         * sem_ch12.adb (Analyze_Subprogram_Instantiation): Check for a
46896         renamed unit before checking for recursive instantiations.
46897
46898 2001-12-11  Emmanuel Briot  <briot@gnat.com>
46899
46900         * prj.ads: Add comments for some of the fields.
46901
46902 2001-12-11  Robert Dewar  <dewar@gnat.com>
46903
46904         * lib-xref.adb (Output_Refs): Don't output type references outside
46905         the main unit if they are not otherwise referenced.
46906
46907 2001-12-11  Ed Schonberg  <schonber@gnat.com>
46908
46909         * sem_attr.adb (Analyze_attribute, case Address and Size): Simplify
46910         code and diagnose additional illegal uses
46911
46912         * sem_util.adb (Is_Object_Reference): An indexed component is an
46913         object only if the prefix is.
46914
46915 2001-12-11  Vincent Celier  <celier@gnat.com>
46916
46917         * g-diopit.adb: Initial version.
46918
46919         * g-diopit.ads: Initial version.
46920
46921         * g-dirope.adb:
46922         (Expand_Path): Avoid use of Unbounded_String
46923         (Find, Wildcard_Iterator): Moved to child package Iteration
46924
46925         * Makefile.in: Added g-diopit.o to GNATRTL_NONTASKING_OBJS
46926
46927 2001-12-11  Robert Dewar  <dewar@gnat.com>
46928
46929         * sem_attr.adb: Minor reformatting
46930
46931 2001-12-11  Ed Schonberg  <schonber@gnat.com>
46932
46933         * sem_ch3.adb: Clarify some ???.
46934
46935 2001-12-11  Robert Dewar  <dewar@gnat.com>
46936
46937         * exp_util.adb (Must_Be_Aligned): Removed, replaced by
46938         Exp_Pakd.Known_Aligned_Enough
46939
46940         * sem_ch13.adb (Check_Address_Alignment): Removed, extended
46941         version is moved to Exp_Ch13.
46942
46943 2001-12-11  Robert Dewar  <dewar@gnat.com>
46944
46945         * einfo.ads: Minor reformatting
46946
46947         * exp_ch5.adb: Add comment for previous.change
46948
46949         * ali.adb: New interface for extended typeref stuff.
46950
46951         * ali.ads: New interface for typeref stuff.
46952
46953         * checks.adb (Apply_Alignment_Check): New procedure.
46954
46955         * debug.adb: Add -gnatdM for modified ALI output
46956
46957         * exp_pakd.adb (Known_Aligned_Enough): Replaces Known_Aligned_Enough.
46958
46959         * lib-xref.adb: Extend generation of <..> notation to cover
46960         subtype/object types. Note that this is a complete rewrite,
46961         getting rid of the very nasty quadratic algorithm previously
46962         used for derived type output.
46963
46964         * lib-xref.ads: Extend description of <..> notation to cover
46965         subtype/object types. Uses {..} for these other cases.
46966         Also use (..) for pointer types.
46967
46968         * sem_util.adb (Check_Potentially_Blocking_Operation): Slight cleanup.
46969
46970         * exp_pakd.adb: Minor reformatting.  Note that prevous RH should say:
46971         (Known_Aligned_Enough): Replaces Must_Be_Aligned.
46972
46973 2001-12-11  Vincent Celier  <celier@gnat.com>
46974
46975         * gnatcmd.adb:
46976         Changed /COMPILE_ONLY to /ACTIONS=COMPILE
46977         Changed /BIND_ONLY to /ACTIONS=BIND
46978         Changed /LINK_ONLY to /ACTIONS=LINK
46979
46980 2001-12-11  Ed Schonberg  <schonber@gnat.com>
46981
46982         * sem_ch8.adb (Find_Selected_Component): improved search for a
46983         candidate package in case of error.
46984
46985         * sem_ch12.adb (Inline_Instance_Body): place head of use_clause
46986         chain back on scope stack before reinstalling use clauses.
46987
46988         * exp_ch5.adb (Expand_N_If_Statement): if Constant_Condition_Warnings
46989         is enabled, do not kill the code for the condition, to preserve
46990         warning.
46991
46992 2001-12-11  Robert Dewar  <dewar@gnat.com>
46993
46994         * checks.adb (Insert_Valid_Check): Apply validity check to expression
46995         of conversion, not to result of conversion.
46996
46997 2001-12-11  Ed Schonberg  <schonber@gnat.com>
46998
46999         * sem_ch3.adb (Build_Derived_Record_Type): set Controlled flag
47000         before freezing parent. If the declarations are mutually recursive,
47001         an access to the current record type may be frozen before the
47002         derivation is complete.
47003
47004 2001-12-05  Vincent Celier  <celier@gnat.com>
47005
47006         * gnatcmd.adb: (MAKE): Add new translations: -b /BIND_ONLY,
47007         -c /COMPILE_ONLY, -l /LINK_ONLY
47008
47009         * opt.ads:
47010         (Bind_Only): New Flag
47011         (Link_Only): New flag
47012
47013         * switch.adb (Scan_Make_Switches): Add processing for -b (Bind_Only)
47014         and -l (Link_Only)
47015
47016         * makeusg.adb: Add new switches -b and -l. Update Copyright notice.
47017
47018         * make.adb:
47019         (Do_Compile_Step, Do_Bind_Step, Do_Link_Step): New flags.
47020         (Gnatmake): Set the step flags. Only perform a step if the
47021         corresponding step flag is True.
47022         (Scan_Make_Arg): Reset the bind and link step flags when -u
47023         or -gnatc has been specified.
47024
47025 2001-12-05  Ed Schonberg  <schonber@gnat.com>
47026
47027         * sem_eval.adb (Eval_Concatenation): If left operand is a null string,
47028         get bounds from right operand.
47029
47030         * sem_eval.adb: Minor reformatting
47031
47032         * exp_util.adb (Make_Literal_Range): use bound of literal rather
47033         than Index'First, its lower bound may be different from 1.
47034
47035         * exp_util.adb: Undo earlier change, fixes ACVC regressions C48009B
47036         and C48009J
47037
47038 2001-12-05  Vincent Celier  <celier@gnat.com>
47039
47040         * prj-nmsc.adb Minor reformatting
47041
47042         * prj-nmsc.adb (Language_Independent_Check): Reset Library flag if
47043         set and libraries are not supported.
47044
47045 2001-12-05  Ed Schonberg  <schonber@gnat.com>
47046
47047         * sem_ch3.adb (Build_Derived_Private_Type): set Public status of
47048         private view explicitly, so the back-end can treat as a global
47049         when appropriate.
47050
47051 2001-12-05  Ed Schonberg  <schonber@gnat.com>
47052
47053         * sem_ch12.adb (Instantiate_Package_Body): if instance is a compilation
47054          unit, always replace instance node with new body, for ASIS use.
47055
47056 2001-12-05  Vincent Celier  <celier@gnat.com>
47057
47058         * prj-nmsc.adb (Language_Independent_Check): Issue a warning if
47059         libraries are not supported and both attributes Library_Name and
47060         Library_Dir are specified.
47061
47062         * prj-proc.adb (Expression): Set location of Result to location of
47063         first term.
47064
47065         * Makefile.in: Add mlib.o, mlib-fil.o, mlib-tgt and mlib-utl to GNATLS.
47066         (prj-nmsc is now importing MLib.Tgt)
47067
47068         * prj-proc.adb: Put the change indicated above that was forgotten.
47069
47070 2001-12-05  Robert Dewar  <dewar@gnat.com>
47071
47072         * Makefile.in: Add dependencies for System.IO for GNAT.Regexp
47073
47074 2001-12-05  Ed Schonberg  <schonber@gnat.com>
47075
47076         * sem_ch3.adb (Build_Derived_Concurrent_Type): If derivation imposes a
47077         constraint, introduce explicit subtype declaration and derive from it.
47078
47079         * sem_ch3.adb: Minor reformatting
47080
47081 2001-12-05  Robert Dewar  <dewar@gnat.com>
47082
47083         * checks.adb (Determine_Range): Increase cache size for checks.
47084         Minor reformatting
47085
47086         * exp_ch6.adb: Minor reformatting
47087         (Expand_N_Subprogram_Body): Reset Is_Pure for any subprogram that has
47088         a parameter whose root type is System.Address, since treating such
47089         subprograms as pure in the code generator is almost surely a mistake
47090         that will lead to unexpected results.
47091
47092         * exp_util.adb (Remove_Side_Effects): Clean up old ??? comment and
47093         change handling of conversions.
47094
47095         * g-regexp.adb: Use System.IO instead of Ada.Text_IO.
47096
47097 2001-12-05  Ed Schonberg  <schonber@gnat.com>
47098
47099         * sem_ch3.adb (Analyze_Object_Declaration): If expression is an
47100         aggregate with static wrong size, attach generated Raise node to
47101         declaration.
47102
47103 2001-12-05  Robert Dewar  <dewar@gnat.com>
47104
47105         * sem_attr.adb (Analyze_Attribute): Defend against bad Val attribute.
47106         Fixes compilation abandoned bomb in B24009B.
47107
47108 2001-12-05  Ed Schonberg  <schonber@gnat.com>
47109
47110         * sem_ch12.adb:
47111         Document use of Associated_Node on Selected_Components.
47112         (Save_Global_Operand_Descendants): Change to Save_Entity_Descendants,
47113         to clarify use of untyped descendant fields.
47114
47115 2001-12-05  Robert Dewar  <dewar@gnat.com>
47116
47117         * prj-dect.ads: Add ??? comment
47118         Add 2001 to copyright notice (was not done in after all)
47119
47120         * prj-part.adb: Minor reformatting. Reword one awkward error message.
47121
47122         * prj.ads: Minor reformatting throughout, and add some ??? comments
47123
47124         * snames.ads: Minor reformatting
47125
47126 2001-12-05  Geert Bosch  <bosch@gnat.com>
47127
47128         * snames.adb: Autoupdate
47129
47130 2001-12-05  Vincent Celier  <celier@gnat.com>
47131
47132         * prj-dect.adb (Parse): Rename parameter Modifying to Extends.
47133
47134         * prj-dect.ads (Parse): Rename parameter Modifying to Extends.
47135
47136         * prj-env.adb: Minor comment changes (modifying -> extends).
47137
47138         * prj-nmsc.adb: Minor comment changes (modifying -> extends).
47139
47140         * prj-part.adb (Parse_Single_Project): Change Tok_Modifying to
47141         Tok_Extends.
47142
47143         * prj.adb (Initialize): Change Modifying to Extends.
47144
47145         * scans.ads (Token_Type): Change Tok_Modifying to Tok_Extends.
47146
47147         * prj.ads: Minor comment change (Modifying -> extending).
47148
47149         * snames.ads: Change modifying to extends.
47150
47151 2001-12-05  Robert Dewar  <dewar@gnat.com>
47152
47153         * sem_warn.adb: Remove stuff for conditionals, we are not going to
47154         do this after all.
47155
47156         * sem_warn.ads: Remove stuff for conditionals, we are not going to
47157         do this after all.  Add 2001 to copyright notice
47158
47159 2001-12-04  Geert Bosch  <bosch@gnat.com>
47160
47161         *  einfo.h, sinfo.h, treeprs.ads: Regenerate.
47162
47163 2001-12-04  Robert Dewar  <dewar@gnat.com>
47164
47165         * errout.adb (Error_Msg): Ignore attempt to put error msg at junk
47166         location if we already have errors. Stops some cases of cascaded
47167         errors.
47168
47169         * errout.adb: Improve comment.
47170
47171 2001-12-04  Robert Dewar  <dewar@gnat.com>
47172
47173         * sem_ch12.adb:
47174         (Analyze_Formal_Type_Definition): Defend against Error.
47175         (Analyze_Formal_Subprogram): Defend against Error.
47176
47177         * par-ch12.adb (F_Formal_Type_Declaration): In case of error,
47178         remove following semicolon if present. Removes cascaded error.
47179
47180 2001-12-04  Douglas B. Rupp  <rupp@gnat.com>
47181
47182         * bindgen.adb:
47183         (Gen_Exception_Table_Ada): Write "begin" and then return if Num
47184          exceptions equals 0.
47185         (Gen_Exception_Table_C): Return if Num exceptions equals 0.
47186         Fixes PIWG E tests (which have to be run with -gnatL).
47187
47188 2001-12-04  Robert Dewar  <dewar@gnat.com>
47189
47190         * einfo.ads: Minor reformatting
47191
47192 2001-12-04  Ed Schonberg  <schonber@gnat.com>
47193
47194         * einfo.ads: Block_Node points to the identifier of the block, not to
47195         the block node itself, to preserve the link when the block is
47196         rewritten, e.g. within an if-statement with a static condition.
47197
47198         * inline.adb (Cleanup_Scopes): recover block statement from block
47199         entity using new meaning of Block_Node.
47200
47201         * sem_ch5.adb (Analyze_Block_Statement): set Block_Node to point to
47202         identifier of block node, rather than to node itself.
47203
47204 2001-12-04  Gary Dismukes  <dismukes@gnat.com>
47205
47206         * layout.adb:
47207         (Get_Max_Size): Fix "start of processing" comment to say Get_Max_Size.
47208         (Discrimify): Go back to setting the Etypes of the selected component
47209         because the Vname component does not exist at this point and will
47210         fail name resolution. Also set Analyzed.
47211         Remove with and use of Sem_Res.
47212
47213 2001-12-04  Arnaud Charlet  <charlet@gnat.com>
47214
47215         * Makefile.in: (HIE_SOURCES): add s-fat*.
47216
47217 2001-12-04  Robert Dewar  <dewar@gnat.com>
47218
47219         * sem_attr.adb:
47220         (Compile_Time_Known_Attribute): New procedure.
47221         (Eval_Attribute, case Size): Use Compile_Time_Known_Attribute to ensure
47222          proper range check.
47223
47224 2001-12-04  Ed Schonberg  <schonber@gnat.com>
47225
47226         * sem_ch7.adb (New_Private_Type): Set Is_Tagged_Type flag before
47227         processing discriminants to diagnose illegal default values.
47228
47229 2001-12-04  Ed Schonberg  <schonber@gnat.com>
47230
47231         * sem_attr.adb (Resolve_Attribute): Handle properly an non-classwide
47232         access discriminant within a type extension that constrains its
47233         parent discriminants.
47234
47235 2001-12-04  Ed Schonberg  <schonber@gnat.com>
47236
47237         * sem_ch3.adb (Find_Type_Of_Subtype_Indic): If subtype indication
47238         is malformed, use instance of Any_Id to allow analysis to proceed.
47239
47240         * par-ch12.adb (P_Formal_Type_Declaration): Propagate Error if
47241         type definition is illegal.
47242         (P_Formal_Derived_Type_Definition): Better recovery when TAGGED is
47243         misplaced.
47244
47245 2001-12-04  Ed Schonberg  <schonber@gnat.com>
47246
47247         * sem_warn.adb (Output_Unreferenced_Messages): Extend previous fix to
47248         constants.
47249
47250 2001-12-04  Robert Dewar  <dewar@gnat.com>
47251
47252         * errout.adb: Minor reformatting
47253
47254 2001-12-04  Robert Dewar  <dewar@gnat.com>
47255
47256         * exp_util.adb: Minor reformatting from last change
47257
47258         * errout.adb (Check_For_Warning): For a Raised_Constraint_Error node
47259         which is a rewriting of an expression, traverse the original
47260         expression to remove warnings that may have been posted on it.
47261
47262 2001-12-04  Ed Schonberg  <schonber@gnat.com>
47263
47264         * exp_util.adb (Must_Be_Aligned): Return false for a component of a
47265         record that has other packed components.
47266
47267 2001-12-04  Douglass B. Rupp  <rupp@gnat.com>
47268
47269         * adaint.c: Minor cleanups.
47270
47271 2001-12-04  Douglass B. Rupp  <rupp@gnat.com>
47272
47273         * adaint.c: Do not use utime.h on vxworks.
47274
47275 2001-12-04  Arnaud Charlet  <charlet@gnat.com>
47276
47277         * Makefile.adalib: Clarify step 3 (use of gnat.adc) as it causes
47278         more confusion than it solves.
47279
47280 2001-12-04  Geert bosch  <bosch@gnat.com>
47281
47282         * einfo.h, nmake.adb, nmake.ads, sinfo.h treeprs.ads: Regenerate.
47283
47284 2001-12-04  Geert Bosch  <bosch@gnat.com>
47285
47286         * Makefile.in (update-sources): New target.
47287         For use by gcc_release script.
47288
47289 2001-12-04  Ed Schonberg  <schonber@gnat.com>
47290
47291         * sem_prag.adb (Analyze_Pragma, case Validity_Checks): do not treat as
47292         a configuration pragma, it is now legal wherever a pragma can appear.
47293
47294 2001-12-04  Zack Weinberg  <zack@codesourcery.com>
47295
47296         * Makefile.in: Don't set ALL.  Delete @cross_defines@,
47297         @cross_overrides@, @build_overrides@ stanzas.  INTERNAL_CFLAGS
47298         is now @CROSS@ -DIN_GCC; update comment.
47299
47300 2001-12-04  Robert Dewar  <dewar@gnat.com>
47301
47302         * einfo.adb (Has_Pragma_Pure_Function): New flag.
47303         Fix problem that stopped ceinfo from working
47304
47305         * einfo.ads (Has_Pragma_Pure_Function): New flag.
47306
47307         * sem_prag.adb (Pure_Function): Set new flag Has_Pragma_Pure_Function.
47308
47309 2001-12-04  Douglas B. Rupp  <rupp@gnat.com>
47310
47311         * gnatchop.adb:
47312         (File_Time_Stamp): New procedure.
47313         (Preserve_Mode): New boolean.
47314         (Write_Unit): Pass time stamp.
47315         Implement -p switch (preserve time stamps).
47316
47317         * gnatcmd.adb (CHOP): Add translation for -p (/PRESERVE).
47318
47319         * gnatchop.adb: Do usage info for -p switch
47320
47321         * adaint.h (__gnat_set_file_time_name): New function
47322
47323         * adaint.c (__gnat_set_file_time_name): Implement
47324
47325         * adaint.h: Fix typo
47326
47327 2001-12-03  Robert Dewar  <dewar@gnat.com>
47328
47329         * sinfo.ads: Minor reformatting. N_Freeze_Entity node does not
47330         have Associated_Node.
47331
47332 2001-12-03  Robert Dewar  <dewar@gnat.com>
47333
47334         * prj-proc.adb: Minor reformatting
47335
47336         * make.adb: Minor reformatting
47337
47338 2001-12-03  Geert Bosch  <bosch@gnat.com>
47339
47340         * make.adb: Minor reformatting.
47341
47342 2001-12-03 Robert Dewar  <dewar@gnat.com>
47343
47344         * sem_ch12.adb: Minor reformatting
47345
47346 2001-12-03  Ed Schonberg  <schonber@gnat.com>
47347
47348         * sem_ch12.adb (Inline_Instance_Body): Use Save_Scope_Stack and
47349         push Standard on the stack before analyzing the instance body,
47350         in order to have a clean visibility environment.
47351
47352         * sem_ch12.adb (Inline_Instance_Body): Remove redundant code.
47353
47354 2001-12-03  Ed Schonberg  <schonber@gnat.com>
47355
47356         * sem_ch12.adb (Instantiate_Package_Body): Protect against double
47357         instantiation of a body that contains an inlined body.
47358
47359 2001-12-03  Ed Schonberg  <schonber@gnat.com>
47360
47361         * sem_ch12.adb:
47362         (Analyze_generic_subprogram_Declaration): Set outer_generic_scope,
47363         to prevent freezing within formal packages.
47364         (Freeze_Subprogram_Body): If body comes from another instance that
47365         appeared before its own body, place freeze node at end of current
47366         declarative part, to prevent a back-end crash.
47367         (Inline_Instance_Body): Handle properly a package instance within
47368         a subprogram instance that is a child unit.
47369
47370 2001-12-01  Graham Stott  <grahams@redhat.com>
47371
47372         * Makefile.in (misc.o): Add missing $(srcdir) prefix
47373         and add optabs.h dependency.
47374
47375         * misc.c: Include optabs.h
47376         (gnat_tree_code_type): Make static and const.
47377         (gnat_tree_code_length): Likewise.
47378         (gnat_tree_code_name): Likewise.
47379         (update_setjmp_buf): Obtain operands mode from insn_data.
47380
47381 2001-11-29  Richard Henderson  <rth@redhat.com>
47382
47383         * init.c: Remove obsolete dwarf2 frame.h section.
47384
47385 2001-11-29  Joseph S. Myers  <jsm28@cam.ac.uk>
47386
47387         * Make-lang.in (ada.generated-manpages): New dummy target.
47388
47389 2001-11-29  Ed Schonberg  <schonber@gnat.com>
47390
47391         * g-os_lib.adb (Add_To_Command): use explicit loop to move string
47392         into Command, an array conversion is illegal here. Uncovered by
47393         ACATS B460005.
47394
47395 2001-11-28  Geert Bosch  <bosch@gnat.com>
47396
47397         * init.c: Minor whitespace changes.
47398
47399 2001-11-28  Doug Rupp  <rupp@gnat.com>
47400
47401         * init.c: (__gnat_install_handler,VMS): Increase size of alternate
47402         signal stack.
47403
47404 2001-11-28  Zack Weinberg  <zack@codesourcery.com>
47405
47406         * misc.c (gnat_expand_constant): Move declaration above
47407         definition of lang_hooks.
47408         (LANG_HOOKS_EXPAND_CONSTANT): Set to gnat_expand_constant.
47409         (gnat_init): lang_expand_constant no longer exists.
47410
47411         (internal_error_function): Remove #ifdef HAVE_VPRINTF.  We
47412         always have vprintf.
47413         (gnat_init): Always call set_internal_error_function.
47414
47415 2001-11-27  Andreas Jaeger  <aj@suse.de>
47416
47417         * Makefile.in (stamp-tool_src_dir): Use symbolic link.
47418
47419 2001-11-27  Laurent Guerby  <guerby@acm.org>
47420
47421         * Makefile.in: Regenerate Ada dependencies.
47422
47423 2001-11-26  Richard Henderson  <rth@redhat.com>
47424
47425         * Make-lang.in (gnatbind, gnatmake, gnatbl, gnatchop, gnatcmd,
47426         gnatlink, gnatkr, gnatls, gnatmem, gnatprep, gnatpsta, gnatpsys,
47427         gnatxref, gnatfind, gnatlbr): Depend on CONFIG_H and prefix.o.
47428
47429 2001-11-25  Laurent Guerby  <guerby@acm.org>
47430
47431         * sysdep.c (rts_get_*): Fix style.
47432
47433 2001-11-19  Laurent Guerby  <guerby@acm.org>
47434
47435         * Makefile.in (INCLUDES_FOR_SUBDIR): Remove redundant system include
47436         since it is of no apparent use and cause warnings.
47437
47438 2001-11-18  Neil Booth  <neil@daikokuya.demon.co.uk>
47439
47440         * misc.c (gnat_decode_option, gnat_init_options): Make definitions
47441         static too.
47442         (gnat_init): Don't return NULL.
47443         (finish_parse): Remove.
47444
47445 2001-11-17  Laurent Guerby  <guerby@acm.org>
47446
47447         * Make-lang.in (GNATLIBFLAGS): Add -W -Wall.
47448         * gigi.h (init_decl_processing): Rename to gnat_init_decl_processing.
47449         * io-aux.c: Provide K&R prototypes to all functions, reformat code.
47450         * lang-spec.h: Add missing struct field to silence warnings.
47451         * sysdep.c (rts_get_*): Provide K&R prototype.
47452         * sysdep.c (Unlock_Task, Lock_Task): Move to K&R prototype.
47453         * traceback.c (Unlock_Task, Lock_Task): Likewise.
47454         * tracebak.c (__gnat_backtrace): Remove unused variable.
47455         * utils.c (end_subprog_body): Move to K&R style.
47456
47457 Thu Nov 15 18:16:17 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
47458
47459         * trans.c, utils2.c: Remove PALIGN parameter to get_inner_reference.
47460
47461 2001-11-15  Neil Booth  <neil@daikokuya.demon.co.uk>
47462
47463         * misc.c (gnat_init): Change prototype.  Include the
47464         functionality of the old init_parse and init_decl_processing.
47465         (gnat_init_decl_processing): New prototype.
47466         (init_parse): Remove.
47467         * utils.c (init_decl_processing): Rename gnat_init_decl_processing.
47468
47469 2001-11-09  Neil Booth  <neil@daikokuya.demon.co.uk>
47470
47471         * misc.c (gnat_print_decl, gnat_print_type): Renamed.
47472         (LANG_HOOKS_PRINT_DECL, LANG_HOOKS_PRINT_TYPE): Override.
47473         (print_lang_statistics, lang_print_xnode, print_lang_identifier,
47474         set_yydebug): Remove.
47475
47476 2001-11-09  Neil Booth  <neil@daikokuya.demon.co.uk>
47477
47478         * misc.c (LANG_HOOKS_NAME, LANG_HOOKS_IDENTIFIER_SIZE): Override.
47479         (struct lang_hooks): Constify.
47480         (language_string, lang_identify): Remove.
47481         * utils.c (init_decl_processing): Update.
47482
47483 2001-11-06  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
47484
47485         * misc.c: Include langhooks-def.h.
47486         * Makefile.in: Update.
47487
47488 2001-10-30  Robert Dewar  <dewar@gnat.com>
47489
47490         * style.adb:
47491         (Check_Identifier): Rewrite circuit to be compatible with use of letters
47492         in the upper half of ASCII.
47493         (Check_Identifier): Minor reformatting
47494
47495 2001-10-30  Geert Bosch  <bosch@gnat.com>
47496
47497         * (Associated_Node, Set_Associated_Node): Do not check for
47498         Freeze_Entity.
47499
47500 2001-10-30  Robert Dewar  <dewar@gnat.com>
47501
47502         * a-reatim.ads: Minor reformatting
47503
47504 2001-10-30  Robert Dewar  <dewar@gnat.com>
47505
47506         * gnatdll.adb: Minor reformatting throughout. Many ??? added for
47507         undocumented declarations.
47508
47509 2001-10-30  Pascal Obry  <obry@gnat.com>
47510
47511         * gnatdll.adb (Parse_Command_Line): handle -g option to be passed
47512         to the binder and linker.
47513         Minor style fix.
47514
47515         * mdll.ads: Fix layout.  Update copyright notice.
47516
47517         * mdll.adb: Fix layout.  Update copyright notice.
47518
47519 2001-10-30  Robert Dewar  <dewar@gnat.com>
47520
47521         * usage.adb: Minor fix to output for -gnaty.
47522
47523 2001-10-30  Ed Schonberg  <schonber@gnat.com>
47524
47525         * a-reatim.ads: Makes Seconds_Count into a 64-bit integer,
47526         to accommodate all its possible values.
47527
47528         * a-reatim.adb (Split): Special-case handling of Time_Span_First
47529         and of small absolute values of T.
47530
47531 2001-10-30  Richard Kenner  <kenner@gnat.com>
47532
47533         * misc.c (gnat_expand_expr, case NULL_EXPR): Remove call to
47534         set_mem_attributes since not needed and wrong if RESULT if a REG;
47535         fixes ACATS failures.
47536
47537 2001-10-30  Geert Bosch  <bosch@gnat.com>
47538
47539         * 86numaux.adb, a-tigeau.ads, a-wtgeau.ads, fname-sf.ads, g-traceb.ads,
47540         s-tasdeb.ads, sem_maps.ads: Add 2001 to copyright notice.
47541
47542 2001-10-30  Robert Dewar  <dewar@gnat.com>
47543
47544         * bindusg.adb: Undocument -f switch.
47545
47546         * gnatcmd.adb: Remove /FULL_ELABORATION.
47547
47548         * opt.ads (Force_RM_Elaboration_Order): Document that this is
47549         obsolescent.
47550
47551         * gnatbind.adb: Output new warning for use of obsolescent -f switch.
47552
47553         * gnatbind.adb: Minor update of warning msg.
47554
47555 2001-10-30  Vincent Celier  <celier@gnat.com>
47556
47557         * gnatcmd.adb (MAKE, BIND, LINK, LIST, FIND, XREF): Add translations
47558         for project file switches (-P (/PROJECT_FILE=),
47559          -X (/EXTERNAL_REFERENCE=) and -vPx (/PROJECT_FILE_VERBOSITY=DEFAULT
47560         or MEDIUM or HIGH)
47561
47562 2001-10-30  Geert Bosch  <bosch@gnat.com>
47563
47564         * decl.c: Minor whitespace fixes.
47565
47566 2001-10-30  Richard Kenner  <kenner@gnat.com>
47567
47568         * utils2.c (build_allocator): Test for SIZE overflow in array case too
47569
47570 2001-10-30  Geert Bosch  <bosch@gnat.com>
47571
47572         * ali-util.adb (Initialize_Checksum): Use out-mode instead of in out.
47573         Found due to GCC 3.0 warning of using uninitialized value.
47574
47575         * layout.adb:
47576         (Get_Max_Size): Use variant record for tracking value/expression.
47577          Makes logic clearer and prevents warnings for uninitialized variables.
47578         (Layout_Array_Type): Use variant record for tracking value/expression.
47579          Makes logic clearer and prevents warnings for uninitialized variables.
47580
47581 2001-10-30  Robert Dewar  <dewar@gnat.com>
47582
47583         * lib.adb: Minor reformatting
47584
47585         * s-taprop.ads: Minor reformatting
47586
47587 2001-10-29  Laurent Guerby  <guerby@acm.org>
47588
47589         * init.c:
47590         (Raise_From_Signal_Handler, Propagate_Signal_Exception): Make arg
47591         const.
47592         (_gnat_error_handler): Make MSG const.
47593
47594 2001-10-29  Richard Kenner  <kenner@gnat.com>
47595
47596         * sysdep.c: Fix localtime_r problem on LynxOS.
47597         Also remove #elif to avoid warnings.
47598
47599         * misc.c (yyparse): Don't set up and register jmpbuf; remove decls
47600         used by this.
47601
47602         * decl.c (annotate_value): Make SIZE unsigned to avoid warning.
47603
47604 2001-10-28  Joseph S. Myers  <jsm28@cam.ac.uk>
47605
47606         * 86numaux.adb, a-tigeau.ads, a-wtgeau.ads, decl.c, exp_ch6.adb,
47607         exp_ch9.adb, exp_util.adb, fname-sf.ads, freeze.ads, g-awk.adb,
47608         g-comlin.ads, g-dirope.adb, g-dyntab.ads, g-socket.ads,
47609         g-table.ads, g-traceb.ads, gnat-style.texi, gnatchop.adb, init.c,
47610         layout.adb, layout.ads, mdllfile.ads, mlib-fil.ads, osint.ads,
47611         s-fatgen.adb, s-imgrea.adb, s-taprop.ads, s-tasdeb.ads,
47612         sem_aggr.adb, sem_attr.adb, sem_case.ads, sem_ch13.adb,
47613         sem_ch3.adb, sem_elab.adb, sem_maps.ads, sem_res.adb,
47614         sem_util.ads, sinfo.ads, sinput.ads, table.adb, table.ads,
47615         types.ads, urealp.adb: Fix spelling errors.
47616
47617 2001-10-27  Laurent Guerby  <guerby@acm.org>
47618
47619         * trans.c (gigi): Fix non determinism leading to bootstrap
47620         comparison failures for debugging information.
47621
47622 2001-10-26  Florian Weimer  <fw@deneb.enyo.de>
47623
47624         * gnat_rm.texi: Use @./@: where appropriate.
47625
47626 2001-10-26  Robert Dewar  <dewar@gnat.com>
47627
47628         * sinfo.adb: Define Associated_Node to overlap Entity field. Cleanup.
47629
47630 2001-10-26  Richard Kenner  <kenner@gnat.com>
47631
47632         * gmem.c (__gnat_gmem_read_next): Properly check for EOF
47633
47634 2001-10-26  Richard Kenner  <kenner@gnat.com>
47635
47636         * decl.c (validate_size): Modify message for bad size to avoid
47637         implication that compiler is modifying the size.
47638
47639 2001-10-26  Robert Dewar  <dewar@gnat.com>
47640
47641         * prj-util.adb: Minor reformatting. Fix bad header format.
47642
47643 2001-10-26  Robert Dewar  <dewar@gnat.com>
47644
47645         * sinfo.ads: Define Associated_Node to overlap Entity field. Cleanup.
47646
47647         * sinfo.ads: Clarify use of Associated_Node (documentation only).
47648
47649         * sem_ch12.adb: Change Node4 to Associated_Node. Change
47650         Associated_Node to Get_Associated_Node. Put use of Unchecked_Access
47651         much more narrowly in places where needed. These are cleanups.
47652
47653 2001-10-26  Joel Brobecker  <brobecke@gnat.com>
47654
47655         * 5zosinte.ads (null_pthread): new constant.
47656
47657         * 5ztaprop.adb:
47658         (Initialize_TCB): Initialize thread ID to null, to be able to verify
47659          later that this field has been set.
47660         (Finalize_TCB): ditto.
47661         (Suspend_Task): Verify that the thread ID is not null before using it.
47662         (Resume_Task): ditto.
47663
47664         * s-tasdeb.adb:
47665         (Resume_All_Tasks): Lock the tasks list before using it.
47666         (Suspend_All_Tasks): ditto.
47667
47668 2001-10-26  Richard Kenner  <kenner@gnat.com>
47669
47670         * decl.c (gnat_to_gnu_entity, case E_General_Access_Type):
47671         Make constant variant of designated type for Is_Access_Constant.
47672         Call update_pointer_to with main variant.
47673
47674         * trans.c (process_freeze_entity, process_type):
47675         Call update_pointer_to on main variant.
47676
47677         * utils.c (update_pointer_to): Make corresponding variant for NEW_TYPE.
47678         If main variant, update all other variants.
47679
47680         * utils2.c (build_unary_op, case INDIRECT_REF): No longer set
47681         TREE_STATIC.
47682
47683 2001-10-26  Robert Dewar  <dewar@gnat.com>
47684
47685         * prj-util.adb: Minor reformatting
47686
47687 2001-10-26  Robert Dewar  <dewar@gnat.com>
47688
47689         * prj-util.adb: Minor reformatting
47690
47691 2001-10-26  Robert Dewar  <dewar@gnat.com>
47692
47693         * prj-attr.adb: Minor reformatting throughout
47694
47695 2001-10-26  Robert Dewar  <dewar@gnat.com>
47696
47697         * prj-attr.ads: Minor reformatting
47698         Add ??? comment (this whole spec has almost no comments)
47699
47700 2001-10-26  Vincent Celier  <celier@gnat.com>
47701
47702         * g-os_lib.adb (Normalize_Pathname): Preserve the double slash
47703         ("//") that precede the drive letter on Interix.
47704
47705 2001-10-26  Geert Bosch  <bosch@gnat.com>
47706
47707         * gnat_rm.texi: Add GNAT Reference Manual.
47708
47709 2001-10-25  Robert Dewar  <dewar@gnat.com>
47710
47711         * sem_ch8.adb (Analyze_Package_Renaming): Skip analysis if Name
47712         is Error. Similar change for other renaming cases.
47713
47714 2001-10-25  Robert Dewar  <dewar@gnat.com>
47715
47716         * s-atacco.ads: Add pragma Inline_Always for functions.
47717         Fix header format. Add copyright 2001
47718
47719 2001-10-25  Ed Schonberg  <schonber@gnat.com>
47720
47721         * par-ch3.adb (P_Subtype_Mark_Resync): for an anonymous array
47722         return Error rather than Empty so that analysis can proceed.
47723
47724 2001-10-25  Ed Schonberg  <schonber@gnat.com>
47725
47726         * sem_util.adb (Enter_Name): better handling of cascaded error
47727         messages when a unit appears in its own context.
47728
47729 2001-10-25  Ed Schonberg  <schonber@gnat.com>
47730
47731         * sem_util.adb (Defining_Entity): in case of error, attach created
47732         entity to specification, so that semantic analysis can proceed.
47733
47734 2001-10-25  Robert Dewar  <dewar@gnat.com>
47735
47736         * sem_util.adb
47737         (Defining_Entity): Deal with Error.
47738         (Process_End_Label): Deal with bad end label for.
47739
47740 2001-10-25  Ed Schonberg  <schonber@gnat.com>
47741
47742         * sem_elab.adb (Check_A_Call): refine message when call is in an
47743         instance but callee is not declared in the generic unit.
47744
47745 2001-10-25  Ed Schonberg  <schonber@gnat.com>
47746
47747         * sem_elab.adb (Check_A_Call): check for renaming before finding the
47748         enclosing unit, which may already be different from the calling unit.
47749
47750 2001-10-25  Geert Bosch  <bosch@gnat.com>
47751
47752         * 4gintnam.ads: fix header format.
47753
47754 2001-10-25  Ed Schonberg  <schonber@gnat.com>
47755
47756         * sem_res.adb (Resolve_Call): if the call is actually an indexing
47757         operation on the result of a parameterless call, perform elaboration
47758         check after the node has been properly rewritten.
47759
47760         * sem_ch12.adb (Copy_Generic_Node): after the proper body has been
47761         inlined within the generic tree, the defining identifier is not a
47762         compilation_unit.
47763
47764 2001-10-25  Ed Schonberg  <schonber@gnat.com>
47765
47766         * sem_res.adb (Resolve): special-case resolution of Null in an
47767          instance or an inlined body to avoid view conflicts.
47768
47769         * sem_ch12.adb (Copy_Generic_Node): for allocators, check for view
47770          compatibility by retrieving the access type of the generic copy.
47771
47772 2001-10-25  Robert Dewar  <dewar@gnat.com>
47773
47774         * sem_ch3.adb:
47775         (Analyze_Number_Declaration): Handle error expression.
47776         (Signed_Integer_Type_Declaration): Handle error bound.
47777         (Analyze_Subtype_Indication): Handle error range.
47778
47779         * sem_util.adb (Get_Index_Bounds): Check for Error.
47780
47781 2001-10-25  Robert Dewar  <dewar@gnat.com>
47782
47783         * restrict.adb (Set_No_Run_Time_Mode): Set Discard_Names as default
47784         in no run time mode.
47785
47786 2001-10-25  Pascal Obry  <obry@gnat.com>
47787
47788         * gnatmem.adb (Read_Next): fix Curs2 value to properly handle quiet
47789         mode case for ALLOC case.
47790
47791         * gnatmem.adb (Read_Next): correctly fix parsing in Quiet mode on
47792         all platforms. Improvement of last change.
47793
47794 2001-10-25  Robert Dewar  <dewar@gnat.com>
47795
47796         * exp_ch4.adb (Expand_N_Allocator): Minor reformatting.
47797
47798 2001-10-25  Geert Bosch  <bosch@gnat.com>
47799
47800         * osint.adb (Is_Relative): Remove duplicate.
47801
47802 2001-10-25  Pascal Obry  <obry@gnat.com>
47803
47804         * osint.adb (Read_Default_Search_Dirs): correctly detect relative
47805         pathnames in UNIX and DOS style with drive letter.
47806         (Is_Relative): new routine.
47807
47808         * osint.adb: Minor reformatting
47809
47810         * osint.adb (Is_Relative): implementation using
47811         GNAT.OS_Lib.Is_Absolute_Path. Better fix.
47812
47813 2001-10-25  Pascal Obry  <obry@gnat.com>
47814
47815         * g-dirope.adb (Basename): correctly compute offset between the
47816         original Path and the translated one.
47817
47818         * g-dirope.adb: (Base_Name): add some comments.
47819
47820 2001-10-25  Robert Dewar  <dewar@gnat.com>
47821
47822         * exp_imgv.adb (Expand_Image_Attribute): Defend against bad use
47823         in HIE mode, avoids compilation abandoned message
47824
47825         * exp_imgv.adb: Correct typo in previous change
47826
47827         * exp_imgv.adb: Correct typo in previous change (not my day!)
47828
47829 2001-10-25  Robert Dewar  <dewar@gnat.com>
47830
47831         * s-tpinop.ads: Add 2001 to copyright notice. Fix header format.
47832
47833 2001-10-25  Pascal Obry  <obry@gnat.com>
47834
47835         * g-awk.ads: Move all pragma inlines next to the routine
47836          declarations. This is more uniform with other GNAT spec.
47837
47838 2001-10-22  Geert Bosch  <bosch@gnat.com>
47839
47840         * Make-lang.in (gnattools, cross-gnattools): Remove gnatmem.
47841
47842 2001-10-19  Geert Bosch  <bosch@gnat.com>
47843
47844         * Makefile.in (tools, gnattools): Remove gnatmem.
47845
47846 2001-10-17  Richard Henderson  <rth@redhat.com>
47847
47848         * Makefile.in (misc.o): Depend on langhooks.h.
47849         * misc.c: Include it.
47850         (LANG_HOOKS_INIT, LANG_HOOKS_INIT_OPTIONS): New.
47851         (LANG_HOOKS_DECODE_OPTION): New.
47852         (lang_hooks): Use LANG_HOOKS_INITIALIZER.
47853
47854 2001-10-16  Florian Weimer  <fw@deneb.enyo.de>
47855
47856         * trans.c (tree_transform): Adjust to recent change in
47857         expand_asm_operands to implement named asm operands.
47858
47859 2001-10-11  Ed Schonberg  <schonber@gnat.com>
47860
47861         * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Bugfix in
47862         renaming of discriminant for mutable record type.
47863
47864 2001-10-11  Robert Dewar  <dewar@gnat.com>
47865
47866         * validsw.adb: Properly save -gnatVn status.
47867
47868 2001-10-11  Robert Dewar  <dewar@gnat.com>
47869
47870         * usage.adb: Add lines for V switch.
47871
47872         * gnatcmd.adb (COMPILE): Revise translations for -gnatV
47873         (/VALIDITY_CHECKING).
47874
47875 2001-10-11  Ed Schonberg  <schonber@gnat.com>
47876
47877         * sem_type.adb (Add_One_Interp): an operator for a type declared in
47878         an extension of System is known to be visible.
47879
47880 2001-10-11  Ed Schonberg  <schonber@gnat.com>
47881
47882         * sem_eval.adb (Compare_Fixup): get the bounds of a String_Literal
47883         properly. Fixes regression on ACATS C34005G.
47884
47885 2001-10-11  Robert Dewar  <dewar@gnat.com>
47886
47887         * sem_ch5.adb (Analyze_Iteration_Scheme): Suppress warning on null
47888         loop in generic instance, since this is likely not very useful.
47889
47890 2001-10-11  Robert Dewar  <dewar@gnat.com>
47891
47892         * restrict.adb (Disallow in No_Run_Time_Mode): Properly specialize
47893         the error message for high integrity mode.
47894
47895         * rtsfind.adb (RTE): Give message if we try to find an entity that
47896         is not available in high integrity mode.
47897
47898         * rtsfind.ads:
47899         (OK_To_Use_In_HIE_Mode): New array.
47900         (RTE): May return Empty in high integrity mode.
47901
47902         * rtsfind.ads (OK_To_Use_In_No_Run_Time_Mode): New name for
47903         OK_To_Use_In_HIE_Mode, now includes System_FAT_xxx.
47904
47905         * sem_ch6.adb (Analyze_Subprogram_Body): Kill body in predefined
47906         unit if not inlined always and in no runtime mode. Fixes problem
47907         caused by new Rtsfind changes.
47908
47909         * sem_ch6.adb (Analyze_Subrogram_Body): Do not Check_References if
47910         body is deleted.
47911
47912         * rtsfind.adb (RTE): Make sure we do not try to load unit after
47913         giving message for entity not available in high integrity mode.
47914
47915 2001-10-11  Pascal Obry  <obry@gnat.com>
47916
47917         * impunit.adb: Add GNAT.CRC32.
47918
47919 2001-10-11  Ed Schonberg  <schonber@gnat.com>
47920
47921         * exp_fixd.adb (Expand_Multiply_Fixed_By_Fixed_Giving_Fixed): handle
47922         properly the case where one universal operand in a non-static
47923         exponentiation of a real literal.
47924
47925 2001-10-11  Ed Schonberg  <schonber@gnat.com>
47926
47927         * exp_ch7.adb (Find_Final_List): for a type appearing in a with_type
47928         clause, return the gobal finalization list, for lack of anthing else.
47929
47930 2001-10-11  Ed Schonberg  <schonber@gnat.com>
47931
47932         * exp_ch7.adb (Make_Transient_Block): if statement is within
47933         exception handler, always use new transient scope to place Clean
47934         procedure.
47935
47936 2001-10-11  Pascal Obry  <obry@gnat.com>
47937
47938         * Makefile.in:
47939         (GNAT_ADA_OBJS): add g-crc32.o, a-tags.o, a-stream.o
47940         (GNATBIND_OBJS): add g-crc32.o, a-tags.o, a-stream.o
47941         (GNATLS_RTL_OBJS): add g-crc32.o
47942         (GNATMAKE_RTL_OBJS): add g-crc32.o
47943
47944         * ali-util.adb:
47945         (CRC_Match): new function.
47946         (Get_File_Checksum): renamed Get_File_CRC. Use the GNAT.CRC32 unit
47947         instead of the previous simple checksum algorithm.
47948         (Time_Stamp_Mismatch): use CRC_Match for comparison.
47949         (Set_Source_Table): idem.
47950
47951         * ali-util.ads:
47952         (Get_File_Checksum): renamed Get_File_CRC as now we compute CRC
47953         instead of simple checksum.
47954         (CRC_Match): new function.
47955         (CRC_Error): new constant.
47956
47957         * ali.adb (Scan_ALI): rename variable Chk to CRC as we are handling
47958         a CRC now and not a simple checksum. A CRC uses lower-case hex
47959         letters, fixes ambiguity in parsing.
47960
47961         * ali.ads (Sdep_Record.Checksum): renamed Sdep_Record.CRC as this
47962         is what this variable will store.
47963
47964         * bcheck.adb: Change reference to chechsum in comments by CRC.
47965         (Check_Consistency): Rename Get_File_Checksum to Get_File_CRC.
47966         rename All_Checksum_Match to All_CRC_Match. Change due to API
47967         renaming since now GNAT does not use a simple checksum but a
47968         CRC using GNAT.CRC32.
47969
47970         * gnatls.adb: Rename Checksum to CRC in many places, we use a CRC
47971         now and not anymore a simple checksum.
47972
47973         * lib-load.adb: Use Source_CRC instead of Source_Checksum in many
47974         places.
47975
47976         * lib-writ.adb (Write_ALI): Use Source_CRC instead of Source_Checksum.
47977
47978         * scans.adb:
47979         (Restore_Scan_State): rename Checksum to CRC.
47980         (Save_Scan_State): idem.
47981
47982         * scans.ads:
47983         With GNAT.CRC32.
47984         (Checksum): rename to CRC.
47985         (Saved_Scan_State): Save_Checksum field renamed to Save_CRC
47986
47987         * scn-nlit.adb: Rename many Accumulate_Checksum to Update (from
47988         GNAT.CRC32).  Update copyright notice.
47989
47990         * scn-slit.adb: Rename many Accumulate_Checksum to Update (from
47991         GNAT.CRC32).  Update copyright notice.
47992
47993         * scn.adb:
47994         (Accumulate_Checksum): removed.
47995         (Update): new procedure. Add a wide-character into the CRC.
47996
47997         * sinput-l.adb:
47998         (Complete_Source_File_Entry): use CRC32 instead of simple checksum.
47999         (Load_File): fix initialization of S (change Source_Checksum to
48000         Source_CRC)
48001
48002         * sinput-p.adb (Load_Project_File): rename Source_Checksum to
48003         Source_CRC in S initialization.
48004
48005         * sinput.adb (Source_Checksum): renamed to Source_CRC.
48006
48007         * sinput.ads (Source_Checksum): renamed to Source_CRC.
48008         Update comments for the CRC.
48009
48010         * types.adb (Hex): Use lowercase for the letter part.
48011
48012         * types.ads (Get_Hex_String): Returns the hexadecimal representation
48013         for a word. This is currently used only for CRC. In previous version,
48014         the checksum was using a representation with all letter being
48015         upper-case. With the new implementation (using CRC) we do not remove
48016         the 32th bit of the CRC, so we can have an upper-case starting letter
48017         in the CRC. This is not possible to parse in Scan_ALI (ali.adb).
48018         It is ambigous since the CRC was optional and could be followed by
48019         options like EB, EE. So now this routines uses lower-case letter for
48020         the hexadecimal representation. Strange enough only lower case letters
48021         where checked in Scan_ALI (even if this was not a possible case).
48022
48023         * gnatvsn.ads (Library_Version): changed to 3.15a.
48024
48025         * s-crc32.ads: Initial version from GNAT.CRC32. This is the version
48026         for the compiler.
48027
48028         * s-crc32.adb: Initial version from GNAT.CRC32. This is the version
48029         for the compiler.
48030
48031         * ali-util.adb: Redo previous change to avoid using word CRC everywhere
48032         Add 2001 to copyright notice
48033         (Accumulate_Checksum): Modify to use System.CRC32.
48034
48035         * ali-util.ads: Redo changes of previous revision to continue to use
48036         the word Checksum. Add 2001 to copyright notice.
48037
48038         * ali.adb: Undo some of previous changes, not needed.
48039         Keep the change for lower case letters in the checksum.
48040
48041         * ali.ads: Undo previous change not needed.
48042
48043         * bcheck.adb: Undo most of previous change, not needed.
48044         But do use Checksums_Match for checksum comparison.
48045
48046         * gnatls.adb: Undo most of previous change, not needed.
48047         But do use Checksums_Match for comparing checksums.
48048
48049         * lib-load.adb: Undo previous change, not needed.
48050
48051         * lib-writ.adb: Undo previous change, not needed.
48052
48053         * lib-writ.ads: Document that checksums use lower case,
48054         not upper case letters.
48055
48056         * scans.adb: Undo previous change, not needed
48057
48058         * scans.ads: Undo previous change, not needed.
48059
48060         * scn-nlit.adb: Undo previous changes, not needed.
48061
48062         * scn-slit.adb: Undo previous change, not needed.  Fix header format.
48063
48064         * scn.adb:
48065         (Accumulate_Checksum): Use System.CRC32.
48066         (Initialize_Checksum): New procedure.
48067         Remove other changes of previous revision.
48068
48069         * sinput-p.adb: Undo previous change, not needed.
48070
48071         * sinput.adb: Undo previous change, not needed.
48072
48073         * sinput-l.adb: Undo previous change, not needed.
48074
48075         * sinput.ads: Undo previous change, not needed.  Keep only comment
48076         on new checksum algorithm
48077
48078         * Makefile.in: Add s-crc32 as needed, remove g-crc32.
48079         Also remove a-tags and a-stream from GNAT sources.
48080
48081         * ali.adb (Scan_ALI): fix typo introduce in latest check-in.
48082
48083         * Makefile.in (GNATRTL_NONTASKING_OBJS): Add g-crc32.o.
48084
48085 2001-10-11  Geert Bosch  <bosch@gnat.com>
48086
48087         * einfo.h: Regenerate.
48088
48089         * nmake.ads: Regenerate.
48090
48091         * nmake.adb: Regenerate.
48092
48093         * sinfo.h: Regenerate.
48094
48095         * treeprs.adb: Regenerate.
48096
48097 2001-10-10  Geert Bosch  <bosch@gnat.com>
48098
48099         * gnat-style.texi: New file describing coding guidelines for Ada.
48100
48101 2001-10-10  Ed Schonberg  <schonber@gnat.com>
48102
48103         * einfo.adb (Write_Entity_Flags): Elaboration_Entity_Required
48104         is Flag174.
48105
48106 2001-10-10  Geert Bosch  <bosch@gnat.com>
48107
48108         * snames.ads: Add new names for project facility.
48109
48110         * snames.adb: Update to reflect snames.ads changes.
48111
48112         * snames.h: Update to reflect snames.ads changes.
48113
48114 2001-10-10  Vincent Celier  <celier@gnat.com>
48115
48116         * make.adb:
48117         (Add_Switches): reflect the changes for the switches attributes
48118         Default_Switches indexed by the programming language,
48119         Switches indexed by the file name.
48120         (Collect_Arguments_And_Compile): Idem.
48121         Reflect the attribute name changes.
48122
48123         * prj-attr.adb:
48124         (Initialisation_Data): Change the names of some packages and
48125         attributes.
48126         (Initialize): process case insensitive associative arrays.
48127
48128         * prj-attr.ads:
48129         (Attribute_Kind): Remove Both, add Case_Insensitive_Associative_Array.
48130
48131         * prj-dect.adb:
48132         (Parse_Attribute_Declaration): For case insensitive associative
48133          arrays, set the index string to lower case.
48134
48135         * prj-env.adb:
48136         Reflect the changes of the project attributes.
48137
48138         * prj-nmsc.adb:
48139         Replace Check_Naming_Scheme by Ada_Check and
48140         Language_Independent_Check.
48141
48142         * prj-nmsc.ads:
48143         Replaced Check_Naming_Scheme by 2 procedures:
48144         Ada_Check and Language_Independent_Check.
48145
48146         * prj-proc.adb:
48147         (Process_Declarative_Items): For case-insensitive associative
48148         arrays, set the index string to lower case.
48149         (Recursive_Check): Call Prj.Nmsc.Ada_Check, instead of
48150         Prj.Nmsc.Check_Naming_Scheme.
48151
48152         * prj-tree.adb:
48153         (Case_Insensitive): New function
48154         (Set_Case_Insensitive): New procedure
48155
48156         * prj-tree.ads:
48157         (Case_Insensitive): New function
48158         (Set_Case_Insensitive): New procedure
48159         (Project_Node_Record): New flag Case_Insensitive.
48160
48161         * prj-util.adb:
48162         (Value_Of): new function to get the string value of a single
48163         string variable or attribute.
48164
48165         * prj-util.ads:
48166         (Value_Of): new function to get the string value of a single
48167         string variable or attribute.
48168
48169         * prj.adb:
48170         (Ada_Default_Spec_Suffix): New function
48171         (Ada_Default_Impl_Suffix): New function
48172         Change definitions of several constants to reflect
48173         new components of record types.
48174
48175         * prj.ads:
48176         (Naming_Data): Change several components to reflect new
48177         elements of naming schemes.
48178         (Project_Data): New flags Sources_Present and
48179         Language_Independent_Checked.
48180         (Ada_Default_Spec_Suffix): New function.
48181         (Ada_Default_Impl_Suffix): New function.
48182
48183         * snames.ads:
48184         Modification of predefined names for project manager: added
48185         Implementation, Specification_Exceptions, Implementation_Exceptions,
48186         Specification_Suffix, Implementation_Suffix, Separate_Suffix,
48187         Default_Switches, _Languages, Builder, Cross_Reference,
48188         Finder. Removed Body_Part, Specification_Append, Body_Append,
48189         Separate_Append, Gnatmake, Gnatxref, Gnatfind, Gnatbind,
48190         Gnatlink.
48191
48192         * prj.ads: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
48193         Add comments.
48194
48195         * prj-nmsc.adb (Ada_Check): Test that Separate_Suffix is defaulted,
48196         not that it is Nil_Variable_Value.
48197
48198         * prj.ads: Add ??? for uncommented declarations
48199
48200 2001-10-10  Ed Schonberg  <schonber@gnat.com>
48201
48202         * sem_prag.adb: (Analyze_Pragma, case External): If entity is a
48203         constant, do not indicate possible modification, so that gigi can
48204         treat it as a bona fide constant.
48205
48206 2001-10-10  Robert Dewar  <dewar@gnat.com>
48207
48208         * sem_prag.adb: Add processing for pragma External.
48209
48210         * snames.ads: Add entry for pragma External.
48211
48212         * par-prag.adb: Add pragma External.
48213
48214         * snames.adb: Updated to match snames.ads.
48215
48216 2001-10-10  Ed Schonberg  <schonber@gnat.com>
48217
48218         * exp_ch4.adb (Expand_N_Allocator): Generate meaningful names for
48219         a dynamic task if the allocator appears in an indexed assignment
48220         or selected component assignment.
48221
48222         * exp_util.adb (Build_Task_Array_Image, Build_Task_Record_Image):
48223         For a dynamic task in an assignment statement, use target of
48224         assignment to generate meaningful name.
48225
48226 2001-10-10  Ed Schonberg  <schonber@gnat.com>
48227
48228         * einfo.adb (Write_Field19_Name): Body_Entity is also defined for
48229         a generic package.
48230
48231         * einfo.ads: Body_Entity is also defined for generic package.
48232         Documentation change only
48233
48234         * exp_aggr.adb (Build_Array_Aggr_Code): When expanding an
48235         others_choice for a discriminated component initialization,
48236         convert discriminant references into the corresponding discriminals.
48237
48238         * exp_ch3.adb (Get_Simple_Init_Val): Add qualification to aggregate
48239         only if original type is private and expression has to be wrapped
48240         in a conversion.
48241
48242         * checks.adb:
48243         (Apply_Constraint_Check): Do not perform length check
48244         if expression is an aggregate with only an others_choice.
48245         (Length_N_Cond): two references to the same in_parameter
48246         (typically the discriminal in an init_proc) denote the same value.
48247         Two useful optimization uncovered by bugfixes above.
48248
48249 2001-10-10  Robert Dewar  <dewar@gnat.com>
48250
48251         * xeinfo.adb: Change int to char in translation of enumeration types.
48252         This fixes a problem in the C representation of component alignment.
48253         Add 2001 to copyright notice
48254
48255 2001-10-10  Richard Kenner  <kenner@gnat.com>
48256
48257         * decl.c: (validate_size): Do check size of object of integral type
48258         if it is a packed array type.
48259
48260 2001-10-10  Richard Kenner  <kenner@gnat.com>
48261
48262         * decl.c: (gnat_to_gnu_entity, case object): Also materialize
48263         VAR_DECL for constant if not Is_Public but -O0.
48264
48265 2001-10-10  Richard Kenner  <kenner@gnat.com>
48266
48267         * misc.c (struct lang_hooks): Add new initializer to match GCC change.
48268
48269 2001-10-10  Geert Bosch  <bosch@gnat.com>
48270
48271         * xnmake.adb (XNmake): Fix handling of -s/-b options.  No longer
48272         use '/' as switch character, allowing for absolute file names.
48273
48274 2001-10-09  Joseph S. Myers  <jsm28@cam.ac.uk>
48275
48276         * 4gintnam.ads, Make-lang.in, Makefile.in, config-lang.in: Update
48277         FSF address.
48278
48279 2001-10-08  Geert Bosch  <bosch@gnat.com>
48280
48281         * Makefile.in (treeprs.ads, einfo.h, sinfo.h, nmake.adb, nmake.ads):
48282         Automatically build utilities when files need to be regenerated.
48283
48284 2001-10-08  Geert Bosch  <bosch@gnat.com>
48285
48286         * xsnames.adb: New utility for updating snames.ads and snames.adb
48287
48288 2001-10-08  Zack Weinberg  <zack@codesourcery.com>
48289
48290         * Make-lang.in (ADAFLAGS): Add -W -Wall.
48291         (ADA_FLAGS_TO_PASS): Set ADA_CFLAGS=$(CFLAGS) also.
48292         (gnat1): Also depend on attribs.o.
48293         (gnatlib, gnatlib-shared): Set CC and ADAC in recursive make.
48294         * Makefile.in (X_ADAFLAGS, T_ADAFLAGS): New.
48295         (ADAC): Set to @ADAC@ in stage1, $(CC) later.
48296         (ADAFLAGS): Add -W -Wall.
48297         (ALL_ADAFLAGS, MOST_ADAFLAGS): Add X_ADAFLAGS and T_ADAFLAGS;
48298         take out CFLAGS.
48299
48300         (.adb.o, .ads.o, a-numaux.o, a-teioed.o, s-interr.o,
48301         s-taskin.o, sdefault.o, s-tasdeb.o, s-vaflop.o, a-except.o,
48302         s-assert.o, s-stalib.o, s-memory.o, memtrack.o, mlib-tgt.o):
48303         Use $(ADAC), not $(CC), as compilation command.
48304
48305         (gnattools): Depend directly on tools to build, don't use
48306         recursive make.
48307         (gnatlib): Set ADA_CFLAGS=$(GNATLIBCFLAGS) in recursive make.
48308
48309         * einfo.h, sinfo.h: New files (autogenerated).
48310
48311 2001-10-08  Richard Henderson  <rth@redhat.com>
48312
48313         * comperr.adb (Abort_In_Progress): New.
48314         (Compiler_Abort): Use it to prevent recursion.
48315
48316 2001-10-08  Robert Dewar  <dewar@gnat.com>
48317
48318         * atree.adb: Set Error_Posted in Error node, helps error recovery.
48319
48320         * par-endh.adb (Output_End_Expected): We should also not test
48321         Error_Posted on the Error node, since now it is always set.
48322
48323         * cstand.adb (Create_Standard): Set Etype of Error to Any_Type
48324         to help error recovery. Part of general work on 9407-004.
48325
48326         * par.adb: Add ??? for misuse of error
48327
48328         * sem_res.adb:
48329         (Resolve): Defend against Error, fixes 9407-003.
48330         (Resolve_Discrete_Subtype_Indication): Defend against Error.
48331
48332         * sinfo.ads (N_Error): Now has Etype field (which will be set
48333         to Any_Type to help error recovery).
48334
48335 2001-10-08  Richard Kenner  <kenner@gnat.com>
48336
48337         * misc.c (gnat_expand_expr, case UNCHECKED_CONVERT_EXPR):
48338         Consistently set MEM attributes from expression; fixes
48339         bootstrap failure on x86.
48340
48341 2001-10-08  Geert Bosch  <bosch@gnat.com>
48342
48343         * 5oosinte.adb: Add 2001 to copyright notice.
48344
48345 2001-10-08  Geert Bosch  <bosch@gnat.com>
48346
48347         * ceinfo.adb: Add utility for consistency checking of einfo.ad[bs].
48348
48349         * csinfo.adb: Add utility for consistency checking of sinfo.ad[bs].
48350
48351 2001-10-07  Joseph S. Myers  <jsm28@cam.ac.uk>
48352
48353         * 5oosinte.adb: Fix spelling error of "separate" as "seperate".
48354
48355 2001-10-05  Geert Bosch  <bosch@gnat.com>
48356
48357         * adaint.h: Small formatting fix.
48358
48359 2001-10-04  Geert Bosch  <bosch@gnat.com>
48360
48361         * sysdep.c (__gnat_set_binary_mode, __gnat_set_text_mode):
48362         Arg is int, not FILE *, in dummy version of functions.
48363
48364         * adaint.h (__gnat_set_binary_mode, __gnat_set_text_mode):
48365         Arg is int, not FILE *.
48366
48367 2001-10-04  Geert Bosch  <bosch@gnat.com>
48368
48369         * 3lsoccon.ads: Added file, missed with initial check ins.
48370
48371         * 4lintnam.ads: Fix header format.
48372         Change Linux to GNU/Linux.
48373
48374         * 5iosinte.adb: Change Linux to GNU/Linux.
48375
48376         * 5iosinte.ads: Change Linux to GNU/Linux.
48377
48378         * 5itaprop.adb: Change Linux to GNU/Linux.
48379
48380         * 5itaspri.ads: Change Linux to GNU/Linux.
48381         Update copyright notice.
48382
48383         * 5lintman.adb: Change Linux to GNU/Linux.
48384
48385         * 5lml-tgt.adb: Change Linux to GNU/Linux.
48386
48387         * 5losinte.ads: Change Linux to GNU/Linux.
48388
48389         * 5lsystem.ads: Change Linux to GNU/Linux.
48390
48391         * 5qosinte.adb: Change Linux to GNU/Linux.
48392
48393         * 5qosinte.ads: Change Linux to GNU/Linux.
48394
48395         * 5qparame.ads: Change Linux to GNU/Linux.
48396
48397         * 5qtaprop.adb: Change Linux to GNU/Linux.
48398
48399         * 5qtaspri.ads: Change Linux to GNU/Linux.
48400         Add 2001 to copyright notice.
48401
48402         * 5vintman.ads: Change Linux to GNU/Linux.
48403         Fix header format.  Add 2001 to copyright notice.
48404
48405         * g-soccon.ads: Change Linux to GNU/Linux.
48406
48407         * g-trasym.ads: Change Linux to GNU/Linux.
48408         Add 2001 to copyright notice.
48409
48410         * memtrack.adb: Change Linux to GNU/Linux.
48411
48412         * s-intman.ads: Change Linux to GNU/Linux.
48413         Add 2001 to copyright notice.  Fix header format.
48414
48415         * s-stache.adb: Change Linux to GNU/Linux.
48416
48417         * adaint.c: Change Linux to GNU/Linux.
48418
48419         * cio.c: Change Linux to GNU/Linux.
48420
48421         * cstreams.c: Change Linux to GNU/Linux.
48422
48423         * init.c: Change Linux to GNU/Linux.
48424
48425         * gmem.c: Change Linux to GNU/Linux.
48426
48427         * tracebak.c: Change Linux to GNU/Linux.
48428
48429
48430 2001-10-02  Geert Bosch  <bosch@gnat.com>
48431
48432         * misc.c (insert_default_attributes): Add dummy version.