OSDN Git Service

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