OSDN Git Service

84f76fdde18c3773ff7b44401f283aa046d856c6
[pf3gnuchains/gcc-fork.git] / gcc / ada / ChangeLog
1 2008-06-25  Samuel Tardieu  <sam@rfc1149.net>
2
3         * Makefile.in: Use mlib-tgt-specific-linux.adb for sh4 as well.
4
5 2008-06-24  Eric Botcazou  <ebotcazou@adacore.com>
6
7         * utils2.c (known_alignment): Derive the alignment from pointed-to
8         types only if it is otherwise unknown.
9         <INTEGER_CST>: Tidy.
10         <MULT_EXPR>: Likewise.
11         <POINTER_PLUS_EXPR>: If the alignment of the offset is unknown, use
12         that of the base.
13
14 2008-06-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15
16         PR ada/36573
17         * s-osinte-hpux-dce.ads (SA_ONSTACK): Define.
18
19 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
20
21         * gnat_rm.texi (Implementation Defined Characteristics)
22         (Standard Library Routines): Use @smallexample for indented
23         text.  Drop Indentation outside examples.
24         * gnat_ugn.texi: Likewise.
25
26 2008-06-13  Olivier Hainque  <hainque@adacore.com>
27
28         * decl.c (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): Define to 0
29         if undefined.
30         (gnat_to_gnu_entity) <case E_Function/Procedure>: Request stack
31         realignment with force_align_arg_pointer attribute on foreign
32         convention subprograms if FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN.
33         
34 2008-06-13  Olivier Hainque  <hainque@adacore.com>
35
36         * utils.c (rest_of_record_type_compilation): When computing
37         encodings for the components of a variable size type, early
38         strip conversions on the current position expression to make
39         sure it's shape is visible.  Use remove_conversions for this
40         purpose.
41
42 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
43
44         * decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: In the case of a
45         constrained subtype of a discriminated type, discard the fields that
46         are beyond its limits according to its size.
47
48 2008-06-10  Olivier Hainque  <hainque@adacore.com>
49
50         * utils.c (create_subprog_decl): If this is for the 'main' entry
51         point according to the asm name, redirect main_identifier_node.
52
53 2008-06-09  Eric Botcazou  <ebotcazou@adacore.com>
54
55         * decl.c (components_to_record): Adjust the packedness for the
56         qualified union as well.
57
58 2008-06-09  Arnaud Charlet  <charlet@adacore.com>
59
60         * Make-lang.in: Use -gnatwns instead of -gnatws to make sytyle
61         checks non fatal.
62
63 2008-06-07  Samuel Tardieu  <sam@rfc1149.net>
64
65         * sem_res.adb (Large_Storage_Type): A type is large if it
66         requires as many bits as Positive to store its values and its
67         bounds are known at compile time.
68         * sem_ch13.adb (Minimum_Size): Note that this function returns
69         0 if the size is not known at compile time.
70
71 2008-06-06  Nicolas Setton  <setton@adacore.com>
72             Olivier Hainque  <hainque@adacore.com>
73
74         * ada-tree.h (DECL_PARALLEL_TYPE): New language specific
75         attribute, parallel descriptive type attached to another
76         type for debug info generation purposes.
77         * utils.c (add_parallel_type): New function, register
78         parallel type to be attached to a type.
79         (get_parallel_type): New function, fetch a registered
80         parallel type, if any.
81         (rest_of_record_type_compilation): Register the parallel
82         type we make for variable size records.
83         * gigi.h (add_parallel_type, get_parallel_type): Declare.
84         * decl.c (gnat_to_gnu_entity, maybe_pad_type): Register the
85         parallel debug types we make.
86         * trans.c (extract_encoding, decode_name): New functions.
87         (gigi): If the DWARF attribute extensions are available, setup
88         to use them.
89         * lang.opt: Register language specific processing request
90         for -gdwarf+.
91         * misc.c (gnat_dwarf_extensions): New global variable. How much
92         do we want of our DWARF extensions. 0 by default.
93         (gnat_handle_option) <OPT_gdwarf_>: Increment gnat_dwarf_extensions.
94         (gnat_post_options): Map gnat_dwarf_extensions to the
95         commonuse_gnu_debug_info_extensions for later processing.
96         
97 2008-06-04  Samuel Tardieu  <sam@rfc1149.net>
98
99         * einfo.ads, einfo.adb: Remove unused flag Function_Returns_With_DSP.
100
101 2008-06-03  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
102
103         * Makefile.in (common_tools): Fix typos in $(exeext) extension.
104         * gnat_ugn.texi (Style Checking)
105         (Adding the Results of Compiler Checks to gnatcheck Output)
106         (Example of Binder Output File): Fix typos.
107         * ali.ads, einfo.ads, exp_ch4.adb, exp_ch6.adb,
108         exp_dbug.ads, exp_dist.adb, exp_smem.adb, g-socket.ads,
109         s-osinte-rtems.ads, s-shasto.ads, s-stausa.adb,
110         s-stausa.ads, sem_cat.adb, sem_ch12.adb, sem_ch3.adb,
111         sem_ch4.adb, sem_ch6.adb, sem_ch8.adb, sem_util.ads,
112         sinfo.ads, utils.c: Fix typos in comments.
113         * sem_ch6.adb, vms_data.ads: Fix typos in strings.
114
115 2008-05-29  Thomas Quinot  <quinot@adacore.com>
116
117         * sem_eval.adb: Minor reformatting
118
119 2008-05-29  Ed Schonberg  <schonberg@adacore.com>
120
121         * sem_ch6.adb (Analyze_Subprogram_Specification): if the return type
122         is abstract, do not apply abstractness check on subprogram if this is
123         a renaming declaration.
124
125 2008-05-29  Arnaud Charlet  <charlet@adacore.com>
126
127         PR ada/864
128         * osint.ads, osint.adb (Program_Name): New parameter "Prog" to
129         allow recognition of program suffix in addition to prefix.
130         
131         * gnatchop.adb (Locate_Executable): Add support for prefix.
132         
133         * make.adb, gnatcmd.adb, gnatlink.adb, prj-makr.adb,
134         mlib-utl.adb: Adjust calls to Program_Name.
135
136 2008-05-29  Robert Dewar  <dewar@adacore.com>
137
138         * sem_ch3.adb: Minor reformatting
139         * sem_prag.adb: Minor reformatting
140         * sem_res.adb: Minor reformatting
141         * sinput-p.ads: Minor reformatting
142
143 2008-05-29  Javier Miranda  <miranda@adacore.com>
144
145         * sem_util.adb:
146         (Abstract_Interface_List): Add missing support for full type-declaration
147         associated with synchronized types.
148
149 2008-05-29  Robert Dewar  <dewar@adacore.com>
150
151         * sem_eval.adb (Is_Same_Value): Take care of several more cases
152
153 2008-05-28  Ed Schonberg  <schonberg@adacore.com>
154
155         * sem_ch5.adb (Analyze_Assignment): If the name is of a local anonymous
156         access type, wrap the expression in a conversion to force an
157         accessibility check.
158
159         * sem_aggr.adb (Aggegate_Constraint_Checks): Apply conversion to force
160         accessibility checks even when expansion is disabled in order to
161         generate messages in the presence of previous errors or in
162         semantics-only mode.
163
164 2008-05-28  Eric Botcazou  <ebotcazou@adacore.com>
165
166         * system-lynxos-ppc.ads (Always_Compatible_Rep): Set to False.
167         * system-lynxos-x86.ads (Always_Compatible_Rep): Set to False.
168
169 2008-05-28  Vincent Celier  <celier@adacore.com>
170
171         PR ada/34446
172         * gnat_ugn.texi: Document restriction introduced on 2007-04-20 in
173         preprocessing expressions
174
175 2008-05-28  Vincent Celier  <celier@adacore.com>
176
177         * sinput-p.adb (Source_File_Is_Subunit): Allow special character used
178         for preprocessing
179         
180         * sinput-p.ads: Minor comment update and reformatting
181
182 2008-05-28  Ed Schonberg  <schonberg@adacore.com>
183
184         * sem_res.adb (Valid_Conversion): An anonymous access_to_subprogram
185         type has a deeper level than any master only when it is the type of an
186         access parameter.
187
188 2008-05-28  Javier Miranda  <miranda@adacore.com>
189
190         * sem_ch3.adb (Derive_Progenitor_Subprograms): Add documentation.
191
192 2008-05-28  Javier Miranda  <miranda@adacore.com>
193
194         * sem_util.ads (Find_Overridden_Synchronized_Primitive): Removed.
195         * sem_util.adb (Find_Overridden_Synchronized_Primitive): Removed.
196         * sem_ch6.adb (Check_Synchronized_Overriding): Remove one formal.
197         Add code that was previously located in
198         Find_Overridden_Synchronized_Primitive because it is only used here.
199
200 2008-05-28  Sergey Rybin  <rybin@adacore.com>
201
202         * sem_prag.adb (Process_Extended_Import_Export_Subprogram_Pragma): Set
203         Entity field for formal_parameter_NAME in MECHANISM_ASSOCIATION.
204
205 2008-05-28  Robert Dewar  <dewar@adacore.com>
206
207         * restrict.ads:
208         Add missing restrictions, and properly label all GNAT defined ones
209         
210         * rtsfind.ads:
211         Add entry for Ada_Real_Time.Timing_Events.Timing_Event
212         Add entry for Ada.Task_Termination.Set_Specific_Handler
213         Add entry for Ada.Task_Termination.Specific_Handler
214         
215         * s-rident.ads:
216         Add missing restrictions and properly mark all gnat defined ones
217         
218         * sem_ch3.adb:
219         (Analyze_Object_Declaration): Check No_Local_Timing_Events restriction
220         
221         * sem_res.adb:
222         (Resolve_Call): Check violation of No_Specific_Termination_Handlers
223
224         * gnat_rm.texi: Add missing restrictions, and properly label all
225         GNAT defined ones
226
227 2008-05-28  Robert Dewar  <dewar@adacore.com>
228
229         * restrict.adb:
230         (Check_Restriction): violation of restriction No_Finalization is
231         treated as a serious error to stop expansion
232
233 2008-05-28  Robert Dewar  <dewar@adacore.com>
234
235         * exp_util.adb: Minor reformatting
236         * exp_util.ads: Minor reformatting.
237
238 2008-05-28  Arnaud Charlet  <charlet@adacore.com>
239
240         * Make-lang.in: Remove gprmake.
241
242         * gprmake.adb, makegpr.ads, makegpr.adb: Removed.
243
244 2008-05-28  Ed Schonberg  <schonberg@adacore.com>
245
246         * sem_ch3.adb (Diagnose_Interface): Cleanup error messages involving
247         improper progenitor names, and avoid cascaded errors.
248
249 2008-05-28  Robert Dewar  <dewar@adacore.com>
250
251         * gnat_rm.texi: Add note on Old giving warning when applied to constant
252
253         * sem_attr.adb (Analyze_Attribute, case Old): Give warning if prefix is
254         a constant
255
256 2008-05-28  Robert Dewar  <dewar@adacore.com>
257
258         * exp_fixd.adb (Build_Multiply): Correct one-off error in computing
259         size
260
261 2008-05-28  Robert Dewar  <dewar@adacore.com>
262
263         * exp_ch5.adb:
264         (Expand_Simple_Function_Return): Copy unaligned result into temporary
265
266 2008-05-28  Javier Miranda  <miranda@adacore.com>
267
268         * sem_ch3.adb (Derive_Progenitor_Primitives): Add missing support
269         for user-defined predefined primitives.
270         
271         * sem_util.adb (Matches_Prefixed_View_Profile): Ditto.
272         (Find_Overridden_Synchronized_Primitive): Ditto.
273
274         * sem_ch6.adb (Check_Synchronized_Overriding): Ditto.
275
276 2008-05-27  Arnaud Charlet  <charlet@adacore.com>
277
278         * a-ststio.adb, s-direio.adb:
279         Further code clean up of previous change.
280         Update comments.
281
282 2008-05-27  Vincent Celier  <celier@adacore.com>
283
284         * prj-nmsc.adb: Minor reformatting
285
286 2008-05-27  Bob Duff  <duff@adacore.com>
287
288         * sem_ch3.adb (Build_Incomplete_Type_Declaration): In the case of an
289         untagged private type with a tagged full type, where the full type has
290         a self reference, create the corresponding class-wide type early, in
291         case the self reference is "access T'Class".
292
293 2008-05-27  Ed Schonberg  <schonberg@adacore.com>
294
295         * exp_aggr.adb (Build_Array_Aggr_Code): If component type includes
296         tasks and context is an object declaration. create master entity before
297         expansion.
298
299 2008-05-27  Robert Dewar  <dewar@adacore.com>
300
301         * mlib-prj.adb: Minor reformatting
302
303         * prj-part.adb: Minor reformatting
304
305         * prj.ads: Minor reformatting
306
307         * exp_ch3.adb: Minor reformatting.
308
309         * sem_ch3.ads: Minor reformatting
310
311         * sem_eval.adb: Minor reformatting
312
313 2008-05-27  Vincent Celier  <celier@adacore.com>
314
315         * gnatcmd.adb:
316         <prefix>-gnat stack spawns gnatstack, not <prefix>-gnatstack
317
318 2008-05-27  Ed Schonberg  <schonberg@adacore.com>
319
320         * exp_aggr.adb (Expand_Array_Aggregate): If the aggregate contains
321         tasks, create an activation chain now, before the expansion into
322         assignments and build-in-place calls that require the presence of an
323         activation chain.
324         (Backend_Processing_Possible): If the component type is inherently
325         limited, the aggregate must be expanded into individual built-in-place
326         assignments.
327
328         * sem_ch6.adb (Build_Extra_Formals): Use underlying type of result to
329         determine whether an allocation extra parameter must be built, to
330         handle case of a private type whose full type is a discriminated type
331         with defaults.
332
333 2008-05-27  Bob Duff  <duff@adacore.com>
334
335         * gnat_rm.texi:
336         Document the new behavior regarding trampolines.
337
338 2008-05-27  Arnaud Charlet  <charlet@adacore.com>
339
340         * a-direio.adb, a-sequio.adb: Replace address clause by
341         unrestricted_access, simpler and compatible with .NET.
342
343 2008-05-27  Vincent Celier  <celier@adacore.com>
344
345         * prj-part.adb:
346         (Project_Path_Name_Of.Try_Path): Do not use Locate_Regular_File to find
347         a project file, so that symbolic links are not resolved.
348
349 2008-05-27  Arnaud Charlet  <charlet@adacore.com>
350
351         * a-ztexio.adb, a-textio.adb, a-witeio.adb, s-direio.adb:
352         Replace heavy address clause by 'Unrestricted_Access, cleaner and more
353         portable across GNAT targets, since this kind of address clause is not
354         supported by VM back-ends (.NET/JGNAT).
355
356 2008-05-27  Arnaud Charlet  <charlet@adacore.com>
357
358         * bindgen.adb: Update comments.
359         
360         * s-tasinf-mingw.adb: Add "with" of System.OS_Interface
361
362 2008-05-27  Vincent Celier  <celier@adacore.com>
363
364         * gnatcmd.adb, prj-proc.adb, make.adb, mlib-prj.adb, prj.adb,
365         prj.ads, makegpr.adb, makeutl.adb, clean.adb, prj-nmsc.adb,
366         mlib-tgt.adb, prj-env.adb, prj-env.ads:
367         (Path_Information): New record type
368         Use component of type Path_Information when there are two paths, one in
369         canonical format and one in display format.
370         Update the project manager to these new components.
371
372 2008-05-27  Robert Dewar  <dewar@adacore.com>
373
374         * makeutl.adb: Minor reformatting
375         * prj-nmsc.adb: Minor reformatting
376         * s-stausa.adb: Minor reformatting
377         * s-stausa.ads: Minor reformatting
378         * sem_ch6.adb: Minor reformatting
379
380 2008-05-27  Thomas Quinot  <quinot@adacore.com>
381
382         * sem_res.adb: Minor comment fixes
383
384 2008-05-27  Thomas Quinot  <quinot@adacore.com>
385
386         * makeutl.adb: Minor code reorganization
387
388         * exp_aggr.adb: Add ??? comment
389         Fix typo
390
391         * exp_ch6.adb: Minor reformatting
392
393 2008-05-27  Quentin Ochem  <ochem@adacore.com>
394
395         * s-stausa.adb (Initialize): Updated result initialization, and
396         initialization of environment stack.
397         (Fill_Stack): Improved computation of the pattern zone, taking into
398         account already filled at the calling point.
399         (Get_Usage_Range): Now uses Min_Measure and Max_Measure instead of
400         Measure and Overflow_Guard.
401         (Report_Result): Fixed computation of the result using new fields of
402         Stack_Analyzer.
403         
404         * s-stausa.ads (Initialize_Analyzer): Replaced Size / Overflow_Guard
405         params by more explicit Stack_Size / Max_Pattern_Size params.
406         (Stack_Analyzer): Added distinct Stack_Size & Pattern_Size fields.
407         Added Stack_Used_When_Filling field.
408         (Task_Result): Replaced Measure / Overflow_Guard by more explicit
409         Min_Measure and Max_Measure fields.
410         
411         * s-tassta.adb (Task_Wrapper): Updated call to Initialize_Analyzer.
412
413 2008-05-27  Vincent Celier  <celier@adacore.com>
414
415         * prj-nmsc.adb:
416         (Check_File): Make sure that a unit that replaces the same unit in a
417          project being extended is properly processed.
418
419 2008-05-27  Ed Schonberg  <schonberg@adacore.com>
420
421         * sem_ch3.adb:
422         (Get_Discr_Value): Remove obsolete code that failed to find the value
423         of a discriminant for an inherited task component appearing in a type
424         extension.
425
426 2008-05-27  Thomas Quinot  <quinot@adacore.com>
427
428         (System.File_IO.{Close, Delete, Reset}):
429         Change File parameter from "in out AFCB_Ptr" to "access AFCB_Ptr".
430         
431         (Ada.*_IO.{Close, Delete, Reset, Set_Mode}):
432         Pass File parameter by reference.
433
434 2008-05-27  Vincent Celier  <celier@adacore.com>
435
436         * prj-nmsc.adb:
437         (Process_Sources_In_Multi_Language_Mode): Check that there are not two
438         sources of the same project that have the same object file name.
439         (Find_Explicit_Sources): Always remove a source exception that was not
440         found.
441
442 2008-05-27  Thomas Quinot  <quinot@adacore.com>
443
444         * sem_ch3.adb: Minor reformatting
445
446 2008-05-27  Ed Schonberg  <schonberg@adacore.com>
447
448         * sem_ch6.adb:
449         (Is_Interface_Conformant): Handle properly a primitive operation that
450         overrides an interface function with a controlling access result.
451         (Type_Conformance): If Skip_Controlling_Formals is true, when matching
452         inherited and overriding operations, omit as well the conformance check
453         on result types, to prevent spurious errors.
454
455 2008-05-27  Vincent Celier  <celier@adacore.com>
456
457         * makeutl.ads, makeutl.adb:
458         (Set_Location): New procedure
459         (Get_Location): New function
460         (Update_Main): New procedure
461
462 2008-05-27  Vincent Celier  <celier@adacore.com>
463
464         * prj-nmsc.adb:
465         (Check_Library): Allow standard project to be extended as a static
466         library project.
467         (Get_Mains): Do not inherit attribute Main in an extending library
468         project.
469
470 2008-05-27  Eric Botcazou  <ebotcazou@adacore.com>
471
472         * system-darwin-ppc.ads (Always_Compatible_Rep): Set to False.
473         * system-darwin-x86.ads (Always_Compatible_Rep): Likewise.
474         * system-freebsd-x86.ads (Always_Compatible_Rep): Likewise.
475         * system-linux-ppc.ads (Always_Compatible_Rep): Likewise.
476         * system-linux-x86_64.ads (Always_Compatible_Rep): Likewise.
477         * system-linux-x86.ads (Always_Compatible_Rep): Likewise.
478         * system-mingw.ads (Always_Compatible_Rep): Likewise.
479         * system-solaris-sparc.ads (Always_Compatible_Rep): Likewise.
480         * system-solaris-sparcv9.ads (Always_Compatible_Rep): Likewise.
481         * system-solaris-x86.ads (Always_Compatible_Rep): Likewise.
482         
483 2008-05-27  Ed Schonberg  <schonberg@adacore.com>
484
485         * sem_attr.adb: add guard to previous patch.
486
487 2008-05-27  Ed Schonberg  <schonberg@adacore.com>
488
489         * exp_disp.adb (Build_Dispatch_Tables): For a private type completed by
490         a synchronized tagged type, do not attempt to build dispatch table for
491         full view. The table is built for the corresponding record type, which
492         has its own declaration.
493
494 2008-05-27  Gary Dismukes  <dismukes@adacore.com>
495
496         * sem_ch3.adb (Fixup_Bad_Constraint): Set the Etype on the bad subtype
497         to the known type entity E, rather than setting it to Any_Type. Fixes
498         possible blowup in function Base_Init_Proc, as called from Freeze_Entity
499         for objects whose type had an illegal constraint.
500
501 2008-05-27  Vincent Celier  <celier@adacore.com>
502
503         * gnat_ugn.texi:
504         Add succinct documentation for attribute Excluded_Source_List_File
505
506 2008-05-27  Vincent Celier  <celier@adacore.com>
507
508         * prj-attr.adb: Add new project level attribute Map_File_Option
509         
510         * prj-nmsc.adb (Process_Linker): Process new attribute Map_File_Option
511         
512         * prj.ads: Minor reformatting and comment update
513         (Project_Configuration): New component Map_File_Option
514         
515         * snames.adb: New standard name Map_File_Option
516         
517         * snames.ads: New standard name Map_File_Option
518
519 2008-05-27  Vincent Celier  <celier@adacore.com>
520
521         * xsnames.adb: Remove unused variable Oname
522
523 2008-05-27  Doug Rupp  <rupp@adacore.com>
524
525         * exp_ch6.adb:
526         (Expand_N_Function_Call): Fix comments. Minor reformatting.
527
528         * exp_vfpt.ads:
529         (Expand_Vax_Foreign_Return): Fix comments.
530
531 2008-05-27  Thomas Quinot  <quinot@adacore.com>
532
533         * exp_dist.adb: Minor reformating
534
535 2008-05-26  Gary Dismukes  <dismukes@adacore.com>
536
537         * exp_ch3.adb (Expand_N_Object_Declaration): Remove checks for
538         No_Default_Initialization, which is now delayed until the freeze point
539         of the object. Add a comment about deferral of the check.
540         
541         * freeze.adb (Freeze_Entity): The check for No_Default_Initialization
542         on objects is moved here.
543
544 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
545
546         * s-casi16.adb (Uhalf): Rewrite it as integer with small alignment.
547         (Compare_Array_S16): Adjust for above change.
548         * s-casi32.adb (Uword): Likewise.
549         (Compare_Array_S32): Likewise.
550         * s-casi64.adb (Uword): Likewise.
551         (Compare_Array_S64): Likewise.
552         * s-caun16.adb (Uhalf): Likewise.
553         (Compare_Array_U16): Likewise.
554         * s-caun32.adb (Uword): Likewise.
555         (Compare_Array_U32): Likewise.
556         * s-caun64.adb (Uword): Likewise.
557         (Compare_Array_U64): Likewise.
558         
559 2008-05-26  Robert Dewar  <dewar@adacore.com>
560
561         * exp_ch6.adb: Add ??? comment for previous change
562
563         * exp_vfpt.adb: Minor reformatting
564
565         * exp_vfpt.ads: Add ??? comment for last change
566
567         * sem_attr.adb: Add some ??? comments for previous change
568
569         * s-vaflop.ads: Add comments for previous change
570
571 2008-05-26  Doug Rupp  <rupp@adacore.com>
572
573         * s-vaflop-vms-alpha.adb:
574         Remove System.IO use clause, to prevent spurious ambiguities when
575         package is access through rtsfind.
576
577 2008-05-26  Sergey Rybin  <rybin@adacore.com>
578
579         * tree_io.ads (ASIS_Version_Number): Update because of the changes
580         made in front-end
581
582 2008-05-26  Ed Schonberg  <schonberg@adacore.com>
583
584         * sem_attr.adb:
585         (Resolve_Attribute, case 'address):  S (A .. B)' address can be safely
586         converted to S (A)'address only if A .. B is known to be a non-null
587         range.
588
589 2008-05-26  Doug Rupp  <rupp@adacore.com>
590
591         * s-vaflop.adb:
592         (Return_D, Return_F, Return_G): New functions.
593
594         * s-vaflop.ads:
595         (Return_D, Return_F, Return_G): New functions.
596
597         * exp_vfpt.adb:
598         (Expand_Vax_Foreign_Return): New procedure
599
600         * exp_vfpt.ads:
601         (Expand_Vax_Foreign_Return): New procedure
602
603         * rtsfind.ads:
604         (RE_Return_D, RE_Return_F, RE_Return_G): New RE_Ids
605         (RE_Return_D, RE_Return_F, RE_Return_G): New RE_Unit_Table elements
606
607         * exp_ch6.adb:
608         Import Exp_Vfpt
609         (Expand_N_Function_Call): Call Expand_Vax_Foreign_Return.
610
611         * s-vaflop-vms-alpha.adb:
612         (Return_D, Return_F, Return_G): New functions.
613
614 2008-05-26  Gary Dismukes  <dismukes@adacore.com>
615
616         * exp_ch3.adb (Build_Array_Init_Proc): Only set Init_Proc to a dummy
617         init proc entity when there is actual default initialization associated
618         with the component type, to avoid spurious errors on objects of scalar
619         array types that are marked Is_Public when No_Default_Initialization
620         applies.
621
622 2008-05-26  Thomas Quinot  <quinot@adacore.com>
623
624         * rtsfind.ads, rtsfind.adb:
625         (RE_Get_RACW): New runtime library entity provided by PolyORB s-parint.
626         (Check_RPC): Support per-PCS-kind API versioning.
627         
628         exp_dist.ads, exp_dist.adb:
629         (Build_Stub_Tag, Get_Stub_Elements): New utility subprograms.
630         (PolyORB_Support.Add_RACW_From_Any): Offload common code to new runtime
631          library function Get_RACW.
632         (PolyORB_Support.Add_RACW_To_Any): Offload common code to new runtime
633         library function Get_Reference.
634         (PolyORB_Support.Add_RACW_Read_Attribute): Use Get_RACW instead of going
635         through an intermediate Any.
636         (PolyORB_Support.Add_RACW_Write_Attribute): Use Get_Reference instead of
637         going through an intermediate Any.
638         
639         * sem_dist.adb: Minor reformatting.
640
641 2008-05-26  Javier Miranda  <miranda@adacore.com>
642
643         * einfo.ads (Abstract_Interface_Alias): Renamed as Interface_Alias.
644         (Set_Abstract_Interface_Alias): Renamed as Set_Interface_Alias.
645         (Is_Internal): Adding documentation on internal entities that have
646         attribute Interface_Alias (old attribute Abstract_Interface_Alias)
647
648         * einfo.adb (Abstract_Interface_Alias): Renamed as Interface_Alias.
649         (Set_Abstract_Interface_Alias): Renamed as Set_Interface_Alias.
650         Added assertion to force entities with this attribute to have
651         attribute Is_Internal set to True.
652         (Next_Tag_Component): Simplify assertion using attribute Is_Tag.
653
654         * sem_ch3.adb (Derive_Interface_Subprograms): This subprogram has been
655         renamed as Derive_Progenitor_Subprograms. In addition, its code is
656         a new implementation.
657         (Add_Interface_Tag_Components): Remove special management of
658         synchronized interfaces.
659         (Analyze_Interface_Declaration): Minor reformating
660         (Build_Derived_Record_Type): Minor reformating
661         (Check_Abstract_Overriding): Avoid reporting error in case of abstract
662         predefined primitive inherited from interface type because the body of
663         internally generated predefined primitives of tagged types are generated
664         later by Freeze_Type
665         (Derive_Subprogram): Avoid generating an internal name if the parent
666         subprogram overrides an interface primitive.
667         (Derive_Subprograms): New implementation that keeps separate the
668         management of tagged types not implementing interfaces, from tagged
669         types that implement interfaces.
670         (Is_Progenitor): New implementation.
671         (Process_Full_View): Add documentation
672         (Record_Type_Declaration): Replace call to Derive_Interface_Subprograms
673         by call to Derive_Progenitor_Subprograms.
674
675         * sem_ch6.ads (Is_Interface_Conformant): New subprogram.
676         (Check_Subtype_Conformant, Subtype_Conformant): Adding new argument
677         Skip_Controlling_Formals.
678
679         * sem_ch6.adb (Is_Interface_Conformant): New subprogram.
680         (Check_Conventions): New implementation. Remove local subprogram
681         Skip_Check. Remove formal Search_From of routine Check_Convention.
682         (Check_Subtype_Conformant, Subtype_Conformant): Adding new argument
683         Skip_Controlling_Formals.
684         (New_Overloaded_Entity): Enable addition of predefined dispatching
685         operations.
686
687         * sem_disp.ads
688         (Find_Primitive_Covering_Interface): New subprogram.
689
690         * sem_disp.adb (Check_Dispatching_Operation): Disable registering
691         the task body procedure as a primitive of the corresponding tagged
692         type.
693         (Check_Operation_From_Private_Type): Avoid adding twice an entity
694         to the list of primitives.
695         (Find_Primitive_Covering_Interface): New subprogram.
696         (Override_Dispatching_Operation): Add documentation.
697
698         * sem_type.adb (Covers): Minor reformatings
699
700         * sem_util.ads (Collect_Abstract_Interfaces): Renamed as
701         Collect_Interfaces.
702         Rename formal.
703         (Has_Abstract_Interfaces): Renamed as Has_Interfaces.
704         (Implements_Interface): New subprogram.
705         (Is_Parent): Removed.
706         (Primitive_Names_Match): New subprogram.
707         (Remove_Homonym): Moved here from Derive_Interface_Subprograms.
708         (Ultimate_Alias): New subprogram.
709
710         * sem_util.adb (Collect_Abstract_Interfaces): Renamed as
711         Collect_Interfaces.
712         Remove special management for synchronized types. Rename formal. Remove
713         internal subprograms Interface_Present_In_Parent and Add_Interface.
714         (Has_Abstract_Interfaces): Renamed as Has_Interfaces. Replace assertion
715         on non-record types by code to return false in such case.
716         (Implements_Interface): New subprogram.
717         (Is_Parent): Removed. No special management is now required for
718         synchronized types covering interfaces.
719         (Primitive_Names_Match): New subprogram.
720         (Remove_Homonym): Moved here from Derive_Interface_Subprograms.
721         (Ultimate_Alias): New subprogram.
722
723         * exp_ch3.adb (Add_Internal_Interface_Entities): New subprogram.
724         Add internal entities associated with secondary dispatch tables to
725         the list of tagged type primitives that are not interfaces.
726         (Freeze_Record_Type): Add new call to Add_Internal_Interface_Entities
727         (Make_Predefined_Primitive_Specs): Code reorganization to improve
728         the management of predefined equality operator. In addition, if
729         the type has an equality function corresponding with a primitive
730         defined in an interface type, the inherited equality is abstract
731         as well, and no body can be created for it.
732
733         * exp_disp.ads (Is_Predefined_Dispatching_Operation): Moved from
734         exp_util to exp_disp.
735         (Is_Predefined_Interface_Primitive): New subprogram. Returns True if
736         an entity corresponds with one of the predefined primitives required
737         to implement interfaces.
738         Update copyright notice.
739
740         * exp_disp.adb (Set_All_DT_Position): Add assertion. Exclude from the
741         final check on abstract subprograms all the primitives associated with
742         interface primitives because they must be visible in the public and
743         private part.
744         (Write_DT): Use Find_Dispatching_Type to locate the name of the
745         interface type. This allows the use of this routine, for debugging
746         purposes, when the tagged type is not fully decorated.
747         (Is_Predefined_Dispatching_Operation): Moved from exp_util to exp_disp.
748         Factorize code calling new subprogram Is_Predefined_Interface_Primitive.
749         (Is_Predefined_Interface_Primitive): New subprogram. Returns True if an
750         entity corresponds with one of the predefined primitives required to
751         implement interfaces.
752
753         * exp_util.adb (Find_Interface_ADT): New implementation
754         (Find_Interface): Removed.
755
756         * sprint.adb (Sprint_Node_Actual): Generate missing output for the
757         list of interfaces associated with nodes
758         N_Formal_Derived_Type_Definition and N_Private_Extension_Declaration.
759
760 2008-05-26  Thomas Quinot  <quinot@adacore.com>
761
762         * exp_ch5.adb (Make_Tag_Ctrl_Assignment): Add missing guard on
763         condition for assignment to temporary.
764
765 2008-05-26  Ed Schonberg  <schonberg@adacore.com>
766
767         * exp_ch4.adb (Expand_Concatenate_Other): Add explicit constraint
768         checks on the upper bound if the index type is a modular type, to
769         prevent wrap-around computations when size is close to upper bound of
770         type.
771
772 2008-05-26  Robert Dewar  <dewar@adacore.com>
773
774         * sem_ch3.adb: Minor reformatting
775
776 2008-05-26  Ed Schonberg  <schonberg@adacore.com>
777
778         * sem_ch12.adb (Remove_Parent): Use specification of instance
779         to retrieve generic parent,
780         to handle properly the case where the instance is a child unit.
781         Add guard to handle properly wrapper packages.
782         Minor reformatting
783
784 2008-05-26  Thomas Quinot  <quinot@adacore.com>
785
786         * sinfo.ads: Minor reformatting
787
788 2008-05-26  Hristian Kirtchev  <kirtchev@adacore.com>
789
790         * exp_ch4.adb (Expand_N_Type_Conversion): Minor code reformatting.
791         Generate a tag check when the result subtype of a function, defined by
792         an access definition, designates a specific tagged type.
793         (Make_Tag_Check): New routine.
794
795 2008-05-26  Arnaud Charlet  <charlet@adacore.com>
796
797         * ceinfo.adb, csinfo.adb: Remove warnings. Update headers.
798
799 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
800
801         * gigi.h (gigi): Remove bogus ATTRIBUTE_UNUSED marker.
802         (builtin_decl_for): Likewise.
803         * trans.c (gigi): Likewise.
804         * utils.c (def_builtin_1): Fix formatting.
805
806 2008-05-26  Hristian Kirtchev  <kirtchev@adacore.com>
807
808         * exp_ch3.adb (Build_Init_Statements): Alphabetize local variables.
809         Create the statements which map a string name to protected or task
810         entry indix.
811
812         * exp_ch9.adb: Add with and use clause for Stringt.
813         Minor code reformatting.
814         (Build_Entry_Names): New routine.
815         (Make_Initialize_Protection, Make_Task_Create_Call): Generate a value
816         for flag Build_Entry_Names which controls the allocation of the data
817         structure for the string names of entries.
818
819         * exp_ch9.ads (Build_Entry_Names): New subprogram.
820
821         * exp_util.adb (Entry_Names_OK): New function.
822
823         * exp_util.ads (Entry_Names_OK): New function.
824
825         * rtsfind.ads: Add RO_PE_Set_Entry_Name and RO_TS_Set_Entry_Name to
826         enumerations RE_Id and RE_Unit_Table.
827
828         * s-taskin.adb Add with and use clause for Ada.Unchecked_Deallocation.
829         (Free_Entry_Names_Array): New routine.
830
831         * s-taskin.ads: Comment reformatting.
832         Add types String_Access, Entry_Names_Array, Entry_Names_Array_Access.
833         Add component Entry_Names to record Ada_Task_Control_Block.
834         (Free_Entry_Names_Array): New routine.
835
836         * s-tassta.adb (Create_Task): If flag Build_Entry_Names is set,
837         dynamically allocate an array
838         of string pointers. This structure holds string entry names.
839         (Free_Entry_Names): New routine.
840         (Free_Task, Vulnerable_Free_Task): Deallocate the entry names array.
841         (Set_Entry_Names): New routine.
842
843         * s-tassta.ads:
844         (Create_Task): Add formal Build_Entry_Names. The flag is used to
845         control the allocation of the data structure which stores entry names.
846         (Set_Entry_Name): New routine.
847
848         * s-tpoben.adb:
849         Add with and use clause for Ada.Unchecked_Conversion.
850         (Finalize): Deallocate the entry names array.
851         (Free_Entry_Names): New routine.
852         (Initialize_Protection_Entries): When flag Build_Entry_Names is set,
853         create an array of string pointers to hold the entry names.
854         (Set_Entry_Name): New routine.
855
856         * s-tpoben.ads:
857         Add field Entry_Names to record Protection_Entries.
858         (Initialize_Protection_Entries): Add formal Build_Entry_Names.
859         (Set_Entry_Name): New routine.
860
861 2008-05-26  Vincent Celier  <celier@adacore.com>
862
863         * prj-nmsc.adb:
864         (Process_Project_Level_Simple_Attributes): process attribute Library_GCC
865
866         * prj.ads:
867         (Project_Configuration): New component Shared_Lib_Driver
868
869 2008-05-26  Ed Schonberg  <schonberg@adacore.com>
870
871         * inline.adb:
872         (Cleanup_Scopes): For a protected operation, transfer finalization list
873         to protected body subprogram, to force cleanup actions when needed.
874
875 2008-05-26  Robert Dewar  <dewar@adacore.com>
876
877         * sem_cat.adb: Minor reformatting
878
879         * gnatname.adb: Minor reformatting
880
881         * osint.ads: Minor reformatting
882
883         * s-carun8.ads: Minor reformatting
884
885         * g-heasor.ads: Minor comment fix (unit is now pure)
886
887 2008-05-26  Robert Dewar  <dewar@adacore.com>
888
889         * exp_ch2.adb:
890         (Expand_Current_Value): Properly type generated integer literal
891
892 2008-05-26  Sergey Rybin  <rybin@adacore.com>
893
894         * gnat_ugn.texi: Add description for the new gnatcheck rule -
895         Separate_Numeric_Error_Handlers.
896
897 2008-05-26  Pascal Obry  <obry@adacore.com>
898
899         * sem_aggr.adb: Minor reformatting.
900
901 2008-05-26  Jose Ruiz  <ruiz@adacore.com>
902
903         * s-osinte-aix.adb:
904         (To_Target_Priority): Setting the time slice value to 0 or greater sets
905         the scheduling policy to FIFO within priorities or round-robin
906         respectively.
907         Hence, the priority must be set in this case to the one selected by the
908         user.
909         
910 2008-05-26  Ed Schonberg  <schonberg@adacore.com>
911
912         * sem_ch12.adb:
913         (Remove_Parent): If the enclosing scope is an instance whose generic
914         parent is declared within some parent scope of the just completed
915         instance, make full views of the entities in that parent visible, when
916         applicable.
917         
918 2008-05-26  Kai Tietz  <kai.tietz@onevision.com>
919
920         * mingw32.h (STD_MINGW): Set to true for target w64.
921
922 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
923
924         * trans.c (Attribute_to_gnu) <Code_Address>: Set TREE_NO_TRAMPOLINE
925         instead of TREE_STATIC on the ADDR_EXPR.
926
927 2008-05-24  Eric Botcazou  <ebotcazou@adacore.com>
928
929         * trans.c (gnat_to_gnu): Do not set source location info on NOP_EXPRs.
930         (Sloc_to_locus): Do not overwrite known GCC locations when translating
931         GNAT standard locations.
932
933 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
934
935         * gigi.h (mark_visited): Declare.
936         * decl.c (gnat_to_gnu_entity): Use mark_visited instead of marking
937         only the topmost node of expressions.
938         (elaborate_expression_1): Look deeper for read-only variables.
939         * trans.c (add_decl_expr): Use mark_visited instead of marking by hand.
940         (mark_visited): Move logic to mark_visited_r.  Invoke walk_tree.
941         (mark_visited_r): New function.
942
943 2008-05-23  Vincent Celier  <celier@adacore.com>
944
945         * snames.adb: New standard name Excluded_Source_List_File.
946
947         * snames.ads: New standard name Excluded_Source_List_File.
948
949         * prj-attr.adb: New project level attribute Excluded_Source_List_File.
950
951         * prj-nmsc.adb: (Find_Excluded_Sources): New parameter Project.
952         Get excluded sources from
953         file indicated by attribute Excluded_Source_List_File, when present and
954         neither Excluded_Source_Files nor Locally_Removed_Files are declared.
955
956 2008-05-23  Robert Dewar  <dewar@adacore.com>
957
958         * exp_dist.adb: Minor reformatting
959
960 2008-05-23  Ed Schonberg  <schonberg@adacore.com>
961
962         * sem_attr.adb (Resolve_Attribute, case 'address): If the prefix is a
963         slice, convert it to an indexed component, which is equivalent, more
964         efficient, and usable even if the slice itself is not addressable.
965
966 2008-05-23  Olivier Hainque  <hainque@adacore.com>
967
968         * gnat_ugn.texi (Calling Conventions): Document that the Intrinsic
969         convention also allows access to named compiler built-in subprograms
970         such as the GCC __builtin family.
971
972 2008-05-23  Vincent Celier  <celier@adacore.com>
973
974         * prj-nmsc.adb (Check_Naming_Schemes): Check a file for spec, body and
975         sep. If there are several possibilities, choose the one with the
976         longer prefix.
977
978 2008-05-23  Vincent Celier  <celier@adacore.com>
979
980         * gnatlink.adb (Process_Args): Do not disable scanning of ALI file for
981         back end switches when executable specified with --GCC= is same as
982         default, even if there are additional options.
983
984         * gnat_ugn.texi:
985         Document when the back end switches from the ALI file are taken into
986         account when gnatlink is invoked with --GCC=
987
988 2008-05-23  Thomas Quinot  <quinot@adacore.com>
989
990         * s-os_lib.adb:
991         (copy_File): Do not open destination file if source file is unreadable.
992
993 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
994
995         * utils.c (handle_type_generic_attribute): Adjust to accept
996         fixed arguments before an elipsis.
997
998 2008-05-21  Thomas Quinot  <quinot@adacore.com>
999
1000         * g-sothco.ads, g-sothco.adb: New files.
1001
1002 2008-05-20  Thomas Quinot  <quinot@adacore.com>
1003
1004         * Makefile.rtl (GNAT.Sockets.Thin_Common): New unit.
1005
1006         * g-sttsne-vxworks.adb: Add missing dependency on Sockets.Constants.
1007         Add missing "with" of Ada.Unchecked_Conversion
1008
1009         * g-soccon-linux-ppc.ads, g-soccon-linux-64.ads, g-soccon-lynxos.ads, 
1010         g-soccon-linux-x86.ads, g-soccon-hpux-ia64.ads, 
1011         g-soccon-solaris-64.ads, g-soccon-tru64.ads, g-soccon-aix.ads, 
1012         g-soccon-irix.ads, g-soccon-hpux.ads, g-soccon-solaris.ads, 
1013         g-soccon-vms.ads, g-soccon-mingw.ads, g-soccon-vxworks.ads, 
1014         g-socthi-vxworks.adb, g-soccon-freebsd.ads, g-soccon.ads: 
1015         Move common code out of GNAT.Sockets.Thin implementations and into
1016         Thin_Common.
1017         New constant SIZEOF_fd_set
1018         New flag Has_Sockaddr_Len
1019         New constants SIZEOF_sockaddr_in, SIZEOF_sockaddr_in6
1020
1021         * g-stsifd-sockets.adb
1022         (Create): Remove call to Set_Length; use Set_Family to set the family
1023         and (on appropriate platforms) length fields in struct sockaddr.
1024
1025         * g-socthi.adb, g-socthi.ads, g-socthi-vms.ads, g-socthi-vms.adb, 
1026         g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vxworks.adb, 
1027         g-soccon-darwin.ads, g-soccon-darwin.ads: New constant SIZEOF_fd_set
1028         Move common code out of GNAT.Sockets.Thin implementations and into
1029         Thin_Common.
1030
1031         * g-socket.ads, g-socket.adb: 
1032         Move common code out of GNAT.Sockets.Thin implementations and into
1033         Thin_Common.
1034         (Connect_Socket, Accept_Socket): Provide new versions of these two
1035         routines that operate with a user specified timeout.
1036         (Bind_Socket, Connect_Socket, Send_Socket): Remove calls to Set_Length,
1037         this is now handled automatically by Set_Family on platforms that
1038         require it.
1039
1040         * gen-soccon.c: 
1041         Move common code out of GNAT.Sockets.Thin implementations and into
1042         Thin_Common.
1043         (SIZEOF_sockaddr_in6): On platforms where IPv6 is not supported, define
1044         this constant to 0 (not -1) because we use it to initialize an
1045         unsigned_char value.
1046         Align values for numeric constants only.
1047         Handle the case of systems that do not support AF_INET6.
1048         New constant SIZEOF_fd_set
1049         New flag Has_Sockaddr_Len
1050         New constants SIZEOF_sockaddr_in, SIZEOF_sockaddr_in6
1051
1052         * gsocket.h: New flag Has_Sockaddr_Len
1053         New constants SIZEOF_sockaddr_in, SIZEOF_sockaddr_in6
1054
1055 2008-05-20  Santiago Uruena  <uruena@adacore.com>
1056
1057         * i-cobol.ads: Interfaces.COBOL should be preelaborate.
1058
1059 2008-05-20  Arnaud Charlet  <charlet@adacore.com>
1060
1061         * s-linux-hppa.ads (atomic_lock_t): Put back proper alignment now that
1062         the underlying issue with malloc/free has been fixed. Remove associated
1063         comments.
1064         Minor reformatting.
1065         Related to PR ada/24533
1066
1067 2008-05-20  Robert Dewar  <dewar@adacore.com>
1068
1069         * ali.adb: Correct casing of ASCII.NUL
1070
1071         * styleg-c.adb (Check_Identifier): Handle case of names in ASCII
1072         properly.
1073
1074 2008-05-20  Robert Dewar  <dewar@adacore.com>
1075             Gary Dismukes  <dismukes@adacore.com>
1076
1077         * checks.adb (Apply_Arithmetic_Overflow_Check): Avoid intermediate
1078         overflow if result converted to wider integer type.
1079         (Apply_Type_Conversion_Checks): Don't emit checks on conversions to
1080         discriminated types when discriminant checks are suppressed.
1081
1082 2008-05-20  Vincent Celier  <celier@adacore.com>
1083
1084         * cstand.adb (Print_Standard): Issue the correct Size clause for type
1085         Wide_Wide_Character.
1086
1087 2008-05-20  Tristan Gingold  <gingold@adacore.com>
1088
1089         * decl.c: Do not emit a variable for a object that has an address
1090         representation clause whose value is known at compile time.
1091         When a variable has an address clause whose value is known at compile
1092         time, refer to this variable by using directly the address instead of
1093         dereferencing a pointer.
1094
1095 2008-05-20  Robert Dewar  <dewar@adacore.com>
1096
1097         PR ada/30740
1098         * einfo.ads, einfo.adb (Non_Binary_Modulus): Applies to all types and
1099         subtypes, always False for non-modular types.
1100         Shared_Var_Assign_Proc (node22) and Shared_Var_Read_Proc (node 15)
1101         entry nodes have been replaced by Shared_Var_Procs_Instance (node22)
1102         for Shared_Storage package.
1103         (Is_RACW_Stub_Type): New entity flag.
1104
1105         * exp_ch4.adb
1106         (Expand_N_Op_Expon): Avoid incorrect optimization of a*(2**b) in the
1107         case where we have a modular type with a non-binary modules.
1108         Comments reformattings.
1109
1110         * sem_intr.adb: Simplify code not that Non_Binary_Modulus applies to
1111         all types.
1112
1113 2008-05-20  Javier Miranda  <miranda@adacore.com>
1114
1115         * exp_aggr.adb
1116         (Build_Record_Aggr_Code): Fix wrong tests checking progenitors. Previous
1117         tests did not covered the case in which the type of the aggregate has
1118         no progenitors but some its parents has progenitors.
1119
1120 2008-05-20  Gary Dismukes  <dismukes@adacore.com>
1121             Hristian Kirtchev  <kirtchev@adacore.com>
1122
1123         * exp_ch3.adb
1124         (Expand_N_Object_Declaration): Correct the condition which triggers the
1125         generation of a call to Displace when initializing a class-wide object.
1126         (Build_Dcheck_Functions): Build discriminant-checking for null variants
1127         when Frontend_Layout_On_Target is true to ensure that they're available
1128         for calling when a record variant size function is built in Layout.
1129
1130 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
1131
1132         * exp_ch5.adb (Expand_Assign_Record): Within an initialization
1133         procedure for a derived type retrieve the discriminant values from the
1134         parent using the corresponding discriminant.
1135         (Expand_N_Assignment_Statement): Skip generation of implicit
1136         if-statement associated with controlled types if we are
1137         compiling with restriction No_Finalization.
1138
1139 2008-05-20  Vincent Celier  <celier@adacore.com>
1140
1141         * prj.adb (Hash (Project_Id)): New function
1142         (Project_Empty): Add new component Interfaces_Defined
1143
1144         * prj.ads (Source_Data): New component Object_Linked
1145         (Language_Config): New components Object_Generated and Objects_Linked
1146         (Hash (Project_Id)): New function
1147         (Source_Data): New Boolean components In_Interfaces and
1148         Declared_In_Interfaces.
1149         (Project_Data): New Boolean component Interfaces_Defined
1150
1151         * prj-attr.adb: 
1152         New project level attribute Object_Generated and Objects_Linked
1153         Add new project level attribute Interfaces
1154
1155         * prj-dect.adb: Use functions Present and No throughout
1156         (Parse_Variable_Declaration): If a string type is specified as a simple
1157         name and is not found in the current project, look for it also in the
1158         ancestors of the project.
1159
1160         * prj-makr.adb: 
1161         Replace procedure Make with procedures Initialize, Process and Finalize
1162         to implement H414-023: process different directories with different
1163         patterns.
1164         Use functions Present and No throughout
1165
1166         * prj-makr.ads: 
1167         Replace procedure Make with procedures Initialize, Process and Finalize
1168
1169         * prj-nmsc.adb
1170         (Add_Source): Set component Object_Exists and Object_Linked accordnig to
1171         the language configuration.
1172         (Process_Project_Level_Array_Attributes): Process new attributes
1173         Object_Generated and Object_Linked.
1174         (Report_No_Sources): New Boolean parameter Continuation, defaulted to
1175         False, to indicate that the erreor/warning is a continuation.
1176         (Check): Call Report_No_Sources with Contnuation = True after the first
1177         call.
1178         (Error_Msg): Process successively contnuation character and warning
1179         character.
1180         (Find_Explicit_Sources): Check that all declared sources have been found
1181         (Check_File): Indicate in hash table Source_Names when a declared source
1182         is found.
1183         (Check_File): Set Other_Part when found
1184         (Find_Explicit_Sources): In multi language mode, check if all exceptions
1185         to the naming scheme have been found. For Ada, report an error if an
1186         exception has not been found. Otherwise, disregard the exception.
1187         (Check_Interfaces): New procedure
1188         (Add_Source): When Other_Part is defined, set mutual pointers in spec
1189         and body.
1190         (Check): In multi-language mode, call Check_Interfaces
1191         (Process_Sources_In_Multi_Language_Mode): Set In_Interfaces to False
1192         for an excluded source.
1193         (Remove_Source): A source replacing a source in the interfaces is also
1194         in the interfaces.
1195
1196         * prj-pars.adb: Use function Present
1197
1198         * prj-part.adb: Use functions Present and No throughout
1199         (Parse_Single_Project): Set the parent project for child projects
1200         (Create_Virtual_Extending_Project): Register project with no qualifier
1201         (Parse_Single_Project): Allow an abstract project to be extend several
1202         times. Do not allow an abstract project to extend a non abstract
1203         project.
1204
1205         * prj-pp.adb: Use functions Present and No throughout
1206         (Print): Take into account the full associative array attribute
1207         declarations.
1208
1209         * prj-proc.adb: Use functions Present and No throughout
1210         (Expression): Call itself with the same From_Project_Node for the
1211         default value of an external reference.
1212
1213         * prj-strt.adb: Use functions Present and No throughout
1214         (Parse_Variable_Reference): If a variable is specified as a simple name
1215         and is not found in the current project, look for it also in the
1216         ancestors of the project.
1217
1218         * prj-tree.ads, prj-tree.adb (Present): New function
1219         (No): New function
1220         Use functions Present and No throughout
1221         (Parent_Project_Of): New function
1222         (Set_Parent_Project_Of): New procedure
1223
1224         * snames.ads, snames.adb: 
1225         Add new standard names Object_Generated and Objects_Linked
1226
1227 2008-05-20  Hristian Kirtchev  <kirtchev@adacore.com>
1228
1229         * exp_ch6.adb (Expand_Call): Add guard to ensure that both the parent
1230         and the derived type are of the same kind.
1231         (Expand_Call): Generate type conversions for actuals of
1232         record or array types when the parent and the derived types differ in
1233         size and/or packed status.
1234
1235 2008-05-20  Javier Miranda  <miranda@adacore.com>
1236             Ed Schonberg  <schonberg@adacore.com>
1237
1238         * exp_disp.adb (Make_DT, Make_Secondary_DT, Make_Tags): Avoid
1239         generating dispatch tables of locally defined tagged types statically.
1240         Remove implicit if-statement that is no longer required.
1241         (Expand_Dispatching_Call): If this is a call to an instance of the
1242         generic dispatching constructor, the type of the first argument may be
1243         a subtype of Tag, so always use the base type to recognize this case.
1244
1245 2008-05-20  Thomas Quinot  <quinot@adacore.com>
1246
1247         * exp_dist.adb
1248         (GARLIC_Support.Add_RACW_Read_Attribute): When a zero value is received,
1249         and the RACW is null-excluding, raise CONSTRAINT_ERROR instead of
1250         assigning NULL into the result, to avoid a spurious warning.
1251         (Add_RACW_Features, case Same_Scope): Add assertion that designated type
1252         is not frozen.
1253         (Add_Stub_Type): Set entity flag Is_RACW_Stub_Type on generated stub
1254         type.
1255         (Build_From_Any_Function, Build_To_Any_Function,
1256         Build_TypeCode_Function): For a type that has user-specified stream
1257         attributes, use an opaque sequence of octets as the representation.
1258
1259 2008-05-20  Kevin Pouget  <pouget@adacore.com>
1260
1261         * exp_smem.ads, exp_smem.adb: Construction of access and assign
1262         routines has been replaced by an instantiation of
1263         System.Shared_Storage.Shared_Var_Procs generic package, while expanding
1264         shared variable declaration.
1265         Calls to access and assign routines have been replaced by calls to
1266         Read/Write routines of System.Shared_Storage.Shared_Var_Procs
1267         instantiated package.
1268         
1269         * rtsfind.ads: RE_Shared_Var_Procs entry has been added in RE_Unit_Table
1270         It identifies the new generic package added in s-shasto.
1271
1272         * s-shasto.adb, s-shasto.ads: A new generic package has been added, it
1273         is instantiated for each shared passive variable. It provides
1274         supporting procedures called upon each read or write access by the
1275         expanded code.
1276
1277         * sem_attr.adb:
1278         For this runtime unit (always compiled in GNAT mode), we allow
1279         stream attributes references for limited types for the case where
1280         shared passive objects are implemented using stream attributes,
1281         which is the default in GNAT's persistent storage implementation.
1282
1283 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
1284
1285         * freeze.adb
1286         (Freeze_Enumeration_Type): For a subtype that inherits a foreign
1287         convention from its base type, do not set the type to that of integer,
1288         because it may inherit a size clause.
1289         Warn on a size clause with a size different
1290         from that of Integer, if the type has convention C.
1291
1292 2008-05-20  Vincent Celier  <celier@adacore.com>
1293
1294         * gnatname.adb
1295         (Scan_Args): Rewrite to take into account new switch --and to separate
1296         arguments into sections.
1297         (Gnatname): Call Prj.Makr.Initialize, then Prj.Makr.Process for each
1298         section, then Finalize.
1299
1300 2008-05-20  Tristan Gingold  <gingold@adacore.com>
1301
1302         * init.c: Enable stack probing on ppc-linux.
1303
1304         * tracebak.c: Add symbolic traceback for ppc-linux.
1305
1306         * system-linux-ppc.ads: Enable stack probing on ppc-linux.
1307
1308 2008-05-20  Arnaud Charlet  <charlet@adacore.com>
1309
1310         * Makefile.in
1311         (common-tools): New rule, to avoid parallel build failure on gnat tools.
1312         Reenable parallel builds on this Makefile.
1313
1314         * Make-lang.in: Update dependencies.
1315
1316 2008-05-20  Robert Dewar  <dewar@adacore.com>
1317
1318         * opt.ads (Treat_Restrictions_As_Warnings): New switch
1319
1320         * sem_prag.adb, par-prag.adb, restrict.ads: Implement flag
1321         Treat_Restrictions_As_Warnings.
1322
1323         * switch-c.adb: Recognize new switch -gnatr
1324
1325         * usage.adb: Add line for -gnatr
1326
1327 2008-05-20  Hristian Kirtchev  <kirtchev@adacore.com>
1328
1329         * par-ch3.adb
1330         (P_Access_Definition): Change the error message when parsing "access
1331         all" in Ada 95 mode. The message no longer forces the user to recompile
1332         in 05 mode only to discover that anonymous access types are not allowed
1333         to have "all".
1334
1335 2008-05-20  Hristian Kirtchev  <kirtchev@adacore.com>
1336
1337         * par-ch9.adb
1338         (P_Protected): Update the error message on missing "-gnat05" switch when
1339         using interfaces in conjunction with protected types. Remove the
1340         incorrect error message associated with the presence of "private" after
1341         a "with".
1342
1343 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
1344
1345         * sem_aggr.adb: Update comments.
1346         Improve previous change for PR ada/17985
1347
1348 2008-05-20  Thomas Quinot  <quinot@adacore.com>
1349
1350         * sem_cat.adb
1351         (Set_Categorization_From_Scope): Do not set In_Remote_Types unless in
1352         the visible part of the spec of a remote types unit.
1353         (Validate_Remote_Access_Object_Type_Declaration):
1354         New local subprogram Is_Valid_Remote_Object_Type, replaces
1355         Is_Recursively_Limited_Private.
1356         (Validate_RACW_Primitives): Enforce E.2.2(14) rules: the types of all
1357         non-controlling formals (and the return type, even though this is not
1358         explicit in the standard) must support external streaming.
1359         (Validate_RCI_Subprogram_Declaration): Enforce E.2.3(14) rules: same
1360         as above for of RAS types and RCI subprograms. (The return type is not
1361         checked yet).
1362         Update comments related to RACWs designating limited interfaces per
1363         ARG ruling on AI05-060.
1364
1365         * sem_util.ads, sem_util.adb
1366         (Is_Remote_Access_To_Class_Wide_Type): Only rely on Is_Remote_Types and
1367         Is_Remote_Call_Interface to identify RACW types in a stable and
1368         consistent way. We used to rely in this predicate on the privateness of
1369         the designated type and its ancestors, but depending on the currently
1370         visible private parts, this caused false negatives. We now uniformly
1371         rely on checks made at the point where the RACW type is declared.
1372         (Inspect_Deferred_Constant_Completion): Moved from Sem_Ch7.
1373
1374 2008-05-20  Javier Miranda  <miranda@adacore.com>
1375             Ed Schonberg  <schonberg@adacore.com>
1376             Hristian Kirtchev  <kirtchev@adacore.com>
1377
1378         * sem_ch3.adb
1379         (Analyze_Object_Declaration): Fix over-conservative condition
1380         restricting use of predefined assignment with tagged types that have
1381         convention CPP.
1382         (Analyze_Object_Declaration): Relax the check regarding deferred
1383         constants declared in scopes other than packages since they can be
1384         completed with pragma Import.
1385         Add missing escaping of all-caps word 'CPP' in error messages.
1386         (Build_Discriminated_Subtype): Do not inherit representation clauses
1387         from parent type if subtype already carries them, because they are
1388         inherited earlier during derivation and already include those that may
1389         come from a partial view.
1390
1391         * sem_ch9.adb, sem_ch5.adb, sem_ch6.adb (Analyze_Subprogram_Body):
1392         Check the declarations of a subprogram body for proper deferred
1393         constant completion.
1394
1395         * sem_ch7.ads, sem_ch7.adb
1396         (Inspect_Deferred_Constant_Completion): Moved to sem_util.
1397
1398 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
1399             Thomas Quinot  <quinot@adacore.com>
1400
1401         * sem_ch4.adb
1402         (Try_Indexed_Call): Handle properly a construct of the form F(S) where
1403         F is a parameterless function that returns an array, and S is a subtype
1404         mark.
1405         (Analyze_Call): Insert dereference when the prefix is a parameterless
1406         function that returns an access to subprogram and the call has
1407         parameters.
1408         Reject a non-overloaded call whose name resolves to denote
1409         a primitive operation of the stub type generated to support a remote
1410         access-to-class-wide type.
1411
1412 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
1413
1414         * sem_ch8.adb
1415         (Note_Redundant_Use): Diagnose a redundant use within a subprogram body
1416         when there is a use clause for the same entity in the context.
1417         (Analyze_Subprogram_Renaming): A renaming_as_body is legal if it is
1418         created for a stream attribute of an abstract type or interface type.
1419
1420 2008-05-20  Thomas Quinot  <quinot@adacore.com>
1421
1422         * sem_dist.ads, sem_dist.adb (Is_RACW_Stub_Type_Operation): New
1423         subprogram.
1424
1425         * sem_type.adb
1426         (Add_One_Interp): Ignore any interpretation that is a primitive
1427         operation of an RACW stub type (these primitives are only executed
1428         through dispatching, never through static calls).
1429         (Collect_Interps): When only one interpretation has been found, set N's
1430         Entity and Etype to that interpretation, otherwise Entity and Etype may
1431         still refer to an interpretation that was ignored by Add_One_Interp,
1432         in which case would end up with being marked as not overloaded but with
1433         an Entity attribute not pointing to its (unique) correct interpretation.
1434
1435 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
1436
1437         * sem_eval.adb
1438         (Eval_Slice): Warn when a slice whose discrete range is a subtype name
1439         denotes the whole array of its prefix.
1440
1441 2008-05-20  Robert Dewar  <dewar@adacore.com>
1442
1443         * sem_res.adb (Resolve_Op_Not): Warn on double negation
1444
1445 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
1446
1447         * sprint.adb
1448         (Print_Itype): Do not modify the sloc of the component type of a
1449         (packed) array itype, because it is an unrelated type whose source
1450         location is independent of the point of creation of the itype itself.
1451
1452 2008-05-20  Thomas Quinot  <quinot@adacore.com>
1453
1454         * uintp.adb, urealp.adb: Replace calls to Increment_Last + Set with
1455         Append.
1456
1457 2008-05-20  Robert Dewar  <dewar@adacore.com>
1458             Vincent Celier  <celier@adacore.com>
1459
1460         * vms_data.ads: Add entry for -gnatr
1461         Put GNAT SYNC section in proper alpha order
1462         Add VMS qualifier /DISPLAY_PROGRESS equivalent to gnatmake switch -d
1463
1464         * gnat_ugn.texi: Add documentation for new gnatname switch --and
1465         Update the style checks section
1466         Add documentation of -gnatr
1467         Add to the "Adding the Results of Compiler Checks to gnatcheck Output"
1468         subsection the explanation how compiler checks should be disabled for
1469         gnatcheck.
1470         Update the list of Ada 95 reserved words used by in the project language
1471         Add documentation for project qualifiers.
1472         Document that abstract projects may be extended by different projects in
1473         the same project tree.
1474         Add documentation for gnatmake switch -d
1475
1476         * ug_words: Add -gnatyy VMS equivalence string.
1477         Add entry for -gnatr
1478
1479 2008-05-20  Bob Duff  <duff@adacore.com>
1480
1481         * a-rttiev.adb
1482         (Set_Handler): Remove code from both of these that implements
1483         RM-D.15(15/2), because it causes a race condition and potential
1484         deadlock.
1485         (Process_Queued_Events): Add comment explaining "exception when others
1486         => null". Add clarifying ".all", even though implicit .all is legal
1487         here.
1488
1489 2008-05-20  Arnaud Charlet  <charlet@adacore.com>
1490
1491         * s-winext.ads: Replace representation clause by pragma Pack. Gives
1492         equivalent representation, but has the advantage of allowing
1493         compilation of this file under 64 bits platforms.
1494
1495         * s-os_lib.adb (Normalize_Pathname): Mark Cur_Dir constant.
1496
1497         * s-osinte-irix.ads: (Alternate_Stack_Size): Add dummy declaration.
1498
1499         * adaint.c: 
1500         Don't define dummy implementation of convert_addresses on ppc-linux.
1501
1502 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
1503
1504         * exp_ch7.adb
1505         (Expand_Ctrl_Function_Call): Do not attach result to finalization list
1506         if expression is aggregate component.
1507
1508 2008-05-20  Robert Dewar  <dewar@adacore.com>
1509
1510         * g-byorma.adb, gnatlink.adb, prepcomp.adb, sinfo.ads,
1511         sem_ch12.adb: Update comments. Minor reformatting.
1512
1513         * exp_ch2.adb: Typo
1514
1515         * s-unstyp.ads: Fixed some typos in comments.
1516
1517 2008-05-20  Arnaud Charlet  <charlet@adacore.com>
1518
1519         * s-taspri-vxworks.ads (Task_Address, Task_Address_Size): New
1520         type/constant.
1521
1522         * g-socthi-vxworks.ads: Update to latest socket changes.
1523
1524         * a-caldel-vms.adb: Resync with a-caldel spec.
1525
1526         * exp_ch9.ads, sem_ch8.ads, inline.adb: Minor reformatting.
1527         Update comments.
1528
1529 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
1530
1531         * trans.c (gnat_to_gnu) <N_Validate_Unchecked_Conversion>: Account
1532         for dummy types pointed to by the converted pointer types.
1533
1534 2008-05-15  Eric Botcazou  <ebotcazou@adacore.com>
1535
1536         * trans.c (add_decl_expr): At toplevel, mark the TYPE_ADA_SIZE field
1537         of records and unions.
1538         (gnat_to_gnu) <N_Validate_Unchecked_Conversion>: Fix formatting.
1539
1540 2008-05-14  Samuel Tardieu  <sam@rfc1149.net>
1541             Robert Dewar <dewar@adacore.com>
1542
1543         * sem_attr.adb (Analyze_Attribute, Attribute_Old case): Add
1544         restrictions to the prefix of 'Old.
1545         * sem_util.ads, sem_util.adb (In_Parameter_Specification): New.
1546         * gnat_rm.texi ('Old): Note that 'Old cannot be applied to local
1547         variables.
1548
1549 2008-05-13  Eric Botcazou  <ebotcazou@adacore.com>
1550
1551         PR ada/24880
1552         PR ada/26635
1553         * utils.c (convert) <INTEGER_TYPE>: When converting an additive
1554         expression to an integral type with lower precision, use NOP_EXPR
1555         directly in a couple of special cases.
1556
1557 2008-05-12  Samuel Tardieu  <sam@rfc1149.net>
1558             Ed Schonberg <schonberg@adacore.com>
1559
1560         * sem_ch3.adb (Build_Derived_Record_Type): Accept statically matching
1561         constraint expressions.
1562
1563 2008-05-12  Tomas Bily  <tbily@suse.cz>
1564
1565         * utils2.c (known_alignment, contains_save_expr_p)
1566         (gnat_mark_addressable): Use CASE_CONVERT.
1567         * decl.c (annotate_value): Likewise.
1568         * trans.c (maybe_stabilize_reference): Likewise.
1569         * utils2.c (build_binary_op): Use CONVERT_EXPR_P.
1570         * utils.c (rest_of_record_type_compilation): Likewise.
1571         * trans.c (protect_multiple_eval, Attribute_to_gnu)
1572         (protect_multiple_eval): Likewise.
1573
1574 2008-05-08  Andreas Schwab  <schwab@suse.de>
1575
1576         * utils.c (handle_pure_attribute, init_gigi_decls): Rename
1577         DECL_IS_PURE to DECL_PURE_P.
1578
1579 2008-05-05  Eric Botcazou  <ebotcazou@adacore.com>
1580
1581         * decl.c (maybe_pad_type): Add ??? comment.
1582
1583 2008-05-03  Eric Botcazou  <ebotcazou@adacore.com>
1584
1585         * decl.c (components_to_record): Zero the alignment of the qualified
1586         union built for the variant part upon creating it.
1587
1588 2008-05-03  Eric Botcazou  <ebotcazou@adacore.com>
1589
1590         * decl.c (maybe_pad_type): Try to get a form of the type with integral
1591         mode even if the alignment is not a factor of the original size.  But
1592         make sure to create the inner field with the original size.  Reorder.
1593         * trans.c (addressable_p) <COMPONENT_REF>: Treat the field of a padding
1594         record as always addressable.
1595         * utils.c (convert): Deal specially with conversions between original
1596         and packable versions of a record type.
1597         * utils2.c (build_binary_op) <MODIFY_EXPR>: Be more restrictive when
1598         recognizing an assignment between padded objects.
1599
1600 2008-05-01  Eric Botcazou  <ebotcazou@adacore.com>
1601
1602         * decl.c (make_packable_type): Resize the last component to its RM size
1603         only if it is of an aggregate type.
1604         * trans.c (call_to_gnu): Fix nit in comment.
1605         (gnat_to_gnu): Likewise.
1606
1607 2008-04-30  Samuel Tardieu  <sam@rfc1149.net>
1608
1609         * Makefile.in: Adapt sh4-linux target.
1610
1611 2008-04-29  Ed Schonberg  <schonberg@adacore.com>
1612
1613         PR ada/35792
1614         * sem_ch3.adb (Find_Type_Name): Refuse completion of an incomplete
1615         tagged type by an untagged protected or task type.
1616
1617 2008-04-28  Eric Botcazou  <ebotcazou@adacore.com>
1618             Tristan Gingold  <gingold@adacore.com>
1619
1620         PR ada/36007
1621         * decl.c (gnat_to_gnu_entity) <object>: Do not promote alignment
1622         of aliased objects with an unconstrained nominal subtype.
1623         Cap the promotion to the effective alignment of the word mode.
1624
1625 2008-04-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1626
1627         * Make-lang.in (ada.tags, check-acats, ada/treeprs.ads)
1628         (ada/einfo.h, ada/sinfo.h, ada/nmake.adb, ada/nmake.ads):
1629         Use '&&' instead of ';'.
1630
1631 2008-04-24  Olivier Hainque  <hainque@adacore.com>
1632
1633         * trans.c (Attribute_to_gnu) <case Attr_Length>: Length computation
1634         doesn't require signed arithmetic anymore.
1635
1636 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
1637
1638         * trans.c (Attribute_to_gnu): Don't set TREE_INVARIANT.
1639         (call_to_gnu): Don't set TREE_INVARIANT.
1640         * utils2.c (gnat_build_constructor): Don't set TREE_INVARIANT.
1641
1642 2008-04-22  Joel Sherrill <joel.sherrill@oarcorp.com>
1643
1644         * s-osinte-rtems.adb: Add sigalstack function.
1645         * s-osinte-rtems.ads: Add SO_ONSTACK and sigalstack
1646         function. Add Alternate_Stack and Alternate_Stack_Size.
1647         Add missing process_shared field to pthread_condattr_t
1648         and change ss_low_priority to int from timespec.
1649
1650 2008-04-22  Samuel Tardieu  <sam@rfc1149.net>
1651
1652         * i-forbla.adb: Link against -llapack and -lblas by default
1653         instead of the private -lgnalasup.
1654
1655 2008-04-21  Olivier Hainque  <hainque@adacore.com>
1656
1657         Access to most C builtins from Ada
1658         * utils.c: #include "langhooks.h" and define GCC_DIAG_STYLE.
1659         (handle_pure_attribute, handle_novops_attribute,
1660         handle_nonnull_attribute, handle_sentinel_attribute,
1661         handle_noreturn_attribute, handle_malloc_attribute,
1662         handle_type_generic_attribute): New attribute handlers, from C fe.
1663         (gnat_internal_attribute_table): Map the new handlers.
1664         (gnat_init_decl_processing): Move call to gnat_install_builtins to ...
1665         (init_gigi_decls): ... here.
1666         (handle_const_attribute, handle_nothrow_attribute, builtin_decl_for):
1667         Move to a section dedicated to builtins processing.
1668         (build_void_list_node, builtin_type_for_size): New functions.
1669         (def_fn_type, get_nonnull_operand): Likewise.
1670         (install_builtin_elementary_type, install_builtin_function_types,
1671         install_builtin_attributes): Likewise.
1672         (fake_attribute_handler): Fake handler for attributes we don't
1673         support in Ada.
1674         (def_builtin_1): New function, worker for DEF_BUILTIN.
1675         (install_builtin_functions): New function.
1676         (gnat_install_builtins): Move to the builtins processing section.
1677         Now calling the newly introduced installers.
1678
1679 2008-04-20  Eric Botcazou  <ebotcazou@adacore.com>
1680
1681         * decl.c (gnat_to_gnu_entity) <object>: Also promote the alignment of
1682         constant objects, but not exceptions.
1683         * trans.c (add_decl_expr): Use gnat_types_compatible_p for type
1684         compatibility test.
1685         * utils.c (create_var_decl_1): Likewise.
1686         * utils2.c (build_binary_op) <MODIFY_EXPR>: Also use the padded view of
1687         the type when copying to padded object and the source is a constructor.
1688
1689 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
1690
1691         * decl.c (gnat_to_gnu_entity) <object>: When trying to promote the
1692         alignment, reset it to zero if it would end up not being greater
1693         than that of the type.
1694
1695 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
1696
1697         * decl.c (maybe_pad_type): Only generate the XVS parallel type if
1698         the padded type has a variable size.
1699
1700 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
1701
1702         * decl.c (gnat_to_gnu_entity) <E_Subprogram_Type>: Use the return by
1703         target pointer mechanism as soon as the size is not constant.
1704
1705 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
1706
1707         * gigi.h (create_var_decl_1): Declare.
1708         (create_var_decl): Turn into a macro invoking create_var_decl_1.
1709         (create_true_var_decl): Likewise.
1710         * utils.c (create_var_decl_1): Make global and reorder parameters.
1711         (create_var_decl): Delete.
1712         (create_true_var_decl): Likewise.
1713
1714 2008-04-17  Eric Botcazou  <ebotcazou@adacore.com>
1715
1716         * decl.c (gnat_to_gnu_entity) <object>: Promote the alignment of
1717         objects by default.
1718         * fe.h (Debug_Flag_Dot_A): Delete.
1719         * debug.adb (-gnatd.a): Update documentation.
1720
1721 2008-04-17  Samuel Tardieu  <sam@rfc1149.net>
1722
1723         * g-socket.ads, g-socket.adb (Get_Address): Make Stream a
1724         "not null" parameter.
1725
1726 2008-04-17  Samuel Tardieu  <sam@rfc1149.net>
1727
1728         * g-socket.adb: Add a message "IPv6 not supported" to the
1729         Socket_Error exception.
1730
1731 2008-04-16  Samuel Tardieu  <sam@rfc1149.net>
1732
1733         PR ada/29015
1734         * sem_ch12.adb (Instantiate_Type): Check whether the full view of
1735         the type is known instead of the underlying type.
1736
1737 2008-04-15  Ed Schonberg  <schonberg@adacore.com>
1738
1739         PR ada/22387
1740         * exp_ch5.adb (Expand_Assign_Record): Within an initialization
1741         procedure for a derived type retrieve the discriminant values from
1742         the parent using the corresponding discriminant.
1743
1744 2008-04-15  Samuel Tardieu  <sam@rfc1149.net>
1745             Gary Dismukes  <dismukes@adacore.com>
1746
1747         PR ada/28733
1748         * sem_ch8.adb (Analyze_Use_Package): Do not allow "use" of something
1749         which is not an entity (and hence not a package).
1750         (End_Use_Package): Ditto.
1751
1752 2008-04-15  Ed Schonberg  <schonberg@adacore.com>
1753
1754         PR ada/16086
1755         * sem_ch12.adb (Analyze_Formal_Subprogram): The default can be any
1756         protected operation that matches the signature, not only an entry, a
1757         regular subprogram or a literal.
1758
1759 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
1760
1761         * ada-tree.h (DECL_BY_COMPONENT_PTR_P): Use DECL_LANG_FLAG_3.
1762         * decl.c (gnat_to_gnu_entity) <object>: Call maybe_pad_type only
1763         if a size or alignment is specified.  Do not take into account
1764         alignment promotions for the computation of the object's size.
1765         <type>: Call maybe_pad_type only if a size or alignment is specified.
1766         (maybe_pad_type): Really reuse the RM_Size of the original type if
1767         requested.
1768         * trans.c (Attribute_to_gnu): Fix a couple of nits.
1769         * utils2.c (build_binary_op) <MODIFY_EXPR>: Merge related conditional
1770         statements.  Use the padded view of the type when copying between
1771         padded objects of the same underlying type.
1772
1773 2008-04-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1774
1775         * vms_data.ads: Fix typo in constant.
1776         * gen-soccon.c: Fix typo in error string.
1777         * gnat_rm.texi (Pragma Optimize_Alignment, Pragma Postcondition):
1778         Fix typos.
1779         * a-calcon.ads, a-calend-vms.adb, a-calend.adb, a-crdlli.ads,
1780         bcheck.adb, checks.adb, einfo.ads, errout.adb, erroutc.adb,
1781         erroutc.ads, exp_attr.adb, exp_ch11.adb, exp_ch2.adb,
1782         exp_ch5.adb, exp_ch9.adb, exp_ch9.ads, exp_pakd.adb,
1783         exp_util.adb, fmap.adb, g-soccon-linux-mips.ads,
1784         g-soccon-rtems.ads, g-timsta.adb, g-timsta.ads, lib-writ.ads,
1785         mlib-tgt-specific-linux.adb, mlib-tgt-specific-tru64.adb,
1786         s-interr-vxworks.adb, s-interr.adb, s-osinte-lynxos.ads,
1787         s-rident.ads, s-taprop-solaris.adb, s-tassta.adb, s-win32.ads,
1788         sem_aggr.adb, sem_attr.ads, sem_ch10.adb, sem_ch13.ads,
1789         sem_ch3.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb, sem_ch9.adb,
1790         sem_prag.ads, sem_res.adb, sem_util.adb, sem_util.ads,
1791         sinfo.ads: Fix typos in comments.
1792
1793 2008-04-14  Robert Dewar  <dewar@adacore.com>
1794
1795         * sem_prag.adb (Analyze_Pragma, Linker_Section case): Extend error
1796         to every non-object and change error message.
1797
1798 2008-04-14  Robert Dewar  <dewar@adacore.com>
1799
1800         * sem_util.ads, sem_util.adb (In_Subprogram): Remove.
1801         * sem_attr.adb (Anayze_Attribute): Check for Current_Subprogram
1802         directly.
1803
1804 2008-04-14  Samuel Tardieu  <sam@rfc1149.net>
1805
1806         PR ada/18680
1807         * sem_prag.adb (Analyze_Pragma, Linker_Section case): Refuse to
1808         apply pragma Linker_Section on type.
1809
1810 2008-04-14  Samuel Tardieu  <sam@rfc1149.net>
1811
1812         PR ada/16098
1813         * sem_prag.adb (Error_Pragma_Ref): New.
1814         (Process_Convention): Specialized message for non-local
1815         subprogram renaming. Detect the problem in homonyms as well.
1816
1817 2008-04-14  Samuel Tardieu  <sam@rfc1149.net>
1818
1819         PR ada/15915
1820         * sem_util.ads, sem_util.adb (Denotes_Variable): New function.
1821         * sem_ch12.adb (Instantiate_Object): Use it.
1822         * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Ensure that
1823         storage pool denotes a variable as per RM 13.11(15).
1824
1825 2008-04-14  Samuel Tardieu  <sam@rfc1149.net>
1826
1827         * sem_util.ads, sem_util.adb (In_Subprogram): New function.
1828         * sem_attr.adb (Analyze_Attribute, Attribute_Old case): Use it.
1829
1830 2008-04-14  Rolf Ebert  <rolf.ebert.gcc@gmx.de>
1831
1832         PR ada/20822
1833         * xgnatugn.adb (Put_Line): New procedure, ensuring Unix
1834         line endings even on non-Unix platforms.
1835
1836 2008-04-14  Samuel Tardieu  <sam@rfc1149.net>
1837
1838         PR ada/35050
1839         * xref_lib.adb (Parse_Identifier_Info): Correctly parse and ignore the
1840         renaming information.
1841
1842 2008-04-13  Samuel Tardieu  <sam@rfc1149.net> 
1843
1844         PR ada/17985
1845         * sem_aggr.adb (Valid_Ancestor_Type): A type is not an ancestor of
1846         itself.
1847
1848 2008-04-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1849
1850         * sfn_scan.adb, sfn_scan.ads, sinfo.ads,
1851         sinput-d.ads, sinput-l.adb, sinput-l.ads, sinput.ads,
1852         snames.ads, sprint.adb, stand.ads, stringt.ads,
1853         styleg.adb, styleg.ads, stylesw.adb, stylesw.ads,
1854         switch.ads, sysdep.c, table.adb, table.ads,
1855         targparm.ads, tb-gcc.c, tbuild.ads, tracebak.c,
1856         trans.c, tree_io.adb, treepr.adb, types.adb, types.ads,
1857         uintp.adb, uintp.ads, utils.c, utils2.c, validsw.ads,
1858         vms_conv.adb, vms_conv.ads, vms_data.ads, widechar.adb,
1859         widechar.ads, xeinfo.adb, xgnatugn.adb, xr_tabls.adb,
1860         xr_tabls.ads, xref_lib.adb, xref_lib.ads, xsinfo.adb:
1861         Fix comment typos.
1862
1863         * sem_ch10.adb, sem_ch10.ads,
1864         sem_ch12.adb, sem_ch12.ads, sem_ch13.adb, sem_ch13.ads,
1865         sem_ch3.adb, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb,
1866         sem_ch6.ads, sem_ch8.adb, sem_ch8.ads, sem_ch9.adb,
1867         sem_elab.adb, sem_elab.ads, sem_elim.ads, sem_eval.adb,
1868         sem_eval.ads, sem_intr.adb, sem_mech.adb, sem_mech.ads,
1869         sem_prag.adb, sem_prag.ads, sem_res.adb, sem_res.ads,
1870         sem_type.adb, sem_util.adb, sem_util.ads, sem_warn.adb,
1871         sem_warn.ads: Fix comment typos.
1872
1873         * s-secsta.adb, s-sequio.ads, s-shasto.ads,
1874         s-soflin.ads, s-stalib.ads, s-stausa.adb,
1875         s-stausa.ads, s-strxdr.adb, s-taenca.adb, s-taenca.ads,
1876         s-taprob.adb, s-taprop-hpux-dce.adb, s-taprop-irix.adb,
1877         s-taprop-linux.adb, s-taprop-mingw.adb, s-taprop-posix.adb,
1878         s-taprop-solaris.adb, s-taprop-tru64.adb, s-taprop-vms.adb,
1879         s-taprop-vxworks.adb, s-taprop.ads, s-tarest.adb,
1880         s-tarest.ads, s-tasini.adb, s-tasini.ads, s-taskin.ads,
1881         s-tasque.ads, s-tassta.adb, s-tassta.ads, s-tasuti.ads,
1882         s-tpoben.adb, s-tpoben.ads, s-tpobop.adb,
1883         s-tpopsp-posix.adb, s-tpopsp-rtems.adb, s-tposen.adb,
1884         s-tposen.ads, s-traceb-hpux.adb, s-traces.ads,
1885         s-trafor-default.ads, s-unstyp.ads, s-utf_32.ads,
1886         s-vaflop.adb, s-vaflop.ads, s-valrea.adb, s-valuti.adb,
1887         s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, scans.ads,
1888         scn.adb, scng.adb, seh_init.c, sem.ads, sem_aggr.adb,
1889         sem_attr.adb, sem_attr.ads, sem_case.adb, sem_case.ads,
1890         sem_cat.adb, sem_cat.ads: Fix comment typos.
1891
1892 2008-04-12  Joel Sherrill  <joel@oarcorp.com>
1893
1894         PR ada/35825
1895         * g-soccon-rtems.ads: Add IP_PKTINFO as unsupported.
1896
1897 2008-04-12  Arnaud Charlet  <charlet@adacore.com>
1898
1899         * s-linux-hppa.ads: Fix syntax errors.
1900
1901 2008-04-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1902
1903         * gnat_ugn.texi: Fix typos.
1904         * raise-gcc.c, repinfo.adb, repinfo.ads, restrict.adb,
1905         restrict.ads, rtsfind.adb, rtsfind.ads, s-arit64.ads,
1906         s-asthan-vms-alpha.adb, s-auxdec.ads, s-casuti.ads,
1907         s-fatflt.ads, s-fatgen.adb, s-fatlfl.ads,
1908         s-fatllf.ads, s-fatsfl.ads, s-filofl.ads,
1909         s-finimp.adb, s-finroo.ads, s-fishfl.ads,
1910         s-fvadfl.ads, s-fvaffl.ads, s-fvagfl.ads,
1911         s-hibaen.ads, s-htable.ads, s-imgcha.adb,
1912         s-imgenu.ads, s-imgint.adb, s-imgrea.adb,
1913         s-inmaop-dummy.adb, s-inmaop.ads, s-interr-vms.adb,
1914         s-interr-vxworks.adb, s-interr.adb, s-interr.ads,
1915         s-intman-vxworks.ads, s-intman.ads, s-mastop-irix.adb,
1916         s-os_lib.adb, s-os_lib.ads, s-osinte-aix.ads,
1917         s-osinte-darwin.ads, s-osinte-freebsd.ads,
1918         s-osinte-hpux.ads, s-osinte-lynxos-3.adb,
1919         s-osinte-lynxos-3.ads, s-osinte-lynxos.ads,
1920         s-osinte-rtems.ads, s-osinte-solaris-posix.ads,
1921         s-osprim-mingw.adb, s-osprim-vms.adb, s-parame-ae653.ads,
1922         s-parame-hpux.ads, s-parame-vms-alpha.ads,
1923         s-parame-vms-ia64.ads, s-parame-vms-restrict.ads,
1924         s-parame-vxworks.ads, s-parame.ads, s-parint.adb,
1925         s-parint.ads, s-poosiz.adb, s-proinf-irix-athread.ads,
1926         s-proinf.ads, s-regexp.adb, s-regpat.adb, s-regpat.ads,
1927         s-rident.ads: Fix comment typos.
1928
1929 2008-04-09  Samuel Tardieu  <sam@rfc1149.net>
1930
1931         PR ada/28305
1932         * sem_ch6.adb (Build_Body_To_Inline): Do not save and restore
1933         environment if generic instance is a top-level one.
1934
1935 2008-04-09  Doug Rupp  <rupp@adacore.com>
1936
1937         * decl.c (validate_size): Set minimum size for fat pointers same as
1938         access types. Code clean ups.
1939
1940         * gmem.c (xstrdup32): New macro for 32bit dup on VMS, noop otherwise
1941         (__gnat_gmem_a2l_initialize): Dup exename into 32 bit memory on VMS
1942
1943         * s-auxdec-vms_64.ads, s-auxdec.ads (Short_Address_Size): New constant
1944
1945         * s-crtl.ads (malloc32) New function, alias for malloc
1946         (realloc32) New function, alias for realloc
1947
1948         * socket.c (__gnat_new_socket_set): Malloc fd_set in 32 bits on VMS
1949
1950         * utils2.c (build_call_alloc_dealloc): Return call to short malloc if
1951         allocator size is 32 and default pointer size is 64.
1952         (find_common_type): Document assumption on t1/t2 vs lhs/rhs. Force use of
1953         lhs type if smaller, whatever the modes.
1954
1955         * gigi.h (malloc32_decl): New macro definition
1956
1957         * utils.c (init_gigi_decls): New malloc32_decl
1958         Various code clean ups.
1959
1960         * s-asthan-vms-alpha.adb (Process_AST.To_Address): Unchecked convert to
1961         Task_Address vice System.Address.
1962
1963         * s-taspri-vms.ads: Import System.Aux_DEC
1964         (Task_Address): New subtype of System.Aux_DEC.Short_Address
1965         (Task_Address_Size): New constant size of System.Aux_DEC.Short_Address
1966
1967         * s-asthan-vms-alpha.adb (Process_AST.To_Address): Unchecked convert to
1968         Task_Address vice System.Address.
1969
1970         * s-inmaop-vms.adb: Import System.Task_Primitives
1971         (To_Address): Unchecked convert to Task_Address vice System.Address
1972
1973         * s-taprop-vms.adb (Timed_Delay): Always set the timer even if delay
1974         expires now.
1975         (To_Task_ID) Unchecked convert from Task_Adddress vice System.Address
1976         (To_Address) Unchecked convert to Task_Address vice System.Address
1977
1978         * s-tpopde-vms.adb: Remove unnecessary warning pragmas
1979
1980         * g-socthi-vms.ads: Add 32bit size clauses on socket access types.
1981
1982 2008-04-08  Eric Botcazou  <ebotcazou@adacore.com>
1983
1984         * gigi.h (standard_datatypes): Add ADT_fdesc_type and ADT_null_fdesc.
1985         (fdesc_type_node): Define.
1986         (null_fdesc_node): Likewise.
1987         * decl.c (gnat_to_gnu_entity) <E_Access_Subprogram_Type>: If the target
1988         uses descriptors for vtables and the type comes from a dispatch table,
1989         return the descriptor type.
1990         * trans.c (Attribute_to_gnu) <Attr_Unrestricted_Access>: If the target
1991         uses descriptors for vtables and the type comes from a dispatch table,
1992         build a descriptor in the static case and copy the existing one in the
1993         non-static case.
1994         (gnat_to_gnu) <N_Null>: If the target uses descriptors for vtables and
1995         the type is a pointer-to-subprogram coming from a dispatch table,
1996         return the null descriptor.
1997         <N_Unchecked_Type_Conversion>: If the target uses descriptors for
1998         vtables, the source type is the descriptor type and the target type
1999         is a pointer type, first build the pointer.
2000         * utils.c (init_gigi_decls): If the target uses descriptors for vtables
2001         build the descriptor type and the null descriptor.
2002
2003 2008-04-08  Eric Botcazou  <ebotcazou@adacore.com>
2004
2005         * decl.c (prepend_attributes): Fix typo.
2006         * trans.c (Pragma_to_gnu): Likewise.
2007         * utils.c (gnat_genericize): Likewise.
2008
2009 2008-04-08  Eric Botcazou  <ebotcazou@adacore.com>
2010             Richard Kenner  <kenner@adacore.com>
2011
2012         * ada-tree.h (TYPE_PACKED_ARRAY_TYPE_P): Only set it when bit-packed.
2013         * decl.c (gnat_to_gnu_entity): Adjust for above change.
2014         <E_Record_Type>: Try to get a better form of the component for
2015         packing, even if it has an integral mode.
2016         <E_Record_Subtype>: Likewise.
2017         * trans.c (gnat_to_gnu): Do not require BLKmode for the special
2018         exception suppressing the final conversion between record types.
2019
2020 2008-04-08  Eric Botcazou  <ebotcazou@adacore.com>
2021
2022         * decl.c (gnat_to_gnu_entity) <object>: If -gnatd.a and not optimizing
2023         alignment for space, promote the alignment of non-scalar variables with
2024         no size and alignment.
2025         * gigi.h (gnat_types_compatible_p): Declare.
2026         * misc.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Set to above predicate.
2027         * trans.c (gnat_to_gnu): Revert revision 129339 change.  Minor cleanup.
2028         * utils.c (gnat_types_compatible_p) : New predicate.
2029         (convert): Use it throughout to test for cases where a mere view
2030         conversion is sufficient.
2031         * utils2.c (build_binary_op): Minor tweaks.
2032         (build_unary_op): Likewise.
2033
2034 2008-04-08  Eric Botcazou  <ebotcazou@adacore.com>
2035
2036         * decl.c (adjust_packed): Expand comment.
2037
2038 2008-04-08  Arnaud Charlet  <charlet@adacore.com>
2039
2040         * s-tasuti.ads: Use Task_Address instead of System.Address.
2041
2042         * makeutl.adb (Path_Or_File_Name): New function
2043
2044         * nlists.ads, itypes.ads: Update comments.
2045
2046         * s-crtl.ads (malloc32, realloc32): New functions.
2047
2048         * s-auxdec.ads (Short_Address_Size): New constant.
2049
2050         * a-taside.adb, s-tasdeb.adb: Use Task_Address.
2051
2052         * s-ststop.ads, s-ststop.adb: New file.
2053
2054         * exp_tss.ads, s-taprop-lynxos.adb: Update comments.
2055         Minor reformatting.
2056
2057 2008-04-08  Pascal Obry  <obry@adacore.com>
2058
2059         * g-sercom.ads, g-sercom.adb (Data_Rate): Add B115200.
2060         (Stop_Bits_Number): New type.
2061         (Parity_Check): Likewise.
2062         (Set): Add parameter to set the number of stop bits and
2063         the parity. Parameter timeout is now a duration instead
2064         of a plain integer.
2065
2066         * g-sercom-linux.adb:
2067         Implement the stop bits and parity support for GNU/Linux.
2068         Fix handling of timeout, it must be given in tenth of seconds.
2069         
2070         * g-sercom-mingw.adb:
2071         Implement the stop bits and parity support for Windows.
2072         Use new s-win32.ads unit instead of declaring Win32 services
2073         directly into this body.
2074         Update handling of timeout as now a duration.
2075
2076         * s-win32.ads, s-winext.ads: New files.
2077
2078 2008-04-08  Eric Botcazou  <ebotcazou@adacore.com>
2079             Arnaud Charlet  <charlet@adacore.com>
2080
2081         * s-osinte-linux-alpha.ads, s-osinte-linux-hppa.ads: Removed.
2082
2083         s-taspri-posix-noaltstack.ads, s-linux.ads, s-linux-alpha.ads,
2084         s-linux-hppa.ads: New files. Disable alternate stack on ia64-hpux.
2085
2086         * s-osinte-lynxos-3.ads,
2087         (Alternate_Stack): Remove when not needed. Simplify declaration
2088         otherwise.
2089         (Alternate_Stack_Size): New constant.
2090
2091         s-osinte-mingw.ads, s-taprop-mingw.adb: Code clean up: avoid use of
2092         'Unrestricted_Access.
2093
2094         * s-osinte-hpux.ads, s-osinte-solaris-posix.ads, s-osinte-aix.ads,
2095         s-osinte-lynxos.ads, s-osinte-freebsd.ads s-osinte-darwin.ads,
2096         s-osinte-tru64.ads, s-osinte-irix.ads, s-osinte-linux.ads,
2097         s-osinte-solaris.ads, s-osinte-vms.ads
2098         (SA_ONSTACK): New constant.
2099         (stack_t): New record type.
2100         (sigaltstack): New imported function.
2101         (Alternate_Stack): New imported variable.
2102         (Alternate_Stack_Size): New constant.
2103
2104         * system-linux-x86_64.ads: (Stack_Check_Probes): Set to True.
2105
2106         * s-taspri-lynxos.ads, s-taspri-solaris.ads, s-taspri-tru64.ads,
2107         s-taspri-hpux-dce.ads, s-taspri-dummy.ads, s-taspri-posix.ads,
2108         s-taspri-vms.ads (Task_Address): New subtype of System.Address
2109         (Task_Address_Size): New constant size of System.Address
2110         (Alternate_Stack_Size): New constant.
2111
2112         * s-taprop-posix.adb, s-taprop-linux.adb (Get_Stack_Attributes): Delete.
2113         (Enter_Task): Do not notify stack to System.Stack_Checking.Operations.
2114         Establish the alternate stack if the platform makes use of n alternate
2115         signal stack for stack overflows.
2116         (Create_Task): Take into account the alternate stack in the stack size.
2117         (Initialize): Save the address of the alternate stack into the ATCB for
2118         the environment task.
2119         (Create_Task): Fix assertions for NPTL library (vs old LinuxThreads).
2120
2121         * s-parame.adb (Minimum_Stack_Size): Increase value to 16K
2122
2123         * system-linux-x86.ads: (Stack_Check_Probes): Set to True.
2124
2125         * s-intman-posix.adb: 
2126         (Initialize): Set SA_ONSTACK for SIGSEGV if the platform makes use of an
2127         alternate signal stack for stack overflows.
2128
2129         * init.c (__gnat_adjust_context_for_raise, Linux version): On i386 and
2130         x86-64, adjust the saved value of the stack pointer if the signal was
2131         raised by a stack checking probe.
2132         (HP-UX section): Use global __gnat_alternate_stack as signal handler
2133         stack and only for SIGSEGV.
2134         (Linux section): Likewise on x86 and x86-64.
2135         [VxWorks section]
2136         (__gnat_map_signal): Now static.
2137         (__gnat_error_handler): Not static any more.
2138         (__gnat_adjust_context_for_raise): New function. Signal context
2139         adjustment for PPC && !VTHREADS && !RTP, as required by the zcx
2140         propagation circuitry.
2141         (__gnat_error_handler): Second argument of a sigaction handler is a
2142         pointer, not an int, and is unused.
2143         Adjust signal context before mapping to exception.
2144         Install signal handlers for LynxOS case.
2145
2146         * s-taskin.ads (Common_ATCB): New field Task_Alternate_Stack.
2147         (Task_Id): Set size to Task_Address_Size
2148         (To_Task_id): Unchecked convert from Task_Address vice System.Address
2149         (To_Address): Unchecked convert to Task_Address vice System.Address
2150
2151         * s-tassta.adb (Task_Wrapper): Define the alternate stack and save its
2152         address into the ATCB if the platform makes use of an alternate signal
2153         stack for stack overflows.
2154         (Free_Task): Add call to Finalize_Attributes_Link.
2155         Add argument Relative_Deadline to pass the value specified for
2156         the task. This is not yet used for any target.
2157
2158         * s-tassta.ads (Create_Task): Add argument Relative_Deadline to pass
2159         the value specified for the task.
2160
2161 2008-04-08  Arnaud Charlet  <charlet@adacore.com>
2162
2163         (s-osinte-vxworks6.ads): Removed, merged with s-osinte-vxworks.ads/.adb
2164         (s-vxwext.ads, s-vxwext-kernel.ads, s-vxwext-rtp.ads,
2165         s-vxwext-rtp.adb): New files.
2166
2167         * s-taprop-vxworks.adb, s-osinte-vxworks.ads, s-osinte-vxworks.adb: 
2168         Minor updates to accomodate changes above.
2169
2170 2008-04-08  Pascal Obry  <obry@adacore.com>
2171
2172         * a-exetim-mingw.adb, s-gloloc-mingw.adb, s-taprop-mingw.adb,
2173         s-tasinf-mingw.ad{s,b}, s-taspri-mingw.ads:
2174         Use new s-win32.ads unit instead of declaration
2175         from s-osinte-mingw.ads.
2176         
2177         * s-osinte-mingw.ads:
2178         Move all non tasking based interface to s-win32.ads.
2179         
2180         * s-osprim-mingw.adb:
2181         Remove duplicated declarations and use s-win32.ads
2182         unit instead.
2183
2184 2008-04-08  Vincent Celier  <celier@adacore.com>
2185             Arnaud Charlet  <charlet@adacore.com>
2186
2187         * mlib-tgt-aix.adb, mlib-tgt-darwin.adb, mlib-tgt-hpux.adb,
2188         mlib-tgt-irix.adb, mlib-tgt-linux.adb, mlib-tgt-lynxos.adb,
2189         mlib-tgt-solaris.adb, mlib-tgt-tru64.adb, mlib-tgt-vms.adb,
2190         mlib-tgt-vms.ads, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
2191         mlib-tgt-vxworks.adb, mlib-tgt-mingw.adb: Renamed into...
2192
2193         * mlib-tgt-specific-aix.adb, mlib-tgt-specific-darwin.adb,
2194         mlib-tgt-specific-hpux.adb, mlib-tgt-specific-irix.adb,
2195         mlib-tgt-specific-linux.adb, mlib-tgt-specific-lynxos.adb,
2196         mlib-tgt-specific-solaris.adb, mlib-tgt-specific-tru64.adb,
2197         mlib-tgt-vms_common.adb, mlib-tgt-vms_common.ads,
2198         mlib-tgt-specific-vms-alpha.adb, mlib-tgt-specific-vms-ia64.adb,
2199         mlib-tgt-specific-vxworks.adb, mlib-tgt-specific-xi.adb,
2200         mlib-tgt-specific-mingw.adb: New names.
2201
2202         * Makefile.in: 
2203         On VxWorks platforms use s-stchop-limit.ads for s-stchop.ads
2204         Get rid of gnatbl.
2205         (EXTRA_GNATRTL_NONTASKING_OBJS): Add s-win32.o
2206         Files mlib-tgt-*.adb have been renamed mlib-tgt-specific-*.adb
2207         Minor updates for VMS
2208
2209         * gnatbl.c: Removed.
2210
2211 2008-04-08  Thomas Quinot  <quinot@adacore.com>
2212
2213         * g-expect-vms.adb, a-textio.adb, a-witeio.adb, exp_dbug.adb,
2214         g-expect.adb, g-locfil.adb, gnatchop.adb, gnatdll.adb, gnatlbr.adb,
2215         gnatmem.adb, g-regist.adb, i-vxwork.ads, mlib-utl.adb, i-vxwork-x86.ads,
2216         a-ztexio.adb, g-enblsp-vms-alpha.adb, g-enblsp-vms-ia64.adb,
2217         s-os_lib.adb, s-regpat.adb, s-regpat.ads: Fix incorrect casing of
2218         ASCII.NUL throughout.
2219
2220 2008-04-08  Arnaud Charlet  <charlet@adacore.com>
2221             Matthew Heaney  <heaney@adacore.com>
2222
2223         * a-cgcaso.adb, a-convec.adb: (Swap, Sift): Avoid use of complex
2224         renaming.
2225
2226         * a-cgaaso.ads, a-secain.ads, a-slcain.ads, a-shcain.ads,  
2227         a-crdlli.ads, a-coormu.ads, a-ciormu.ads: modified header to conform
2228         to convention for non-RM specs.
2229         Add descriptive header, and documented each operation
2230         document each operation
2231
2232 2008-04-08  Robert Dewar  <dewar@adacore.com>
2233             Bob Duff  <duff@adacore.com>
2234             Gary Dismukes  <dismukes@adacore.com>
2235             Ed Schonberg  <schonberg@adacore.com>
2236
2237         * alloc.ads: Add entries for Obsolescent_Warnings table
2238
2239         * einfo.ads, einfo.adb: Minor reformatting.
2240         (Is_Discriminal): New subprogram.
2241         (Is_Prival): New subprogram.
2242         (Is_Protected_Component): New subprogram.
2243         (Is_Protected_Private): Removed.
2244         (Object_Ref, Set_Object_Ref): Removed.
2245         (Prival, Set_Prival): Change assertion.
2246         (Privals_Chain, Set_Privals_Chain): Removed.
2247         (Prival_Link, Set_Prival_Link): New subprogram.
2248         (Protected_Operation, Set_Protected_Operation): Removed.
2249         (Protection_Object, Set_Protection_Object): New subprogram.
2250         (Write_Field17_Name): Remove case for Object_Ref.
2251         (Write_Field20_Name): Add case for Prival_Link.
2252         (Write_Field22_Name): Remove case for Protected_Operation,
2253         Privals_Chain.
2254         Add case for Protection_Object.
2255         (Can_Use_Internal_Rep): Make this into a [base type only] attribute,
2256         so clients
2257         (Overlays_Constant): New flag
2258         (Is_Constant_Object): New predicate
2259         (Is_Standard_Character_Type): New predicate
2260         (Optimize_Alignment_Space): New flag
2261         (Optimize_Alignment_Time): New flag
2262         (Has_Postconditions): New flag
2263         (Obsolescent_Warrning): Field removed
2264         (Spec_PPC_List): New field
2265         (Relative_Deadline_Variable, Set_Relative_Deadline_Variable): Add
2266         subprograms to get and set the relative deadline associated to a task.
2267
2268         * exp_attr.adb (May_Be_External_Call): Account for the case where the
2269         Access attribute is part of a named parameter association.
2270         (Expand_Access_To_Protected_Op): Test for the attribute occurring
2271         within an init proc and use that directly as the scope rather than
2272         traversing up to the protected operation's enclosing scope. Only apply
2273         assertion on Is_Open_Scopes in the case the scope traversal is done.
2274         For the init proc case use the address of the first formal (_init) as
2275         the protected object reference.
2276         Implement Invalid_Value attribute
2277         (Expand_N_Attribute_Reference): Case Attribute_Unrestricted_Access.
2278         contents of the dispatch table there is no need to duplicate the
2279         itypes associated with record types (i.e. the implicit full view
2280         of private types).
2281         Implement Enum_Val attribute
2282         (Expand_N_Attribute_Reference, case Old): Properly handle appearence
2283         within _Postconditions procedure
2284         (Expand_N_Attribute_Reference, case Result): Implement new attribute
2285
2286         * exp_ch5.adb (Expand_N_Simple_Return_Statement): Handle case in which
2287         a return statement calls a function that is not available in
2288         configurable runtime.
2289         (Analyze_If_Statement): don't optimize simple True/False cases in -O0
2290         (Expand_Non_Function_Return): Generate call to _Postconditions proc
2291         (Expand_Simple_Function_Return): Ditto
2292
2293         * frontend.adb: Add call to Sem_Aux.Initialize
2294
2295         * sem_aux.ads, sem_aux.adb: New file.
2296
2297         * par-prag.adb: Add entries for pragmas Precondition/Postcondition
2298         Add new Pragma_Relative_Deadline.
2299         Add support for pragmas Check and Check_Policy
2300
2301         * sem_attr.ads, sem_attr.adb (Check_Not_CPP_Type): New subprogram.
2302         (Check_Stream_Attribute): Add missing check (not allowed in CPP types)
2303         (Analyze_Attribute): In case of attributes 'Alignment and 'size add
2304         missing check because they are not allowed in CPP tagged types.
2305         Add Sure parameter to Note_Possible_Modification calls
2306         Add implementation of Invalid_Value attribute
2307         Implement new attribute Has_Tagged_Values
2308         Implement Enum_Val attribute
2309         (Analyze_Attribute, case Range): Set Name_Req True for prefix of
2310         generated attributes.
2311         (Analyze_Attribute, case Result): If prefix of the attribute is
2312         overloaded, it always resolves to the enclosing function.
2313         (Analyze_Attribute, case Result): Properly deal with analysis when
2314         Postconditions are not active.
2315         (Resolve_Attribute, case Result): Properly deal with appearence during
2316         preanalysis in spec.
2317         Add processing for attribute Result
2318
2319         * sem_ch6.ads, sem_ch6.adb (Check_Overriding_Indicator): Code cleanup
2320         for operators.
2321         (Analyze_Subprogram_Body): Install private_with_clauses when the body
2322         acts as a spec.
2323         (Check_Inline_Pragma): recognize an inline pragma that appears within
2324         the subprogram body to which it applies.
2325         (Analyze_Function_Return): Check that type of the expression of a return
2326         statement in a function with a class-wide result is not declared at a
2327         deeper level than the function.
2328         (Process_PPCs): Deal with enabling/disabling, using PPC_Enabled flag
2329         (Verify_Overriding_Indicator): Handle properly subprogram bodies for
2330         user- defined operators.
2331         (Install_Formals): Moved to spec to allow use from Sem_Prag for
2332         analysis of precondition/postcondition pragmas.
2333         (Analyze_Subprogram_Body.Last_Real_Spec_Entity): New name for
2334         Last_Formal, along with lots of comments on what this is about
2335         (Analyze_Subprogram_Body): Fix case where we move entities from the
2336         spec to the body when there are no body entities (now possible with
2337         precondition and postcondition pragmas).
2338         (Process_PPCs): New procedure
2339         (Analyze_Subprogram_Body): Add call to Process_PPCs
2340
2341         * sem_ch8.adb (Use_One_Type): refine warning on a redundant use_type
2342         clause.
2343         (Pop_Scope): Restore Check_Policy_List on scope exit
2344         (Push_Scope): Save Check_Policy_List on scope entry
2345         Change name In_Default_Expression      => In_Spec_Expression
2346         Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
2347         Change name Pre_Analyze_And_Resolve    => Preanalyze_And_Resolve
2348         (Analyze_Object_Renaming): Allow 'Reference as object
2349         (Analyze_Pragma, case Restriction_Warnings): Call GNAT_Pragma
2350         (Process_Restrictions_Or_Restriction_Warnings): Check for bad spelling
2351         of restriction identifier.
2352         Add Sure parameter to Note_Possible_Modication calls
2353
2354         * sem_prag.ads, sem_prag.adb (Analyze_Pragma, case Stream_Convert):
2355         Don't check for primitive operations when calling Rep_Item_Too_Late.
2356         (Process_Import_Or_Interface): Do not place flag on formal
2357         subprograms.
2358         (Analyze_Pragma, case Export): If the entity is a deferred constant,
2359         propagate information to full view, which is the one elaborated by the
2360         back-end.
2361         (Make_Inline): the pragma is effective if it applies to an internally
2362         generated subprogram declaration for a body that carries the pragma.
2363         (Analyze_Pragma, case Optimize_Alignment): Set new flag
2364         Optimize_Alignment_Local.
2365         (Analyze_PPC_In_Decl_Part): New procedure
2366         (Get_Pragma_Arg): Moved to outer level
2367         (Check_Precondition_Postcondition): Change to allow new visibility
2368         rules for package spec
2369         (Analyze_Pragma, case Check_Policy): Change placement rules to be
2370         same as pragma Suppress/Unsuppress.
2371         Change name In_Default_Expression      => In_Spec_Expression
2372         Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
2373         Change name Pre_Analyze_And_Resolve    => Preanalyze_And_Resolve
2374         (Check_Precondition_Postcondition): Do proper visibility preanalysis
2375         for the case of these pragmas appearing in the spec.
2376         (Check_Enabled): New function
2377         (Initialize): New procedure
2378         (Tree_Read): New procedure
2379         (Tree_Write): New procedure
2380         (Check_Precondition_Postcondition): New procedure
2381         Implement pragmas Check and Check_Policy
2382         Merge Assert processing with Check
2383
2384         * sem_warn.adb (Warn_On_Known_Condition): Handle pragma Check
2385         New warning flag -gnatw.e
2386
2387         * sinfo.ads, sinfo.adb (Has_Relative_Deadline_Pragma): New function
2388         returning whether a task (or main procedure) has a pragma
2389         Relative_Deadline.
2390         (Set_Has_Relative_Deadline_Pragma): Procedure to indicate that a task
2391         (or main procedure) has a pragma Relative_Deadline.
2392         Add Next_Pragma field to N_Pragma node
2393         (PPC_Enabled): New flag
2394         (Next_Pragma): Now used for Pre/Postcondition processing
2395
2396         * snames.h, snames.ads, snames.adb: New standard name
2397         Inherit_Source_Path
2398         Add entry for 'Invalid_Value attribute
2399         Add entry for new attribute Has_Tagged_Values
2400         Add entry for Enum_Val attribute
2401         Add new standard names Aggregate, Configuration and Library.
2402         Add _Postconditions
2403         Add _Result
2404         Add Pragma_Precondition
2405         Add Pragma_Postcondition
2406         Add Attribute_Result
2407         New standard name Archive_Builder_Append_Option
2408         (Preset_Names): Add _relative_deadline and relative_deadline definitions
2409         There was also a missing non_preemptive_within_priorities.
2410         (Get_Pragma_Id, Is_Pragma_Name): Add support for pragma
2411         Relative_Deadline.
2412         Add support for pragmas Check and Check_Policy
2413
2414         * tree_gen.adb: Call Sem_Aux.Tree_Write
2415
2416         * tree_in.adb: Call Sem_Aux.Tree_Read
2417
2418         * exp_ch11.adb (Expand_N_Raise_Statement): New Build_Location calling
2419         sequence
2420
2421         * exp_intr.adb (Expand_Source_Info): New Build_Location calling
2422         sequence
2423
2424         * exp_prag.adb (Expand_Pragma_Relative_Deadline): New procedure.
2425         (Expand_N_Pragma): Call the appropriate procedure for expanding pragma
2426         Relative_Deadline.
2427         (Expand_Pragma_Check): New procedure
2428
2429         * sinput.ads, sinput.adb (Build_Location_String): Now appends to name
2430         buffer.
2431
2432         * sinfo.adb (PPC_Enabled): New flag
2433
2434 2008-04-08  Robert Dewar  <dewar@adacore.com>
2435             Gary Dismukes  <dismukes@adacore.com>
2436             Javier Miranda  <miranda@adacore.com>
2437             Ed Schonberg  <schonberg@adacore.com>
2438
2439         * fe.h: Remove global Optimize_Alignment flag, no longer used
2440
2441         * layout.adb: Test Optimize_Alignment flags rather than global switch
2442
2443         * lib.ads, lib.adb: New OA_Setting field in library record
2444
2445         * lib-load.adb: New OA_Setting field in library record
2446
2447         * lib-writ.ads, lib-writ.adb (Collect_Withs, Write_With_Lines): Place
2448         units mentioned in limited_with_ clauses in the ali file, with an
2449         'Y' marker.
2450         New Ox fields in U line
2451
2452         * opt.adb: New flag Optimize_Alignment_Local
2453         (Check_Policy_List[_Config]): New flags
2454
2455         * opt.ads (Invalid_Value_Used): New flag
2456         New switch Optimize_Alignment_Local
2457         (Warn_On_Parameter_Order): New flag
2458         (Check_Policy_List[_Config]): New flags
2459
2460         * ali.ads, ali.adb: Add indicator 'Y' to mark mark the presence of
2461         limited_with clauses.
2462         New data structures for Optimize_Alignment
2463
2464         * bcheck.adb (Check_Consistent_Restriction_No_Default_Initialization):
2465         New procedure
2466         (Check_Consistent_Optimize_Alignment): Rework for new structure
2467         (Check_Consistent_Restrictions): Fix incorrect error message
2468
2469         sem_ch10.adb (Decorate_Tagged_Type): Set the Parent field of a newly
2470         created class-wide type (to the Parent field of the specific type).
2471         (Install_Siblings): Handle properly private_with_clauses on subprogram
2472         bodies and on generic units.
2473         (Analyze_With_Clause, Install_Limited_Withed_Unit): Guard against an
2474         illegal limited_with_clause that names a non-existent package.
2475         (Check_Body_Required): Determine whether a unit named a limited_with
2476         clause needs a body.
2477         (Analyze_Context): A limited_with_clause is illegal on a unit_renaming.
2478         Capture Optimize_Alignment settings to set new OA_Setting field in
2479         library record.
2480         (Build_Limited_Views): Include task and protected type declarations.
2481
2482         * sem_ch3.ads, sem_ch3.adb (Analyze_Object_Declaration): Handle the
2483         case of a possible constant redeclaration where the current object is
2484         an entry index constant.
2485         (Analyze_Object_Declaration): Generate an error in case of CPP
2486         class-wide object initialization.
2487         (Analyze_Object_Declaration): Add extra information on warnings for
2488         declaration of unconstrained objects.
2489         (Access_Type_Declaration): Set Associated_Final_Chain to Empty, to avoid
2490         conflicts with the setting of Stored_Constraint in the case where the
2491         access type entity has already been created as an E_Incomplete_Type due
2492         to a limited with clause.
2493         Use new Is_Standard_Character_Type predicate
2494         (Analyze_Object_Declaration): Apply access_constant check only after
2495         expression has been resolved, given that it may be overloaded with
2496         several access types.
2497         (Constant_Redeclaration): Additional legality checks for deferred
2498         constant declarations tha involve anonymous access types and/or null
2499         exclusion indicators.
2500         (Analyze_Type_Declaration): Set Optimize_Alignment flags
2501         (Analyze_Subtype_Declaration): Ditto
2502         (Analyze_Object_Declaration): Ditto
2503         (Analyze_Object_Declaration): Don't count tasks in generics
2504         Change name In_Default_Expression      => In_Spec_Expression
2505         Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
2506         Change name Pre_Analyze_And_Resolve    => Preanalyze_And_Resolve
2507         (Process_Discriminants): Additional check for illegal use of default
2508         expressions in access discriminant specifications in a type that is not
2509         explicitly limited.
2510         (Check_Abstract_Overriding): If an inherited function dispaches on an
2511         access result, it must be overridden, even if the type is a null
2512         extension.
2513         (Derive_Subprogram): The formals of the derived subprogram have the
2514         names and defaults of the parent subprogram, even if the type is
2515         obtained from the actual subprogram.
2516         (Derive_Subprogram): In the presence of interfaces, a formal of an
2517         inherited operation has the derived type not only if it descends from
2518         the type of the formal of the parent operation, but also if it
2519         implements it. This is relevant for the renamings created for the
2520         primitive operations of the actual for a formal derived type.
2521         (Is_Progenitor): New predicate, to determine whether the type of a
2522         formal in the parent operation must be replaced by the derived type.
2523
2524         * sem_util.ads, sem_util.adb (Has_Overriding_Initialize): Make
2525         predicate recursive to handle components that have a user-defined
2526         Initialize procedure. Handle controlled derived types whose ancestor
2527         has a user-defined Initialize procedured.
2528         (Note_Possible_Modification): Add Sure parameter, generate warning if
2529         sure modification of constant
2530         Use new Is_Standard_Character_Type predicate
2531         (Find_Parameter_Type): when determining whether a protected operation
2532         implements an interface operation, retrieve the type of the formal from
2533         the entity when the formal is an access parameter or an
2534         anonymous-access-to-subprogram.
2535         Move Copy_Parameter_List to sem_util, for use when building stubbed
2536         subprogram bodies.
2537         (Has_Access_Values): Tagged types now return False
2538         (Within_HSS_Or_If): New procedure
2539         (Set_Optimize_Alignment_Flags): New procedure
2540         Change name In_Default_Expression      => In_Spec_Expression
2541         Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
2542         Change name Pre_Analyze_And_Resolve    => Preanalyze_And_Resolve
2543
2544 2008-04-08  Tristan Gingold  <gingold@adacore.com>
2545
2546         * s-fileio.adb: Name_Error shouldn't be raised for a tempory file.
2547
2548 2008-04-08  Tristan Gingold  <gingold@adacore.com>
2549
2550 PR ada/10768
2551
2552         * cuintp.c: Fix 16 bits issue for AVR.
2553         On AVR, integer is 16 bits, so it can't be used to do math with
2554         Base (=32768).
2555         So use long_integer instead.
2556
2557 2008-04-08  Hristian Kirtchev  <kirtchev@adacore.com>
2558
2559         * a-calend-vms.ads, a-calend-vms.adb: Add with and use clause for
2560         System.OS_Primitives.
2561         Change type of various constants, parameters and local variables from
2562         Time to representation type OS_Time.
2563         (To_Ada_Time, To_Unix_Time): Correct sign of origin shift.
2564         Remove the declaration of constant Mili_F from several routines. New
2565         body for internal package Conversions_Operations.
2566         (Time_Of): Add default parameters for several formals.
2567
2568         * a-caldel.adb: Minor reformatting
2569
2570         * a-calend.ads, a-calend.adb: New body for internal package
2571         Conversions_Operations.
2572         (Time_Of): Add default parameters for several formals.
2573
2574         * Makefile.rtl: Add a-ststop
2575         Add Ada.Calendar.Conversions to the list of runtime files.
2576         Add g-timsta
2577
2578         * a-calcon.adb, a-calcon.ads: New files.
2579
2580 2008-04-08  Jose Ruiz  <ruiz@adacore.com>
2581             Tristan Gingold  <gingold@adacore.com>
2582
2583         * s-interr-dummy.adb, s-interr-vms.adb, s-interr-sigaction.adb
2584         (Install_Restricted_Handlers): New procedure
2585         which is a simplified version of Install_Handlers that does not store
2586         previously installed.
2587
2588         * s-interr-vxworks.adb: Fix ACATS cxc3001
2589         On VxWorks interrupts can't be detached.
2590         (Install_Restricted_Handlers): New procedure.
2591
2592         * s-interr.ads, s-interr.adb (Install_Restricted_Handlers): New
2593         procedure.
2594
2595 2008-04-08  Olivier Hainque  <hainque@adacore.com>
2596
2597         * s-intman-vxworks.ads, s-intman-vxworks.adb
2598         (Map_And_Raise_Exception): Remove. Was an import of only part of the
2599         required services already implemented elsewhere.
2600         (Notify_Exception): Delete body, import __gnat_error_handler instead.
2601         (Initialize): Add SA_SIGINFO to the sa_flags, to get the sigcontext
2602         argument passed to the handler, which we need for ZCX propagation
2603         purposes.
2604
2605 2008-04-08  Hristian Kirtchev  <kirtchev@adacore.com>
2606
2607         * adaint.h, adaint.c (__gnat_current_time_string): New routine.
2608
2609         * g-timsta.adb, g-timsta.ads: New files.
2610
2611 2008-04-08  Robert Dewar  <dewar@adacore.com>
2612
2613         * a-except-2005.ads, a-except-2005.adb, a-except.ads, a-except.adb
2614         (Raise_Exception): In accordance with AI-446, raise CE for Null_Id
2615         (Raise_Exception_Always): Fix documentation accordingly
2616
2617 2008-04-08  Robert Dewar  <dewar@adacore.com>
2618
2619         * a-strbou.ads, a-strbou.adb (From_String): New procedure (for use by
2620         Stream_Convert)
2621
2622         * sem_ch13.ads (Rep_Item_Too_Late): Document that Stream_Convert sets
2623         FOnly
2624
2625 2008-04-08  Javier Miranda  <miranda@adacore.com>
2626             Robert Dewar  <dewar@adacore.com>
2627             Ed Schonberg  <schonberg@adacore.com>
2628
2629         * a-tags.adb (Register_Interface_Offset): New subprogram.
2630         (Set_Dynamic_Offset_To_Top): New subprogram (see previous comment).
2631         (To_Predef_Prims_Table_Ptr): Removed.
2632         (Acc_Size): Removed.
2633         (To_Acc_Size): Removed.
2634         (Parent_Size): Modified to the call the subprogram returning the size of
2635         the parent by means of the new TSD component Size_Func.
2636
2637         * a-tags.ads (Offset_To_Top_Ptr): New access type declaration.
2638         (DT_Offset_To_Top_Offset): New constant value that is used to generate
2639         code referencing the Offset_To_Top component of the dispatch table's
2640         prologue.
2641         (Prim_Ptr): New declaration of access to procedure. Used to avoid the
2642         use of 'address to initialize dispatch table slots.
2643         (Size_Func): New component of the TSD. Used by the run-time to call the
2644         size primitive of the tagged type.
2645
2646         * checks.adb (Apply_Access_Check): Avoid check when accessing the
2647         Offset_To_Top component of a dispatch table.
2648         (Null_Exclusion_Static_Checks): If the non-null access type appears in a
2649         deferred constant declaration. do not add a null expression, to prevent
2650         spurious errors when full declaration is analyzed.
2651         (Apply_Discriminant_Check): If both discriminant constraints share a
2652         node which is not static but has no side effects, do not generate a
2653         check for that discriminant.
2654         (Generate_Index_Checks): Set Name_Req to true in call to duplicate
2655         subexpr, since the prefix of an attribute is a name.
2656
2657         * checks.ads: Fix nit in comment.
2658
2659         * exp_ch3.ads, exp_ch3.adb (Freeze_Record_Type): Do not add the spec
2660         and body of predefined primitives in case of CPP tagged type
2661         derivations.
2662         (Freeze_Type): Deal properly with no storage pool case
2663         (Make_Predefined_Primitive_Specs): Generate specification of abstract
2664         primitive Deep_Adjust if a nonlimited interface is derived from a
2665         limited interface.
2666         (Build_Dcheck_Functions): Create discriminant-checking functions only
2667         for variants that have some component(s).
2668         (Build_Slice_Assignment): In expanded code for slice assignment, handle
2669         properly the case where the slice bounds extend to the last value of the
2670         underlying representation.
2671         (Get_Simple_Init_Val): New calling sequence, accomodate Invalid_Value
2672         (Is_Variable_Size_Record): An array component has a static size if
2673         index bounds are enumeration literals.
2674
2675         * exp_disp.adb (Make_DT): Use the first subtype to determine whether
2676         an external tag has been specified for the type.
2677         (Building_Static_DT): Add missing support for private types.
2678         (Make_DT): Add declaration of Parent_Typ to ensure consistent access
2679         to the entity associated with the parent of Typ. This is done to
2680         avoid wrong access when the parent is a private type.
2681         (Expand_Interface_Conversion): Improve error message when the
2682         configurable runtime has no support for dynamic interface conversion.
2683         (Expand_Interface_Thunk): Add missing support to interface types in
2684         configurable runtime.
2685         (Expand_Dispatching_Call): remove obsolete code.
2686         (Make_DT): Replace occurrences of RE_Address by RE_Prim_Ptr, and
2687         ensure that all subtypes and aggregates associated with dispatch
2688         tables have the attribute Is_Dispatch_Table_Entity set to true.
2689         (Register_Primitive): Rename one variable to improve code reading.
2690         Replace occurrences of RE_Addres by RE_Prim_Ptr. Register copy o
2691         of the pointer to the 'size primitive in the TSD.
2692
2693         * rtsfind.ads (RE_DT_Offset_To_Top_Offset): New entity.
2694         (RE_Offset_To_Top_Ptr): New entity.
2695         (RE_Register_Interface_Offset): New entity.
2696         (RE_Set_Dynamic_Offset_To_Top): New entity.
2697         (RE_Set_Offset_To_Top): Removed entity.
2698         (RE_Prim_Ptr): New entity
2699         (RE_Size_Func): New entity
2700         (RE_Size_Ptr): New entity
2701         (RTU_Id): Add Ada_Dispatching and Ada_Dispatching_EDF.
2702         (Ada_Dispatching_Child): Define this new subrange.
2703         (RE_Id): Add new required run-time calls (RE_Set_Deadline, RE_Clock,
2704          RE_Time_Span, and RE_Time_Span_Zero).
2705         (RE_Unit_Table): Add new required run-time calls
2706
2707         * rtsfind.adb (Get_Unit_Name): Add processing for Ada.Dispatching
2708         children.
2709
2710         * exp_atag.ads, exp_atag.adb (Build_Offset_To_Top): New subprogram.
2711         (Build_Set_Static_Offset_To_Top): New subprogram. Generates code that
2712          initializes the Offset_To_Top component of a dispatch table.
2713         (Build_Predef_Prims): Removed.
2714         (Build_Get_Predefined_Prim_Op_Address): Replace call to Predef_Prims by
2715          its actual code.
2716         (Build_Set_Size_Function): New subprogram.
2717
2718         * exp_ch13.adb: Do not generate storage variable for storage_size zero
2719         (Expand): Handle setting/restoring flag Inside_Freezing_Actions
2720
2721 2008-04-08  Robert Dewar  <dewar@adacore.com>
2722
2723         * a-ztdeau.adb, a-tideau.adb, a-wtdeau.adb (Puts_Dec): Fix error in
2724         computing Fore when Exp > 0
2725
2726 2008-04-08  Robert Dewar  <dewar@adacore.com>
2727
2728         * back_end.adb: Remove Big_String_Ptr declarations (now in Types)
2729
2730         * errout.adb: Remove Big_String_Ptr declarations (now in Types)
2731         Change name Is_Style_Msg to Is_Style_Or_Info_Msg
2732
2733         * fmap.adb: Remove Big_String declarations (now in Types)
2734         (No_Mapping_File): New Boolean global variable
2735         (Initialize): When mapping file cannot be read, set No_Mapping_File to
2736         False.
2737         (Update_Mapping_File): Do nothing if No_Mapping_File is True. If the
2738         tables were empty before adding entries, open the mapping file
2739         with Truncate = True, instead of delete/re-create.
2740
2741         * fname-sf.adb: Remove Big_String declarations (now in Types)
2742
2743         * s-strcom.adb, g-dyntab.ads, g-table.ads, s-carsi8.adb,
2744         s-stalib.ads, s-carun8.adb: Add zero size Storage_Size clauses for
2745         big pointer types
2746
2747         * table.ads: Add for Table_Ptr'Storage_Size use 0
2748
2749         * types.ads: Add Big_String declarations
2750         Add Size_Clause of zero for big pointer types
2751
2752 2008-04-08  Vincent Celier  <celier@adacore.com>
2753
2754         * clean.adb (Parse_Cmd_Line): Recognize switch --subdirs=
2755         (Usage): Add line for switch --subdirs=
2756         Add new switch -eL, to follow symbolic links when processing project
2757         files.
2758
2759         * gnatcmd.adb: Process switches -eL and --subdirs=
2760         (Non_VMS_Usage): Output "gnaampcmd" instead of "gnat", and call
2761         Program_Name to get proper tool names when AAMP_On_Target is set.
2762         (Gnatcmd): Call Add_Default_Search_Dirs and Get_Target_Parameters to get
2763         AAMP_On_Target set properly for use of GNAAMP tools (this is needed by
2764         Osint.Program_Name).
2765
2766         * gnatname.adb: (Scan_Args): Recognize switches -eL and --subdirs=
2767         (Usage): Add lines for switches -eL and --subdirs=
2768
2769         * makeusg.adb: Add line for switch --subdirs=
2770
2771         * prj.ads: 
2772         (Source_Data): New Boolean component Compiled, defaulted to True
2773         (Empty_File_Name: New global variable in private part, initialized in
2774         procedure Initialize.
2775         (Subdirs_Option): New constant string
2776         (Subdirs): New String_Ptr global variable
2777         (Language_Config): New component Include_Compatible_Languages
2778         (Project_Qualifier): New type for project qualifiers
2779         (Project_Data): New component Qualifier
2780         (Project_Configuration): New component Archive_Builder_Append_Option
2781
2782         * prj-nmsc.adb (Get_Unit_Exceptions): When a unit is already in
2783         another imported project indicate the name of this imported project.
2784         (Check_File): When a unit is in two project files, indicate the project
2785         names and the paths of the source files for each project.
2786         (Add_Source): Set Compiled to False if compiler driver is empty. Only
2787         set object, dependency and switches file names if Compiled is True.
2788         (Process_Compiler): Allow the empty string for value of attribute Driver
2789         (Get_Directories): When Subdirs is not null and Object_Dir is not
2790          specified, locate and create if necessary the actual object dir.
2791         (Locate_Directory): When Subdirs is not empty and Create is not the
2792         empty string, locate and create if necessary the actual directory
2793         as a subdirectory of directory Name.
2794         (Check_Library_Attributes.Check_Library): Allow a project where the only
2795         "sources" are header files of file based languages to be imported by
2796         library projects, in multi-language mode (gprbuild).
2797         (Check_Library_Attributes.Check_Library): In multi-language mode
2798         (gprbuild), allow a library project to import a project with no
2799         sources, even when this is not declared explicitly.
2800         (Check_If_Externally_Built): A virtual project extending an externally
2801         built project is also externally built.
2802         (Check_Library_Attributes): For a virtual project extending a library
2803         project, inherit the library directory.
2804         (Process_Project_Level_Array_Attributes): Process new attribute
2805         Inherit_Source_Path.
2806         For projects with specified qualifiers "standard", "library" or
2807         "abstract", check that the project conforms to the qualifier.
2808         (Process_Project_Level_Simple_Attributes): Process new attribute
2809          Archive_Builder_Append_Option.
2810
2811         * switch-m.adb: (Scan_Make_Switches): Process switch --subdirs=
2812         (Normalize_Compiler_Switches): Only keep compiler switches that are
2813         passed to gnat1 by the gcc driver and that are stored in the ALI file
2814         by gnat1.
2815         Do not take into account switc -save-temps
2816
2817         * makegpr.adb (Compile_Link_With_Gnatmake): Transmit switch -eL if
2818         gprmake is called with -eL.
2819         (Scan_Arg): Recognize switch -eL
2820         (Usage): Add line for switch -eL
2821
2822         * prj.adb (Initialize): Initialize Empty_File_Name
2823         (Project_Empty): New component Qualifier
2824
2825         * prj-attr.ads, prj-attr.adb: New project level attribute
2826         Inherit_Source_Path.
2827         New project level attribute Archive_Builder_Append_Option
2828
2829         * prj-dect.adb: Replace System.Strings by GNAT.Strings.
2830
2831         * prj-ext.adb (Initialize_Project_Path): In Multi_Language mode, add
2832         <prefix>/lib/gnat in the project path, after <prefix>/share/gpr, for
2833         upward compatibility.
2834
2835         * prj-part.adb (Project_Path_Name_Of.Try_Path): In high verbosity, put
2836         each Trying ..." on different lines.
2837         (Parse_Single_Project): Recognize project qualifiers. Fail in qualifier
2838         is "configuration" when not in configuration. Fail when in configuration
2839         when a specified qualifier is other than "configuration".
2840
2841         * prj-proc.adb (Process_Declarative_Items): Link new elements of copied
2842         full associative array together.
2843         (Recursive_Process): Put the project qualifier in the project data
2844         
2845         * prj-tree.ads, prj-tree.adb: (Project_Qualifier_Of): New function
2846         (Set_Project_Qualifier_Of): New procedure
2847
2848 2008-04-08  Robert Dewar  <dewar@adacore.com>
2849
2850         * errout.ads: Update comments for new handling of info: messages
2851
2852         * erroutc.adb (Matches): New procedure
2853         (Warning_Specifically_Suppressed): Modified to handle multiple * chars
2854         (Is_Style_Or_Info_Msg): New name for Is_Style_Msg, now set for
2855          info messages as well as style messages.
2856
2857         * erroutc.ads: Remove unneeded fields from Specific_Warning_Entry
2858
2859         * sem_elab.adb (Supply_Bodies): Create actual bodies for stubbed
2860         subprograms.
2861         (Check_A_Call): Special "info: " warnings now have ? in the text
2862         (Elab_Warning): Use info message in static case
2863
2864 2008-04-08  Ed Schonberg  <schonberg@adacore.com>
2865
2866         * exp_aggr.adb (Static_Array_Aggregate): Use Max_Aggr_Size to determine
2867         whether an array aggregate with static bounds and scalar components
2868         should be expanded into a static constant.
2869
2870 2008-04-08  Gary Dismukes  <dismukes@adacore.com>
2871             Ed Schonberg  <schonberg@adacore.com>
2872             Robert Dewar  <dewar@adacore.com>
2873
2874         * sem_cat.adb (Validate_RCI_Subprogram_Declaration): Add tests of
2875         Has_Stream_Attribute_ Definition when checking for available stream
2876         attributes on parameters of a limited type in Ada 2005. Necessary for
2877         proper recognition of visible stream attribute clauses.
2878         (Has_Stream_Attribute_Definition): If the type is derived from a
2879         private type, then use the derived type's underlying type for checking
2880         whether it has stream attributes.
2881         (Validate_Object_Declaration): The check for a user-defined Initialize
2882         procedure applies also to types with controlled components or a
2883         controlled ancestor.
2884         Reject an object declaration in a preelaborated unit if the type is a
2885         controlled type with an overriding Initialize procedure.
2886         (Validate_Remote_Access_To_Class_Wide_Type): Return without further
2887         checking when the parent of a dereference is a selected component and
2888         the name has not been analyzed.
2889
2890         * sem_ch4.adb (Analyze_Selected_Component): Add checking for selected
2891         prefixes that are invalid explicit dereferences of remote
2892         access-to-class-wide values, first checking whether the selected
2893         component is a prefixed form of call to a tagged operation.
2894         (Analyze_Call): Remove code that issues an error for limited function
2895         calls in illegal contexts, as we now support all of the contexts that
2896         were forbidden here.
2897         Allow a function call that returns a task.and appears as the
2898         prefix of a selected component.
2899         (Analyze_Reference): Give error message if we try to make a 'Reference
2900         for an object that is atomic/aliased without its type having the
2901         corresponding attribute.
2902         (Analyze_Call): Remove condition checking for attributes to allow
2903         calls to functions with inherently limited results as prefixes of
2904         attributes. Remove related comment about Class attributes.
2905         (Analyze_Selected_Component): If the prefix is a remote type, check
2906         whether this is a prefixed call before reporting an error.
2907         (Complete_Object_Operation): If the controlling formal is an access to
2908         variable reject an actual that is a constant or an access to one.
2909         (Try_Object_Operation): If prefix is a tagged protected object,retrieve
2910         primitive operations from base type.
2911
2912         * exp_ch4.adb (Expand_N_Indexed_Component): Test for prefix that is a
2913         build-in-place
2914         function call and call Make_Build_In_Place_Call_In_Anonymous_Context.
2915         (Expand_N_Selected_Component): Test for prefix that is a build-in-place
2916         function call and call Make_Build_In_Place_Call_In_Anonymous_Context.
2917         (Expand_N_Slice): Test for prefix that is a build-in-place function call
2918         and call Make_Build_In_Place_Call_In_Anonymous_Context.
2919         (Analyze_Call): Remove code that issues an error for limited function
2920         calls in illegal contexts, as we now support all of the contexts that
2921         were forbidden here.
2922         New calling sequence for Get_Simple_Init_Val
2923         (Expand_Boolean_Operator): Add call to Silly_Boolean_Array_Xor_Test
2924         (Expand_N_Op_Not): Add call to Silly_Boolan_Array_Not_Test
2925
2926 2008-04-08  Hristian Kirtchev  <kirtchev@adacore.com>
2927             Ed Schonberg  <schonberg@adacore.com>
2928             Robert Dewar  <dewar@adacore.com>
2929
2930         * exp_ch2.adb: Minor reformatting.
2931         (Expand_Entry_Index_Parameter): Set the type of the identifier.
2932         (Expand_Entry_Reference): Add call to Expand_Protected_Component.
2933         (Expand_Protected_Component): New routine.
2934         (Expand_Protected_Private): Removed.
2935         Add Sure parameter to Note_Possible_Modification calls
2936
2937         * sem_ch12.ads, sem_ch12.adb (Analyze_Subprogram_Instantiation): The
2938         generated subprogram declaration must inherit the overriding indicator
2939         from the instantiation node.
2940         (Validate_Access_Type_Instance): If the designated type of the actual is
2941         a limited view, use the available view in all cases, not only if the
2942         type is an incomplete type.
2943         (Instantiate_Object):  Actual is illegal if the formal is null-excluding
2944         and the actual subtype does not exclude null.
2945         (Process_Default): Handle properly abstract formal subprograms.
2946         (Check_Formal_Package_Instance): Handle properly defaulted formal
2947         subprograms in a partially parameterized formal package.
2948         Add Sure parameter to Note_Possible_Modification calls
2949         (Validate_Derived_Type_Instance): if the formal is non-limited, the
2950         actual cannot be limited.
2951         (Collect_Previous_Instances): Generate instance bodies for subprograms
2952         as well.
2953
2954         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Small): Don't
2955         try to set RM_Size.
2956         Add Sure parameter to Note_Possible_Modification calls
2957         (Analyze_At_Clause): Preserve Comes_From_Source on Rewrite call
2958         (Analyze_Attribute_Definition_Clause, case Attribute_Address): Check for
2959         constant overlaid by variable and issue warning.
2960         Use new Is_Standard_Character_Type predicate
2961         (Analyze_Record_Representation_Clause): Check that the specified
2962         Last_Bit is not less than First_Bit - 1.
2963         (Analyze_Attribute_Definition_Clause, case Address): Check for
2964         self-referential address clause
2965
2966         * sem_ch5.ads, sem_ch5.adb (Diagnose_Non_Variable_Lhs): Rewrite the
2967         detection mechanism when the lhs is a prival.
2968         (Analyze_Assignment): Call Check_Unprotected_Access to detect
2969         assignment of a pointer to protected data, to an object declared
2970         outside of the protected object.
2971         (Analyze_Loop_Statement): Check for unreachable code after loop
2972         Add Sure parameter to Note_Possible_Modication calls
2973         Protect analysis from previous syntax error such as a scope mismatch
2974         or a missing begin.
2975         (Analyze_Assignment_Statement): The assignment is illegal if the
2976         left-hand is an interface.
2977
2978         * sem_res.ads, sem_res.adb (Resolve_Arithmetic_Op): For mod/rem check
2979         violation of restriction No_Implicit_Conditionals
2980         Add Sure parameter to Note_Possible_Modication calls
2981         Use new Is_Standard_Character_Type predicate
2982         (Make_Call_Into_Operator): Preserve Comes_From_Source when rewriting
2983         call as operator. Fixes problems (e.g. validity checking) which
2984         come from the result looking as though it does not come from source).
2985         (Resolve_Call): Check case of name in named parameter if style checks
2986         are enabled.
2987         (Resolve_Call): Exclude calls to Current_Task as entry formal defaults
2988         from the checking that such calls should not occur from an entry body.
2989         (Resolve_Call): If the return type of an Inline_Always function
2990         requires the secondary stack, create a transient scope for the call
2991         if the body of the function is not available for inlining.
2992         (Resolve_Actuals): Apply Ada2005 checks to view conversions of arrays
2993         that are actuals for in-out formals.
2994         (Try_Object_Operation): If prefix is a tagged protected object,retrieve
2995         primitive operations from base type.
2996         (Analyze_Selected_Component): If the context is a call to a protected
2997         operation the parent may be an indexed component prior to expansion.
2998         (Resolve_Actuals): If an actual is of a protected subtype, use its
2999         base type to determine whether a conversion to the corresponding record
3000         is needed.
3001         (Resolve_Short_Circuit): Handle pragma Check
3002
3003         * sem_eval.adb: Minor code reorganization (usea Is_Constant_Object)
3004         Use new Is_Standard_Character_Type predicate
3005         (Eval_Relational_Op): Catch more cases of string comparison
3006
3007 2008-04-08  Robert Dewar  <dewar@adacore.com>
3008             Gary Dismukes  <dismukes@adacore.com>
3009
3010         * s-rident.ads: Add No_Default_Initialization restriction
3011
3012         * exp_tss.adb: 
3013         (Has_Non_Null_Base_Init_Proc): Handle No_Default_Initialization case
3014         (Set_TSS): Handle No_Default_Initialization case
3015
3016         * exp_ch6.adb (Expand_N_Subprogram_Body): Handle restriction
3017         No_Default_Initialization
3018         (Expand_N_Subprogram_Body): Remove redundant initialization of out
3019         parameters when Normalize_Scalars is active.
3020         (Add_Final_List_Actual_To_Build_In_Place_Call): Add formal Sel_Comp
3021         Fix casing error in formal parameter name in call
3022         (Register_Predefined_DT_Entry): Replace occurrences of RE_Address by
3023         (Expand_Call, Propagate_Tag): Call Kill_Current_Values when processing a
3024         dispatching call on VM targets.
3025
3026 2008-04-08  Gary Dismukes  <dismukes@adacore.com>
3027             Thomas Quinot  <quinot@adacore.com>
3028
3029         * exp_ch7.adb (Find_Final_List): Change the test for generating a
3030         selected component from an access type's Associated_Final_Chain to
3031         check for the presence of that field, rather than assuming it exists
3032         for all named access types.
3033         (Make_Clean): New formal Chained_Cleanup_Action allowing to specify a
3034         procedure to call at the end of the generated cleanup procedure.
3035         (Expand_Cleanup_Actions): When a new cleanup procedure is generated, and
3036         and an At_End_Proc already exists in the handled sequence of statements
3037         for which cleanup actions are being expanded, the original cleanup
3038         action must be preserved.
3039
3040 2008-04-08  Hristian Kirtchev  <kirtchev@adacore.com>
3041             Ed Schonberg  <schonberg@adacore.com>
3042             Robert Dewar  <dewar@adacore.com>
3043             Gary Dismukes  <dismukes@adacore.com>
3044
3045         * exp_ch9.ads, exp_ch9.adb (Build_Protected_Entry,
3046         Build_Unprotected_Subprogram_Body): Generate debug info for
3047         declarations related to the handling of private data in task and
3048         protected types.
3049         (Debug_Private_Data_Declarations): New subprogram.
3050         (Install_Private_Data_Declarations): Remove all debug info flagging.
3051         This is now done by Debug_Private_Data_Declarations at the correct
3052         stage of expansion.
3053         (Build_Simple_Entry_Call): If the task name is a function call, expand
3054         the prefix into an object declaration, and make the surrounding block a
3055         task master.
3056         (Build_Master_Entity): An internal block is a master if it wraps a call.
3057         Code reformatting, update comments. Code clean up.
3058         (Make_Task_Create_Call): Use 'Unrestricted_Access instead of 'Address.
3059         (Replicate_Entry_Formals): If the formal is an access parameter or
3060         anonymous access to subprogram, copy the original tree to create new
3061         entities for the formals of the subprogram.
3062         (Expand_N_Task_Type_Declaration): Create a Relative_Deadline variable
3063         for tasks to store the value passed using pragma Relative_Deadline.
3064         (Make_Task_Create_Call): Add the Relative_Deadline argument to the
3065         run-time call to create a task.
3066         (Build_Wrapper_Spec): If the controlling argument of the interface
3067         operation is an access parameter with a non-null indicator, use the
3068         non-null indicator on the wrapper.
3069
3070         * sem_ch9.adb (Analyze_Protected_Type): Only retrieve the full view when
3071         present, which it may not be in the case where the type entity is an
3072         incomplete view brought in by a limited with.
3073         (Analyze_Task_Type): Only retrieve the full view when present, which it
3074         may not be in the case where the type entity is an incomplete view brought
3075         in by a limited with.
3076         (Analyze_Protected_Definition): Set Is_Frozen on all itypes generated for
3077         private components of a protected type, to prevent the generation of freeze
3078         nodes for which there is no proper scope of elaboration.
3079
3080         * exp_util.ads, exp_util.adb
3081         (Remove_Side_Effects): If the expression is a function call that returns a
3082         task, expand into a declaration to invoke the build_in_place machinery.
3083         (Find_Protection_Object): New routine.
3084         (Remove_Side_Effects): Also make a copy of the value
3085         for attributes whose result is of an elementary type.
3086         (Silly_Boolean_Array_Not_Test): New procedure
3087         (Silly_Boolean_Array_Xor_Test): New procedure
3088         (Is_Volatile_Reference): New function
3089         (Remove_Side_Effects): Use Is_Volatile_Reference
3090         (Possible_Bit_Aligned_Component): Handle slice case properly
3091
3092         * exp_pakd.adb (Expand_Packed_Not): Move silly true/true or false/false
3093         case test to Exp_Util
3094         (Expand_Packed_Xor): Move silly true/true case test to Exp_Util
3095
3096 2008-04-08  Thomas Quinot  <quinot@adacore.com>
3097
3098         * exp_dist.ads, exp_dist.adb: Fix casing error in formal parameter name
3099         in call
3100         (Add_RACW_Features): When processing an RACW in another unit than the
3101         main unit, set Body_Decls to No_List to indicate that the bodies of
3102         the type's TSS must not be generated.
3103         (GARLIC_Support.Add_RACW_Read_Attribute,
3104         GARLIC_Support.Add_RACW_Write_Attribute): Do not generate bodies if
3105         Body_Decls is No_List.
3106         (PolyORB_Support.Add_RACW_Read_Attribute,
3107         PolyORB_Support.Add_RACW_Write_Attribute,
3108         PolyORB_Support.Add_RACW_From_Any,
3109         PolyORB_Support.Add_RACW_To_Any,
3110         PolyORB_Support.Add_RACW_TypeCode): Same.
3111         (Transmit_As_Unconstrained): New function.
3112         (Build_Ordered_Parameters_List): Use the above to order parameters.
3113         (GARLIC_Support.Build_General_Calling_Stubs):
3114         Use the above to determine which parameters to unmarshall using 'Input
3115         at the point where their temporary is declared (as opposed to later on
3116         with a 'Read call).
3117         (PolyORB_Support.Build_General_Calling_Stubs):
3118         Use the above to determine which parameters to unmarshall using From_Any
3119         at the point where their temporary is declared (as opposed to later on
3120         with an assignment).
3121
3122 2008-04-08  Ed Schonberg  <schonberg@adacore.com>
3123
3124         * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): If this is
3125         an Input function for an access type, do not perform default
3126         initialization on the local variable that receives the value, to
3127         prevent spurious warnings when the type is null-excluding.
3128
3129 2008-04-08  Robert Dewar  <dewar@adacore.com>
3130             Ed Schonberg  <schonberg@adacore.com>
3131
3132         * freeze.adb (Freeze_Entity): Improve warnings on access types in pure
3133         units.
3134         (Size_Known): Generic formal scalar types have known at compile
3135         time size, so remove check.
3136         Fix casing error in formal parameter name in call
3137         (Freeze_Subprogram): If the subprogram is a user-defined operator,
3138         recheck its overriding indication.
3139
3140 2008-04-08  Vincent Celier  <celier@adacore.com>
3141
3142         * gnat1drv.adb: Send all messages indicating an error to standard error
3143
3144 2008-04-08  Robert Dewar  <dewar@adacore.com>
3145
3146         * gnatbind.adb (Restriction_Could_Be_Set): New procedure
3147         (List_Applicable_Restrictions): Do not list existing restrictions
3148
3149 2008-04-08  Thomas Quinot  <quinot@adacore.com>
3150
3151         * g-socket.ads, g-socket.adb: Improve documentation of GNAT.Sockets:
3152         add a pointer to generic sockets literature
3153         do not mention that the given example is "typical" usage.
3154         Remove obsolete comment about multicast not being supported on Windows.
3155         (Connect_Socket): Make Server mode IN rather than IN OUT
3156         since this formal is never modified.
3157
3158 2008-04-08  Robert Dewar  <dewar@adacore.com>
3159
3160         * sprint.adb (Write_Itype): Handle Itypes whose Parent field points to
3161         the declaration for some different entity.
3162         (Sprint_Node_Actual, case N_Derived_Type_Definition): When an interface
3163         list is precent (following the parent subtype indication), display
3164         appropriate "and" keyword.
3165
3166         * itypes.adb: Remove unnecessary calls to Init_Size_Align and Init_Esize
3167         Remove unnecessary calls to Init_Size_Align and Init_Esize.
3168         Add notes on use of Parent field of an Itype
3169
3170 2008-04-08  Ed Schonberg  <schonberg@adacore.com>
3171             Robert Dewar  <dewar@adacore.com>
3172             Gary Dismukes  <dismukes@adacore.com>
3173
3174         * lib-xref.adb (Is_On_LHS): Remove dead code
3175         (Output_Overriden_Op): If the overridden operation is itself inherited,
3176         list the ancestor operation, which is the one whose body or absstract
3177         specification is actually being overridden. For source navigation
3178         purposes.
3179
3180         * sem_ch7.adb (Is_Primitive_Of): use base type to determine whether
3181         operation is primitive for the type.
3182         (Declare_Inherited_Private_Subprograms): If the new operation overrides
3183         an inherited private subprogram, set properly the Overridden_Operation
3184         attribute, for better cross-reference information.
3185         (Analyze_Package_Specification): Do late analysis of spec PPCs
3186         (Install_Private_Declaration, Uninstall_Declarations): Save/restore
3187         properly the full view and underlying full views of a private type in a
3188         child unit, whose full view is derived from a private type in a parent
3189         unit, and whose own full view becomes visible in the child body.
3190
3191         * sem_disp.adb (Check_Dispatching_Operation): When a body declares a
3192         primitive operation after the type has been frozen, add an explicit
3193         reference to the type and the operation, because other primitive
3194         references have been emitted already.
3195         (Expand_Call, Propagate_Tag): Call Kill_Current_Values when processing a
3196         dispatching call on VM targets.
3197
3198 2008-04-08  Vincent Celier  <celier@adacore.com>
3199             Thomas Quinot  <quinot@adacore.com>
3200
3201         * make.adb: (Gnatmake_Called): Remove, no longer necessary
3202         (Compile_Surces): Call Delete_Temp_Config_Files only if Gnatmake_Called
3203         is True and Debug_Flag_N is False. Debug_Flag_N means "keep temp files".
3204         (Insert_Project_Sources): Take into account index in multi-unit source
3205         files.
3206         After building a library project, delete all temporary files.
3207         (Initialize): Reset current output after parsing project file.
3208         (Collect_Arguments_And_Compile): Never insert in the queue the sources
3209         of library projects that are externally built.
3210         Put file name in error and inform messages if -df is used
3211         (Display): If invoked with -d7, do not display path names, but only
3212         file names.
3213
3214         * makeutl.ads (Path_Or_File_Name): New function
3215         (Path_Or_File_Name): New function
3216
3217 2008-04-08  Arnaud Charlet  <charlet@adacore.com>
3218
3219         * Make-lang.in: Disable warnings during first stage of bootstrap
3220         Get rid of gnatbl.
3221         Update dependencies.
3222
3223 2008-04-08  Vincent Celier  <celier@adacore.com>
3224
3225         * mlib-prj.adb (Build_Library): Compare with ALI file name in canonical
3226         case to decide if ALI object file is included in library.
3227         (Build_Library): Never attempt to build a library if the project is
3228         externally built.
3229
3230 2008-04-08  Thomas Quinot  <quinot@adacore.com>
3231
3232         * nlists.adb (Is_Non_Empty_List): Remove redundant test. First
3233         (No_List) is defined to return Empty.
3234
3235 2008-04-08  Jose Ruiz  <ruiz@adacore.com>
3236
3237         * osint.ads, osint.adb (Get_Libraries_From_Registry): Improve
3238         documentation.
3239         Update comments.
3240         (Read_Default_Search_Dirs): Do not consider spaces as path separators
3241         because spaces may be part of legal paths.
3242
3243 2008-04-08  Robert Dewar  <dewar@adacore.com>
3244
3245         * par-ch11.adb (P_Exception_Handler): Check indentation level for
3246         handler
3247
3248 2008-04-08  Ed Schonberg  <schonberg@adacore.com>
3249
3250         * par-ch3.adb (P_Type_Declaration) Reject the keyword "synchronized"
3251         in a type declaration, if this is not an interface declaration or
3252         private type extension.
3253
3254 2008-04-08  Vincent Celier  <celier@adacore.com>
3255
3256         * prj-util.adb (Executable_Of): New String parameter Language. When
3257         Ada_Main is False and Language is not empty, attempt to remove the body
3258         suffix or the spec suffix of the language to get the base of the
3259         executable file name.
3260         (Put): New Boolean parameter Lower_Case, defauilted to False. When
3261         Lower_Case is True, put the value in lower case in the name list.
3262         (Executable_Of): If there is no executable suffix in the configuration,
3263         then do not modify Executable_Extension_On_Target.
3264
3265         * prj-util.ads (Executable_Of): New String parameter Language,
3266         defaulted to the empty string.
3267         (Put): New Boolean parameter Lower_Case, defauilted to False
3268
3269 2008-04-08  Robert Dewar  <dewar@adacore.com>
3270
3271         * scng.adb (Scan_Identifier): Handle case of identifier starting with
3272         wide character using UTF-8 encoding.
3273
3274 2008-04-08  Javier Miranda  <miranda@adacore.com>
3275
3276         * sem.adb (Analyze): Consider case in which we analyze an empty node
3277         that was generated by a call to a runtime function that is not
3278         available under the configurable runtime.
3279
3280         * sem.ads (Inside_Freezing_Actions): New flag.
3281         (Save_Check_Policy_List): New field in scope stack entry
3282
3283 2008-04-08  Ed Schonberg  <schonberg@adacore.com>
3284             Robert Dewar  <dewar@adacore.com>
3285
3286         * sem_aggr.adb (Analyze_N_Extension_Aggregate): Add legality checks for
3287         the ancestor part of an extension aggregate for a limited type.
3288         (Resolve_Array_Aggregate): Issue warning for sliding of aggregate with
3289         enumeration index bounds.
3290         (Resolve_Array_Aggregate): Add circuit for diagnosing missing choices
3291         when array is too short.
3292         (Check_Expr_OK_In_Limited_Aggregate): Move function
3293         Check_Non_Limited_Type from Resolve_Record_Aggregate to top level (and
3294         change name).
3295         (Resolve_Array_Aggregate.Resolve_Aggr_Expr):
3296         Check_Expr_OK_In_Limited_Aggregates called to check for illegal limited
3297         component associations.
3298         (Check_Non_Limited_Type): Moved to outer level and renamed.
3299         (Resolve_Record_Aggregate): In an extension aggregate, an association
3300         with a box initialization can only designate a component of the
3301         extension, not a component inherited from the given ancestor
3302
3303         * sem_case.adb: Use new Is_Standard_Character_Type predicate
3304
3305 2008-04-08  Robert Dewar  <dewar@adacore.com>
3306
3307         * s-imgdec.adb (Set_Decimal_Digits): Fix error when input is zero with
3308         negative scale
3309         (Set_Decimal_Digits): Properly handle Aft=0 (equivalent to Aft=1)
3310         Properly handle case where Aft > Scale and input number is less than
3311         one.
3312
3313 2008-04-08  Hristian Kirtchev  <kirtchev@adacore.com>
3314
3315         * s-stoele.ads, s-soflin.ads: Move the location of
3316         Dummy_Communication_Block from System.Storage_Elements to
3317         System.Soft_Links.
3318
3319         * s-tpobop.ads: Add comment on usage of Dummy_Communication_Block to
3320         emulate Communication_Block in certain scenarios.
3321
3322 2008-04-08  Hristian Kirtchev  <kirtchev@adacore.com>
3323
3324         * s-strxdr.adb, s-stratt.ads, s-stratt.adb (Block_IO_OK): New
3325         subprogram.
3326         Add new subtype S_WWC, unchecked conversion routines From_WWC and
3327         To_WWC.
3328         (I_WWC, O_WWC): New routines for input and output of
3329         Wide_Wide_Character.
3330
3331 2008-04-08  Robert Dewar  <dewar@adacore.com>
3332
3333         * stringt.adb (Write_String_Table_Entry): Handle wide characters
3334         properly
3335
3336 2008-04-08  Robert Dewar  <dewar@adacore.com>
3337
3338         * styleg.adb (Check_Comment): Allow special char after -- in
3339         non-end-of-line case
3340
3341 2008-04-08  Robert Dewar  <dewar@adacore.com>
3342
3343         * stylesw.adb: Implement -gnaty + - y options
3344         (Set_GNAT_Style_Check_Options): Includ I in style check string
3345
3346         * stylesw.ads: Add comments for new style switch options
3347
3348 2008-04-08  Sergey Rybin  <rybin@adacore.com>
3349
3350         * tree_io.ads: Increase ASIS_Version_Number because of adding Sem_Aux
3351         to the set of the GNAT components needed by ASIS.
3352
3353 2008-04-08  Bob Duff  <duff@adacore.com>
3354
3355         * types.h: Change CE_Null_Exception_Id to the correct value (8, was 9).
3356
3357 2008-04-08  Tristan Gingold  <gingold@adacore.com>
3358
3359         * vxaddr2line.adb: Use Unsigned_32 instead of Integer for address type.
3360         Improve error message generation.
3361
3362 2008-04-08  Vincent Celier  <celier@adacore.com>
3363
3364         * a-direct.adb (Start_Search): Check for Name_Error before checking for
3365         Use_Error, as specified in the RM. Check if directory is open and raise
3366         Use_Error if it is not.
3367
3368 2008-04-08  Vincent Celier  <celier@adacore.com>
3369             Robert Dewar  <dewar@adacore.com>
3370
3371         * vms_conv.adb (Output_Version): Print "GNAAMP" instead of "GNAT when
3372         AAMP_On_Target is set.
3373
3374         * vms_data.ads: Add NOxxx to style check switch list
3375         Add entry COMPONENTS for -gnatVe
3376         Add VMS qualifiers for -eL (/FOLLOW_LINKS_FOR_FILES) and --subdirs=
3377         (/SUBDIRS=).
3378         (GCC_Switches): Add /ALL_BACK_END_WARNINGS.
3379         Add qualifiers for gnatmetric coupling options
3380         Add note that -gnata enables all checks
3381         Add entries [NO]PARAMETER_ORDER for -gnatw.p[P]
3382         Fix inconsistency for VMS qualifier for the gnatpp '-rnb' option
3383         New warning flag -gnatw.e
3384
3385         * usage.adb: Add entries for -gnaty+ -gnaty- -gnatyy
3386         Add entry for -gnatyN (forgotten before)
3387         Line for new warning switch -gnatw.p
3388         New warning flag -gnatw.e
3389
3390         * gnat_ugn.texi: Add documentation fpr project file switch -aP
3391         Document -gnaty - + y
3392         Replace occurences of "package specification" with "package spec"
3393         Define preprocessing symbols in documentation of gnatprep
3394         Clarify reason for distinguishing overflow checking
3395         Add documentation for project-aware tool switches -eL and --subdirs=
3396         Complete list of configuration pragmas
3397         Specify that, even when gnatmake switch -x is used, mains on the command
3398         line need to be sources of project files.
3399         Editing of gnatcheck/gnatmetric doc.
3400         Add documentation for -gnatw.p/-gnatw.P
3401         Add missing documentation for -fno-inline-functions.
3402         Add documentation for -gnatw.e
3403
3404         * gnat_rm.texi: Add documentation for No_Default_Initialization
3405         Replace occurences of "package specification" with "package spec"
3406         Document use of * in Warnings Off string
3407         Update documentation of alignment/component clauses.
3408         Add documentation for Invalid_Value
3409         Document new consistency rule for Optimize_Alignment
3410         Add documentation for Precondition and Postcondition pragmas
3411         Add documentation for Check and Check_Policy pragmas
3412         Document new Enum_Val attribute
3413         Remove requirement for static string in pragma Assert
3414         Add documentation on GNAT.Time_Stamp
3415
3416         * ug_words: add entry for -gnatVe
3417         Add entries for -gnat.p[P] /WARNINGS=[NO]PARAMETER_ORDER
3418         Add entry for -gnatw.e
3419
3420         * debug.adb: Add missing documentation for d.a flag
3421         Document new -gnatd.a switch.
3422         Add documentation for new gnatmake debug switch -df
3423
3424 2008-04-08  Thomas Quinot  <quinot@adacore.com>
3425
3426         * gen-soccon.c: Bump year in copyright notices.
3427
3428         * g-soccon-vxworks.ads: Add new constant IP_PKTINFO
3429
3430 2008-04-08  Eric Botcazou  <ebotcazou@adacore.com>
3431
3432         * ctrl_c.c: Improve handling of ctrl-c on LynxOS and Windows.
3433         Minor reformatting.
3434
3435 2008-04-08  Robert Dewar  <dewar@adacore.com>
3436             Bob Duff  <duff@adacore.com>
3437
3438         * impunit.adb: Add Interfaces.Java.JNI, System.Strings.Stream_Ops,
3439         Ada.Calendar.Conversions, Ada.Dispatching.EDF, GNAT.Time_Stamp
3440
3441         * s-intman-mingw.adb: Minor comment fix -- spell 'explicitly' correctly
3442
3443         * g-trasym.adb: Minor comment fix -- spell 'explicitly' correctly
3444
3445         * g-trasym.ads: Minor comment improvements
3446
3447         * s-stalib.adb: Minor comment fix -- spell 'explicitly' correctly
3448
3449         * a-sequio.ads, a-direio.ads: improve message for tagged type
3450
3451         * a-strunb.ads: Minor reformatting
3452
3453         * a-tifiio.adb: Minor reformatting
3454
3455         * atree.adb (Fix_Parents): Use clearer names for formals
3456         Cleanup and simplify code
3457         Use named notation in calls
3458
3459         * exp_fixd.adb (Do_Multiply_Fixed_Universal): Use named notation in
3460         confusing calls
3461
3462         * uintp.adb: Used named notation for some confusing calls
3463
3464         * bindusg.adb: Minor change in one line of output
3465
3466         * cstand.adb: Minor reformatting of src representation of Standard
3467
3468         * a-assert.ads: Add comment.
3469
3470         * g-decstr.adb: Fix bad indentation
3471
3472         * expander.ads, expander.adb: Code clean up.
3473
3474         * sem_dist.ads: Minor comment improvement
3475
3476         * sem_type.adb, g-dirope.ads, g-exctra.ads, s-valwch.adb,
3477         s-wchstw.adb, targparm.ads, widechar.adb: Minor reformatting
3478
3479         * i-cstrin.adb: Fix casing error in formal parameter name in call
3480
3481 2008-04-08  Ed Schonberg  <schonberg@adacore.com>
3482
3483         * binde.adb (Gather_All_Links, Gather_Dependencies): units that are
3484         mentioned in limited_with_clauses to do create semantic dependencies
3485         even though they appear in the ali file.
3486
3487 2008-04-08  Emmanuel Briot  <briot@adacore.com>
3488
3489         * g-comlin.ads, g-comlin.adb (Expansion): Remove unreachable return
3490         statement.
3491         (Get_Configuration): New subprogram.
3492
3493         * prj-pp.ads, prj-pp.adb (Pretty_Print): new parameters Id and Id_Tree
3494         These optional parameters help preserve the casing of the project's name
3495         when pretty-printing.
3496
3497 2008-04-08  Jerome Lambourg  <lambourg@adacore.com>
3498             Arnaud Charlet  <charlet@adacore.com>
3499
3500         * bindgen.adb (Gen_Adainit_Ada): If the main program is a CIL function,
3501         then use __gnat_set_exit_status to report the returned status code.
3502
3503         * comperr.adb (Compiler_Abort): Convert most bug boxes into clean error
3504         messages on .NET, since some constructs of the language are not
3505         properly supported.
3506
3507         * gnatlink.adb (Gnatlink): In case the command line is too long for the
3508         .NET linker, gnatlink now concatenate all .il files and pass this to
3509         ilasm.
3510
3511 2008-04-07  Aurelien Jarno  <aurelien@aurel32.net>
3512             Xavier Grave  <grave@ipno.in2p3.fr>
3513
3514         * Makefile.in: Add make ifeq define for mips/mipsel support.
3515         * g-soccon-linux-mips.ads, system-linux-mipsel.ads, 
3516         system-linux-mips.ads: New files.
3517
3518 2008-04-07  Aurelien Jarno  <aurelien@aurel32.net>
3519
3520         * sysdep.c: add __GLIBC__ to the #ifdef preprocessor macros to
3521         detect systems using GNU libc.
3522         * gsocket.h: ditto.
3523         * socket.c: ditto.
3524         * adaint.c: ditto.
3525         * link.c: ditto.
3526
3527 2008-04-07  Aurelien Jarno  <aurelien@aurel32.net>
3528
3529         * s-osinte-linux-kfreebsd.ads (SC_NPROCESSORS_ONLN): New 
3530         constant constant for sysconf call.
3531         (bit_field): New packed boolean type used by cpu_set_t.
3532         (cpu_set_t): New type corresponding to the C type with
3533         the same name. Note that on the Ada side we use a bit
3534         field array for the affinity mask. There is not need
3535         for the C macro for setting individual bit.
3536         (pthread_setaffinity_np): New imported routine.
3537         * Makefile.in: Use s-tasinf-linux.ads and s-tasinf-linux.adb
3538         on GNU/kFreeBSD.
3539
3540 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
3541
3542         * utils2.c (build_binary_op): Fold ARRAY_REF and ARRAY_RANGE_REF too.
3543
3544 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
3545
3546         * gigi.h (create_subprog_type): Remove returns_with_dsp parameter.
3547         * decl.c (gnat_to_gnu_entity): Adjust for above new prototype.
3548         * utils.c (create_subprog_type): Remove returns_with_dsp parameter.
3549         * trans.c (gnat_to_gnu) <N_Return_Statement>: Remove code dealing with
3550         Return by Depressed Stack Pointer.
3551
3552 2008-04-06  Eric Botcazou  <ebotcazou@adacore.com>
3553
3554         * decl.c (is_variable_size): Do not unconditionally return false
3555         on non-strict alignment platforms.
3556
3557 2008-04-06  Eric Botcazou  <ebotcazou@adacore.com>
3558
3559         * decl.c (rest_of_type_decl_compilation_no_defer): New local function
3560         used to process all the variants of the specified type.
3561         (gnat_to_gnu_entity): Invoke rest_of_type_decl_compilation for enumeral
3562         types too.  Call rest_of_type_decl_compilation_no_defer if undeferring.
3563         (rest_of_type_decl_compilation): Likewise.
3564         * utils.c (gnat_pushdecl): Propagate the name to all variants of type.
3565
3566 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
3567
3568         * gigi.h (insert_block): Kill.
3569         * utils.c (insert_block): Kill.
3570
3571 2008-04-02  Eric Botcazou  <ebotcazou@adacore.com>
3572
3573         * decl.c (gnat_to_gnu_entity) <object>: For a constant object whose
3574         type has self-referential size, get the size from the initializing
3575         expression directly if it is also a constant whose nominal type
3576         has self-referential size.
3577
3578 2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3579
3580         PR ada/33688
3581         * g-soccon-darwin.ads: Define new constant IP_PKTINFO.
3582
3583         PR ada/33857
3584         * env.c: Always include crt_externs.h if __APPLE__ is defined.
3585         (__gnat_setenv): Use setenv instead of putenv if __APPLE__ is defined.
3586
3587 2008-04-01  Andreas Jaeger  <aj@suse.de>
3588
3589         * g-soccon-linux-ppc.ads: Add new constants SO_REUSEPORT and
3590         IP_PKTINFO.
3591
3592 2008-03-31  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3593
3594         * g-table.adb, g-tasloc.adb, g-traceb.ads,
3595         g-trasym.adb, g-utf_32.adb, gen-soccon.c, gigi.h, gmem.c,
3596         gnatbind.adb, gnatchop.adb, gnatcmd.adb,
3597         gnatcmd.ads, gnatdll.adb, gnatfind.adb,
3598         gnatlink.adb, gnatmem.adb, gprep.adb,
3599         i-cstrea-vms.adb, i-cstrin.adb, i-pacdec.ads,
3600         i-vxwork.ads, impunit.adb, init.c, initialize.c, inline.adb,
3601         layout.adb, lib-writ.adb, lib-writ.ads, lib-xref.adb,
3602         lib-xref.ads, lib.adb, link.c, live.ads,
3603         make.adb, makegpr.adb, makeutl.adb, math_lib.adb,
3604         mdll-utl.adb, mdll.ads, memroot.adb, memroot.ads,
3605         misc.c, mlib-prj.adb, mlib-tgt-hpux.adb,
3606         mlib-tgt-linux.adb, mlib-tgt-tru64.adb, mlib-tgt.ads,
3607         namet.adb, namet.h, nlists.adb, nlists.ads,
3608         nlists.h, opt.ads, osint-b.ads, osint-c.adb,
3609         osint-c.ads, osint.adb, osint.ads, output.ads,
3610         par-ch10.adb, par-ch12.adb, par-ch2.adb, par-ch3.adb,
3611         par-ch4.adb, par-ch5.adb, par-ch6.adb, par-ch9.adb,
3612         par-endh.adb, par-labl.adb, par-prag.adb,
3613         par-sync.adb, par-tchk.adb, par-util.adb,
3614         par.adb, prep.adb, prep.ads, prepcomp.adb, prj-attr.ads,
3615         prj-dect.adb, prj-env.adb, prj-ext.adb, prj-nmsc.adb,
3616         prj-nmsc.ads, prj-pp.adb, prj-proc.adb,
3617         prj-strt.ads, prj-tree.ads, prj.adb, prj.ads: Fix comment typos.
3618
3619 2008-03-31  Eric Botcazou  <ebotcazou@adacore.com>
3620
3621         * decl.c (gnat_to_gnu_entity) <object>: Do not force a non-null
3622         size if it has overflowed.
3623
3624 2008-03-31  Olivier Hainque  <hainque@adacore.com>
3625             Eric Botcazou  <ebotcazou@adacore.com>
3626
3627         * utils2.c (find_common_type): Document assumption on t1/t2 vs
3628         lhs/rhs. Force use of lhs type if smaller, whatever the modes.
3629
3630 2008-03-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3631
3632         * a-textio.ads, a-witeio.ads, a-ztexio.ads, ali.ads,
3633         einfo.ads, erroutc.adb, erroutc.ads, exp_attr.adb,
3634         exp_imgv.adb, exp_intr.adb, exp_pakd.adb,
3635         exp_pakd.ads, exp_prag.adb, exp_smem.adb,
3636         exp_tss.ads, exp_util.adb, exp_util.ads,
3637         exp_vfpt.adb, freeze.adb, freeze.ads,
3638         frontend.adb, g-alleve.adb, g-altcon.adb,
3639         g-altive.ads, g-alveop.ads, g-alvevi.ads,
3640         g-arrspl.adb, g-busorg.ads, g-calend.adb,
3641         g-calend.ads, g-casuti.ads, g-cgideb.adb,
3642         g-comlin.adb, g-comlin.ads, g-curexc.ads,
3643         g-debpoo.adb, g-debpoo.ads, g-decstr.adb,
3644         g-dirope.adb, g-dirope.ads, g-dynhta.ads,
3645         g-dyntab.adb, g-encstr.ads, g-excact.ads,
3646         g-except.ads, g-expect.ads, g-heasor.adb,
3647         g-hesora.adb, g-hesorg.adb, g-htable.ads,
3648         g-locfil.ads, g-md5.adb, g-md5.ads,
3649         g-memdum.ads, g-moreex.ads, g-os_lib.adb,
3650         g-pehage.adb, g-pehage.ads, g-regexp.adb,
3651         g-regexp.ads, g-regpat.adb, g-regpat.ads,
3652         g-soccon-aix.ads, g-soccon-darwin.ads,
3653         g-soccon-freebsd.ads, g-soccon-hpux-ia64.ads,
3654         g-soccon-hpux.ads, g-soccon-irix.ads,
3655         g-soccon-linux-64.ads, g-soccon-linux-ppc.ads,
3656         g-soccon-linux-x86.ads, g-soccon-lynxos.ads,
3657         g-soccon-mingw.ads, g-soccon-solaris-64.ads,
3658         g-soccon-solaris.ads, g-soccon-tru64.ads,
3659         g-soccon-vms.ads, g-soccon-vxworks.ads,
3660         g-soccon.ads, g-socket.adb, g-socket.ads,
3661         g-socthi-mingw.adb, g-socthi-vms.adb,
3662         g-socthi-vxworks.adb, g-soliop-mingw.ads,
3663         g-soliop-solaris.ads, g-soliop.ads, g-spipat.adb,
3664         g-spipat.ads, g-string.adb, g-stsifd-sockets.adb: Fix comment
3665         typos.
3666
3667 2008-03-27  Eric Botcazou  <ebotcazou@adacore.com>
3668
3669         * decl.c (gnat_to_gnu_entity) <E_Procedure>: Also set the public flag
3670         if the procedure is imported.
3671
3672 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
3673
3674         * adaint.c: Fix warnings.
3675
3676 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
3677
3678         * g-dirope.ads, g-dirope.adb: (Dir_Type_Value): Moved to spec.
3679
3680 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
3681
3682         * a-witeio.adb: Fix problem with Current_Output (introduce Self).
3683         Fix problem of status check for null file
3684
3685 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
3686
3687         * s-proinf-irix-athread.ads, s-vxwork-mips.ads,
3688         s-traces.ads, s-vxwork-arm.ads, s-vxwork-ppc.ads, s-vxwork-sparcv9.ads,
3689         s-tasinf-mingw.ads, s-tasinf-linux.ads, s-tasdeb.ads, mlib-tgt.ads,
3690         i-cstrin.ads, uintp.adb, g-catiio.adb, s-vmexta.ads,
3691         s-trafor-default.ads, s-vxwork-m68k.ads: Minor reformatting. Update
3692         comments.
3693
3694 2008-03-26  Thomas Quinot  <quinot@adacore.com>
3695
3696         PR ada/33688
3697         * g-socket.ads, g-socket.adb (Options, Set_Socket_Option,
3698         Get_Socket_Option): Add support for Receive_Packet_Info.
3699
3700         * g-soccon.ads, g-soccon-tru64.ads, g-soccon-aix.ads,
3701         g-soccon-irix.ads, g-soccon-hpux.ads, g-soccon-solaris.ads,
3702         g-soccon-vms.ads, g-soccon-mingw.ads, g-soccon-freebsd.ads,
3703         g-soccon-hpux-ia64.ads, g-soccon-solaris-64.ads, g-soccon-darwin.ads,
3704         g-soccon-lynxos.ads, g-soccon-linux-64.ads, g-soccon-linux-x86.ads: Add
3705         new constants SO_REUSEPORT and IP_PKTINFO
3706
3707 2008-03-26  Robert Dewar  <dewar@adacore.com>
3708
3709         * a-taster.adb, s-shasto.adb, s-soflin.adb, s-taasde.adb, s-taenca.adb,
3710         a-sytaco.adb, a-sytaco.ads, a-tasatt.adb, a-taside.adb,
3711         a-intnam-lynxos.ads, a-retide.adb, a-intnam-tru64.ads, a-intnam-aix.ads,
3712         a-intnam-irix.ads, a-intnam-hpux.ads, a-intnam-linux.ads,
3713         a-intnam-solaris.ads, a-caldel-vms.adb, a-intnam-vms.ads,
3714         a-excpol-abort.adb, a-intnam-mingw.ads, s-interr.adb, s-interr.ads,
3715         s-intman.ads, s-gloloc.adb, s-osinte-lynxos-3.ads,
3716         s-interr-sigaction.adb, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
3717         a-intnam-freebsd.ads, s-osinte-freebsd.ads, s-osinte-lynxos.ads,
3718         s-taspri-lynxos.ads, s-osinte-tru64.ads, s-osinte-tru64.ads,
3719         s-taspri-tru64.ads, s-osinte-aix.ads, s-osinte-irix.ads,
3720         s-osinte-hpux-dce.ads, s-taprop-hpux-dce.adb, s-taspri-hpux-dce.ads,
3721         s-osinte-linux.ads, s-osinte-dummy.ads, s-taprop-dummy.adb,
3722         s-taspri-dummy.ads, s-interr-dummy.adb, s-osinte-solaris.ads,
3723         s-osinte-mingw.ads, s-taprop-solaris.adb, s-taspri-solaris.ads,
3724         s-inmaop-vms.adb, s-interr-vms.adb, s-intman-vms.ads, s-osinte-vms.ads,
3725         s-osinte-vms.ads, s-taprop-vms.adb, s-taspri-vms.ads,
3726         s-taspri-mingw.ads, s-interr-vxworks.adb, s-inmaop-posix.adb,
3727         s-intman-vxworks.ads, s-osinte-vxworks.ads, s-osprim-vxworks.adb,
3728         s-taspri-vxworks.ads, s-taspri-posix.ads, a-caldel.adb, a-calend.adb,
3729         a-elchha.adb, a-dynpri.adb, a-except.adb, a-except.ads, a-interr.ads,
3730         a-textio.adb, a-tigeau.ads, atree.adb, s-taprob.adb, s-taprop.ads,
3731         s-tarest.adb, s-tarest.ads, s-tasini.adb, s-taskin.adb, s-taskin.ads,
3732         s-tasque.adb, s-tasren.adb, s-tasren.ads, s-tassta.adb, s-tassta.ads,
3733         s-tasuti.adb, s-tataat.adb, s-tataat.ads, s-tpoben.adb, s-tpoben.ads,
3734         s-tpobop.adb, s-tpobop.ads, s-tposen.adb, s-tposen.ads, s-valrea.adb,
3735         s-valuti.adb, a-intnam-darwin.ads, s-osinte-darwin.ads, s-solita.adb,
3736         a-ztinau.ads, s-osinte-linux-hppa.ads, a-except-2005.adb,
3737         a-except-2005.ads, a-rttiev.adb, s-osinte-vxworks6.ads, s-regexp.adb,
3738         s-tasloc.adb: Minor reformatting.
3739         Update comments.
3740         Remove "used for" sections from comments.
3741
3742 2008-03-26  Robert Dewar  <dewar@adacore.com>
3743
3744         * s-tpopsp-posix.adb, s-tpopsp-solaris.adb, s-tpopsp-posix-foreign.adb,
3745         s-tpopsp-lynxos.adb, s-tpopde-vms.ads, s-tpopde-vms.adb,
3746         s-tpopsp-vxworks.adb, s-casi16.adb, s-caun16.adb, s-inmaop.ads,
3747         s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-tpinop.adb,
3748         s-tpinop.ads, s-tporft.adb, a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb,
3749         a-crbtgk.ads, a-crbtgk.adb, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
3750         a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
3751         a-cgcaso.adb, a-cgaaso.adb, a-ciormu.adb, a-cihase.adb, a-swuwha.ads,
3752         a-rbtgso.ads, a-cgaaso.ads, a-cgaaso.ads, a-ciorma.adb, a-chtgke.ads,
3753         a-chtgke.adb, a-llfzti.ads, a-ztenau.adb, a-ztenau.ads, a-stzhas.ads,
3754         a-szbzha.ads, a-szbzha.adb, a-crdlli.ads, a-crdlli.ads, a-crdlli.adb,
3755         i-forbla-darwin.adb, i-forbla.ads, s-regexp.adb, a-nllrar.ads,
3756         a-nlrear.ads, a-nucoar.ads, a-nurear.ads, i-forlap.ads, s-gearop.adb,
3757         s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb, s-gecola.ads,
3758         s-gerebl.adb, s-gerela.ads, a-swuwha.adb, i-forbla-unimplemented.ads,
3759         double spaced if it fits on one line and otherwise single spaced.
3760
3761 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
3762
3763         * s-taprop-irix.adb, s-taprop-tru64.adb, s-taprop-lynxos.adb, 
3764         s-taprop-linux.adb, s-taprop-mingw.adb, s-taprop-vxworks.adb, 
3765         s-taprop-posix.adb (Create_Task): Do not attempt to set task priority
3766         or task info if the thread could not be created.
3767
3768 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
3769
3770         * gnatvsn.ads (Library_Version): Bump to 4.4.
3771         (Current_Year): Bump to 2008.
3772
3773 2008-03-26  Robert Dewar  <dewar@adacore.com>
3774
3775         * ali.ads, ali.adb (Optimize_Alignment_Setting): New field in ALI record
3776
3777         * bcheck.adb (Check_Consistent_Optimize_Alignment): New procedure
3778
3779         * debug.adb: Add debug flags d.r and d.v
3780         Add debug flag .T (Optimize_Alignment (Time))
3781         Add debug flag .S (Optimize_Alignment (Space))
3782
3783         * freeze.adb (Freeze_Record_Type): Set OK_To_Reorder_Components
3784         depending on setting of relevant debug flags.
3785         Replace use of Warnings_Off by Has_Warnings_Off
3786         (Freeze_Entity): In circuit for warning on suspicious convention
3787         actuals, do not give warning if subprogram has same entity as formal
3788         type, or if subprogram does not come from source.
3789         (Freeze_Entity): Don't reset Is_Packed for fully rep speced record
3790         if Optimize_Alignment set to Space.
3791
3792         * frontend.adb: Add call to Sem_Warn.Initialize
3793         Add call to Sem_Warn.Output_Unused_Warnings_Off_Warnings
3794         Reset Optimize_Alignment mode from debug switches .S and .T
3795
3796         * layout.adb (Layout_Composite_Object): Rewritten for
3797         Optimize_Aligment pragma.
3798
3799         * lib-writ.ads, lib-writ.adb: New Ox parameter for Optimize_Alignment
3800         mode.
3801
3802         * opt.ads, opt.adb: (Optimize_Alignment): New global switch
3803
3804         * par-prag.adb (N_Pragma): Chars field removed, use Chars
3805         (Pragma_Identifier (..  instead, adjustments throughout to accomodate
3806         this change. Add entry for pragma Optimize_Alignment
3807
3808         * sem_prag.adb (N_Pragma): Chars field removed, use Chars
3809         (Pragma_Identifier (..
3810         instead, adjustments throughout to accomodate this change.
3811         (Process_Compile_Time_Warning_Or_Error): Use !! for generated msg
3812         (Favor_Top_Level): Use new function Is_Access_Subprogram_Type
3813         Add implementation of pragma Optimize_Alignment
3814
3815 2008-03-26  Vincent Celier  <celier@adacore.com>
3816
3817         * a-szuzti.adb, a-swuwti.adb, a-suteio.adb (functions Get_Line):
3818         Improve memory usage to avoid use of stack.
3819
3820 2008-03-26  Robert Dewar  <dewar@adacore.com>
3821
3822         * a-teioed.ads: Correct value of Default_Fill
3823
3824         * a-teioed.adb (Image): Use Fill_Character instead of '*' to fill
3825
3826 2008-03-26  Robert Dewar  <dewar@adacore.com>
3827
3828         * a-ztexio.adb, a-ztexio.ads, a-witeio.ads, a-witeio.adb: Fix problem
3829         with Current_Output (introduce Self).
3830
3831 2008-03-26  Robert Dewar  <dewar@adacore.com>
3832
3833         * checks.adb (Ensure_Valid): Capture valid status if possible
3834         (eliminate checks)
3835
3836 2008-03-26  Robert Dewar  <dewar@adacore.com>
3837
3838         * stand.ads: Deal with reordering of package standard declarations
3839
3840         * cstand.adb: Put package Standard declarations in proper order
3841
3842 2008-03-26  Robert Dewar  <dewar@adacore.com>
3843
3844         * einfo.ads, einfo.adb (N_Pragma): Chars field removed, use Chars
3845         (Pragma_Identifier (.. instead.
3846         (OK_To_Reorder_Components): New flag
3847         (Has_Entries): Code cleanup.
3848         (Warnings_Off_Used): New flag
3849         (Warnings_Off_Used_Unmodified): New flag
3850         (Warnings_Off_Used_Unreferenced): New flag
3851         (Has_Warnings_Off): New function
3852         (Has_Unmodified): New function
3853         (Has_Unreferenced): New function
3854         (Is_Trivial_Subprogram): New flag
3855         (Is_Static_Dispatch_Table_Entity): New attribute.
3856         Change name Access_Subprogram_Type_Kind to Access_Subprogram_Kind
3857         (more consistent with other similar names)
3858         (Access_Subprogram_Type): New classification function
3859
3860 2008-03-26  Robert Dewar  <dewar@adacore.com>
3861
3862         * errout.ads: Document new !! insertion sequence
3863
3864         * errout.adb (N_Pragma): Chars field removed, use Chars
3865         (Pragma_Identifier (..  instead.
3866         Replace use of Warnings_Off by Has_Warnings_Off
3867         (Error_Msg_Internal): Don't delete warning ending in !!
3868
3869 2008-03-26  Robert Dewar  <dewar@adacore.com>
3870
3871         * par.adb (Check_No_Right_Paren): Removed no longer used
3872
3873         * par-ch10.adb (N_Pragma): Chars field removed, use Chars
3874         (Pragma_Identifier (..  instead.
3875
3876         * par-ch10.adb (P_Subunit): Improvement in error recovery and message
3877
3878         * par-tchk.adb, par-ch5.adb, par-ch6.adb, par-ch3.adb,