OSDN Git Service

caee7260244f5becd2f43073e5e0c5862b5c0ae6
[pf3gnuchains/gcc-fork.git] / gcc / ada / ChangeLog
1 2008-10-17  Geert Bosch  <bosch@adacore.com>
2
3         * gcc-interface/trans.c (gnat_to_gnu) <N_Slice>: Simplify expansion
4         to use only a single check instead of three, and avoid unnecessary
5         COMPOUND_EXPR.
6         (emit_check): Avoid useless COMPOUND_EXPRs and SAVE_EXPRs, sometimes
7         creating more opportunities for optimizations.
8
9 2008-10-13  Jakub Jelinek  <jakub@redhat.com>
10
11         PR middle-end/37601
12         * gcc-interface/utils.c (gnat_types_compatible_p): Handle
13         NULL TYPE_DOMAIN.
14
15 2008-10-07  Eric Botcazou  <ebotcazou@adacore.com>
16
17         * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Move code
18         dealing with volatileness to after code dealing with renaming.
19
20 2008-10-06  Eric Botcazou  <ebotcazou@adacore.com>
21
22         * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Minor tweaks.
23         * gcc-interface/trans.c (Pragma_to_gnu): Likewise.
24
25 2008-10-06  Eric Botcazou  <ebotcazou@adacore.com>
26
27         * gcc-interface/utils.c (can_fold_for_view_convert_p): New predicate.
28         (unchecked_convert): Use it to disable problematic folding with
29         VIEW_CONVERT_EXPR in the general case.  Always disable it for the
30         special VIEW_CONVERT_EXPR built for integral types and cope with
31         its addressability issues by preserving the first conversion.
32
33 2008-10-01  Andreas Schwab  <schwab@suse.de>
34
35         * system-linux-ppc64.ads: New file.
36         * gcc-interface/Makefile.in: Add multilib handling for
37         powerpc-linux.
38
39 2008-09-26  Eric Botcazou  <ebotcazou@adacore.com>
40
41         * decl.c (gnat_to_gnu_entity) <object>: Cap the alignment promotion
42         to that of ptr_mode instead of word_mode.
43
44 2008-09-26  Eric Botcazou  <ebotcazou@adacore.com>
45
46         PR ada/5911
47         * gcc-interface/Makefile.in (SPARC/Solaris): Add multilib support.
48
49 2008-09-25  Samuel Tardieu  <sam@rfc1149.net>
50
51         PR ada/37641
52         * adaint.c (__gnat_set_non_writable): Use FILE_WRITE_EA
53         instead of deprecated FILE_WRITE_PROPERTIES.
54
55 2008-09-22  Olivier Hainque  <hainque@adacore.com>
56
57         * gcc-interface/decl.c (gnat_to_gnu_entity): Even when they
58         are never assigned, volatile entities are not constant for code
59         generation purposes.
60
61 2008-09-21  Laurent Guerby  <laurent@guerby.net>
62
63         PR ada/5911
64         * gcc-interface/Makefile.in: Add multilib handling for x86_64
65         and sparc.
66         * system-linux-sparcv9.ads: New file.
67
68 2008-09-20  Eric Botcazou  <ebotcazou@adacore.com>
69
70         * exp_dbug.ads: Document new convention for the XVZ variable.
71         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Generate
72         debug info if necessary for the type padding the component type.
73         <E_Array_Subtype>: Likewise.
74         (maybe_pad_type): Emit the XVZ variable in units.
75         * gcc-interface/trans.c (Loop_Statement_to_gnu): Fix formatting nits.
76         (Subprogram_Body_to_gnu): Set the source line of the subprogram's node
77         on statements generated to initialize the parameter attributes cache.
78         Set the source line of the end label of the body on the special return
79         statement built for a procedure with copy-in copy-out parameters.
80
81 2008-09-20  Eric Botcazou  <ebotcazou@adacore.com>
82
83         PR ada/37585
84         * gcc-interface/utils.c (create_subprog_decl): Disable inlining for
85         inlined external functions if they contain a nested function not
86         declared inline.
87
88 2008-09-18  Jan Hubicka  <jh@suse.cz>
89
90         * gcc-interface/utils.c (create_subprog_decl): Use DECL_DECLARED_INLINE_P.
91         (end_subprog_body): Do not set DECL_INLINE.
92
93 2008-09-17  Pascal Rigaux  <pixel@mandriva.com>
94
95         PR ada/21327
96         * gnat_ugn.texi: Use proper format in direntry.
97
98 2008-09-15  Eric Botcazou  <ebotcazou@adacore.com>
99
100         * gcc-interface/trans.c (gigi): Declare the name of the compilation
101         unit as the first global name.
102
103 2008-09-14  Jan Hubicka  <jh@suse.cz>
104
105         * gcc-interface/Make-lang.in (gnat1): Add CFLAGS.
106
107 2008-09-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
108
109         * a-crbtgk.adb, a-direct.ads, a-tasatt.adb, ali.ads,
110         bindgen.adb, checks.adb, einfo.ads, exp_aggr.adb, exp_ch11.adb,
111         exp_ch3.adb, exp_ch4.adb, exp_ch6.adb, exp_ch7.adb, exp_ch9.adb,
112         exp_dbug.ads, exp_disp.adb, exp_dist.adb, exp_pakd.adb,
113         exp_util.adb, g-alveop.ads, g-comlin.adb, g-comlin.ads,
114         g-diopit.adb, g-socket.ads, gcc-interface/decl.c,
115         gcc-interface/gigi.h, gcc-interface/trans.c,
116         lib-load.adb, lib-xref.ads, make.adb, mlib-prj.adb, nlists.ads,
117         opt.ads, par-ch10.adb, par-ch5.adb, par.adb, s-os_lib.ads,
118         s-oscons-tmplt.c, s-parint.ads, s-regpat.ads, s-shasto.ads,
119         s-stausa.ads, s-taprop-vms.adb, sem.adb, sem_ch10.adb,
120         sem_ch11.adb, sem_ch12.adb, sem_ch13.adb, sem_ch3.adb,
121         sem_ch3.ads, sem_ch4.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb,
122         sem_elim.adb, sem_prag.adb, sem_util.adb, sem_util.ads,
123         sem_warn.adb, sinfo.ads, styleg.adb, vms_data.ads: Fix typos in
124         comments.
125         * gnathtml.pl: Fix typos.
126
127 2008-09-10  Joel Sherrill <joel.sherrill@oarcorp.com>
128
129         * gcc-interface/Makefile.in: Switch RTEMS to s-interr-hwint.adb.
130         * s-osinte-rtems.ads: Add shared hardware interrupt adapter
131         layer. RTEMS binds to OS provided adapter routines so there are
132         no modifications to s-osinte-rtems.adb.
133
134 2008-09-09  Arnaud Charlet  <charlet@adacore.com>
135             Joel Sherrill  <joel.sherrill@oarcorp.com>
136
137        * gcc-interface/Makefile.in: Switch VxWorks to s-interr-hwint.adb.
138
139        * s-interr-vxworks.adb: Renamed to s-interr-hwint.adb
140
141        * s-interr-hwint.adb: New file.
142
143         * s-osinte-vxworks.ads, s-osinte-vxworks.adb: Add new functions
144         needed by s-interr-hwint.adb.
145
146         * s-osinte-vxworks-kernel.adb: New file.
147
148 2008-09-05  Joel Sherrill <joel.sherrill@oarcorp.com>
149
150         * s-stchop-rtems.adb: Add file missed in early commit.  Already
151         referenced in gcc-interface/Makefile.in.
152
153 2008-08-30  Thomas Quinot  <quinot@adacore.com>
154
155         * gcc-interface/Make-lang.in: Allow s-oscons.{o,ali} to
156         be built even without a separate libada directory.
157
158 2008-08-22  Arnaud Charlet  <charlet@adacore.com>
159
160         * lib-xref.ads: Fix typo in subprogram reference definition.
161
162 2008-08-22  Robert Dewar  <dewar@adacore.com>
163
164         * s-sopco3.adb, s-sopco4.adb, s-sopco5.adb, s-strops.adb: Minor code fix
165         to avoid warning.
166
167         * g-trasym.adb: Ditto
168
169         * s-utf_32.adb (Get_Category): Fix obvious typo
170
171         * s-wwdcha.adb: Minor code reorganization
172         Remove dead code
173
174 2008-08-22  Robert Dewar  <dewar@adacore.com>
175
176         * checks.adb (Determine_Range): Deal with values that might be invalid
177
178         * opt.adb, opt.ads (Assume_No_Invalid_Values[_Config]): New
179         configuration switches.
180
181         * par-prag.adb: Dummy entry for pragma Assume_No_Invalid_Values
182
183         * sem_prag.adb: Implement pragma Assume_No_Default_Values
184
185         * snames.adb, snames.ads, snames.h:
186         Add entries for pragma Assume_No_Invalid_Values
187
188         * switch-c.adb: Add processing for -gnatB switch
189
190         * usage.adb: Add entry for flag -gnatB (no bad invalid values)
191
192 2008-08-22  Javier Miranda  <miranda@adacore.com>
193
194         * exp_ch3.adb (Build_Init_Statements): Transfer to the body of the
195         init procedure all the expanded code associated with the spec of
196         task types and protected types.
197
198 2008-08-22  Gary Dismukes  <dismukes@adacore.com>
199
200         * exp_aggr.adb (Static_Array_Aggregate): Call Analyze_And_Resolve on the
201         component expression copies rather than directly setting Etype and
202         Is_Static_Expression.
203
204 2008-08-22  Gary Dismukes  <dismukes@adacore.com>
205
206         * sem_util.adb (Has_Preelaborable_Initialization): Revise checking of
207         private types to allow for types derived from a private type with
208         preelaborable initialization, but return False for a private extension
209         (unless it has the pragma).
210
211 2008-08-22  Robert Dewar  <dewar@adacore.com>
212
213         * opt.ads: Minor code reorganization (put entries in alpha order)
214
215 2008-08-22  Pascal Obry  <obry@adacore.com>
216
217         * initialize.c, adaint.c: Use Lock_Task and Unlock_Task for non-blocking
218         spawn.
219
220 2008-08-22  Geert Bosch  <bosch@adacore.com>
221
222         * gcc-interface/trans.c: Define FP_ARITH_MAY_WIDEN
223         (convert_with_check): Only use longest_float_type if FP_ARITH_MAY_WIDEN is 0
224
225 2008-08-22  Doug Rupp  <rupp@adacore.com>
226
227         * bindgen.adb [VMS] (Gen_Adainit_Ada, Gen_Adainit_C): Import and call
228         __gnat_set_features.
229
230         * init.c
231         (__gnat_set_features): New function.
232         (__gnat_features_set): New tracking variable.
233         (__gl_no_malloc_64): New feature global variable
234
235 2008-08-22  Ed Schonberg  <schonberg@adacore.com>
236
237         * sem_ch8.adb (Use_One_Type): Do not emit warning message about redundant
238         use_type_clause in an instance.
239
240 2008-08-22  Bob Duff  <duff@adacore.com>
241
242         * exp_ch6.ads: Remove pragma Precondition, since it breaks some builds.
243
244 2008-08-22  Robert Dewar  <dewar@adacore.com>
245
246         * exp_ch6.adb: Minor reformatting
247
248         * exp_ch7.adb: Minor reformatting
249
250         * exp_ch7.ads: Put routines in proper alpha order
251
252         * exp_dist.adb: Minor reformatting
253
254 2008-08-22  Vincent Celier  <celier@adacore.com>
255
256         * prj.ads: Minor comment update
257
258 2008-08-22  Robert Dewar  <dewar@adacore.com>
259
260         * sem_ch5.adb (One_Bound): Fix latent bug involving secondary stack
261
262 2008-08-22  Ed Schonberg  <schonberg@adacore.com>
263
264         * exp_tss.adb:
265         (Base_Init_Proc): For a protected subtype, use the base type of the
266         corresponding record to locate the propoer initialization procedure.
267
268 2008-08-22  Robert Dewar  <dewar@adacore.com>
269
270         * checks.adb:
271         (In_Subrange_Of): New calling sequence
272         (Determine_Range): Prepare for new processing using base type
273
274         * exp_ch4.adb:
275         (Compile_Time_Compare): Use new calling sequence
276
277         * exp_ch5.adb:
278         (Compile_Time_Compare): Use new calling sequence
279
280         * sem_eval.adb:
281         (Compile_Time_Compare): New calling sequence allows dealing with
282         invalid values.
283         (In_Subrange_Of): Ditto
284
285         * sem_eval.ads:
286         (Compile_Time_Compare): New calling sequence allows dealing with
287         invalid values.
288         (In_Subrange_Of): Ditto
289
290 2008-08-22  Pascal Obry  <obry@adacore.com>
291
292         * adaint.c: Fix possible race condition on win32_wait().
293
294 2008-08-22  Bob Duff  <duff@adacore.com>
295
296         * exp_ch5.adb, exp_ch7.adb, exp_ch7.ads, exp_util.adb, freeze.adb,
297         exp_ch4.adb, exp_ch6.ads, exp_ch6.adb, sem_ch6.adb, exp_aggr.adb,
298         exp_intr.adb, exp_ch3.adb: Rename:
299         Exp_Ch7.Controlled_Type => Needs_Finalization
300         Exp_Ch7.CW_Or_Controlled_Type => CW_Or_Has_Controlled_Part
301         Exp_Ch5.Expand_N_Extended_Return_Statement.Controlled_Type =>
302          Has_Controlled_Parts
303         (Has_Some_Controlled_Component): Fix bug in array case.
304
305 2008-08-22  Robert Dewar  <dewar@adacore.com>
306
307         * sem_ch8.adb: Minor reformatting
308
309 2008-08-22  Kevin Pouget  <pouget@adacore.com>
310
311         * s-shasto.ads, s-shasto.adb: Move Shared_Var_ROpen, Shared_Var_WOpen and
312         Shared_Var_Close procedure specifications from package spec to package body.
313
314         * rtsfind.ads: Remove RE_Shared_Var_Close, RE_Shared_Var_ROpen,
315         RE_Shared_Var_WOpen entries.
316
317         * exp_dist.adb: Update RE_Any_Content_Ptr to RE_Any_Container_Ptr in
318         Build_To_Any_Call, Build_TypeCode_Call and Build_From_Any_Call procedures.
319
320 2008-08-22  Eric Botcazou  <ebotcazou@adacore.com>
321
322         * init.c: adjust EH support code on Alpha/Tru64 as well.
323
324         * raise-gcc.c: Add back a couple of comments.
325
326 2008-08-22  Ed Schonberg  <schonberg@adacore.com>
327
328         * exp_ch5.adb (Expand_Simple_Function_Return): If secondary stack is
329         involved and the return type is class-wide, use the type of the expression
330         for the generated access type. Suppress useless discriminant checks on the
331         allocator.
332
333 2008-08-22  Bob Duff  <duff@adacore.com>
334
335         * exp_ch7.adb: Minor comment fix
336
337         * exp_ch6.ads: Minor comment fix
338
339 2008-08-22  Thomas Quinot  <quinot@adacore.com>
340
341         * sem_ch8.adb: Minor reformatting
342         Minor code reorganization (introduce subprogram to factor duplicated
343         code).
344
345 2008-08-22  Sergey Rybin  <rybin@adacore.com>
346
347         * gnat_ugn.texi: Change the description of gnatcheck default rule
348         settings.
349
350 2008-08-22  Eric Botcazou  <ebotcazou@adacore.com>
351
352         * init.c (__gnat_adjust_context_for_raise): Delete for AIX, HP-UX,
353         Solaris, FreeBSD, VxWorks and PowerPC/Linux.  For x86{-64}/Linux,
354         do not adjust the PC anymore.
355         (__gnat_error_handler): Do not call __gnat_adjust_context_for_raise
356         on AIX, HP-UX, Solaris, FreeBSD and VxWorks.
357
358         * raise-gcc.c (get_call_site_action_for): Use _Unwind_GetIPInfo
359         instead of _Unwind_GetIP.
360
361 2008-08-22  Gary Dismukes  <dismukes@adacore.com>
362
363         * exp_aggr.adb (Static_Array_Aggregate): When a static array aggregate
364         with a range is transformed into a positional aggregate, any copied
365         component literals should be marked Is_Static_Expression.
366
367         * sem_eval.adb (Compile_Time_Known_Value): Don't treat null literals as
368         not being known at at compile time when Configurable_Run_Time_Mode is
369         true.
370
371 2008-08-22  Robert Dewar  <dewar@adacore.com>
372
373         * exp_attr.adb:
374         (Expand_N_Attribute_Reference): No validity checking on OUT parameter of
375         Read or Input attribute.
376
377 2008-08-22  Ed Schonberg  <schonberg@adacore.com>
378
379         * sem_ch8.adb (Use_One_Type): when checking which of two use_type
380         clauses in related units is redundant, if one of the units is a package
381         instantiation, use its instance_spec to determine which unit is the
382         ancestor of the other.
383
384 2008-08-22  Javier Miranda  <miranda@adacore.com>
385
386         * exp_attr.adb (Expand_N_Attribute_Reference): In case of access
387         attributes add missing support to handle designated types that come
388         from the limited view.
389
390         * exp_disp.adb (Expand_Interface_Conversion): Remove wrong assertion.
391
392 2008-08-22  Sergey Rybin  <rybin@adacore.com>
393
394         * vms_data.ads: Add entry for new gnatcheck -mNNN option
395
396         * gnat_ugn.texi: Add description for gnatcheck option '-m'
397
398 2008-08-22  Sergey Rybin  <rybin@adacore.com>
399
400         * gnat_ugn.texi: Update the gnatcheck subsection for metric rules
401         acoording to the latest changes in the metric rule interface
402
403 2008-08-22  Vincent Celier  <celier@adacore.com>
404
405         * make.adb (Check.File_Not_A_Source_Of): New Boolean function
406         (Check): Check if the file names registered in the ALI file for the
407         spec, the body and each of the subunits are the ones expected.
408
409 2008-08-22  Robert Dewar  <dewar@adacore.com>
410
411         * g-catiio.adb: Code cleanup.
412
413 2008-08-20  Vincent Celier  <celier@adacore.com>
414
415         * make.adb (Gnatmake): Remove extra space in version line
416
417         * ali.adb:
418         (Scan_ALI): Use Name_Find, not Name_Enter to get the name of a subunit,
419         as the name may already have been entered in the table by the Project
420         Manager.
421
422 2008-08-20  Jose Ruiz  <ruiz@adacore.com>
423
424         * errno.c (__get_errno, __set_errno for MaRTE): Transform then into
425         weak symbols so we use the version provided by MaRTE when available.
426
427 2008-08-20  Emmanuel Briot  <briot@adacore.com>
428
429         * g-catiio.ads, g-catiio.adb:
430         (Value): Avoid an unnecessary system call to Clock in most cases.
431         This call is only needed when only the time is provided in the string,
432         and ignored in all other cases. This is more efficient.
433
434 2008-08-20  Eric Botcazou  <ebotcazou@adacore.com>
435
436         * raise-gcc.c: Fix formatting nits.
437
438 2008-08-20  Robert Dewar  <dewar@adacore.com>
439
440         * sem_ch13.adb:
441         (Adjust_Record_For_Reverse_Bit_Order): Do not access First_Bit for
442         non-existing component clause.
443
444         * exp_ch5.adb: Minor reformatting
445
446         * g-comlin.adb: Minor reformatting
447
448         * make.adb: Minor reformatting
449
450         * prj-proc.adb: Minor reformatting
451
452         * stylesw.ads: Minor reformatting
453
454 2008-08-20  Vincent Celier  <celier@adacore.com>
455
456         * make.adb (Gnatmake_Switch_Found): New Boolean global variable
457         (Switch_May_Be_Passed_To_The_Compiler): New Boolean global variable
458         (Add_Switches): New Boolean parameter Unknown_Switches_To_The_Compiler
459          defaulted to True. Fail when Unknown_Switches_To_The_Compiler is False
460         and a switch is not recognized by gnatmake.
461         (Gnatmake): Implement new scheme for gnatmake switches and global
462         compilation switches.
463         (Switches_Of): Try successively Switches (<file name>),
464         Switches ("Ada"), Switches (others) and Default_Switches ("Ada").
465
466 2008-08-20  Ed Schonberg  <schonberg@adacore.com>
467
468         * styleg-c.ads, styleg-c.adb (Missing_Overriding): new procedure to
469         implement style check that overriding operations are explicitly marked
470         at such.
471
472         * style.ads (Missing_Overriding): new procedure that provides interface
473         to previous one.
474
475         * stylesw.ads, stylesw.adb: New style switch -gnatyO, to enable check
476         that the declaration or body of overriding operations carries an
477         explicit overriding indicator.
478
479         * sem_ch8.adb
480         (Analyze_Subprogram_Renaming): if operation is overriding, check whether
481         explicit indicator should be present.
482
483         * sem_ch6.adb (Verify_Overriding_Indicator,
484         Check_Overriding_Indicator): If operation is overriding, check whether
485         declaration and/or body of subprogram should be present
486
487 2008-08-20  Vincent Celier  <celier@adacore.com>
488
489         * prj-nmsc.adb (Check_Naming_Schemes): Accept source file names for
490         gprbuild when casing is MixedCase, whatever the casing of the letters
491         in the file name.
492
493 2008-08-20  Gary Dismukes  <dismukes@adacore.com>
494
495         * exp_ch3.adb (Build_Array_Init_Proc): Clarify comment related to
496         creating dummy init proc.
497         (Requires_Init_Proc): Return False in the case No_Default_Initialization
498         is in force and the type does not have associated default
499         initialization. Move test of Is_Public (with tests of restrictions
500         No_Initialize_Scalars and No_Default_Initialization) to end, past tests
501         for default initialization.
502
503 2008-08-20  Jerome Lambourg  <lambourg@adacore.com>
504
505         * g-comlin.adb (For_Each_Simple_Switch): Take care of switches not part
506         of any alias or prefix but having attached parameters (as \"-O2\").
507
508 2008-08-20  Robert Dewar  <dewar@adacore.com>
509
510         * s-fileio.adb: Minor reformatting
511
512 2008-08-20  Thomas Quinot  <quinot@adacore.com>
513
514         * exp_strm.adb (Build_Elementary_Input_Call,
515         Build_Elementary_Write_Call): Fix incorrect condition in circuitry that
516         selects the stream attribute routines for long float types.
517
518 2008-08-20  Vincent Celier  <celier@adacore.com>
519
520         * prj-proc.adb (Process_Declarative_Items): Add Location for Array_Data
521
522         * prj.ads (Array_Data): Add a component Location
523
524 2008-08-20  Ed Schonberg  <schonberg@adacore.com>
525
526         * sem_prag.adb:
527         (Analyze_Pragma, case Obsolescent): Add entity information on the pragma
528         argument for ASIS and navigation use.
529
530 2008-08-20  Ed Schonberg  <schonberg@adacore.com>
531
532         * einfo.ads: Add comment.
533
534 2008-08-20  Bob Duff  <duff@adacore.com>
535
536         * sem_eval.ads: Minor comment fix.
537
538 2008-08-20  Bob Duff  <duff@adacore.com>
539
540         * exp_ch4.adb (Expand_N_And_Then, Expand_N_Or_Else): Improve constant
541         folding. We were folding things like "False and then ...", but not
542         "X and then ..." where X is a constant whose value is known at compile
543         time.
544
545 2008-08-20  Hristian Kirtchev  <kirtchev@adacore.com>
546
547         * exp_ch5.adb (Controlled_Type): New routine.
548         (Expand_N_Extended_Return_Statement): When generating a move of the
549         final list in extended return statements, check the type of the
550         function and in the case of double expanded return statements, the type
551         of the returned object.
552         (Expand_Simple_Function_Return): Perform an interface conversion when
553         the type of the returned object is an interface and the context is an
554         extended return statement.
555
556 2008-08-20  Ed Schonberg  <schonberg@adacore.com>
557
558         * sem_util.adb (Set_Debug_Info_Needed): If the entity is a private type
559         and the full view is visible, set flag on full view as well.
560
561 2008-08-20  Thomas Quinot  <quinot@adacore.com>
562
563         * g-comlin.adb: Minor reformatting
564         Minor code reorganization.
565
566         * freeze.adb: Minor reformatting
567
568 2008-08-20  Vincent Celier  <celier@adacore.com>
569
570         * prj-nmsc.adb (Check_File): An excluded Ada source file may be a
571         source of another project.
572
573 2008-08-20  Pascal Obry  <obry@adacore.com>
574
575         * s-os_lib.ads: Minor reformatting.
576
577 2008-08-20  Arnaud Charlet  <charlet@adacore.com>
578
579         * gnatvsn.ads: Minor reformatting.
580
581 2008-08-20  Arnaud Charlet  <charlet@adacore.com>
582
583         * a-crbtgk.adb, repinfo.adb, g-traceb.ads, repinfo.ads,
584         system-linux-s390x.ads, s-fatflt.ads, s-parame-ae653.ads, g-spipat.adb,
585         g-spipat.ads, g-tasloc.adb, g-debpoo.adb, g-except.ads, g-debpoo.ads,
586         mdll-utl.adb, g-string.adb, g-soliop-solaris.ads, par-sync.adb,
587         exp_ch6.ads, a-cihama.ads, g-curexc.ads, system-linux-sh4.ads,
588         g-utf_32.adb, g-hesorg.adb, s-proinf-irix-athread.ads, s-parint.adb,
589         s-parint.ads, exp_ch7.ads, system-linux-alpha.ads, g-dirope.adb,
590         sinfo-cn.adb, par-labl.adb, a-ciorse.adb, g-calend.adb,
591         s-parame-vms-alpha.ads, nlists.h, exp_imgv.adb, exp_fixd.ads,
592         g-calend.ads, gnatcmd.ads, g-table.adb, s-memory-mingw.adb,
593         g-alveop.ads, g-memdum.ads, g-altive.ads, initialize.c, g-regpat.adb,
594         g-busorg.ads, g-regpat.ads, g-encstr.ads, g-regexp.adb, g-regexp.ads,
595         live.ads, g-dyntab.adb, prj-nmsc.ads, par-ch12.adb, 9drpc.adb,
596         g-alvevi.ads, s-memory.adb, math_lib.adb, s-parame.ads, s-memory.ads,
597         s-regexp.adb, a-exexda.adb, i-cstrea-vms.adb, a-exexpr.adb,
598         g-soliop-mingw.ads, s-imgrea.adb, namet.adb, system-vms.ads,
599         s-inmaop-dummy.adb, s-finroo.ads, a-ngcefu.adb, s-hibaen.ads,
600         g-soliop.ads, s-auxdec.adb, g-locfil.ads, gnatxref.adb, memroot.adb,
601         osint-b.ads, memroot.ads, s-parame-hpux.ads, errutil.adb,
602         system-linux-s390.ads, par-util.adb, osint-c.ads, exp_pakd.ads,
603         i-pacdec.ads, par-endh.adb, mlib-tgt.ads, prj-strt.ads,
604         s-osprim-vms.adb, s-proinf.ads, output.ads, g-moreex.ads,
605         a-finali.ads, s-fatlfl.ads, namet.h, mdll.ads, g-dynhta.ads,
606         s-imgenu.ads, par-tchk.adb, g-excact.ads, memtrack.adb, s-fatgen.adb,
607         a-exexpr-gcc.adb, g-arrspl.adb, par-ch4.adb, g-cgideb.adb, freeze.ads,
608         g-altcon.adb, s-fatllf.ads, gnatfind.adb, s-osinte-lynxos-3.adb,
609         a-exextr.adb, g-htable.ads, a-calfor.adb, s-imgcha.adb, argv.c,
610         a-chahan.ads, g-hesora.adb, system-vms_64.ads, par-ch5.adb, g-md5.adb,
611         lib-xref.ads, g-md5.ads, g-casuti.ads, s-fatsfl.ads, exp_dbug.ads,
612         s-htable.ads, a-ngcoar.adb, s-arit64.ads, a-ngelfu.adb, a-filico.ads,
613         par-ch6.adb, s-inmaop.ads, s-parame-vxworks.ads, s-casuti.ads,
614         a-numaux-darwin.adb, a-cohama.ads, system-linux-sparc.ads, g-os_lib.adb,
615         system-vms-ia64.ads, s-parame-vms-restrict.ads, a-clrefi.ads,
616         s-parame-vms-ia64.ads, a-strfix.adb, a-coorse.adb, a-comlin.ads,
617         a-chtgke.adb, s-imgint.adb, g-expect.ads, exp_ch4.ads, s-finimp.adb,
618         mingw32.h, g-heasor.adb, g-alleve.adb, a-ngrear.adb, s-mastop-irix.adb,
619         s-poosiz.adb, link.c: Fix copyright notice.
620
621 2008-08-20  Arnaud Charlet  <charlet@adacore.com>
622
623         * g-comlin.ads: Update comments.
624
625 2008-08-20  Ed Schonberg  <schonberg@adacore.com>
626
627         * sem_ch8.adb (Analyze_Subprogram_Renaming): Inherit Is_Imported flag.
628
629 2008-08-20  Gary Dismukes  <dismukes@adacore.com>
630
631         * exp_ch11.adb:
632         (Expand_Exception_Handlers): Call Make_Exception_Handler instead of
633         Make_Implicit_Exception_Handler when rewriting an exception handler with
634         a choice parameter, and pass the handler's Sloc instead of that of the
635         handled sequence of statements. Make_Implicit_Exception_Handler sets the
636         Sloc to No_Location (unless debugging generated code), which we don't
637         want for the case of a user handler.
638
639 2008-08-20  Robert Dewar  <dewar@adacore.com>
640
641         * freeze.adb (Freeze_Record_Type): Improve msg for non-contiguous field
642
643         * sem_ch13.adb:
644         (Adjust_Record_For_Reverse_Bit_Order): Messages about layout are
645         now labeled as info msgs, not warnings.
646
647         * tbuild.ads: Clarify documentation of Make_Implicit_Exception_Handler
648
649         * usage.adb: Minor change to avoid overlong line for -gnatwz/Z
650
651         * a-textio.adb: Remove redundant test.
652
653         * a-witeio.adb: Minor code reorganization
654         Remove redundant test found working on another issue
655
656         * a-ztexio.adb: Minor code reorganization
657         Remove redundant test found working on another issue
658
659 2008-08-20  Thomas Quinot  <quinot@adacore.com>
660
661         * s-fileio.adb (Open) Use C helper function to determine whether a
662         given errno value corresponds to a "file not found" error.
663
664         * sysdep.c (__gnat_is_file_not_found_error): New C helper function.
665
666 2008-08-20  Jose Ruiz  <ruiz@adacore.com>
667
668         * errno.c (__get_errno for MaRTE): Use the MaRTE function pthread_errno
669         to get access to the per-task errno variable.
670         (__set_errno for MaRTE): Do not redefine this function here since it is
671         already defined in MaRTE.
672
673 2008-08-20  Tristan Gingold  <gingold@adacore.com>
674
675         * gnat_ugn.texi: Gcov is not supported on static library on AIX.
676
677 2008-08-20  Robert Dewar  <dewar@adacore.com>
678
679         * freeze.adb: Minor reformatting
680
681         * g-comlin.adb: Minor reformatting
682
683         * g-socket.adb: Minor reformatting
684
685         * g-socthi-mingw.adb: Minor reformatting
686
687         * g-stheme.adb: Minor reformatting
688
689 2008-08-20  Ed Schonberg  <schonberg@adacore.com>
690
691         * sem_aggr.adb, sem_type.adb, exp_ch9.ads, einfo.ads,
692         exp_ch6.adb, exp_aggr.adb (Valid_Ancestor): Resolve
693         confusion between partial and full views of an ancestor of the context
694         type when the parent is a private extension declared in a parent unit,
695         and full views are available for the context type.
696
697 2008-08-18  Samuel Tardieu  <sam@rfc1149.net>
698             Robert Dewar  <dewar@adacore.com>
699
700         PR ada/30827
701         * bindgen.adb (Gen_Output_File_Ada): Zero-terminate the
702         version string.
703         Move comment in the right place.
704         * g-comver.adb (Version): Look for a zero-termination in
705         addition to a closing parenthesis.
706
707 2008-08-18  Samuel Tardieu  <sam@rfc1149.net>
708
709         * exp_ch13.adb, exp_disp.adb, sem_cat.adb, sem_ch10.adb,
710         * sem_ch12.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb,
711         * sem_prag.adb, sem_util.adb, sem_warn.adb: Use
712         Is_Package_Or_Generic_Package instead of hand-crafted tests.
713
714 2008-08-18  Samuel Tardieu  <sam@rfc1149.net>
715
716         PR ada/15808
717         * sem_ch6.adb (Check_Private_Overriding): Check for generic packages
718         as well.
719
720 2008-08-17  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
721
722         * adaint.c (_gnat_set_close_on_exec) [_WIN32]: Implement.
723
724 2008-08-16  Eric Botcazou  <ebotcazou@adacore.com>
725
726         * gcc-interface/trans.c (call_to_gnu): Use the Sloc of the call
727         for back-copy statements in lieu of that of the actual.
728
729 2008-08-16  Eric Botcazou  <ebotcazou@adacore.com>
730
731         PR ada/20548
732         * gcc-interface/decl.c (gnat_to_gnu_entity): Use DECL_SIZE_UNIT in the
733         setjmp test consistently.  Adjust for new behavior of flag_stack_check.
734         * gcc-interface/utils2.c (build_call_alloc_dealloc): Remove redundant
735         test of flag_stack_check.  Adjust for new behavior of flag_stack_check.
736
737 2008-08-13  Samuel Tardieu  <sam@rfc1149.net>
738
739         PR ada/36777
740         * sem_util.ads, sem_util.adb (Is_Protected_Self_Reference): New.
741         * sem_attr.adb (Check_Type): The current instance of a protected
742         object is not a type name.
743         (Analyze_Access_Attribute): Accept instances of protected objects.
744         (Analyze_Attribute, Attribute_Address clause): Ditto.
745         * exp_attr.adb (Expand_N_Attribute_Reference): Rewrite
746         the prefix as being the current instance if needed.
747
748 2008-08-12  Danny Smith  <danyssmith@users.sourceforge.net>
749
750         * gcc-interface/Makefile.in (EXTRA_GNATRTL_NONTASKING_OBJS) [WINDOWS]:
751         Remove duplicate s-win32.o. Add s-winext.o.
752
753 2008-08-12  Danny Smith  <danyssmith@users.sourceforge.net>
754
755         * g-stsifd-sockets.adb (Create): Replace Constants.SOCK_STREAM
756         with SOSC.SOCK__STREAM.
757         * g-socthi-mingw.adb (C_Select) Replace Constants.MSG_OOB with
758         SOSC.MSG_OOB.
759
760 2008-08-11  Joel Sherrill  <joel.sherrill@oarcorp.com>
761
762         * s-oscons-tmplt.c: RTEMS defines AF_INET6 but does support it.
763         * gsocket.h, socket.c: Update to support RTEMS.
764         * gcc-interface/Make-lang.in: Include CFLAGS_FOR_TARGET when cross.
765
766 2008-08-10  Samuel Tardieu  <sam@rfc1149.net>
767             Robert Dewar <dewar@adacore.com>
768
769         * exp_ch4.adb (Expand_N_Op_Expon): Force evaluation of
770         left argument even when right argument is 0.
771         (Expand_N_Op_Mod): Ditto when right argument is 1.
772         (Expand_N_Op_Multiply): Ditto when any argument is 0.
773         (Expand_N_Op_Rem): Ditto when right argument is 1.
774
775 2008-08-09  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
776
777         * gcc-interface/misc.c (gnat_handle_option): Replace set_Wunused
778         by warn_unused.
779
780 2008-08-08  Ed Schonberg  <schonberg@adacore.com>
781
782         * freeze.adb (Generate_Prim_Op_References): New procedure, abstracted
783         from Freeze_Entity. Used to generate cross-reference information for
784         types declared in generic packages.
785
786 2008-08-08  Thomas Quinot  <quinot@adacore.com>
787
788         * gcc-interface/Makefile.in: Reintroduce g-soccon.ads as a
789         compatibility shim.
790
791 2008-08-08  Thomas Quinot  <quinot@adacore.com>
792
793         * gsocket.h:
794         On Windows, include <errno.h> and redefine only selected errno values
795         from their <winsock2.h> definitions.
796
797         * s-osinte-freebsd.ads: Minor reformatting
798
799         * s-osinte-hpux.ads, s-osinte-irix.ads: Minor reformatting
800
801         * g-soccon.ads: New file.
802
803         * g-stheme.adb, g-socthi-vms.adb, g-socthi-vxworks.adb,
804         g-socthi-mingw.adb, g-sttsne-vxworks.adb, g-socthi.adb,
805         g-stsifd-sockets.adb, g-socket.adb, g-socket.ads,
806         g-sothco.adb, g-sothco.ads: Add back GNAT.Sockets.Constants as a child
807         unit, to allow building software that depends on this internal unit
808         with both older and newer compilers.
809
810 2008-08-08  Robert Dewar  <dewar@adacore.com>
811
812         * s-strxdr.adb: Minor reformatting
813
814 2008-08-08  Bob Duff  <duff@adacore.com>
815
816         * gnat_ugn.texi: The "Run-Time Checks" section said "arithmetic overflow
817         checking for integer operations (including division by zero)", which
818         is wrong -- divide by zero is not part of overflow checking.
819         Also added misc clarification about what check-suppression means.
820
821         * gnat_rm.texi: Clarify the meaning of pragma Suppress.
822
823 2008-08-08  Jerome Lambourg  <lambourg@adacore.com>
824
825         * g-comlin.adb (Add_Switch): Handle addition of switches at the
826         begining of the command line.
827         (Append, Add): Renaming of Append to Add as this now allows addition
828         at the begining of the list.
829
830         * g-comlin.ads (Add_Switch): Handle addition of switches at the
831         begining of the command line.
832
833 2008-08-08  Thomas Quinot  <quinot@adacore.com>
834
835         * g-sercom.ads:
836         (Name): Document application scope (only legacy PC serial ports on
837         Linux and Windows).
838
839 2008-08-08  Thomas Quinot  <quinot@adacore.com>
840
841         * gcc-interface/Makefile.in, gcc-interface/Make-lang.in: Revert
842         previous change, not needed after all.
843
844 2008-08-08  Ed Schonberg  <schonberg@adacore.com>
845
846         * exp_ch4.adb (Expand_Allocator_Expression): add check if null
847         exclusion indicator is present
848
849 2008-08-08  Robert Dewar  <dewar@adacore.com>
850
851         * g-comlin.adb: Minor code reorganization
852         Minor reformatting
853
854         * g-comlin.ads: Minor reformatting
855
856         * s-fileio.adb: Minor reformatting
857
858         * sem_attr.adb: Minor code reorganization (use Nkind_In)
859         Minor reformatting
860
861 2008-08-06  Samuel Tardieu  <sam@rfc1149.net>
862
863         * gcc-interface/Make-lang.in: Use GCC_FOR_TARGET when dealing
864         with s-oscons-tmplt.i.
865
866 2008-08-06  Samuel Tardieu  <sam@rfc1149.net>
867
868         * gcc-interface/Make-lang.in (OSCONS_CPPFLAGS): Remove.
869
870 2008-08-06  Ed Schonberg  <schonberg@adacore.com>
871
872         * sem_ch3.adb (Analyze_Component_Declaration): Protect against misuse
873         of incomplete type.
874
875         * sem_ch8.adb (Analyze_Object_Renaming): Diagnose properly a renaming
876         of a formal parameter of an incomplete type. Improve error message for
877         other improper uses of incomplete types.
878
879 2008-08-06  Robert Dewar  <dewar@adacore.com>
880
881         * gnat_ugn.texi: Clarify -gnato documentation
882
883 2008-08-06  Thomas Quinot  <quinot@adacore.com>
884
885         * gcc-interface/Makefile.in,
886         g-socthi-vxworks.adb, g-socthi-mingw.adb, g-sttsne-vxworks.adb,
887         g-socthi.adb, g-socket.adb, g-socket.ads, g-sothco.ads,
888         g-soccon-linux-x86.ads, g-soccon-vxworks.ads, g-soccon-mingw.ads,
889         g-soccon-hpux-ia64.ads, g-soccon-irix.ads, g-soccon-linux-64.ads,
890         g-soccon-aix.ads, g-soccon-solaris.ads, g-soccon-lynxos.ads,
891         g-soccon-vms.ads, g-soccon.ads, g-soccon-freebsd.ads,
892         g-soccon-linux-ppc.ads, g-soccon-tru64.ads, g-soccon-hpux.ads,
893         g-soccon-solaris-64.ads, gen-oscons.c, g-soccon-darwin.ads,
894         g-soccon-mingw-64.ads, g-soccon-linux-mips.ads, g-soccon-rtems.ads:
895         Remove GNAT.Sockets.Constants. This internal package is replaced by
896         System.OS_Constants.
897
898 2008-08-06  Thomas Quinot  <quinot@adacore.com>
899
900         * gcc-interface/Makefile.in, gcc-interface/Make-lang.in:
901         Remove obsolete targets referencing gen-soccon
902         When generating s-oscons.ads, use a file name that includes the
903         THREAD_KIND, to ensure that the (potentially different) version from a
904         previous build with a different threads flavour does not get reused.
905
906 2008-08-06  Thomas Quinot  <quinot@adacore.com>
907
908         * sem_res.adb: Minor reformatting
909
910         * s-fileio.adb (Open): When file open operation fails, raise Name_Error
911         only when the operating system reports a non-existing file or directory
912         (ENOENT), otherwise raise Name_Error.
913
914         * exp_ch11.adb: Minor reformatting
915
916 2008-08-06  Ed Schonberg  <schonberg@adacore.com>
917
918         * sem_ch3.adb (Access_Subprogram_Declaration): If the return type is
919         incomplete, add the access_to_subprogram type to the list of private
920         dependents only if the incomplete type will be completed in the current
921         scope.
922         (Build_Discriminant_Constraints): If the type of the discriminant is
923         access_to_variable, reject a constraint that is access_to_constant.
924
925 2008-08-06  Thomas Quinot  <quinot@adacore.com>
926
927         * g-socket-dummy.adb, g-socket-dummy.ads, g-sothco-dummy.adb,
928         g-sothco-dummy.ads, g-socthi-dummy.adb, g-socthi-dummy.ads,
929         g-sttsne-dummy.ads: New files.
930
931         * gcc-interface/Makefile.in, Makefile.rtl: Use placeholder sources
932         with pragma Unimplemented_Unit for sockets packages on Nucleus.
933
934 2008-08-06  Pascal Obry  <obry@adacore.com>
935
936         * adaint.c: Another fix for ACL support on Windows.
937
938 2008-08-06  Javier Miranda  <miranda@adacore.com>
939
940         * exp_disp (Expand_Interface_Actuals): Adds missing support for
941         expansion of calls to subprograms using selected components.
942
943 2008-08-06  Ed Schonberg  <schonberg@adacore.com>
944
945         * sem_res.adb (Resolve_Call): Use base type to determine whether a
946         dereference is needed because a subtype of an access_to_subprogram is
947         simply an access-subtype
948
949 2008-08-06  Jerome Lambourg  <lambourg@adacore.com>
950
951         * g-comlin.adb (Set_Command_Line): Now that aliases can contain
952         parameters, always specify the expected separator.
953
954 2008-08-06  Thomas Quinot  <quinot@adacore.com>
955
956         * xnmake.adb: Use new XUtil package for platform independent text
957         output.
958
959 2008-08-06  Vincent Celier  <celier@adacore.com>
960
961         * gnat_ugn.texi: Document compiler switch -gnateG
962
963 2008-08-06  Quentin Ochem  <ochem@adacore.com>
964
965         * s-stausa.adb (Fill_Stack): Fixed pragma assert and top pattern mark
966         in the case of an empty pattern size.
967         (Compute_Result): Do not do any computation in the case of an empty
968         pattern size.
969         (Report_Result): Fixed computation of the overflow guard.
970
971 2008-08-06  Ed Schonberg  <schonberg@adacore.com>
972
973         * g-awk.adb (Finalize): Do not use directly objects of the type in the
974         finalization routine to prevent elaboration order anomalies in new
975         finalization scheme.
976
977 2008-08-06  Ed Schonberg  <schonberg@adacore.com>
978
979         * sem_ch3.adb (Find_Type_Name): protect against duplicate incomplete
980         declaration for the same type.
981
982 2008-08-06  Thomas Quinot  <quinot@adacore.com>
983
984         * sem.adb: Minor rewording (comment)
985
986 2008-08-06  Jerome Lambourg  <lambourg@adacore.com>
987
988         * g-comlin.adb (Define_Switch, Get_Switches): New.
989         (Can_Have_Parameter, Require_Parameter, Actual_Switch): New, used when
990         ungrouping switches.
991         (For_Each_Simple_Switch): Allow more control over parameters handling.
992         This generic method now allows ungrouping of switches with parameters
993         and switches with more than one letter after the prefix.
994         (Set_Command_Line): Take care of switches that are prefixed with a
995         switch handling parameters without delimiter (-gnatya and -gnaty3 for
996         example).
997         (Add_Switch, Remove_Switch): Handle parameters possibly present inside
998         a group, as in gnaty3aM80 (3 and 80 are parameters). Report status of
999         the operation.
1000         (Start, Alias_Switches, Group_Switches): Take care of parameters
1001         possibly present inside a group.
1002
1003         * g-comlin.ads (Define_Switch): New method used to define a list of
1004         expected switches, that are necessary for correctly ungrouping switches
1005         with more that one character after the prefix.
1006         (Get_Switches): Method that builds a getopt string from the list of
1007         switches as set previously by Define_Switch.
1008         (Add_Switch, Remove_Switch): New versions of the methods, reporting the
1009         status of the operation. Also allow the removal of switches with
1010         parameters only.
1011         (Command_Line_Configuration_Record): Maintain a list of expected
1012         switches.
1013
1014 2008-08-06  Doug Rupp  <rupp@adacore.com>
1015
1016         * gcc-interface/decl.c (gnat_to_gnu_param): Force 32bit descriptor if
1017         TARGET_MALLOC64 clear.
1018
1019         * gcc-interface/utils2.c (build_call_alloc_dealloc): Force 32bit malloc
1020         if TARGET_MALLOC64 clear.
1021
1022         * gcc-interface/gigi.h (TARGET_ABI_OPEN_VMS): Move here from utils2.c
1023         (TARGET_MALLC64): New macro. Default to clear.
1024
1025 2008-08-06  Doug Rupp  <rupp@adacore.com>
1026
1027         * gcc-interface/utils2.c (snames.h) Include
1028         (TARGET_ABI_OPEN_VMS): Initialize.
1029         (build_call_alloc_dealloc); [TARGET_ABI_OPEN_VMS] Allocate on 32bit heap
1030         for Convention C.
1031
1032 2008-08-06  Ed Schonberg  <schonberg@adacore.com>
1033
1034         * sem_ch3.adb (Process_Discriminants): diagnose redundant or improper
1035         null exclusion in a discriminant declaration
1036
1037         * sem_ch8.adb (Analyze_Object_Renaming): diagnose null exclusion
1038         indicators when type is not an access type.
1039
1040         * sem_ch12.adb (Formal_Object_Declaration): diagnose null exclusion
1041         indicators when type is not an access type.
1042
1043 2008-08-06  Javier Miranda  <miranda@adacore.com>
1044
1045         * exp_disp (Expand_Interface_Conversion): Freeze the entity associated
1046         with the target interface before expanding the code of the interface
1047         conversion.
1048
1049 2008-08-05  Ed Schonberg  <schonberg@adacore.com>
1050
1051         * freeze.adb:
1052         (Freeze_Entity): A deferred constant does not violate the restriction
1053         No_Default_Initialization,
1054
1055         * sem_ch3.adb (Process_Subtype): An allocator is a valid construct that
1056         can carry a null exclusion indicator, and on which an error may be
1057         posted if the indicator is redundant.
1058
1059         * sem_ch8.adb (Analyze_Object_Renaming): Verify that a null exclusion
1060         does not apply to a subtype mark that already excludes null.
1061
1062         * sem_ch12.adb (Formal_Object_Declaration): Verify that a null
1063         exclusion does not apply to a subtype mark that already excludes null.
1064
1065 2008-08-05  Thomas Quinot  <quinot@adacore.com>
1066
1067         * Makefile.rtl: Compile s-oscons.ads as part of the runtime library.
1068
1069 2008-08-05  Doug Rupp  <rupp@adacore.com>
1070
1071         * vms_data.ads: Translation for /POINTER_SIZE qualifier.
1072
1073 2008-08-05  Thomas Quinot  <quinot@adacore.com>
1074
1075         * gsocket.h: Make this file includable in a Nucleus environment, which
1076         does not support sockets.
1077
1078         * socket.c: Remove Nucleus-specific hack.
1079
1080 2008-08-05  Pascal Obry  <obry@adacore.com>
1081
1082         * adaint.c: Remove support for readable attribute on vxworks and nucleus
1083
1084 2008-08-05  Ed Schonberg  <schonberg@adacore.com>
1085
1086         * sem_attr.adb:
1087         (Analyze_Attribute, case 'Result): handle properly the case where some
1088         operand of the expression in a post-condition generates a transient
1089         block.
1090
1091         * sem_ch5.adb (Analyze_Assignment_Statement): Apply conversion to
1092         right-hand side when it is an anonymous access_to_subprogram, to force
1093         static accessibility check when needed.
1094
1095 2008-08-05  Sergey Rybin  <rybin@adacore.com>
1096
1097         * gnat_ugn.texi: Changing the description of the gnatcheck metrics
1098         rule according to the change in the rule option.
1099         Add documentation for -gnatw.b/-gnatw.B
1100
1101 2008-08-05  Robert Dewar  <dewar@adacore.com>
1102
1103         * ug_words: Add entries for -gnatw.b/-gnatw.B
1104
1105         * vms_data.ads: Add entries for -gnatw.b/-gnatw.B
1106
1107 2008-08-05  Vincent Celier  <celier@adacore.com>
1108
1109         * a-wtdeio.adb (Put (Current_Output)): Use Fore in the call to Put
1110         (File).
1111
1112         * a-ztdeio.adb: Ditto.
1113
1114 2008-08-05  Pascal Obry  <obry@adacore.com>
1115
1116         * adaint.c, adaint.h, s-os_lib.adb, s-os_lib.ads: Add support for the
1117         readable attribute.
1118
1119 2008-08-05  Vincent Celier  <celier@adacore.com>
1120
1121         * s-wchwts.adb:
1122         (Wide_String_To_String): Returns a String with the same 'First as its
1123         parameter S.
1124         (Wide_Wide_String_To_String): Ditto
1125
1126         * s-wchwts.ads:
1127         (Wide_String_To_String): Document that the lowest index of the returned
1128         String is equal to S'First.
1129
1130 2008-08-05  Thomas Quinot  <quinot@adacore.com>
1131
1132         * xoscons.adb, xutil.ads, xutil.adb, s-oscons-tmplt.c: New files.
1133
1134         * gcc-interface/Makefile.in, gcc-interface/Make-lang.in: Generate
1135         s-oscons.ads
1136
1137 2008-08-05  Robert Dewar  <dewar@adacore.com>
1138
1139         * opt.ads (Warn_On_Biased_Representation): New flag
1140
1141         * sem_ch13.adb:
1142         (Analyze_Attribute_Definition_Clause): Issue warning when biased
1143         representation is required.
1144         (Minimum_Size): Don't allow biasing if enum rep clause case
1145
1146         * sem_warn.adb:
1147         (Set_Dot_Warning_Switch): Add handling of -gnatw.b/B switches
1148         (Set_Warning_Switch): Include -gnatw.b in -gnatwa, -gnatw.B in gnatws
1149
1150         * usage.adb: Add lines for -gnatw.b/B switches
1151
1152 2008-08-05  Pascal Obry  <obry@adacore.com>
1153
1154         * a-coinve.adb: Reorder the code to avoid uninitialized warning.
1155
1156         * adaint.c: In UNIX cases do not call __gnat_stat but stat directly.
1157
1158 2008-08-05  Thomas Quinot  <quinot@adacore.com>
1159
1160         * socket.c: Minor reformatting.
1161
1162 2008-08-05  Robert Dewar  <dewar@adacore.com>
1163
1164         * sem_ch3.adb: Minor reformatting
1165
1166         * prj-nmsc.adb: Minor reformatting
1167
1168 2008-08-05  Ed Schonberg  <schonberg@adacore.com>
1169
1170         * sem_ch12.adb (Validate_Array_Type_Instance): Only apply complex
1171         visibility check on the component type if the simple test fails.
1172
1173 2008-08-05  Jose Ruiz  <ruiz@adacore.com>
1174
1175         * init.c (__gnat_install_handler for linux): If we are building the
1176         Xenomai run time then we need to do two additional things: avoid
1177         memory swapping and transform the Linux environment task into a native
1178         Xenomai task.
1179
1180         * gcc-interface/Makefile.in (LIBGNAT_TARGET_PAIRS for xenomai run
1181         time): Use interface to Xenomai native skin and avoid linux-specific
1182         way of setting CPU affinity.
1183         (EH_MECHANISM for the xenomai run time): Use sjlj exception mechanism.
1184
1185 2008-08-05  Bob Duff  <duff@adacore.com>
1186
1187         * checks.ads: Minor comment fix
1188
1189 2008-08-05  Thomas Quinot  <quinot@adacore.com>
1190
1191         * g-sercom.adb, g-sercom.ads, g-sercom-mingw.adb,
1192         g-sercom-linux.adb (Data_Bits): Change literals B7 and B8 to CS7 and
1193         CS8.
1194
1195 2008-08-05  Robert Dewar  <dewar@adacore.com>
1196
1197         * mlib.adb: Minor code reorganization
1198         Minor reformatting
1199
1200         * make.adb: Minor reformatting
1201
1202         * prj-attr.ads: Minor reformatting
1203
1204         * s-os_lib.adb: Minor reformatting
1205
1206         * s-fileio.adb: Minor code reorganization
1207         Minor reformatting
1208
1209         * prj.ads: Minor reformatting
1210
1211 2008-08-05  Bob Duff  <duff@adacore.com>
1212
1213         * sem_ch3.adb (Analyze_Object_Declaration): Avoid type Any_Access in
1214         unresolved initial value of "null", because it causes implicitly
1215         generated "=" operators to be ambiguous, and because this type should
1216         not be passed to gigi.
1217
1218 2008-08-05  Vincent Celier  <celier@adacore.com>
1219
1220         * mlib.adb: Update comments.
1221
1222         * make.adb (Switches_Of): Check for Switches (others), before checking
1223         for Default_Switches ("Ada").
1224         (Gnatmake): Use Builder'Switches (others) in preference to
1225         Builder'Default_Switches ("Ada") if there are several mains.
1226
1227         * prj-attr-pm.adb:
1228         (Add_Attribute): Add component Others_Allowed in Attribute_Record
1229         aggregate.
1230
1231         * prj-attr.adb:
1232         Add markers to indicates that attributes Switches allow others as index
1233         (Others_Allowed_For): New Boolean function, returning True for
1234         attributes with the mark.
1235         (Initialize): Recognize optional letter 'O' as the marker for
1236         associative array attributes where others is allowed as the index.
1237
1238         * prj-attr.ads:
1239         (Others_Allowed_For): New Boolean function
1240         (Attribute_Record): New Boolean component Others_Allowed
1241
1242         * prj-dect.adb:
1243         (Parse_Attribute_Declaration): For associative array attribute where
1244         others is allowed as the index, allow others as an index.
1245
1246         * prj-nmsc.adb:
1247         (Process_Binder): Skip associative array attributes with index others
1248         (Process_Compiler): Ditto
1249
1250         * prj-util.adb:
1251         (Value_Of (Index, In_Array)): Make no attempt to put in lower case when
1252         index is All_Other_Names.
1253
1254         * prj.ads:
1255         (All_Other_Names): New constant
1256
1257         * prj-proc.adb:
1258         (Process_Declarative_Items): Skip associative array attribute when index
1259         is reserved word "others".
1260
1261 2008-08-05  Vasiliy Fofanov  <fofanov@adacore.com>
1262
1263         * gen-oscons.c: Adapt for VMS where termios.h is not available.
1264
1265 2008-08-05  Thomas Quinot  <quinot@adacore.com>
1266
1267         * a-rttiev.adb: Minor reformatting (comments)
1268
1269         * gen-soccon.c: Rename to gen-oscons.c
1270
1271         * gen-oscons.c: New file. Now generate System.OS_Constants instead of
1272         GNAT.Sockets.Constants.
1273         Add new constants for GNAT.Serial_Communications and System.File_IO.
1274
1275 2008-08-05  Javier Miranda  <miranda@adacore.com>
1276
1277         * sem_util.adb (Collect_Interfaces_Info): Minor reformating.
1278         * exp_ch3.adb (Build_Offset_To_Top_Functions): Code cleanup: the
1279         implementation of this routine has been simplified.
1280
1281 2008-08-05  Pascal Obry  <obry@adacore.com>
1282
1283         * adaint.c, adaint.h, s-os_lib.adb, s-os_lib.ads: Fix the
1284         Set_Read_Only Win32 implementation.
1285
1286 2008-08-05  Thomas Quinot  <quinot@adacore.com>
1287
1288         * exp_strm.adb: Minor reformatting (comments)
1289
1290         * sem_ch12.adb: Minor reformatting.
1291
1292 2008-08-05  Robert Dewar  <dewar@adacore.com>
1293
1294         * sem_ch3.adb: Minor reformatting
1295
1296         * checks.adb: Minor reformatting
1297
1298 2008-08-05  Thomas Quinot  <quinot@adacore.com>
1299
1300         * tbuild.ads (New_External_Name): Update spec to reflect relaxed
1301         restriction on Prefix.
1302
1303 2008-08-05  Jerome Lambourg  <lambourg@adacore.com>
1304
1305         * g-comlin.adb (Sort_Sections, Group_Switches): New/Modified internal
1306         methods needed to handle switch sections when building a command line.
1307         (Define_Section, Add_Switch, Remove_Switch, Is_New_Section,
1308         Current_Section): New public methods or methods modified to handle
1309         building command lines with sections.
1310         (Set_Command_Line): Take into account sections when analysing a switch
1311         string.
1312         (Start): Sort the switches by sections before iterating the command line
1313         elements.
1314
1315         * g-comlin.ads (Define_Section, Add_Switch, Remove_Switch,
1316         Is_New_Section, Current_Section): New methods or methods modified to
1317         handle building command lines with sections.
1318
1319 2008-08-05  Ed Schonberg  <schonberg@adacore.com>
1320
1321         * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): For access
1322         discriminants, indicate that the corresponding object declaration has
1323         no initialization, to prevent spurious warnings when the access type is
1324         null-excluding.
1325
1326 2008-08-05  Ed Schonberg  <schonberg@adacore.com>
1327
1328         * sem_res.adb (Resolve_Call): If this is a call to the predefined
1329         Abort_Task, warn if the call appears within a protected operation.
1330
1331 2008-08-04  Robert Dewar  <dewar@adacore.com>
1332
1333         * exp_ch4.adb (Expand_N_In): Suppress range warnings in instances
1334
1335 2008-08-04  Ed Schonberg  <schonberg@adacore.com>
1336
1337         * sem_ch3.adb:
1338         (Replace_Anonymous_Access_To_Protected_Subprogram): Handle properly an
1339         anonymous access to protected subprogram that is the return type of the
1340         specification of a subprogram body.
1341
1342         * sem_ch6.adb:
1343         (Analyze_Subprogram_Body): if the return type is an anonymous access to
1344         subprogram, freeze it now to prevent access anomalies in the back-end.
1345
1346         * exp_ch9.adb: Minor code cleanup.
1347         Make sure that new declarations are inserted into the tree before
1348         analysis (from code reading).
1349
1350 2008-08-04  Robert Dewar  <dewar@adacore.com>
1351
1352         * exp_ch5.adb:
1353         (Expand_Simple_Function_Return): Check No_Secondary_Stack restriction
1354         at point of return.
1355
1356 2008-08-04  Thomas Quinot  <quinot@adacore.com>
1357
1358         * sem_type.adb, sem_ch4.adb, sprint.adb, exp_ch3.adb: Minor reformatting
1359
1360 2008-08-04  Vasiliy Fofanov  <fofanov@adacore.com>
1361
1362         * g-soccon-mingw.ads: Fix value for MSG_WAITALL
1363
1364 2008-08-04  Javier Miranda  <miranda@adacore.com>
1365
1366         * sem_prag.adb (Process_Convention): Add missing support for
1367          N_Private_Extension_Declaration nodes.
1368
1369 2008-08-04  Robert Dewar  <dewar@adacore.com>
1370
1371         * exp_ch4.adb: Minor reformatting
1372
1373 2008-08-04  Pascal Obry  <obry@adacore.com>
1374
1375         * adaint.h: Add missing prototype.
1376
1377         * adaint.c: Refine support for Windows file attributes.
1378
1379 2008-08-04  Robert Dewar  <dewar@adacore.com>
1380
1381         * sem_res.adb:
1382         (Valid_Conversion): Catch case of designated types having different
1383         sizes, even though they statically match.
1384
1385 2008-08-04  Javier Miranda  <miranda@adacore.com>
1386
1387         * sem_eval.adb (Subtypes_Statically_Match): Remove superfluous patch
1388         added in previous patch to handle access to subprograms.
1389
1390 2008-08-04  Robert Dewar  <dewar@adacore.com>
1391
1392         * freeze.adb:
1393         (Freeze_Entity): Only check No_Default_Initialization restriction for
1394         constructs that come from source
1395
1396 2008-08-04  Thomas Quinot  <quinot@adacore.com>
1397
1398         * exp_ch6.adb: Minor comment fix.
1399
1400         * sem_ch4.adb: Minor reformatting.
1401
1402 2008-08-04  Robert Dewar  <dewar@adacore.com>
1403
1404         * sem_res.adb: (Large_Storage_Type): Improve previous change.
1405
1406 2008-08-04  Pascal Obry  <obry@adacore.com>
1407
1408         * adaint.c, s-os_lib.adb, s-os_lib.ads: Use Windows ACL to deal with
1409         file attributes.
1410
1411 2008-08-04  Javier Miranda  <miranda@adacore.com>
1412
1413         * sem_ch3.adb (Access_Subprogram_Declaration): Adding missing support
1414         for N_Formal_Object_Declaration nodes. Adding kludge required by
1415         First_Formal to provide its functionality with access to functions.
1416         (Replace_Anonymous_Access_To_Protected_Subprogram): Add missing support
1417         for anonymous access types returned by functions.
1418
1419         * sem_ch5.adb (Analyze_Assignment): Code cleanup to avoid duplicate
1420         conversion of null-excluding access types (required only once to force
1421         the generation of the required runtime check).
1422
1423         * sem_type.adb (Covers): minor reformating
1424
1425         * checks.adb (Null_Exclusion_Static_Checks): Avoid reporting errors
1426         with internally generated nodes. Avoid generating the error inside init
1427         procs.
1428
1429         * sem_res.adb (Resolve_Membership_Test): Minor reformating.
1430         (Resolve_Null): Generate the null-excluding check in case of assignment
1431         to a null-excluding object.
1432         (Valid_Conversion): Add missing support for anonymous access to
1433         subprograms.
1434
1435         * sem_ch6.adb (Check_Return_Subtype_Indication): Add missing support for
1436         anonymous access types whose designated type is an itype. This case
1437         occurs with anonymous access to protected subprograms types.
1438         (Analyze_Return_Type):  Add missing support for anonymous access to
1439         protected subprogram.
1440
1441         * sem_eval.adb (Subtypes_Statically_Match): In case of access to
1442         subprograms addition of missing check on matching convention. Required
1443         to properly handle access to protected subprogram types.
1444
1445         * exp_ch3 (Build_Assignment): Code cleanup removing duplicated check on
1446         null excluding access types.
1447
1448 2008-08-04  Ed Schonberg  <schonberg@adacore.com>
1449
1450         * sem_ch12.adb: Add comments
1451
1452         * sem_ch4.adb (Analyze_Allocator): If the designated type is a non-null
1453         access type and the allocator is not initialized, warn rather than
1454         reporting an error.
1455
1456 2008-08-04  Robert Dewar  <dewar@adacore.com>
1457
1458         * exp_ch4.adb: Minor reformatting
1459
1460         * exp_dist.adb: Minor reformatting
1461
1462         * g-comlin.adb: Minor reformatting
1463
1464 2008-08-04  Gary Dismukes  <dismukes@adacore.com>
1465
1466         * exp_aggr.adb (Build_Record_Aggr_Code): Perform a conversion of the
1467         target to the type of the aggregate in the case where the target object
1468         is class-wide.
1469
1470         * exp_ch5.adb (Expand_Simple_Function_Return): When the function's
1471         result type is class-wide and inherently limited, and the expression
1472         has a specific type, create a return object of the specific type, for
1473         more efficient handling of returns of build-in-place aggregates (avoids
1474         conversions of the class-wide return object to the specific type on
1475         component assignments).
1476
1477         * sem_ch6.adb (Check_Return_Subtype_Indication): Suppress the error
1478         about a type mismatch for a class-wide function with a return object
1479         having a specific type when the object declaration doesn't come from
1480         source. Such an object can result from the expansion of a simple return.
1481
1482 2008-08-04  Vasiliy Fofanov  <fofanov@adacore.com>
1483
1484         * g-soccon-mingw-64.ads, system-mingw-x86_64.ads: New files.
1485
1486         * gcc-interface/Makefile.in: Use 64bit-specific system files when
1487         compiling for 64bit windows.
1488
1489 2008-08-04  Jerome Lambourg  <lambourg@adacore.com>
1490
1491         * g-comlin.adb (Group_Switches): Preserve the switch order when
1492         grouping and allow switch grouping of switches with more than one
1493         character extension (e.g. gnatw.x).
1494         (Args_From_Expanded): Remove this now obsolete method.
1495
1496 2008-08-04  Ed Schonberg  <schonberg@adacore.com>
1497
1498         * exp_ch4.adb (Get_Allocator_Final_List): Freeze anonymous type for
1499         chain at once, to ensure that type is properly decorated for back-end,
1500         when allocator appears within a loop.
1501
1502 2008-08-04  Kevin Pouget  <pouget@adacore.com>
1503
1504         * snames.h, snames.adb, snames.ads:
1505         Add Attr_To_Any, Attr_From_Any and Attr_TypeCode defines.
1506
1507         * exp_dist.ads, exp_dist.adb: Add Build_From_Any_Call,
1508         Build_To_Any_Call and Build_TypeCode_Call procedures.
1509
1510         * exp_attr.adb, sem_attr.adb: Add corresponding cases.
1511
1512         * rtsfind.ads: Add corresponding names.
1513
1514         * tbuild.adb: Update prefix restrictions to allow '_' character.
1515
1516 2008-08-04  Doug Rupp  <rupp@adacore.com>
1517
1518         * gigi.h (fill_vms_descriptor): Add third parameter gnat_actual
1519         * trans.c (call_to_gnu): Call fill_vms_descriptor with new parameter.
1520         * utils2.c (fill_vms_descriptor): Add third parameter for error sloc and
1521         use it.  Calculate pointer range overflow using 64bit types.
1522
1523 2008-08-04  Ed Schonberg  <schonberg@adacore.com>
1524
1525         * sem_ch3.adb (Access_Definition): A formal object declaration is a
1526         legal context for an anonymous access to subprogram.
1527
1528         * sem_ch4.adb (Analyze_One_Call): If the call can be interpreted as an
1529         indirect call, report success to the caller to include possible
1530         interpretation.
1531
1532         * sem_ch6.adb (Check_Return_Type_Indication): Apply proper conformance
1533         check when the type
1534         of the extended return is an anonymous access_to_subprogram type.
1535
1536         * sem_res.adb:
1537         (Resolve_Call): Insert a dereference if the type of the subprogram is an
1538         access_to_subprogram and the context requires its return type, and a
1539         dereference has not been introduced previously.
1540
1541 2008-08-04  Arnaud Charlet  <charlet@adacore.com>
1542
1543         * usage.adb (Usage): Minor rewording of -gnatwz switch, to improve
1544         gnatcheck support in GPS.
1545
1546 2008-08-04  Vincent Celier  <celier@adacore.com>
1547
1548         * mlib.adb (Create_Sym_Links): Create relative symbolic links when
1549         requested
1550
1551 2008-08-04  Vincent Celier  <celier@adacore.com>
1552
1553         * gprep.adb (Process_One_File): Call Prep.Preprocess with a Boolean
1554         variable, but don't check the resulting value as it has no impact on
1555         the processing.
1556
1557         * opt.ads:
1558         (Generate_Processed_File): New Boolean flag, set to True in the compiler
1559         when switch -gnateG is used.
1560
1561         * prep.adb:
1562         (Preprocess): new Boolean out parameter Source_Modified. Set it to True
1563         when the source is modified by the preprocessor and there is no
1564         preprocessing errors.
1565
1566         * prep.ads (Preprocess): new Boolean out parameter Source_Modified
1567
1568         * sinput-l.adb:
1569         (Load_File): Output the result of preprocessing if the source text was
1570         modified.
1571
1572         * switch-c.adb (Scan_Front_End_Switches): Recognize switch -gnateG
1573
1574         * switch-m.adb (Normalize_Compiler_Switches): Normalize switch -gnateG
1575
1576         * ug_words: Add VMS equivalent for -gnateG
1577
1578         * vms_data.ads:
1579         Add VMS option /GENERATE_PROCESSED_SOURCE, equivalent to switch -gnateG
1580
1581 2008-08-04  Doug Rupp  <rupp@adacore.com>
1582
1583         * gcc-interface/utils2.c:
1584         (fill_vms_descriptor): Raise CE if attempt made to pass 64bit pointer
1585         in 32bit descriptor.
1586
1587 2008-08-04  Robert Dewar  <dewar@adacore.com>
1588
1589         * par-ch10.adb: Minor reformatting
1590
1591         * i-cobol.adb: Minor reformatting.
1592
1593 2008-08-04  Ed Schonberg  <schonberg@adacore.com>
1594
1595         * sem_ch3.adb (Access_Definition): Create an itype reference for an
1596         anonymous access return type of a regular function that is not a
1597         compilation unit.
1598
1599 2008-08-04  Vincent Celier  <celier@adacore.com>
1600
1601         * prj-attr.adb: New Builder attribute Global_Compilation_Switches
1602
1603         * snames.adb: New standard name Global_Compilation_Switches
1604
1605         * snames.ads: New standard name Global_Compilation_Switches
1606
1607         * make.adb: Correct spelling error in comment
1608
1609 2008-08-04  Arnaud Charlet  <charlet@adacore.com>
1610
1611         * sem_prag.adb (Check_Form_Of_Interface_Name): Fix handling for CLI
1612         target.
1613
1614 2008-08-04  Thomas Quinot  <quinot@adacore.com>
1615
1616         * sem_ch10.adb: Minor comment fix.
1617
1618 2008-08-04  Robert Dewar  <dewar@adacore.com>
1619
1620         * restrict.adb: Improved messages for restriction warnings
1621
1622         * restrict.ads: Improved messages for restriction messages
1623
1624         * s-rident.ads (Profile_Name): Add No_Profile
1625
1626 2008-08-04  Robert Dewar  <dewar@adacore.com>
1627
1628         * system-darwin-x86.ads: Correct bad definition of Max_Nonbinary_Modulus
1629
1630 2008-08-04  Robert Dewar  <dewar@adacore.com>
1631
1632         * freeze.adb (Freeze_Entity): Check for size clause for boolean warning
1633
1634 2008-08-04  Vincent Celier  <celier@adacore.com>
1635
1636         * prj-proc.adb:
1637         (Copy_Package_Declarations): When inheriting package Naming from a
1638         project being extended, do not inherit source exception names.
1639
1640 2008-08-04  Ed Schonberg  <schonberg@adacore.com>
1641
1642         * sem_prag.adb (Check_Precondition_Postcondition): When scanning the
1643         list of declaration to find previous subprogram, do not go to the
1644         original node of a generic unit.
1645
1646 2008-08-02  Eric Botcazou  <ebotcazou@adacore.com>
1647
1648         * gcc-interface/utils2.c (build_binary_op) <PLUS_EXPR, MINUS_EXPR>:
1649         New case.  Convert BOOLEAN_TYPE operation to the default integer type.
1650
1651 2008-08-01  Eric Botcazou  <ebotcazou@adacore.com>
1652
1653         * gcc-interface/ada-tree.h (DECL_PARM_ALT): Now DECL_PARM_ALT_TYPE.
1654         * gcc-interface/decl.c (gnat_to_gnu_param): Fix formatting, simplify
1655         and adjust for above renaming.
1656         * gcc-interface/utils.c (convert_vms_descriptor): Likewise. Add new
1657         gnu_expr_alt_type parameter.  Convert the expression to it instead
1658         of changing its type in place.
1659         (build_function_stub): Adjust call to above function.
1660
1661 2008-08-01  Eric Botcazou  <ebotcazou@adacore.com>
1662
1663         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Constant>: Remove dead
1664         code.  Do not get full definition of deferred constants with address
1665         clause for a use.  Do not ignore deferred constant definitions with
1666         address clause.  Ignore constant definitions already marked with the
1667         error node.
1668         <object>: Remove obsolete comment.  For a deferred constant with
1669         address clause, get the initializer from the full view.
1670         * gcc-interface/trans.c (gnat_to_gnu) <N_Attribute_Definition_Clause>:
1671         Rework and remove obsolete comment.
1672         <N_Object_Declaration>: For a deferred constant with address clause,
1673         mark the full view with the error node.
1674         * gcc-interface/utils.c (convert_to_fat_pointer): Rework and fix
1675         formatting nits.
1676
1677 2008-08-01  Hristian Kirtchev  <kirtchev@adacore.com>
1678
1679         * rtsfind.ads: Add block IO versions of stream routines for Strings.
1680
1681         * bindgen.adb, gnat_rm.texi, gnat_ugn.texi, opt.ads,
1682         sem_prag.adb, snames.adb, snames.ads, snames.h,
1683         par-prag.adb: Undo previous stream related changes.
1684
1685         * s-rident.ads: Add new restriction No_Stream_Optimizations.
1686
1687         * s-ststop.ads, s-ststop.adb: Comment reformatting.
1688         Define enumeration type to designate different IO mechanisms.
1689         Enchance generic package Stream_Ops_Internal to include an
1690         implementation of Input and Output.
1691
1692         * exp_attr.adb (Find_Stream_Subprogram): If restriction
1693         No_Stream_Optimization is active, choose the default byte IO
1694         implementations of stream attributes for Strings.
1695         Otherwise use the corresponding block IO version.
1696
1697 2008-08-01  Olivier Hainque  <hainque@adacore.com>
1698
1699         * gcc-interface/decl.c (gnat_to_gnu_entity) <case E_Function>: Do not
1700         turn Ada Pure into GCC const, now implicitely implying nothrow as well.
1701
1702 2008-08-01  Robert Dewar  <dewar@adacore.com>
1703
1704         * par-ch3.adb (P_Defining_Identifier): Avoid repeated attempt to
1705         convert plain identifier into defining identifier.
1706
1707 2008-08-01  Robert Dewar  <dewar@adacore.com>
1708
1709         * sem_prag.adb (Check_Form_Of_Interface_Name): Refine and improve
1710         warnings
1711
1712         * lib-xref.adb: Add error defense.
1713
1714 2008-08-01  Bob Duff  <duff@adacore.com>
1715
1716         * ioexcept.ads, sequenio.ads, directio.ads: Correct comment.
1717
1718 2008-08-01  Gary Dismukes  <dismukes@adacore.com>
1719
1720         * exp_ch6.adb (Expand_Call): Adjustment to previous fix for passing
1721         correct accessibility levels. In the "when others" case, retrieve the
1722         access level of the Etype of Prev rather than Prev_Orig, because the
1723         original exression has not always been analyzed.
1724
1725 2008-08-01  Robert Dewar  <dewar@adacore.com>
1726
1727         * prj-nmsc.adb: Minor reformatting
1728
1729         * sem_ch4.adb: Minor reformatting
1730         Minor code reorganization
1731
1732         * prj.ads: Minor reformatting
1733
1734         * s-os_lib.adb: Minor reformatting
1735
1736         * par-prag.adb (Prag, case Wide_Character_Encoding): Deal with upper
1737         half encodings
1738
1739         * scans.ads: Minor reformatting.
1740
1741         * sem_prag.adb (Analyze_Pragma): Put entries in alpha order
1742         (Analyze_Pragma): Make sure all GNAT pragmas call GNAT_Pragma
1743
1744         * sem_res.adb:
1745         (Resolve_Call): Check violation of No_Specific_Termination_Handlers
1746
1747         * sem_ch12.adb: Minor comment reformatting
1748
1749         * par-ch3.adb (P_Type_Declaration): Properly handle missing type
1750         keyword
1751
1752 2008-08-01  Robert Dewar  <dewar@adacore.com>
1753
1754         * sem_ch6.adb (Process_PPCs): Don't copy spec PPC to body if not
1755         generating code
1756
1757 2008-08-01  Ed Schonberg  <schonberg@adacore.com>
1758
1759         * checks.adb (Apply_Float_Conversion_Check): If the expression to be
1760         converted is a real literal and the target type has static bounds,
1761         perform the conversion exactly to prevent floating-point anomalies on
1762         some targets.
1763
1764 2008-08-01  Vincent Celier  <celier@adacore.com>
1765
1766         * prj-attr.adb: New attribute Compiler'Name_Syntax (<lang>)
1767
1768         * prj-nmsc.adb (Process_Compiler): Recognize attribute Name_Syntax
1769
1770         * prj.adb (Object_Exist_For): Use Object_Generated, not
1771         Objects_Generated that is removed and was never modified anyway.
1772
1773         * prj.ads:
1774         (Path_Syntax_Kind): New enumeration type
1775         (Language_Config): New component Path_Syntax, defaulted to Host.
1776         Components PIC_Option and Objects_Generated removed, as they are not
1777         used.
1778
1779         * snames.adb: New standard name Path_Syntax
1780
1781         * snames.ads: New standard name Path_Syntax
1782
1783 2008-08-01  Vincent Celier  <celier@adacore.com>
1784
1785         * mlib-utl.adb:
1786         (Adalib_Path): New variable to store the path of the adalib directory
1787         when procedure Specify_Adalib_Dir is called.
1788         (Lib_Directory): If Adalib_Path is not null, return its value
1789         (Specify_Adalib_Dir): New procedure
1790
1791         * mlib-utl.ads (Specify_Adalib_Dir): New procedure
1792
1793 2008-08-01  Ed Schonberg  <schonberg@adacore.com>
1794
1795         * sem_prag.adb:
1796         (Check_Precondition_Postcondition): If not generating code, analyze the
1797         expression in a postcondition that appears in a subprogram body, so that
1798         it is properly decorated for ASIS use.
1799
1800 2008-08-01  Gary Dismukes  <dismukes@adacore.com>
1801
1802         * exp_ch6.adb (Expand_Call): Remove ugly special-case code that resets
1803         Orig_Prev to Prev in the case where the actual is N_Function_Call or
1804         N_Identifier. This was interfering with other cases that are rewritten
1805         as N_Identifier, such as allocators, resulting in passing of the wrong
1806         accessibility level, and based on testing this code is apparently no
1807         longer needed at all.
1808
1809 2008-08-01  Ed Schonberg  <schonberg@adacore.com>
1810
1811         * sem_ch4.adb (Analyze_One_Call): Handle complex overloading of a
1812         procedure call whose prefix
1813         is a parameterless function call that returns an access_to_procedure.
1814
1815 2008-08-01  Jose Ruiz  <ruiz@adacore.com>
1816
1817         * adaint.c (__gnat_tmp_name): Refine the generation of temporary names
1818         for RTX. Adding a suffix that is incremented at each iteration.
1819
1820 2008-08-01  Robert Dewar  <dewar@adacore.com>
1821
1822         * sem_ch6.adb (Analyze_Subprogram_Body): Remove special casing of
1823         Raise_Exception
1824
1825 2008-08-01  Jerome Lambourg  <lambourg@adacore.com>
1826
1827         * s-os_lib.adb (Normalize_Pathname): Take care of double-quotes in
1828         paths, which are authorized by Windows but can lead to errors when used
1829         elsewhere.
1830
1831 2008-08-01  Ed Schonberg  <schonberg@adacore.com>
1832
1833         * sem_ch12.ads (Need_Subprogram_Instance_Body): new function, to create
1834         a pending instantiation for the body of a subprogram that is to be
1835         inlined.
1836
1837         * sem_ch12.adb:
1838         (Analyze_Subprogram_Instantiation): use Need_Subprogram_Instance_Body.
1839
1840         * sem_prag.adb (Make_Inline): If the pragma applies to an instance,
1841         create a pending instance for its body, so that calls to the subprogram
1842         can be inlined by the back-end.
1843
1844 2008-08-01  Jose Ruiz  <ruiz@adacore.com>
1845
1846         * gnat_ugn.texi: Document the RTX run times (rts-rtx-rtss and
1847         rts-rtx-w32).
1848
1849 2008-08-01  Robert Dewar  <dewar@adacore.com>
1850
1851         * scng.adb (Error_Illegal_Wide_Character): Bump scan pointer
1852
1853 2008-08-01  Doug Rupp  <rupp@adacore.com>
1854
1855         * gnat_rm.texi: Document new mechanism Short_Descriptor.
1856
1857         * types.ads (Mechanism_Type): Modify range for new Short_Descriptor
1858         mechanism values.
1859
1860         * sem_prag.adb (Set_Mechanism_Value): Enhance for Short_Descriptor
1861         mechanism and Short_Descriptor mechanism values.
1862
1863         * snames.adb (preset_names): Add short_descriptor entry.
1864
1865         * snames.ads: Add Name_Short_Descriptor.
1866
1867         * types.h: Add new By_Short_Descriptor mechanism values.
1868
1869         * sem_mech.adb (Set_Mechanism_Value): Enhance for Short_Descriptor
1870         mechanism and Short_Descriptor mechanism values.
1871
1872         * sem_mech.ads (Mechanism_Type): Add new By_Short_Descriptor mechanism
1873         values.
1874         (Descriptor_Codes): Modify range for new mechanism values.
1875
1876         * treepr.adb (Print_Entity_Enfo): Handle new By_Short_Descriptor
1877         mechanism values.
1878
1879         * gcc-interface/decl.c (gnat_to_gnu_entity): Handle By_Short_Descriptor.
1880         (gnat_to_gnu_param): Handle By_Short_Descriptor.
1881
1882         * gcc-interface/gigi.h (build_vms_descriptor64): Remove prototype.
1883         (build_vms_descriptor32): New prototype.
1884         (fill_vms_descriptor): Remove unneeded gnat_actual parameter.
1885
1886         * gcc-interface/trans.c (call_to_gnu): Removed unneeded gnat_actual
1887         argument in call fill_vms_descriptor.
1888
1889         * gcc-interface/utils.c (build_vms_descriptor32): Renamed from
1890         build_vms_descriptor and enhanced to hande Short_Descriptor mechanism.
1891         (build_vms_descriptor): Renamed from build_vms_descriptor64.
1892         (convert_vms_descriptor32): New function.
1893         (convert_vms_descriptor64): New function.
1894         (convert_vms_descriptor): Rewrite to handle both 32bit and 64bit
1895         descriptors.
1896
1897         * gcc-interface/utils2.c (fill_vms_descriptor): Revert previous changes,
1898         no longer needed.
1899
1900 2008-08-01  Jose Ruiz  <ruiz@adacore.com>
1901
1902         * adaint.c (__gnat_tmp_name): RTSS applications do not support tempnam
1903         nor tmpnam, so we always use c:\WINDOWS\Temp\gnat-XXXXXX as temporary
1904         name.
1905
1906 2008-08-01  Jose Ruiz  <ruiz@adacore.com>
1907
1908         * cstreams.c (__gnat_full_name): RTSS applications cannot ask for the
1909         current directory so only fully qualified names are allowed.
1910
1911 2008-08-01  Robert Dewar  <dewar@adacore.com>
1912
1913         * gnat_ugn.texi:
1914         Minor editing, remove uncomfortable use of semicolon
1915
1916         * s-ststop.adb: Add some ??? comments
1917
1918         * sem_ch10.adb: Minor reformatting
1919
1920         * snames.ads:
1921         Minor comment fixes, some pragmas were not properly
1922         categorized in the comments, documentation change only
1923
1924         * xref_lib.adb: Minor reformatting
1925
1926         * sinput.adb: Minor reformatting
1927
1928         * gnatchop.adb: Minor reformatting
1929
1930         * sem_util.ads: Minor reformatting.
1931
1932         * opt.ads: Minor documentation fix
1933
1934         * scng.adb: Minor reformatting
1935
1936         * prj-part.adb: Update comments
1937
1938 2008-08-01  Ed Schonberg  <schonberg@adacore.com>
1939
1940         * exp_disp.adb (Expand_Interface_Conversion): If the target type is a
1941         tagged synchronized type, use corresponding record type.
1942
1943 2008-08-01  Doug Rupp  <rupp@adacore.com>
1944
1945         * mlib-tgt-specific-vms-alpha.adb (Build_Dynamic_Library): Output a
1946         dummy transfer address for debugging.
1947
1948         * mlib-tgt-specific-vms-ia64.adb (Build_Dynamic_Library): Likewise.
1949
1950         * vms_data.ads: vms_data.ads: New qualfier /MACHINE_CODE_LISTING
1951
1952 2008-07-31  Eric Botcazou  <ebotcazou@adacore.com>
1953
1954         * gcc-interface/decl.c (gnat_to_gnu_entity): Fix formatting.
1955         * gcc-interface/utils.c (create_field_decl): Avoid superfluous work.
1956
1957 2008-07-31  Pascal Obry  <obry@adacore.com>
1958
1959         * prj-nmsc.adb: Keep Object and Exec directory casing.
1960
1961 2008-07-31  Jose Ruiz  <ruiz@adacore.com>
1962
1963         * system-rtx-rtss.ads
1964         Change the default stack size. It is important to set the commit part.
1965
1966         * s-taprop-rtx.adb
1967         (Initialize): Get the clock resolution.
1968         (RT_Resolution): Return the clock resolution that is indicated by the
1969         system.
1970
1971         * s-parame-vxworks.adb
1972         Document that this body is used for RTX in RTSS (kernel) mode.
1973
1974         * gcc-interface/Makefile.in
1975         (LIBGNAT_TARGET_PAIRS for the rtx_rtss run time): Use the
1976         s-parame-vxworks.adb body in order to have reasonable stack sizes in
1977         RTX RTSS kernel mode. Virtual memory is not used in that case, so we
1978         cannot ask for too big values.
1979
1980 2008-07-31  Robert Dewar  <dewar@adacore.com>
1981
1982         * exp_aggr.adb: Minor reformatting
1983
1984         * makeutl.adb: Minor reformatting
1985
1986         * prj-env.adb: Minor reformatting
1987
1988 2008-07-31  Hristian Kirtchev  <kirtchev@adacore.com>
1989
1990         * exp_disp.adb (Prim_Op_Kind): Retrieve the full view when a private
1991         tagged type is completed by a concurrent type.
1992
1993 2008-07-31  Gary Dismukes  <dismukes@adacore.com>
1994
1995         * sem_aggr.adb:
1996         (Resolve_Record_Aggregate): Bypass error that a type without
1997         components must have a "null record" aggregate when compiling for Ada
1998         2005, since it's legal to give an aggregate of form (others => <>)
1999         for such a type.
2000
2001 2008-07-31  Javier Miranda  <miranda@adacore.com>
2002
2003         * sem_ch4.adb (Valid_First_Argument_Of): Complete its functionality to
2004         handle synchronized types. Required to handle well the object.operation
2005         notation applied to synchronized types.
2006
2007 2008-07-31  Quentin Ochem  <ochem@adacore.com>
2008
2009         * s-stausa.adb (Fill_Stack): Stack_Used_When_Filling is now stored
2010         anymore - just used internally.
2011         Added handling of very small tasks - when the theoretical size is
2012         already full at the point of the call.
2013         (Report_Result): Fixed result computation, Stack_Used_When_Filling does
2014         not need to be added to the result.
2015
2016 2008-07-31  Hristian Kirtchev  <kirtchev@adacore.com>
2017
2018         * sem_ch6.adb (Disambiguate_Spec): Continue the disambiguation if the
2019         corresponding spec is a primitive wrapper. Update comment.
2020
2021 2008-07-31  Hristian Kirtchev  <kirtchev@adacore.com>
2022
2023         * bindgen.adb Comment reformatting. Update the list of run-time globals.
2024         (Gen_Adainit_Ada): Add the declaration, import and value set for
2025         configuration flag Canonical_Streams.
2026         (Gen_Adainit_C): Add the declaration and initial value of external
2027         symbol __gl_canonical_streams.
2028
2029         * init.c: Update the list of global values computed by the binder.
2030
2031         * opt.ads: Add flag Canonical_Streams.
2032
2033         * par-prag.adb (Prag): Include Pragma_Canonical_Streams to the list of
2034         semantically handled pragmas.
2035
2036         * sem_prag.adb: Add an entry into enumeration type Sig_Flags.
2037         (Analyze_Pragma): Add case for pragma Canonical_Streams.
2038
2039         * snames.adb: Add character value for name Canonical_Streams.
2040
2041         * snames.ads:
2042         Add Name_Canonical_Streams to the list of configuration pragmas.
2043         Add Pragma_Canonical_Streams to enumeration type Pragma_Id.
2044
2045         * snames.h: Add a definition for Pragma_Canonical_Streams.
2046
2047         * s-ststop.adb:
2048         Add a flag and import to seize the value of external symbol
2049         __gl_canonical_streams. Update comment and initial value of constant
2050         Use_Block_IO.
2051
2052         * gnat_rm.texi: Add section of pragma Canonical_Streams.
2053
2054         * gnat_ugn.texi:
2055         Add pragma Canonical_Streams to the list of configuration pragmas.
2056
2057 2008-07-31  Ed Schonberg  <schonberg@adacore.com>
2058
2059         * sem_ch10.adb (Build_Unit_Name): If the unit name in a with_clause
2060         has the form A.B.C and B is a unit renaming, analyze its compilation
2061         unit and add a with_clause on A.b to the context.
2062
2063 2008-07-31  Vincent Celier  <celier@adacore.com>
2064
2065         * makeutl.adb (Executable_Prefix_Path): If Locate_Exec_On_Path fails,
2066         return the empty string, instead of raising Constraint_Error.
2067
2068 2008-07-31  Gary Dismukes  <dismukes@adacore.com>
2069
2070         * checks.ads (Apply_Accessibility_Check): Add parameter Insert_Node.
2071
2072         * checks.adb (Apply_Accessibility_Check): Insert the check on
2073         Insert_Node.
2074
2075         * exp_attr.adb:
2076         (Expand_N_Attribute_Refernce, Attribute_Access): Pass attribute node
2077         to new parameter Insert_Node on call to Apply_Accessibility_Check.
2078         Necessary to distinguish the insertion node because the dereferenced
2079         formal may come from a rename, but the check must be inserted in
2080         front of the attribute.
2081
2082         * exp_ch4.adb:
2083         (Expand_N_Allocator): Pass actual for new Insert_Node parameter on
2084         call to Apply_Accessibility_Check.
2085         (Expand_N_Type_Conversion): Pass actual for new Insert_Node parameter
2086         on call to Apply_Accessibility_Check.
2087         Minor reformatting
2088
2089 2008-07-31  Javier Miranda  <miranda@adacore.com>
2090
2091         * sem_type.adb (Has_Compatible_Type): Complete support for synchronized
2092         types when the candidate type is a synchronized type.
2093
2094         * sem_res.adb (Resolve_Actuals): Reorganize code handling synchronized
2095         types, and complete management of synchronized types adding missing
2096         code to handle formal that is a synchronized type.
2097
2098         * sem_ch4.adb (Try_Primitive_Operation): Avoid testing attributes that
2099         are not available and cause the compiler to blowup. Found compiling
2100         test with switch -gnatc
2101
2102         * sem_ch6.adb (Check_Synchronized_Overriding): Remove local subprogram
2103         Has_Correct_Formal_Mode plus code cleanup.
2104
2105 2008-07-31  Bob Duff  <duff@adacore.com>
2106
2107         * sinput.adb (Skip_Line_Terminators): Fix handling of LF/CR -- it was
2108         recognized as two end-of-lines, but it should be just one.
2109
2110 2008-07-31  Thomas Quinot  <quinot@adacore.com>
2111
2112         * exp_ch9.adb: Minor reformatting
2113
2114         * tbuild.ads: Fix several occurrences of incorrectly referring to
2115         Name_Find as Find_Name.
2116
2117 2008-07-31  Ed Schonberg  <schonberg@adacore.com>
2118
2119         * exp_aggr.adb (Aggr_Size_OK): If the aggregate has a single component
2120         and the context is an object declaration with non-static bounds, treat
2121         the aggregate as non-static.
2122
2123 2008-07-31  Vincent Celier  <celier@adacore.com>
2124
2125         * prj-part.adb, prj-part.ads, prj.adb, prj.ads, prj-env.adb:
2126         Move back spec of Parse_Single_Project to body, as it is not called
2127         outside of package Prj.Part.
2128         (Project_Data): Remove components Linker_Name, Linker_Path and
2129         Minimum_Linker_Options as they are no longer set.
2130         Remove function There_Are_Ada_Sources from package Prj and move code
2131         in the only place it was used, in Prj.Env.Set_Ada_Paths.
2132
2133 2008-07-31  Arnaud Charlet  <charlet@adacore.com>
2134
2135         * mlib-utl.ads: Fix typo.
2136
2137 2008-07-31  Robert Dewar  <dewar@adacore.com>
2138
2139         * sem_ch12.adb: Minor reformatting
2140
2141 2008-07-31  Sergey Rybin  <rybin@adacore.com>
2142
2143         * gnat_ugn.texi: Change the description of the
2144         Overly_Nested_Control_Structures: now the rule always requires a
2145         positive parameter for '+R' option
2146
2147 2008-07-31  Thomas Quinot  <quinot@adacore.com>
2148
2149         * g-pehage.adb: Minor reformatting
2150
2151 2008-07-31  Pascal Obry  <obry@adacore.com>
2152
2153         * s-finimp.ads: Minor reformatting.
2154
2155 2008-07-31  Vincent Celier  <celier@adacore.com>
2156
2157         * s-regexp.ads: Minor comment fix
2158
2159 2008-07-31  Arnaud Charlet  <charlet@adacore.com>
2160
2161         * s-direio.adb (Reset): Replace pragma Unmodified by Warnings (Off),
2162         so that we can compile this file successfully with -gnatc.
2163
2164 2008-07-31  Hristian Kirtchev  <kirtchev@adacore.com>
2165
2166         * exp_attr.adb (Find_Stream_Subprogram): Check the base type instead
2167         of the type when looking for stream subprograms for type String,
2168         Wide_String and Wide_Wide_String.
2169
2170         * s-ststop.adb: Change the initialization expression of constant
2171         Use_Block_IO.
2172
2173 2008-07-31  Geert Bosch  <bosch@adacore.com>
2174
2175         * arit64.c:
2176         New file implementing __gnat_mulv64 signed integer multiplication with
2177         overflow checking
2178
2179         * fe.h (Backend_Overflow_Checks_On_Target): Define for use by Gigi
2180
2181         * gcc-interface/gigi.h:
2182         (standard_types): Add ADT_mulv64_decl
2183         (mulv64_decl): Define subprogram declaration for __gnat_mulv64
2184
2185         * gcc-interface/utils.c:
2186         (init_gigi_decls): Add initialization of mulv64_decl
2187
2188         * gcc-interface/trans.c:
2189         (build_unary_op_trapv): New function
2190         (build_binary_op_trapv): New function
2191         (gnat_to_gnu): Use the above functions instead of
2192         build_{unary,binary}_op
2193
2194         * gcc-interface/Makefile.in
2195         (LIBGNAT_SRCS): Add arit64.c
2196         (LIBGNAT_OBJS): Add arit64.o
2197
2198 2008-07-31  Vincent Celier  <celier@adacore.com>
2199
2200         * prj-nmsc.adb (Check_Library_Attributes): Check if Linker'Switches or
2201         Linker'Default_Switches are declared. Warn if they are declared.
2202
2203 2008-07-31  Ed Schonberg  <schonberg@adacore.com>
2204
2205         * exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration): Use
2206         Insert_Actions to place the pointer declaration in the code, rather
2207         than Insert_Before_And_Analyze, so that insertions of temporaries are
2208         kept in the proper order when transient scopes are present.
2209
2210
2211 2008-07-31  Robert Dewar  <dewar@adacore.com>
2212
2213         * einfo.adb (Spec_PPC): Now defined for generic subprograms
2214
2215         * einfo.ads (Spec_PPC): Now defined for generic subprograms
2216
2217         * sem_prag.adb (Check_Precondition_Postcondition): Handle generic
2218         subprogram case
2219
2220 2008-07-31  Vincent Celier  <celier@adacore.com>
2221
2222         * s-os_lib.adb: Minor comment fix
2223
2224 2008-07-31  Ed Schonberg  <schonberg@adacore.com>
2225
2226         * sem_ch6.adb (Analyze_Generic_Subprogram_Body): After analysis,
2227         transfer pre/postconditions from generic copy to original tree, so that
2228         they will appear in each instance.
2229         (Process_PPCs): Do not transform postconditions into a procedure in a
2230         generic context, to prevent double expansion of check pragmas.
2231
2232         * sem_attr.adb: In an instance, the prefix of the 'result attribute
2233         can be the renaming of the
2234         current instance, so check validity of the name accordingly.
2235
2236 2008-07-31  Robert Dewar  <dewar@adacore.com>
2237
2238         * mlib-utl.ads: Minor reformatting
2239
2240 2008-07-31  Ed Schonberg  <schonberg@adacore.com>
2241
2242         sem_attr.adb: 'Result can have an ambiguous prefix, and is resolved
2243         from context. This attribute must be usable in Ada95 mode.
2244         The attribute can appear in the body of a function marked
2245         Inline_Always, but in this case the postocondition is not enforced.
2246
2247         sem_prag.adb (Check_Precondition_Postcondition): within the expansion
2248         of an inlined call pre- and postconditions are legal
2249
2250 2008-07-31  Vincent Celier  <celier@adacore.com>
2251
2252         * prj.adb, prj.ads, clean.adb, prj-nmsc.adb: Remove declarations that
2253         were for gprmake only
2254
2255 2008-07-31  Robert Dewar  <dewar@adacore.com>
2256
2257         * gnat_ugn.texi: Update -gnatN documentation.
2258
2259         * gnat_rm.texi: Add note about pre/postcondition
2260         pragmas not checked in conjunction with front-end inlining.
2261
2262 2008-07-31  Robert Dewar  <dewar@adacore.com>
2263
2264         * g-pehage.adb, g-pehage.ads: Minor reformatting
2265
2266 2008-07-31  Arnaud Charlet  <charlet@adacore.com>
2267
2268         * mlib-utl.ads, prj-makr.ads: Add comments.
2269
2270 2008-07-30  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
2271
2272         * gcc-interface/Makefile.in (EXTRA_GNATRTL_NONTASKING_OBJS)
2273         [WINDOWS]: Add s-winext.o.
2274
2275 2008-07-30  Eric Botcazou  <ebotcazou@adacore.com>
2276
2277         PR ada/36554
2278         * back_end.adb (Call_Back_End): Pass Standard_Boolean to gigi.
2279         * gcc-interface/gigi.h (gigi): Take new standard_boolean parameter.
2280         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Enumeration_Subtype>:
2281         Set precision to 1 for subtype of BOOLEAN_TYPE.
2282         (set_rm_size): Set TYPE_RM_SIZE_NUM for BOOLEAN_TYPE.
2283         (make_type_from_size): Deal with BOOLEAN_TYPE.
2284         * gcc-interface/misc.c (gnat_print_type): Likewise.
2285         * gcc-interface/trans.c (gigi): Take new standard_boolean parameter.
2286         Set boolean_type_node as its translation in the table, as well
2287         as boolean_false_node for False and boolean_true_node for True.
2288         * gcc-interface/utils.c (gnat_init_decl_processing): Create custom
2289         8-bit boolean_type_node and set its TYPE_RM_SIZE_NUM.
2290         (create_param_decl): Deal with BOOLEAN_TYPE.
2291         (build_vms_descriptor): Likewise.
2292         (build_vms_descriptor64): Likewise.
2293         (convert): Deal with BOOLEAN_TYPE like with ENUMERAL_TYPE.
2294
2295 2008-07-30  Robert Dewar  <dewar@adacore.com>
2296
2297         * exp_ch9.adb: Minor reformatting
2298
2299         * exp_util.ads (Find_Prim_Op): Document that Program_Error is raised
2300         if no primitive operation is found.
2301
2302         * exp_util.adb: (Find_Prim_Op): Add comments for previous change
2303
2304         * sem_ch8.adb: Minor reformatting
2305
2306 2008-07-30  Laurent Pautet  <pautet@adacore.com>
2307
2308         * g-pehage.adb:
2309         Remove a limitation on the length of the words handled by the minimal
2310         perfect hash function generator.
2311
2312         * g-pehage.ads:
2313         Detail the use of subprograms Insert, Initialize, Compute and Finalize.
2314         Fix some typos.
2315
2316 2008-07-30  Robert Dewar  <dewar@adacore.com>
2317
2318         * gnatlink.adb: Minor reformatting
2319
2320 2008-07-30  Thomas Quinot  <quinot@adacore.com>
2321
2322         * rtsfind.adb (Check_RPC): Check version consistency even when not
2323         generating RCI stubs. Provide more detailed error message in case of
2324         mismatch.
2325
2326 2008-07-30  Ed Schonberg  <schonberg@adacore.com>
2327
2328         * sem_ch8.adb (Analyze_Subprogram_Renaming): When renaming an attribute
2329         as a actual in an instance, check for a missing attribute to prevent
2330         program_error on an illegal program.
2331
2332         * exp_util.adb (Find_Prim_Op): Rather than Assert (False), raise program
2333         error if primitive is not found, so that exception can be handled
2334         elsewhere on illegal programs.
2335
2336 2008-07-30  Robert Dewar  <dewar@adacore.com>
2337
2338         * uintp.adb (UI_GCD): Fix potential overflow
2339
2340 2008-07-30  Hristian Kirtchev  <kirtchev@adacore.com>
2341
2342         * einfo.adb: Flag245 is now used.
2343         (Is_Primitive_Wrapper, Set_Is_Primitive_Wrapper): Relax the assertion
2344         check to include functions.
2345         (Is_Private_Primitive, Set_Is_Private_Primitive): New subprograms.
2346         (Wrapped_Entity, Set_Wrapped_Entity): Relax the assertion check to
2347         include functions.
2348         (Write_Entity_Flags): Move flag Is_Primitive, add Is_Private_Primitive
2349         to the list of displayed flags.
2350
2351         * einfo.ads: Update comment on the usage of Is_Primitive_Wrapper and
2352         Wrapped_Entity. These two flags are now present in functions.
2353         New flag Is_Private_Primitive.
2354         (Is_Private_Primitive, Set_Is_Private_Primitive): New subprograms.
2355
2356         * exp_ch9.adb:
2357         (Build_Wrapper_Bodies): New subprogram.
2358         (Build_Wrapper_Body): The spec and body have been moved to in
2359         Build_Wrapper_ Bodies. Code cleanup.
2360         (Build_Wrapper_Spec): Moved to the spec of Exp_Ch9. Code cleanup.
2361         Wrappers are now generated for primitives declared between the private
2362         and full view of a concurrent type that implements an interface.
2363         (Build_Wrapper_Specs): New subprogram.
2364         (Expand_N_Protected_Body): Code reformatting. Replace the wrapper body
2365         creation mechanism with a call to Build_Wrapper_Bodies.
2366         (Expand_N_Protected_Type_Declaration): Code reformatting. Replace the
2367         wrapper spec creation mechanism with a call to Build_Wrapper_Specs.
2368         (Expand_N_Task_Body): Replace the wrapper body creation
2369         mechanism with a call to Build_Wrapper_Bodies.
2370         (Expand_N_Task_Type_Declaration): Replace the wrapper spec
2371         creation mechanism with a call to Build_Wrapper_Specs.
2372         (Is_Private_Primitive_Subprogram): New subprogram.
2373         (Overriding_Possible): Code cleanup.
2374         (Replicate_Entry_Formals): Renamed to Replicate_Formals, code cleanup.
2375
2376         * exp_ch9.ads (Build_Wrapper_Spec): Moved from the body of Exp_Ch9.
2377
2378         * sem_ch3.adb: Add with and use clause for Exp_Ch9.
2379         (Process_Full_View): Build wrapper specs for all primitives
2380         that belong to a private view completed by a concurrent type
2381         implementing an interface.
2382
2383         * sem_ch6.adb (Analyze_Subprogram_Body): When the current subprogram
2384         is a primitive of a
2385         concurrent type with a private view that implements an interface, try to
2386         find the proper spec.
2387         (Analyze_Subprogram_Declaration): Mark a subprogram as a private
2388         primitive if the type of its first parameter is a non-generic tagged
2389         private type.
2390         (Analyze_Subprogram_Specification): Code reformatting.
2391         (Disambiguate_Spec): New routine.
2392         (Find_Corresponding_Spec): Add a flag to controll the output of errors.
2393         (Is_Private_Concurrent_Primitive): New routine.
2394
2395         * sem_ch6.ads:
2396         (Find_Corresponding_Spec): Add a formal to control the output of errors.
2397
2398 2008-07-30  Doug Rupp  <rupp@adacore.com>
2399
2400         * gigi.h (build_vms_descriptor64): New function prototype.
2401         (fill_vms_descriptor): Modified function prototype.
2402
2403         * utils.c (build_vms_descriptor64): New function.
2404
2405         * utils2.c (fill_vms_descriptor): Fix handling on 32bit systems.
2406
2407         * trans.c (call_to_gnu): Call fill_vms_descriptor with new third
2408         argument.
2409
2410         * decl.c (gnat_to_gnu_tree): For By_Descriptor mech, build both a
2411         64bit and 32bit descriptor and save the 64bit version as an alternate
2412         TREE_TYPE in the parameter.
2413         (make_type_from_size) <RECORD_TYPE>: Use the appropriate mode for the
2414         thin pointer.
2415
2416         * ada-tree.h (DECL_PARM_ALT, SET_DECL_PARM_ALT): New macros.
2417
2418 2008-07-30  Robert Dewar  <dewar@adacore.com>
2419
2420         * make.adb: Minor reformatting
2421
2422         * mlib-utl.adb: Minor reformatting
2423
2424         * osint.ads: Minor reformatting
2425
2426 2008-07-30  Jose Ruiz  <ruiz@adacore.com>
2427
2428         * adaint.c
2429         (__gnat_file_exists): Do not use __gnat_stat for RTX.
2430         (__main for RTX in RTSS mode): Create this dummy procedure symbol to
2431         avoid the use of this symbol from libgcc.a in RTX kernel mode.
2432
2433         * cio.c
2434         (put_int, put_int_stderr, put_char, put_char_stderr): For RTX we call
2435         the function RtPrintf for console output.
2436
2437         * argv.c Do not use the environ variable for RTX.
2438
2439         * gnatlink.adb (gnatlink): The part that handles the --RTS option has
2440         been moved before the call to Osint.Add_Default_Search_Dirs in order
2441         to take into account the flags in system.ads (RTX_RTSS_Kernel_Module)
2442         from the appropriate run time.
2443
2444         * targparm.ads
2445         (RTX_RTSS_Kernel_Module_On_Target): Add this flag that is set to True if
2446         target is a RTSS module for RTX.
2447
2448         * targparm.adb (Targparm_Tags, RTX_Str, Targparm_Str): Add tag RTX for
2449         RTX_RTSS_Kernel_Module
2450         (Get_Target_Parameters): Add processing of RTX_RTSS_Kernel_Module flag.
2451
2452         * gcc-interface/Makefile.in (LIBGNAT_TARGET_PAIRS for RTX): Use gcc
2453         exception handling mechanism for Windows and RTX in Win32 mode, but
2454         not for RTX in kernel mode (RTSS).
2455         (LIBGNAT_SRCS): Remove ada.h
2456
2457 2008-07-30  Paolo Bonzini  <bonzini@gnu.org>
2458
2459         * gcc-interface/Make-lang.in (ALL_ADAFLAGS): Remove X_ADAFLAGS and
2460         T_ADAFLAGS, replace ALL_ADA_CFLAGS with ADA_CFLAGS.
2461         (ALL_ADA_CFLAGS): Remove, replace throughout with ADA_CFLAGS.
2462         * gcc-interface/Makefile.in (XCFLAGS, X_CFLAGS, X_CPPFLAGS, T_CPPFLAGS,
2463         X_ADA_CFLAGS, T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS, ADA_CFLAGS,
2464         ALL_ADA_CFLAGS): Remove.
2465         (ALL_ADAFLAGS, MOST_ADAFLAGS): Remove X_ADAFLAGS and T_ADAFLAGS,
2466         replace ALL_ADA_CFLAGS with ADA_CFLAGS.
2467         (GCC_CFLAGS): Remove X_CFLAGS.
2468         (LOOSE_CFLAGS): Remove X_CFLAGS and XCFLAGS.
2469         (ALL_CPPFLAGS): Remove X_CPPFLAGS and T_CPPFLAGS.
2470         (ADA_CFLAGS): Substitute.
2471
2472 2008-07-30  Laurent Guerby  <laurent@guerby.net>
2473
2474         PR ada/5911
2475         * gcc-interface/Makefile.in (MULTISUBDIR, RTSDIR): New variables.
2476         Pass MULTISUBDIR to recursive make. Use $(RTSDIR) instead of rts.
2477         Replace stamp-gnatlib* by stamp-gnatlib*-rts.
2478         * gcc-interface/Make-lang.in: Replace stamp-gnatlib2
2479         by stamp-gnatlib2-rts.
2480
2481 2008-07-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2482
2483         PR documentation/15479
2484         * gnat-style.texi: Remove AdaCore copyright statement and GPL
2485         statement for GNAT.  Add @copying stanza, use it.  Update to
2486         GFDL 1.2.  Do not list GFDL as Invariant Section, do not list
2487         title as Front-Cover Text.
2488         * gnat_rm.texi: Likewise.
2489         * gnat_ugn.texi: Likewise.
2490
2491 2008-07-29  Jan Hubicka  <jh@suse.cz>
2492
2493         * trans.c (process_inlined_subprograms): Remove tree_really_inline
2494         check.
2495
2496 2008-07-29  Arnaud Charlet  <charlet@adacore.com>
2497
2498         * gcc-interface: New directory.
2499
2500         * ada-tree.def, cuintp.c, gigi.h, Makefile.in, targtyps.c, ada.h,
2501         utils.c, ada-tree.h, decl.c, lang.opt, Make-lang.in, trans.c,
2502         config-lang.in, deftarg.c, lang-specs.h, misc.c, utils2.c: Moved
2503         to gcc-interface subdirectory.
2504
2505 2008-07-29  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
2506
2507         * Makefile.in (EXTRA_GNATRTL_NONTASKING_OBJS): Remove extra s-win32.o.
2508
2509 2008-07-28  Jan Hubicka  <jh@suse.cz>
2510
2511         * misc.c (gnat_post_options): Do not set flag_no_inline.
2512
2513 2008-07-28  Richard Guenther  <rguenther@suse.de>
2514
2515         Merge from gimple-tuples-branch.
2516
2517         2008-07-22  Olivier Hainque  <hainque@adacore.com>
2518
2519         * gigi.h (end_subprog_body): New ELAB_P argument, saying if
2520         this is called for an elab proc to be discarded if empty.
2521         * utils.c (end_subprog_body): Honor ELAB_P.
2522         (build_function_stub): Adjust call to end_subprog_body.
2523         * trans.c (Subprogram_Body_to_gnu): Likewise.
2524         (gigi): Reorganize processing of elab procs to prevent
2525         gimplifying twice, using the new end_subprog_body argument.
2526
2527         2008-07-19  Richard Guenther  <rguenther@suse.de>
2528
2529         * Make-lang.in (trans.o): Add tree-iterator.h dependency.
2530         (utils.o): Likewise.
2531         * trans.c: Include tree-iterator.h.
2532         (gnat_gimplify_expr): Adjust prototype.  Fix typo.
2533         (gnat_gimplify_stmt): Use SET_EXPR_LOCATION.
2534         (set_expr_location_from_node): Likewise.
2535         (gigi): Tuplify.
2536         * ada-tree.h (union lang_tree_node): Use TREE_CHAIN instead
2537         of GENERIC_NEXT.
2538         * utils.c: Include tree-iterator.h.
2539         * gigi.h (gnat_gimplify_expr): Adjust prototype.
2540
2541         2008-07-18  Aldy Hernandez  <aldyh@redhat.com>
2542
2543         * trans.c: Include gimple.h instead of tree-gimple.h.
2544         * utils.c: Same.
2545
2546         2008-07-14  Aldy Hernandez  <aldyh@redhat.com>
2547
2548         * trans.c (gnat_gimplify_expr): Use gimplify_assign.
2549
2550 2008-07-25  Jan Hubicka  <jh@suse.cz>
2551
2552         * utils.c (end_subprog_body): Remove inline trees check.
2553         * misc.c (gnat_post_options): Do not set flag_inline_trees.
2554
2555 2008-07-25  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2556
2557         * raise-gcc.c: Move tsystem.h before tm.h.
2558
2559 2008-07-20  Arnaud Charlet  <charlet@adacore.com>
2560
2561         * gnathtml.pl: New file.
2562
2563 2008-07-19  Olivier Hainque  <hainque@adacore.com>
2564
2565         * targtyps.c (get_target_default_allocator_alignment): Use
2566         MALLOC_ABI_ALIGNMENT.
2567
2568 2008-07-17  Olivier Hainque  <hainque@adacore.com>
2569
2570         * adaint.c (__MINGW32__ section): Include ctype.h and define
2571         a fallback ISALPHA if IN_RTS.
2572         (__gnat_is_absolute_path): Use ISALPHA instead of isalpha.
2573
2574 2008-07-17  Olivier Hainque  <hainque@adacore.com>
2575
2576         * utils.c (create_var_decl_1): Relax expectations on the PUBLIC_FLAG
2577         argument, to apply to references in addition to definitions.  Prevent
2578         setting TREE_STATIC on externals.
2579         (gnat_pushdecl): Always clear DECL_CONTEXT on public externals.
2580
2581 2008-07-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2582
2583         PR documentation/15479
2584         * gnat_ugn.texi (@ovar): New macro, from autoconf.texi.
2585         Replace backets around optional parameters with @ovar
2586         where possible, use @r{[}, @r{]} otherwise.
2587         Replace some @r, @i, and @emph with @var where appropriate.
2588
2589 2008-07-02  Eric Botcazou  <ebotcazou@adacore.com>
2590
2591         * decl.c (make_type_from_size) <INTEGER_TYPE>: Fix typo and tidy up.
2592
2593 2008-06-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2594
2595         * ada-tree.h (SET_TYPE_LANG_SPECIFIC, SET_DECL_LANG_SPECIFIC): Fix
2596         -Wc++-compat warnings.
2597         * adaint.c (__gnat_locate_regular_file, __gnat_locate_exec,
2598         __gnat_locate_exec_on_path): Likewise.
2599         * decl.c (annotate_value): Likewise.
2600         * misc.c (gnat_handle_option): Likewise.
2601         * trans.c (gnat_to_gnu, extract_encoding, decode_name,
2602         post_error_ne_tree): Likewise.
2603
2604 2008-06-27  Eric Botcazou  <ebotcazou@adacore.com>
2605
2606         * utils.c (convert) <CONSTRUCTOR>: When converting it to a packable
2607         version of its type, attempt to first convert its elements.
2608
2609 2008-06-26  Chris Proctor  <chrisp_42@bigpond.com>
2610
2611         * Makefile.in: Fix *86 kfreebsd target specific pairs.
2612
2613 2008-06-25  Samuel Tardieu  <sam@rfc1149.net>
2614
2615         * Makefile.in: Use mlib-tgt-specific-linux.adb for sh4 as well.
2616
2617 2008-06-24  Eric Botcazou  <ebotcazou@adacore.com>
2618
2619         * utils2.c (known_alignment): Derive the alignment from pointed-to
2620         types only if it is otherwise unknown.
2621         <INTEGER_CST>: Tidy.
2622         <MULT_EXPR>: Likewise.
2623         <POINTER_PLUS_EXPR>: If the alignment of the offset is unknown, use
2624         that of the base.
2625
2626 2008-06-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2627
2628         PR ada/36573
2629         * s-osinte-hpux-dce.ads (SA_ONSTACK): Define.
2630
2631 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2632
2633         * gnat_rm.texi (Implementation Defined Characteristics)
2634         (Standard Library Routines): Use @smallexample for indented
2635         text.  Drop Indentation outside examples.
2636         * gnat_ugn.texi: Likewise.
2637
2638 2008-06-13  Olivier Hainque  <hainque@adacore.com>
2639
2640         * decl.c (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): Define to 0
2641         if undefined.
2642         (gnat_to_gnu_entity) <case E_Function/Procedure>: Request stack
2643         realignment with force_align_arg_pointer attribute on foreign
2644         convention subprograms if FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN.
2645
2646 2008-06-13  Olivier Hainque  <hainque@adacore.com>
2647
2648         * utils.c (rest_of_record_type_compilation): When computing
2649         encodings for the components of a variable size type, early
2650         strip conversions on the current position expression to make
2651         sure it's shape is visible.  Use remove_conversions for this
2652         purpose.
2653
2654 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
2655
2656         * decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: In the case of a
2657         constrained subtype of a discriminated type, discard the fields that
2658         are beyond its limits according to its size.
2659
2660 2008-06-10  Olivier Hainque  <hainque@adacore.com>
2661
2662         * utils.c (create_subprog_decl): If this is for the 'main' entry
2663         point according to the asm name, redirect main_identifier_node.
2664
2665 2008-06-09  Eric Botcazou  <ebotcazou@adacore.com>
2666
2667         * decl.c (components_to_record): Adjust the packedness for the
2668         qualified union as well.
2669
2670 2008-06-09  Arnaud Charlet  <charlet@adacore.com>
2671
2672         * Make-lang.in: Use -gnatwns instead of -gnatws to make sytyle
2673         checks non fatal.
2674
2675 2008-06-07  Samuel Tardieu  <sam@rfc1149.net>
2676
2677         * sem_res.adb (Large_Storage_Type): A type is large if it
2678         requires as many bits as Positive to store its values and its
2679         bounds are known at compile time.
2680         * sem_ch13.adb (Minimum_Size): Note that this function returns
2681         0 if the size is not known at compile time.
2682
2683 2008-06-06  Nicolas Setton  <setton@adacore.com>
2684             Olivier Hainque  <hainque@adacore.com>
2685
2686         * ada-tree.h (DECL_PARALLEL_TYPE): New language specific
2687         attribute, parallel descriptive type attached to another
2688         type for debug info generation purposes.
2689         * utils.c (add_parallel_type): New function, register
2690         parallel type to be attached to a type.
2691         (get_parallel_type): New function, fetch a registered
2692         parallel type, if any.
2693         (rest_of_record_type_compilation): Register the parallel
2694         type we make for variable size records.
2695         * gigi.h (add_parallel_type, get_parallel_type): Declare.
2696         * decl.c (gnat_to_gnu_entity, maybe_pad_type): Register the
2697         parallel debug types we make.
2698         * trans.c (extract_encoding, decode_name): New functions.
2699         (gigi): If the DWARF attribute extensions are available, setup
2700         to use them.
2701         * lang.opt: Register language specific processing request
2702         for -gdwarf+.
2703         * misc.c (gnat_dwarf_extensions): New global variable. How much
2704         do we want of our DWARF extensions. 0 by default.
2705         (gnat_handle_option) <OPT_gdwarf_>: Increment gnat_dwarf_extensions.
2706         (gnat_post_options): Map gnat_dwarf_extensions to the
2707         commonuse_gnu_debug_info_extensions for later processing.
2708
2709 2008-06-04  Samuel Tardieu  <sam@rfc1149.net>
2710
2711         * einfo.ads, einfo.adb: Remove unused flag Function_Returns_With_DSP.
2712
2713 2008-06-03  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2714
2715         * Makefile.in (common_tools): Fix typos in $(exeext) extension.
2716         * gnat_ugn.texi (Style Checking)
2717         (Adding the Results of Compiler Checks to gnatcheck Output)
2718         (Example of Binder Output File): Fix typos.
2719         * ali.ads, einfo.ads, exp_ch4.adb, exp_ch6.adb,
2720         exp_dbug.ads, exp_dist.adb, exp_smem.adb, g-socket.ads,
2721         s-osinte-rtems.ads, s-shasto.ads, s-stausa.adb,
2722         s-stausa.ads, sem_cat.adb, sem_ch12.adb, sem_ch3.adb,
2723         sem_ch4.adb, sem_ch6.adb, sem_ch8.adb, sem_util.ads,
2724         sinfo.ads, utils.c: Fix typos in comments.
2725         * sem_ch6.adb, vms_data.ads: Fix typos in strings.
2726
2727 2008-05-29  Thomas Quinot  <quinot@adacore.com>
2728
2729         * sem_eval.adb: Minor reformatting
2730
2731 2008-05-29  Ed Schonberg  <schonberg@adacore.com>
2732
2733         * sem_ch6.adb (Analyze_Subprogram_Specification): if the return type
2734         is abstract, do not apply abstractness check on subprogram if this is
2735         a renaming declaration.
2736
2737 2008-05-29  Arnaud Charlet  <charlet@adacore.com>
2738
2739         PR ada/864
2740         * osint.ads, osint.adb (Program_Name): New parameter "Prog" to
2741         allow recognition of program suffix in addition to prefix.
2742
2743         * gnatchop.adb (Locate_Executable): Add support for prefix.
2744
2745         * make.adb, gnatcmd.adb, gnatlink.adb, prj-makr.adb,
2746         mlib-utl.adb: Adjust calls to Program_Name.
2747
2748 2008-05-29  Robert Dewar  <dewar@adacore.com>
2749
2750         * sem_ch3.adb: Minor reformatting
2751         * sem_prag.adb: Minor reformatting
2752         * sem_res.adb: Minor reformatting
2753         * sinput-p.ads: Minor reformatting
2754
2755 2008-05-29  Javier Miranda  <miranda@adacore.com>
2756
2757         * sem_util.adb:
2758         (Abstract_Interface_List): Add missing support for full type-declaration
2759         associated with synchronized types.
2760
2761 2008-05-29  Robert Dewar  <dewar@adacore.com>
2762
2763         * sem_eval.adb (Is_Same_Value): Take care of several more cases
2764
2765 2008-05-28  Ed Schonberg  <schonberg@adacore.com>
2766
2767         * sem_ch5.adb (Analyze_Assignment): If the name is of a local anonymous
2768         access type, wrap the expression in a conversion to force an
2769         accessibility check.
2770
2771         * sem_aggr.adb (Aggegate_Constraint_Checks): Apply conversion to force
2772         accessibility checks even when expansion is disabled in order to
2773         generate messages in the presence of previous errors or in
2774         semantics-only mode.
2775
2776 2008-05-28  Eric Botcazou  <ebotcazou@adacore.com>
2777
2778         * system-lynxos-ppc.ads (Always_Compatible_Rep): Set to False.
2779         * system-lynxos-x86.ads (Always_Compatible_Rep): Set to False.
2780
2781 2008-05-28  Vincent Celier  <celier@adacore.com>
2782
2783         PR ada/34446
2784         * gnat_ugn.texi: Document restriction introduced on 2007-04-20 in
2785         preprocessing expressions
2786
2787 2008-05-28  Vincent Celier  <celier@adacore.com>
2788
2789         * sinput-p.adb (Source_File_Is_Subunit): Allow special character used
2790         for preprocessing
2791
2792         * sinput-p.ads: Minor comment update and reformatting
2793
2794 2008-05-28  Ed Schonberg  <schonberg@adacore.com>
2795
2796         * sem_res.adb (Valid_Conversion): An anonymous access_to_subprogram
2797         type has a deeper level than any master only when it is the type of an
2798         access parameter.
2799
2800 2008-05-28  Javier Miranda  <miranda@adacore.com>
2801
2802         * sem_ch3.adb (Derive_Progenitor_Subprograms): Add documentation.
2803
2804 2008-05-28  Javier Miranda  <miranda@adacore.com>
2805
2806         * sem_util.ads (Find_Overridden_Synchronized_Primitive): Removed.
2807         * sem_util.adb (Find_Overridden_Synchronized_Primitive): Removed.
2808         * sem_ch6.adb (Check_Synchronized_Overriding): Remove one formal.
2809         Add code that was previously located in
2810         Find_Overridden_Synchronized_Primitive because it is only used here.
2811
2812 2008-05-28  Sergey Rybin  <rybin@adacore.com>
2813
2814         * sem_prag.adb (Process_Extended_Import_Export_Subprogram_Pragma): Set
2815         Entity field for formal_parameter_NAME in MECHANISM_ASSOCIATION.
2816
2817 2008-05-28  Robert Dewar  <dewar@adacore.com>
2818
2819         * restrict.ads:
2820         Add missing restrictions, and properly label all GNAT defined ones
2821
2822         * rtsfind.ads:
2823         Add entry for Ada_Real_Time.Timing_Events.Timing_Event
2824         Add entry for Ada.Task_Termination.Set_Specific_Handler
2825         Add entry for Ada.Task_Termination.Specific_Handler
2826
2827         * s-rident.ads:
2828         Add missing restrictions and properly mark all gnat defined ones
2829
2830         * sem_ch3.adb:
2831         (Analyze_Object_Declaration): Check No_Local_Timing_Events restriction
2832
2833         * sem_res.adb:
2834         (Resolve_Call): Check violation of No_Specific_Termination_Handlers
2835
2836         * gnat_rm.texi: Add missing restrictions, and properly label all
2837         GNAT defined ones
2838
2839 2008-05-28  Robert Dewar  <dewar@adacore.com>
2840
2841         * restrict.adb:
2842         (Check_Restriction): violation of restriction No_Finalization is
2843         treated as a serious error to stop expansion
2844
2845 2008-05-28  Robert Dewar  <dewar@adacore.com>
2846
2847         * exp_util.adb: Minor reformatting
2848         * exp_util.ads: Minor reformatting.
2849
2850 2008-05-28  Arnaud Charlet  <charlet@adacore.com>
2851
2852         * Make-lang.in: Remove gprmake.
2853
2854         * gprmake.adb, makegpr.ads, makegpr.adb: Removed.
2855
2856 2008-05-28  Ed Schonberg  <schonberg@adacore.com>
2857
2858         * sem_ch3.adb (Diagnose_Interface): Cleanup error messages involving
2859         improper progenitor names, and avoid cascaded errors.
2860
2861 2008-05-28  Robert Dewar  <dewar@adacore.com>
2862
2863         * gnat_rm.texi: Add note on Old giving warning when applied to constant
2864
2865         * sem_attr.adb (Analyze_Attribute, case Old): Give warning if prefix is
2866         a constant
2867
2868 2008-05-28  Robert Dewar  <dewar@adacore.com>
2869
2870         * exp_fixd.adb (Build_Multiply): Correct one-off error in computing
2871         size
2872
2873 2008-05-28  Robert Dewar  <dewar@adacore.com>
2874
2875         * exp_ch5.adb:
2876         (Expand_Simple_Function_Return): Copy unaligned result into temporary
2877
2878 2008-05-28  Javier Miranda  <miranda@adacore.com>
2879
2880         * sem_ch3.adb (Derive_Progenitor_Primitives): Add missing support
2881         for user-defined predefined primitives.
2882
2883         * sem_util.adb (Matches_Prefixed_View_Profile): Ditto.
2884         (Find_Overridden_Synchronized_Primitive): Ditto.
2885
2886         * sem_ch6.adb (Check_Synchronized_Overriding): Ditto.
2887
2888 2008-05-27  Arnaud Charlet  <charlet@adacore.com>
2889
2890         * a-ststio.adb, s-direio.adb:
2891         Further code clean up of previous change.
2892         Update comments.
2893
2894 2008-05-27  Vincent Celier  <celier@adacore.com>
2895
2896         * prj-nmsc.adb: Minor reformatting
2897
2898 2008-05-27  Bob Duff  <duff@adacore.com>
2899
2900         * sem_ch3.adb (Build_Incomplete_Type_Declaration): In the case of an
2901         untagged private type with a tagged full type, where the full type has
2902         a self reference, create the corresponding class-wide type early, in
2903         case the self reference is "access T'Class".
2904
2905 2008-05-27  Ed Schonberg  <schonberg@adacore.com>
2906
2907         * exp_aggr.adb (Build_Array_Aggr_Code): If component type includes
2908         tasks and context is an object declaration. create master entity before
2909         expansion.
2910
2911 2008-05-27  Robert Dewar  <dewar@adacore.com>
2912
2913         * mlib-prj.adb: Minor reformatting
2914
2915         * prj-part.adb: Minor reformatting
2916
2917         * prj.ads: Minor reformatting
2918
2919         * exp_ch3.adb: Minor reformatting.
2920
2921         * sem_ch3.ads: Minor reformatting
2922
2923         * sem_eval.adb: Minor reformatting
2924
2925 2008-05-27  Vincent Celier  <celier@adacore.com>
2926
2927         * gnatcmd.adb:
2928         <prefix>-gnat stack spawns gnatstack, not <prefix>-gnatstack
2929
2930 2008-05-27  Ed Schonberg  <schonberg@adacore.com>
2931
2932         * exp_aggr.adb (Expand_Array_Aggregate): If the aggregate contains
2933         tasks, create an activation chain now, before the expansion into
2934         assignments and build-in-place calls that require the presence of an
2935         activation chain.
2936         (Backend_Processing_Possible): If the component type is inherently
2937         limited, the aggregate must be expanded into individual built-in-place
2938         assignments.
2939
2940         * sem_ch6.adb (Build_Extra_Formals): Use underlying type of result to
2941         determine whether an allocation extra parameter must be built, to
2942         handle case of a private type whose full type is a discriminated type
2943         with defaults.
2944
2945 2008-05-27  Bob Duff  <duff@adacore.com>
2946
2947         * gnat_rm.texi:
2948         Document the new behavior regarding trampolines.
2949
2950 2008-05-27  Arnaud Charlet  <charlet@adacore.com>
2951
2952         * a-direio.adb, a-sequio.adb: Replace address clause by
2953         unrestricted_access, simpler and compatible with .NET.
2954
2955 2008-05-27  Vincent Celier  <celier@adacore.com>
2956
2957         * prj-part.adb:
2958         (Project_Path_Name_Of.Try_Path): Do not use Locate_Regular_File to find
2959         a project file, so that symbolic links are not resolved.
2960
2961 2008-05-27  Arnaud Charlet  <charlet@adacore.com>
2962
2963         * a-ztexio.adb, a-textio.adb, a-witeio.adb, s-direio.adb:
2964         Replace heavy address clause by 'Unrestricted_Access, cleaner and more
2965         portable across GNAT targets, since this kind of address clause is not
2966         supported by VM back-ends (.NET/JGNAT).
2967
2968 2008-05-27  Arnaud Charlet  <charlet@adacore.com>
2969
2970         * bindgen.adb: Update comments.
2971
2972         * s-tasinf-mingw.adb: Add "with" of System.OS_Interface
2973
2974 2008-05-27  Vincent Celier  <celier@adacore.com>
2975
2976         * gnatcmd.adb, prj-proc.adb, make.adb, mlib-prj.adb, prj.adb,
2977         prj.ads, makegpr.adb, makeutl.adb, clean.adb, prj-nmsc.adb,
2978         mlib-tgt.adb, prj-env.adb, prj-env.ads:
2979         (Path_Information): New record type
2980         Use component of type Path_Information when there are two paths, one in
2981         canonical format and one in display format.
2982         Update the project manager to these new components.
2983
2984 2008-05-27  Robert Dewar  <dewar@adacore.com>
2985
2986         * makeutl.adb: Minor reformatting
2987         * prj-nmsc.adb: Minor reformatting
2988         * s-stausa.adb: Minor reformatting
2989         * s-stausa.ads: Minor reformatting
2990         * sem_ch6.adb: Minor reformatting
2991
2992 2008-05-27  Thomas Quinot  <quinot@adacore.com>
2993
2994         * sem_res.adb: Minor comment fixes
2995
2996 2008-05-27  Thomas Quinot  <quinot@adacore.com>
2997
2998         * makeutl.adb: Minor code reorganization
2999
3000         * exp_aggr.adb: Add ??? comment
3001         Fix typo
3002
3003         * exp_ch6.adb: Minor reformatting
3004
3005 2008-05-27  Quentin Ochem  <ochem@adacore.com>
3006
3007         * s-stausa.adb (Initialize): Updated result initialization, and
3008         initialization of environment stack.
3009         (Fill_Stack): Improved computation of the pattern zone, taking into
3010         account already filled at the calling point.
3011         (Get_Usage_Range): Now uses Min_Measure and Max_Measure instead of
3012         Measure and Overflow_Guard.
3013         (Report_Result): Fixed computation of the result using new fields of
3014         Stack_Analyzer.
3015
3016         * s-stausa.ads (Initialize_Analyzer): Replaced Size / Overflow_Guard
3017         params by more explicit Stack_Size / Max_Pattern_Size params.
3018         (Stack_Analyzer): Added distinct Stack_Size & Pattern_Size fields.
3019         Added Stack_Used_When_Filling field.
3020         (Task_Result): Replaced Measure / Overflow_Guard by more explicit
3021         Min_Measure and Max_Measure fields.
3022
3023         * s-tassta.adb (Task_Wrapper): Updated call to Initialize_Analyzer.
3024
3025 2008-05-27  Vincent Celier  <celier@adacore.com>
3026
3027         * prj-nmsc.adb:
3028         (Check_File): Make sure that a unit that replaces the same unit in a
3029          project being extended is properly processed.
3030
3031 2008-05-27  Ed Schonberg  <schonberg@adacore.com>
3032
3033         * sem_ch3.adb:
3034         (Get_Discr_Value): Remove obsolete code that failed to find the value
3035         of a discriminant for an inherited task component appearing in a type
3036         extension.
3037
3038 2008-05-27  Thomas Quinot  <quinot@adacore.com>
3039
3040         (System.File_IO.{Close, Delete, Reset}):
3041         Change File parameter from "in out AFCB_Ptr" to "access AFCB_Ptr".
3042
3043         (Ada.*_IO.{Close, Delete, Reset, Set_Mode}):
3044         Pass File parameter by reference.
3045
3046 2008-05-27  Vincent Celier  <celier@adacore.com>
3047
3048         * prj-nmsc.adb:
3049         (Process_Sources_In_Multi_Language_Mode): Check that there are not two
3050         sources of the same project that have the same object file name.
3051         (Find_Explicit_Sources): Always remove a source exception that was not
3052         found.
3053
3054 2008-05-27  Thomas Quinot  <quinot@adacore.com>
3055
3056         * sem_ch3.adb: Minor reformatting
3057
3058 2008-05-27  Ed Schonberg  <schonberg@adacore.com>
3059
3060         * sem_ch6.adb:
3061         (Is_Interface_Conformant): Handle properly a primitive operation that
3062         overrides an interface function with a controlling access result.
3063         (Type_Conformance): If Skip_Controlling_Formals is true, when matching
3064         inherited and overriding operations, omit as well the conformance check
3065         on result types, to prevent spurious errors.
3066
3067 2008-05-27  Vincent Celier  <celier@adacore.com>
3068
3069         * makeutl.ads, makeutl.adb:
3070         (Set_Location): New procedure
3071         (Get_Location): New function
3072         (Update_Main): New procedure
3073
3074 2008-05-27  Vincent Celier  <celier@adacore.com>
3075
3076         * prj-nmsc.adb:
3077         (Check_Library): Allow standard project to be extended as a static
3078         library project.
3079         (Get_Mains): Do not inherit attribute Main in an extending library
3080         project.
3081
3082 2008-05-27  Eric Botcazou  <ebotcazou@adacore.com>
3083
3084         * system-darwin-ppc.ads (Always_Compatible_Rep): Set to False.
3085         * system-darwin-x86.ads (Always_Compatible_Rep): Likewise.
3086         * system-freebsd-x86.ads (Always_Compatible_Rep): Likewise.
3087         * system-linux-ppc.ads (Always_Compatible_Rep): Likewise.
3088         * system-linux-x86_64.ads (Always_Compatible_Rep): Likewise.
3089         * system-linux-x86.ads (Always_Compatible_Rep): Likewise.
3090         * system-mingw.ads (Always_Compatible_Rep): Likewise.
3091         * system-solaris-sparc.ads (Always_Compatible_Rep): Likewise.
3092         * system-solaris-sparcv9.ads (Always_Compatible_Rep): Likewise.
3093         * system-solaris-x86.ads (Always_Compatible_Rep): Likewise.
3094
3095 2008-05-27  Ed Schonberg  <schonberg@adacore.com>
3096
3097         * sem_attr.adb: add guard to previous patch.
3098
3099 2008-05-27  Ed Schonberg  <schonberg@adacore.com>
3100
3101         * exp_disp.adb (Build_Dispatch_Tables): For a private type completed by
3102         a synchronized tagged type, do not attempt to build dispatch table for
3103         full view. The table is built for the corresponding record type, which
3104         has its own declaration.
3105
3106 2008-05-27  Gary Dismukes  <dismukes@adacore.com>
3107
3108         * sem_ch3.adb (Fixup_Bad_Constraint): Set the Etype on the bad subtype
3109         to the known type entity E, rather than setting it to Any_Type. Fixes
3110         possible blowup in function Base_Init_Proc, as called from Freeze_Entity
3111         for objects whose type had an illegal constraint.
3112
3113 2008-05-27  Vincent Celier  <celier@adacore.com>
3114
3115         * gnat_ugn.texi:
3116         Add succinct documentation for attribute Excluded_Source_List_File
3117
3118 2008-05-27  Vincent Celier  <celier@adacore.com>
3119
3120         * prj-attr.adb: Add new project level attribute Map_File_Option
3121
3122         * prj-nmsc.adb (Process_Linker): Process new attribute Map_File_Option
3123
3124         * prj.ads: Minor reformatting and comment update
3125         (Project_Configuration): New component Map_File_Option
3126
3127         * snames.adb: New standard name Map_File_Option
3128
3129         * snames.ads: New standard name Map_File_Option
3130
3131 2008-05-27  Vincent Celier  <celier@adacore.com>
3132
3133         * xsnames.adb: Remove unused variable Oname
3134
3135 2008-05-27  Doug Rupp  <rupp@adacore.com>
3136
3137         * exp_ch6.adb:
3138         (Expand_N_Function_Call): Fix comments. Minor reformatting.
3139
3140         * exp_vfpt.ads:
3141         (Expand_Vax_Foreign_Return): Fix comments.
3142
3143 2008-05-27  Thomas Quinot  <quinot@adacore.com>
3144
3145         * exp_dist.adb: Minor reformating
3146
3147 2008-05-26  Gary Dismukes  <dismukes@adacore.com>
3148
3149         * exp_ch3.adb (Expand_N_Object_Declaration): Remove checks for
3150         No_Default_Initialization, which is now delayed until the freeze point
3151         of the object. Add a comment about deferral of the check.
3152
3153         * freeze.adb (Freeze_Entity): The check for No_Default_Initialization
3154         on objects is moved here.
3155
3156 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
3157
3158         * s-casi16.adb (Uhalf): Rewrite it as integer with small alignment.
3159         (Compare_Array_S16): Adjust for above change.
3160         * s-casi32.adb (Uword): Likewise.
3161         (Compare_Array_S32): Likewise.
3162         * s-casi64.adb (Uword): Likewise.
3163         (Compare_Array_S64): Likewise.
3164         * s-caun16.adb (Uhalf): Likewise.
3165         (Compare_Array_U16): Likewise.
3166         * s-caun32.adb (Uword): Likewise.
3167         (Compare_Array_U32): Likewise.
3168         * s-caun64.adb (Uword): Likewise.
3169         (Compare_Array_U64): Likewise.
3170
3171 2008-05-26  Robert Dewar  <dewar@adacore.com>
3172
3173         * exp_ch6.adb: Add ??? comment for previous change
3174
3175         * exp_vfpt.adb: Minor reformatting
3176
3177         * exp_vfpt.ads: Add ??? comment for last change
3178
3179         * sem_attr.adb: Add some ??? comments for previous change
3180
3181         * s-vaflop.ads: Add comments for previous change
3182
3183 2008-05-26  Doug Rupp  <rupp@adacore.com>
3184
3185         * s-vaflop-vms-alpha.adb:
3186         Remove System.IO use clause, to prevent spurious ambiguities when
3187         package is access through rtsfind.
3188
3189 2008-05-26  Sergey Rybin  <rybin@adacore.com>
3190
3191         * tree_io.ads (ASIS_Version_Number): Update because of the changes
3192         made in front-end
3193
3194 2008-05-26  Ed Schonberg  <schonberg@adacore.com>
3195
3196         * sem_attr.adb:
3197         (Resolve_Attribute, case 'address):  S (A .. B)' address can be safely
3198         converted to S (A)'address only if A .. B is known to be a non-null
3199         range.
3200
3201 2008-05-26  Doug Rupp  <rupp@adacore.com>
3202
3203         * s-vaflop.adb:
3204         (Return_D, Return_F, Return_G): New functions.
3205
3206         * s-vaflop.ads:
3207         (Return_D, Return_F, Return_G): New functions.
3208
3209         * exp_vfpt.adb:
3210         (Expand_Vax_Foreign_Return): New procedure
3211
3212         * exp_vfpt.ads:
3213         (Expand_Vax_Foreign_Return): New procedure
3214
3215         * rtsfind.ads:
3216         (RE_Return_D, RE_Return_F, RE_Return_G): New RE_Ids
3217         (RE_Return_D, RE_Return_F, RE_Return_G): New RE_Unit_Table elements
3218
3219         * exp_ch6.adb:
3220         Import Exp_Vfpt
3221         (Expand_N_Function_Call): Call Expand_Vax_Foreign_Return.
3222
3223         * s-vaflop-vms-alpha.adb:
3224         (Return_D, Return_F, Return_G): New functions.
3225
3226 2008-05-26  Gary Dismukes  <dismukes@adacore.com>
3227
3228         * exp_ch3.adb (Build_Array_Init_Proc): Only set Init_Proc to a dummy
3229         init proc entity when there is actual default initialization associated
3230         with the component type, to avoid spurious errors on objects of scalar
3231         array types that are marked Is_Public when No_Default_Initialization
3232         applies.
3233
3234 2008-05-26  Thomas Quinot  <quinot@adacore.com>
3235
3236         * rtsfind.ads, rtsfind.adb:
3237         (RE_Get_RACW): New runtime library entity provided by PolyORB s-parint.
3238         (Check_RPC): Support per-PCS-kind API versioning.
3239
3240         exp_dist.ads, exp_dist.adb:
3241         (Build_Stub_Tag, Get_Stub_Elements): New utility subprograms.
3242         (PolyORB_Support.Add_RACW_From_Any): Offload common code to new runtime
3243          library function Get_RACW.
3244         (PolyORB_Support.Add_RACW_To_Any): Offload common code to new runtime
3245         library function Get_Reference.
3246         (PolyORB_Support.Add_RACW_Read_Attribute): Use Get_RACW instead of going
3247         through an intermediate Any.
3248         (PolyORB_Support.Add_RACW_Write_Attribute): Use Get_Reference instead of
3249         going through an intermediate Any.
3250
3251         * sem_dist.adb: Minor reformatting.
3252
3253 2008-05-26  Javier Miranda  <miranda@adacore.com>
3254
3255         * einfo.ads (Abstract_Interface_Alias): Renamed as Interface_Alias.
3256         (Set_Abstract_Interface_Alias): Renamed as Set_Interface_Alias.
3257         (Is_Internal): Adding documentation on internal entities that have
3258         attribute Interface_Alias (old attribute Abstract_Interface_Alias)
3259
3260         * einfo.adb (Abstract_Interface_Alias): Renamed as Interface_Alias.
3261         (Set_Abstract_Interface_Alias): Renamed as Set_Interface_Alias.
3262         Added assertion to force entities with this attribute to have
3263         attribute Is_Internal set to True.
3264         (Next_Tag_Component): Simplify assertion using attribute Is_Tag.
3265
3266         * sem_ch3.adb (Derive_Interface_Subprograms): This subprogram has been
3267         renamed as Derive_Progenitor_Subprograms. In addition, its code is
3268         a new implementation.
3269         (Add_Interface_Tag_Components): Remove special management of
3270         synchronized interfaces.
3271         (Analyze_Interface_Declaration): Minor reformating
3272         (Build_Derived_Record_Type): Minor reformating
3273         (Check_Abstract_Overriding): Avoid reporting error in case of abstract
3274         predefined primitive inherited from interface type because the body of
3275         internally generated predefined primitives of tagged types are generated
3276         later by Freeze_Type
3277         (Derive_Subprogram): Avoid generating an internal name if the parent
3278         subprogram overrides an interface primitive.
3279         (Derive_Subprograms): New implementation that keeps separate the
3280         management of tagged types not implementing interfaces, from tagged
3281         types that implement interfaces.
3282         (Is_Progenitor): New implementation.
3283         (Process_Full_View): Add documentation
3284         (Record_Type_Declaration): Replace call to Derive_Interface_Subprograms
3285         by call to Derive_Progenitor_Subprograms.
3286
3287         * sem_ch6.ads (Is_Interface_Conformant): New subprogram.
3288         (Check_Subtype_Conformant, Subtype_Conformant): Adding new argument
3289         Skip_Controlling_Formals.
3290
3291         * sem_ch6.adb (Is_Interface_Conformant): New subprogram.
3292         (Check_Conventions): New implementation. Remove local subprogram
3293         Skip_Check. Remove formal Search_From of routine Check_Convention.
3294         (Check_Subtype_Conformant, Subtype_Conformant): Adding new argument
3295         Skip_Controlling_Formals.
3296         (New_Overloaded_Entity): Enable addition of predefined dispatching
3297         operations.
3298
3299         * sem_disp.ads
3300         (Find_Primitive_Covering_Interface): New subprogram.
3301
3302         * sem_disp.adb (Check_Dispatching_Operation): Disable registering
3303         the task body procedure as a primitive of the corresponding tagged
3304         type.
3305         (Check_Operation_From_Private_Type): Avoid adding twice an entity
3306         to the list of primitives.
3307         (Find_Primitive_Covering_Interface): New subprogram.
3308         (Override_Dispatching_Operation): Add documentation.
3309
3310         * sem_type.adb (Covers): Minor reformatings
3311
3312         * sem_util.ads (Collect_Abstract_Interfaces): Renamed as
3313         Collect_Interfaces.
3314         Rename formal.
3315         (Has_Abstract_Interfaces): Renamed as Has_Interfaces.
3316         (Implements_Interface): New subprogram.
3317         (Is_Parent): Removed.
3318         (Primitive_Names_Match): New subprogram.
3319         (Remove_Homonym): Moved here from Derive_Interface_Subprograms.
3320         (Ultimate_Alias): New subprogram.
3321
3322         * sem_util.adb (Collect_Abstract_Interfaces): Renamed as
3323         Collect_Interfaces.
3324         Remove special management for synchronized types. Rename formal. Remove
3325         internal subprograms Interface_Present_In_Parent and Add_Interface.
3326         (Has_Abstract_Interfaces): Renamed as Has_Interfaces. Replace assertion
3327         on non-record types by code to return false in such case.
3328         (Implements_Interface): New subprogram.
3329         (Is_Parent): Removed. No special management is now required for
3330         synchronized types covering interfaces.
3331         (Primitive_Names_Match): New subprogram.
3332         (Remove_Homonym): Moved here from Derive_Interface_Subprograms.
3333         (Ultimate_Alias): New subprogram.
3334
3335         * exp_ch3.adb (Add_Internal_Interface_Entities): New subprogram.
3336         Add internal entities associated with secondary dispatch tables to
3337         the list of tagged type primitives that are not interfaces.
3338         (Freeze_Record_Type): Add new call to Add_Internal_Interface_Entities
3339         (Make_Predefined_Primitive_Specs): Code reorganization to improve
3340         the management of predefined equality operator. In addition, if
3341         the type has an equality function corresponding with a primitive
3342         defined in an interface type, the inherited equality is abstract
3343         as well, and no body can be created for it.
3344
3345         * exp_disp.ads (Is_Predefined_Dispatching_Operation): Moved from
3346         exp_util to exp_disp.
3347         (Is_Predefined_Interface_Primitive): New subprogram. Returns True if
3348         an entity corresponds with one of the predefined primitives required
3349         to implement interfaces.
3350         Update copyright notice.
3351
3352         * exp_disp.adb (Set_All_DT_Position): Add assertion. Exclude from the
3353         final check on abstract subprograms all the primitives associated with
3354         interface primitives because they must be visible in the public and
3355         private part.
3356         (Write_DT): Use Find_Dispatching_Type to locate the name of the
3357         interface type. This allows the use of this routine, for debugging
3358         purposes, when the tagged type is not fully decorated.
3359         (Is_Predefined_Dispatching_Operation): Moved from exp_util to exp_disp.
3360         Factorize code calling new subprogram Is_Predefined_Interface_Primitive.
3361         (Is_Predefined_Interface_Primitive): New subprogram. Returns True if an
3362         entity corresponds with one of the predefined primitives required to
3363         implement interfaces.
3364
3365         * exp_util.adb (Find_Interface_ADT): New implementation
3366         (Find_Interface): Removed.
3367
3368         * sprint.adb (Sprint_Node_Actual): Generate missing output for the
3369         list of interfaces associated with nodes
3370         N_Formal_Derived_Type_Definition and N_Private_Extension_Declaration.
3371
3372 2008-05-26  Thomas Quinot  <quinot@adacore.com>
3373
3374         * exp_ch5.adb (Make_Tag_Ctrl_Assignment): Add missing guard on
3375         condition for assignment to temporary.
3376
3377 2008-05-26  Ed Schonberg  <schonberg@adacore.com>
3378
3379         * exp_ch4.adb (Expand_Concatenate_Other): Add explicit constraint
3380         checks on the upper bound if the index type is a modular type, to
3381         prevent wrap-around computations when size is close to upper bound of
3382         type.
3383
3384 2008-05-26  Robert Dewar  <dewar@adacore.com>
3385
3386         * sem_ch3.adb: Minor reformatting
3387
3388 2008-05-26  Ed Schonberg  <schonberg@adacore.com>
3389
3390         * sem_ch12.adb (Remove_Parent): Use specification of instance
3391         to retrieve generic parent,
3392         to handle properly the case where the instance is a child unit.
3393         Add guard to handle properly wrapper packages.
3394         Minor reformatting
3395
3396 2008-05-26  Thomas Quinot  <quinot@adacore.com>
3397
3398         * sinfo.ads: Minor reformatting
3399
3400 2008-05-26  Hristian Kirtchev  <kirtchev@adacore.com>
3401
3402         * exp_ch4.adb (Expand_N_Type_Conversion): Minor code reformatting.
3403         Generate a tag check when the result subtype of a function, defined by
3404         an access definition, designates a specific tagged type.
3405         (Make_Tag_Check): New routine.
3406
3407 2008-05-26  Arnaud Charlet  <charlet@adacore.com>
3408
3409         * ceinfo.adb, csinfo.adb: Remove warnings. Update headers.
3410
3411 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
3412
3413         * gigi.h (gigi): Remove bogus ATTRIBUTE_UNUSED marker.
3414         (builtin_decl_for): Likewise.
3415         * trans.c (gigi): Likewise.
3416         * utils.c (def_builtin_1): Fix formatting.
3417
3418 2008-05-26  Hristian Kirtchev  <kirtchev@adacore.com>
3419
3420         * exp_ch3.adb (Build_Init_Statements): Alphabetize local variables.
3421         Create the statements which map a string name to protected or task
3422         entry indix.
3423
3424         * exp_ch9.adb: Add with and use clause for Stringt.
3425         Minor code reformatting.
3426         (Build_Entry_Names): New routine.
3427         (Make_Initialize_Protection, Make_Task_Create_Call): Generate a value
3428         for flag Build_Entry_Names which controls the allocation of the data
3429         structure for the string names of entries.
3430
3431         * exp_ch9.ads (Build_Entry_Names): New subprogram.
3432
3433         * exp_util.adb (Entry_Names_OK): New function.
3434
3435         * exp_util.ads (Entry_Names_OK): New function.
3436
3437         * rtsfind.ads: Add RO_PE_Set_Entry_Name and RO_TS_Set_Entry_Name to
3438         enumerations RE_Id and RE_Unit_Table.
3439
3440         * s-taskin.adb Add with and use clause for Ada.Unchecked_Deallocation.
3441         (Free_Entry_Names_Array): New routine.
3442
3443         * s-taskin.ads: Comment reformatting.
3444         Add types String_Access, Entry_Names_Array, Entry_Names_Array_Access.
3445         Add component Entry_Names to record Ada_Task_Control_Block.
3446         (Free_Entry_Names_Array): New routine.
3447
3448         * s-tassta.adb (Create_Task): If flag Build_Entry_Names is set,
3449         dynamically allocate an array
3450         of string pointers. This structure holds string entry names.
3451         (Free_Entry_Names): New routine.
3452         (Free_Task, Vulnerable_Free_Task): Deallocate the entry names array.
3453         (Set_Entry_Names): New routine.
3454
3455         * s-tassta.ads:
3456         (Create_Task): Add formal Build_Entry_Names. The flag is used to
3457         control the allocation of the data structure which stores entry names.
3458         (Set_Entry_Name): New routine.
3459
3460         * s-tpoben.adb:
3461         Add with and use clause for Ada.Unchecked_Conversion.
3462         (Finalize): Deallocate the entry names array.
3463         (Free_Entry_Names): New routine.
3464         (Initialize_Protection_Entries): When flag Build_Entry_Names is set,
3465         create an array of string pointers to hold the entry names.
3466         (Set_Entry_Name): New routine.
3467
3468         * s-tpoben.ads:
3469         Add field Entry_Names to record Protection_Entries.
3470         (Initialize_Protection_Entries): Add formal Build_Entry_Names.
3471         (Set_Entry_Name): New routine.
3472
3473 2008-05-26  Vincent Celier  <celier@adacore.com>
3474
3475         * prj-nmsc.adb:
3476         (Process_Project_Level_Simple_Attributes): process attribute Library_GCC
3477
3478         * prj.ads:
3479         (Project_Configuration): New component Shared_Lib_Driver
3480
3481 2008-05-26  Ed Schonberg  <schonberg@adacore.com>
3482
3483         * inline.adb:
3484         (Cleanup_Scopes): For a protected operation, transfer finalization list
3485         to protected body subprogram, to force cleanup actions when needed.
3486
3487 2008-05-26  Robert Dewar  <dewar@adacore.com>
3488
3489         * sem_cat.adb: Minor reformatting
3490
3491         * gnatname.adb: Minor reformatting
3492
3493         * osint.ads: Minor reformatting
3494
3495         * s-carun8.ads: Minor reformatting
3496
3497         * g-heasor.ads: Minor comment fix (unit is now pure)
3498
3499 2008-05-26  Robert Dewar  <dewar@adacore.com>
3500
3501         * exp_ch2.adb:
3502         (Expand_Current_Value): Properly type generated integer literal
3503
3504 2008-05-26  Sergey Rybin  <rybin@adacore.com>
3505
3506         * gnat_ugn.texi: Add description for the new gnatcheck rule -
3507         Separate_Numeric_Error_Handlers.
3508
3509 2008-05-26  Pascal Obry  <obry@adacore.com>
3510
3511         * sem_aggr.adb: Minor reformatting.
3512
3513 2008-05-26  Jose Ruiz  <ruiz@adacore.com>
3514
3515         * s-osinte-aix.adb:
3516         (To_Target_Priority): Setting the time slice value to 0 or greater sets
3517         the scheduling policy to FIFO within priorities or round-robin
3518         respectively.
3519         Hence, the priority must be set in this case to the one selected by the
3520         user.
3521
3522 2008-05-26  Ed Schonberg  <schonberg@adacore.com>
3523
3524         * sem_ch12.adb:
3525         (Remove_Parent): If the enclosing scope is an instance whose generic
3526         parent is declared within some parent scope of the just completed
3527         instance, make full views of the entities in that parent visible, when
3528         applicable.
3529
3530 2008-05-26  Kai Tietz  <kai.tietz@onevision.com>
3531
3532         * mingw32.h (STD_MINGW): Set to true for target w64.
3533
3534 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
3535
3536         * trans.c (Attribute_to_gnu) <Code_Address>: Set TREE_NO_TRAMPOLINE
3537         instead of TREE_STATIC on the ADDR_EXPR.
3538
3539 2008-05-24  Eric Botcazou  <ebotcazou@adacore.com>
3540
3541         * trans.c (gnat_to_gnu): Do not set source location info on NOP_EXPRs.
3542         (Sloc_to_locus): Do not overwrite known GCC locations when translating
3543         GNAT standard locations.
3544
3545 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
3546
3547         * gigi.h (mark_visited): Declare.
3548         * decl.c (gnat_to_gnu_entity): Use mark_visited instead of marking
3549         only the topmost node of expressions.
3550         (elaborate_expression_1): Look deeper for read-only variables.
3551         * trans.c (add_decl_expr): Use mark_visited instead of marking by hand.
3552         (mark_visited): Move logic to mark_visited_r.  Invoke walk_tree.
3553         (mark_visited_r): New function.
3554
3555 2008-05-23  Vincent Celier  <celier@adacore.com>
3556
3557         * snames.adb: New standard name Excluded_Source_List_File.
3558
3559         * snames.ads: New standard name Excluded_Source_List_File.
3560
3561         * prj-attr.adb: New project level attribute Excluded_Source_List_File.
3562
3563         * prj-nmsc.adb: (Find_Excluded_Sources): New parameter Project.
3564         Get excluded sources from
3565         file indicated by attribute Excluded_Source_List_File, when present and
3566         neither Excluded_Source_Files nor Locally_Removed_Files are declared.
3567
3568 2008-05-23  Robert Dewar  <dewar@adacore.com>
3569
3570         * exp_dist.adb: Minor reformatting
3571
3572 2008-05-23  Ed Schonberg  <schonberg@adacore.com>
3573
3574         * sem_attr.adb (Resolve_Attribute, case 'address): If the prefix is a
3575         slice, convert it to an indexed component, which is equivalent, more
3576         efficient, and usable even if the slice itself is not addressable.
3577
3578 2008-05-23  Olivier Hainque  <hainque@adacore.com>
3579
3580         * gnat_ugn.texi (Calling Conventions): Document that the Intrinsic
3581         convention also allows access to named compiler built-in subprograms
3582         such as the GCC __builtin family.
3583
3584 2008-05-23  Vincent Celier  <celier@adacore.com>
3585
3586         * prj-nmsc.adb (Check_Naming_Schemes): Check a file for spec, body and
3587         sep. If there are several possibilities, choose the one with the
3588         longer prefix.
3589
3590 2008-05-23  Vincent Celier  <celier@adacore.com>
3591
3592         * gnatlink.adb (Process_Args): Do not disable scanning of ALI file for
3593         back end switches when executable specified with --GCC= is same as
3594         default, even if there are additional options.
3595
3596         * gnat_ugn.texi:
3597         Document when the back end switches from the ALI file are taken into
3598         account when gnatlink is invoked with --GCC=
3599
3600 2008-05-23  Thomas Quinot  <quinot@adacore.com>
3601
3602         * s-os_lib.adb:
3603         (copy_File): Do not open destination file if source file is unreadable.
3604
3605 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
3606
3607         * utils.c (handle_type_generic_attribute): Adjust to accept
3608         fixed arguments before an elipsis.
3609
3610 2008-05-21  Thomas Quinot  <quinot@adacore.com>
3611
3612         * g-sothco.ads, g-sothco.adb: New files.
3613
3614 2008-05-20  Thomas Quinot  <quinot@adacore.com>
3615
3616         * Makefile.rtl (GNAT.Sockets.Thin_Common): New unit.
3617
3618         * g-sttsne-vxworks.adb: Add missing dependency on Sockets.Constants.
3619         Add missing "with" of Ada.Unchecked_Conversion
3620
3621         * g-soccon-linux-ppc.ads, g-soccon-linux-64.ads, g-soccon-lynxos.ads,
3622         g-soccon-linux-x86.ads, g-soccon-hpux-ia64.ads,
3623         g-soccon-solaris-64.ads, g-soccon-tru64.ads, g-soccon-aix.ads,
3624         g-soccon-irix.ads, g-soccon-hpux.ads, g-soccon-solaris.ads,
3625         g-soccon-vms.ads, g-soccon-mingw.ads, g-soccon-vxworks.ads,
3626         g-socthi-vxworks.adb, g-soccon-freebsd.ads, g-soccon.ads:
3627         Move common code out of GNAT.Sockets.Thin implementations and into
3628         Thin_Common.
3629         New constant SIZEOF_fd_set
3630         New flag Has_Sockaddr_Len
3631         New constants SIZEOF_sockaddr_in, SIZEOF_sockaddr_in6
3632
3633         * g-stsifd-sockets.adb
3634         (Create): Remove call to Set_Length; use Set_Family to set the family
3635         and (on appropriate platforms) length fields in struct sockaddr.
3636
3637         * g-socthi.adb, g-socthi.ads, g-socthi-vms.ads, g-socthi-vms.adb,
3638         g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vxworks.adb,
3639         g-soccon-darwin.ads, g-soccon-darwin.ads: New constant SIZEOF_fd_set
3640         Move common code out of GNAT.Sockets.Thin implementations and into
3641         Thin_Common.
3642
3643         * g-socket.ads, g-socket.adb:
3644         Move common code out of GNAT.Sockets.Thin implementations and into
3645         Thin_Common.
3646         (Connect_Socket, Accept_Socket): Provide new versions of these two
3647         routines that operate with a user specified timeout.
3648         (Bind_Socket, Connect_Socket, Send_Socket): Remove calls to Set_Length,
3649         this is now handled automatically by Set_Family on platforms that
3650         require it.
3651
3652         * gen-soccon.c:
3653         Move common code out of GNAT.Sockets.Thin implementations and into
3654         Thin_Common.
3655         (SIZEOF_sockaddr_in6): On platforms where IPv6 is not supported, define
3656         this constant to 0 (not -1) because we use it to initialize an
3657         unsigned_char value.
3658         Align values for numeric constants only.
3659         Handle the case of systems that do not support AF_INET6.
3660         New constant SIZEOF_fd_set
3661         New flag Has_Sockaddr_Len
3662         New constants SIZEOF_sockaddr_in, SIZEOF_sockaddr_in6
3663
3664         * gsocket.h: New flag Has_Sockaddr_Len
3665         New constants SIZEOF_sockaddr_in, SIZEOF_sockaddr_in6
3666
3667 2008-05-20  Santiago Uruena  <uruena@adacore.com>
3668
3669         * i-cobol.ads: Interfaces.COBOL should be preelaborate.
3670
3671 2008-05-20  Arnaud Charlet  <charlet@adacore.com>
3672
3673         * s-linux-hppa.ads (atomic_lock_t): Put back proper alignment now that
3674         the underlying issue with malloc/free has been fixed. Remove associated
3675         comments.
3676         Minor reformatting.
3677         Related to PR ada/24533
3678
3679 2008-05-20  Robert Dewar  <dewar@adacore.com>
3680
3681         * ali.adb: Correct casing of ASCII.NUL
3682
3683         * styleg-c.adb (Check_Identifier): Handle case of names in ASCII
3684         properly.
3685
3686 2008-05-20  Robert Dewar  <dewar@adacore.com>
3687             Gary Dismukes  <dismukes@adacore.com>
3688
3689         * checks.adb (Apply_Arithmetic_Overflow_Check): Avoid intermediate
3690         overflow if result converted to wider integer type.
3691         (Apply_Type_Conversion_Checks): Don't emit checks on conversions to
3692         discriminated types when discriminant checks are suppressed.
3693
3694 2008-05-20  Vincent Celier  <celier@adacore.com>
3695
3696         * cstand.adb (Print_Standard): Issue the correct Size clause for type
3697         Wide_Wide_Character.
3698
3699 2008-05-20  Tristan Gingold  <gingold@adacore.com>
3700
3701         * decl.c: Do not emit a variable for a object that has an address
3702         representation clause whose value is known at compile time.
3703         When a variable has an address clause whose value is known at compile
3704         time, refer to this variable by using directly the address instead of
3705         dereferencing a pointer.
3706
3707 2008-05-20  Robert Dewar  <dewar@adacore.com>
3708
3709         PR ada/30740
3710         * einfo.ads, einfo.adb (Non_Binary_Modulus): Applies to all types and
3711         subtypes, always False for non-modular types.
3712         Shared_Var_Assign_Proc (node22) and Shared_Var_Read_Proc (node 15)
3713         entry nodes have been replaced by Shared_Var_Procs_Instance (node22)
3714         for Shared_Storage package.
3715         (Is_RACW_Stub_Type): New entity flag.
3716
3717         * exp_ch4.adb
3718         (Expand_N_Op_Expon): Avoid incorrect optimization of a*(2**b) in the
3719         case where we have a modular type with a non-binary modules.
3720         Comments reformattings.
3721
3722         * sem_intr.adb: Simplify code not that Non_Binary_Modulus applies to
3723         all types.
3724
3725 2008-05-20  Javier Miranda  <miranda@adacore.com>
3726
3727         * exp_aggr.adb
3728         (Build_Record_Aggr_Code): Fix wrong tests checking progenitors. Previous
3729         tests did not covered the case in which the type of the aggregate has
3730         no progenitors but some its parents has progenitors.
3731
3732 2008-05-20  Gary Dismukes  <dismukes@adacore.com>
3733             Hristian Kirtchev  <kirtchev@adacore.com>
3734
3735         * exp_ch3.adb
3736         (Expand_N_Object_Declaration): Correct the condition which triggers the
3737         generation of a call to Displace when initializing a class-wide object.
3738         (Build_Dcheck_Functions): Build discriminant-checking for null variants
3739         when Frontend_Layout_On_Target is true to ensure that they're available
3740         for calling when a record variant size function is built in Layout.
3741
3742 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
3743
3744         * exp_ch5.adb (Expand_Assign_Record): Within an initialization
3745         procedure for a derived type retrieve the discriminant values from the
3746         parent using the corresponding discriminant.
3747         (Expand_N_Assignment_Statement): Skip generation of implicit
3748         if-statement associated with controlled types if we are
3749         compiling with restriction No_Finalization.
3750
3751 2008-05-20  Vincent Celier  <celier@adacore.com>
3752
3753         * prj.adb (Hash (Project_Id)): New function
3754         (Project_Empty): Add new component Interfaces_Defined
3755
3756         * prj.ads (Source_Data): New component Object_Linked
3757         (Language_Config): New components Object_Generated and Objects_Linked
3758         (Hash (Project_Id)): New function
3759         (Source_Data): New Boolean components In_Interfaces and
3760         Declared_In_Interfaces.
3761         (Project_Data): New Boolean component Interfaces_Defined
3762
3763         * prj-attr.adb:
3764         New project level attribute Object_Generated and Objects_Linked
3765         Add new project level attribute Interfaces
3766
3767         * prj-dect.adb: Use functions Present and No throughout
3768         (Parse_Variable_Declaration): If a string type is specified as a simple
3769         name and is not found in the current project, look for it also in the
3770         ancestors of the project.
3771
3772         * prj-makr.adb:
3773         Replace procedure Make with procedures Initialize, Process and Finalize
3774         to implement H414-023: process different directories with different
3775         patterns.
3776         Use functions Present and No throughout
3777
3778         * prj-makr.ads:
3779         Replace procedure Make with procedures Initialize, Process and Finalize
3780
3781         * prj-nmsc.adb
3782         (Add_Source): Set component Object_Exists and Object_Linked accordnig to
3783         the language configuration.
3784         (Process_Project_Level_Array_Attributes): Process new attributes
3785         Object_Generated and Object_Linked.
3786         (Report_No_Sources): New Boolean parameter Continuation, defaulted to
3787         False, to indicate that the erreor/warning is a continuation.
3788         (Check): Call Report_No_Sources with Contnuation = True after the first
3789         call.
3790         (Error_Msg): Process successively contnuation character and warning
3791         character.
3792         (Find_Explicit_Sources): Check that all declared sources have been found
3793         (Check_File): Indicate in hash table Source_Names when a declared source
3794         is found.
3795         (Check_File): Set Other_Part when found
3796         (Find_Explicit_Sources): In multi language mode, check if all exceptions
3797         to the naming scheme have been found. For Ada, report an error if an
3798         exception has not been found. Otherwise, disregard the exception.
3799         (Check_Interfaces): New procedure
3800         (Add_Source): When Other_Part is defined, set mutual pointers in spec
3801         and body.
3802         (Check): In multi-language mode, call Check_Interfaces
3803         (Process_Sources_In_Multi_Language_Mode): Set In_Interfaces to False
3804         for an excluded source.
3805         (Remove_Source): A source replacing a source in the interfaces is also
3806         in the interfaces.
3807
3808         * prj-pars.adb: Use function Present
3809
3810         * prj-part.adb: Use functions Present and No throughout
3811         (Parse_Single_Project): Set the parent project for child projects
3812         (Create_Virtual_Extending_Project): Register project with no qualifier
3813         (Parse_Single_Project): Allow an abstract project to be extend several
3814         times. Do not allow an abstract project to extend a non abstract
3815         project.
3816
3817         * prj-pp.adb: Use functions Present and No throughout
3818         (Print): Take into account the full associative array attribute
3819         declarations.
3820
3821         * prj-proc.adb: Use functions Present and No throughout
3822         (Expression): Call itself with the same From_Project_Node for the
3823         default value of an external reference.
3824
3825         * prj-strt.adb: Use functions Present and No throughout
3826         (Parse_Variable_Reference): If a variable is specified as a simple name
3827         and is not found in the current project, look for it also in the
3828         ancestors of the project.
3829
3830         * prj-tree.ads, prj-tree.adb (Present): New function
3831         (No): New function
3832         Use functions Present and No throughout
3833         (Parent_Project_Of): New function
3834         (Set_Parent_Project_Of): New procedure
3835
3836         * snames.ads, snames.adb:
3837         Add new standard names Object_Generated and Objects_Linked
3838
3839 2008-05-20  Hristian Kirtchev  <kirtchev@adacore.com>
3840
3841         * exp_ch6.adb (Expand_Call): Add guard to ensure that both the parent
3842         and the derived type are of the same kind.
3843         (Expand_Call): Generate type conversions for actuals of
3844         record or array types when the parent and the derived types differ in
3845         size and/or packed status.
3846
3847 2008-05-20  Javier Miranda  <miranda@adacore.com>
3848             Ed Schonberg  <schonberg@adacore.com>
3849
3850         * exp_disp.adb (Make_DT, Make_Secondary_DT, Make_Tags): Avoid
3851         generating dispatch tables of locally defined tagged types statically.
3852         Remove implicit if-statement that is no longer required.
3853         (Expand_Dispatching_Call): If this is a call to an instance of the
3854         generic dispatching constructor, the type of the first argument may be
3855         a subtype of Tag, so always use the base type to recognize this case.
3856
3857 2008-05-20  Thomas Quinot  <quinot@adacore.com>
3858
3859         * exp_dist.adb
3860         (GARLIC_Support.Add_RACW_Read_Attribute): When a zero value is received,
3861         and the RACW is null-excluding, raise CONSTRAINT_ERROR instead of
3862         assigning NULL into the result, to avoid a spurious warning.
3863         (Add_RACW_Features, case Same_Scope): Add assertion that designated type
3864         is not frozen.
3865         (Add_Stub_Type): Set entity flag Is_RACW_Stub_Type on generated stub
3866         type.
3867         (Build_From_Any_Function, Build_To_Any_Function,
3868         Build_TypeCode_Function): For a type that has user-specified stream
3869         attributes, use an opaque sequence of octets as the representation.
3870
3871 2008-05-20  Kevin Pouget  <pouget@adacore.com>
3872
3873         * exp_smem.ads, exp_smem.adb: Construction of access and assign
3874         routines has been replaced by an instantiation of
3875         System.Shared_Storage.Shared_Var_Procs generic package, while expanding
3876         shared variable declaration.
3877         Calls to access and assign routines have been replaced by calls to
3878         Read/Write routines of System.Shared_Storage.Shared_Var_Procs
3879         instantiated package.
3880
3881         * rtsfind.ads: RE_Shared_Var_Procs entry has been added in RE_Unit_Table
3882         It identifies the new generic package added in s-shasto.
3883
3884         * s-shasto.adb, s-shasto.ads: A new generic package has been added, it
3885         is instantiated for each shared passive variable. It provides
3886         supporting procedures called upon each read or write access by the
3887         expanded code.
3888
3889         * sem_attr.adb:
3890         For this runtime unit (always compiled in GNAT mode), we allow
3891         stream attributes references for limited types for the case where
3892         shared passive objects are implemented using stream attributes,
3893         which is the default in GNAT's persistent storage implementation.
3894
3895 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
3896
3897         * freeze.adb
3898         (Freeze_Enumeration_Type): For a subtype that inherits a foreign
3899         convention from its base type, do not set the type to that of integer,
3900         because it may inherit a size clause.
3901         Warn on a size clause with a size different
3902         from that of Integer, if the type has convention C.
3903
3904 2008-05-20  Vincent Celier  <celier@adacore.com>
3905
3906         * gnatname.adb
3907         (Scan_Args): Rewrite to take into account new switch --and to separate
3908         arguments into sections.
3909         (Gnatname): Call Prj.Makr.Initialize, then Prj.Makr.Process for each
3910         section, then Finalize.
3911
3912 2008-05-20  Tristan Gingold  <gingold@adacore.com>
3913
3914         * init.c: Enable stack probing on ppc-linux.
3915
3916         * tracebak.c: Add symbolic traceback for ppc-linux.
3917
3918         * system-linux-ppc.ads: Enable stack probing on ppc-linux.
3919
3920 2008-05-20  Arnaud Charlet  <charlet@adacore.com>
3921
3922         * Makefile.in
3923         (common-tools): New rule, to avoid parallel build failure on gnat tools.
3924         Reenable parallel builds on this Makefile.
3925
3926         * Make-lang.in: Update dependencies.
3927
3928 2008-05-20  Robert Dewar  <dewar@adacore.com>
3929
3930         * opt.ads (Treat_Restrictions_As_Warnings): New switch
3931
3932         * sem_prag.adb, par-prag.adb, restrict.ads: Implement flag
3933         Treat_Restrictions_As_Warnings.
3934
3935         * switch-c.adb: Recognize new switch -gnatr
3936
3937         * usage.adb: Add line for -gnatr
3938
3939 2008-05-20  Hristian Kirtchev  <kirtchev@adacore.com>
3940
3941         * par-ch3.adb
3942         (P_Access_Definition): Change the error message when parsing "access
3943         all" in Ada 95 mode. The message no longer forces the user to recompile
3944         in 05 mode only to discover that anonymous access types are not allowed
3945         to have "all".
3946
3947 2008-05-20  Hristian Kirtchev  <kirtchev@adacore.com>
3948
3949         * par-ch9.adb
3950         (P_Protected): Update the error message on missing "-gnat05" switch when
3951         using interfaces in conjunction with protected types. Remove the
3952         incorrect error message associated with the presence of "private" after
3953         a "with".
3954
3955 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
3956
3957         * sem_aggr.adb: Update comments.
3958         Improve previous change for PR ada/17985
3959
3960 2008-05-20  Thomas Quinot  <quinot@adacore.com>
3961
3962         * sem_cat.adb
3963         (Set_Categorization_From_Scope): Do not set In_Remote_Types unless in
3964         the visible part of the spec of a remote types unit.
3965         (Validate_Remote_Access_Object_Type_Declaration):
3966         New local subprogram Is_Valid_Remote_Object_Type, replaces
3967         Is_Recursively_Limited_Private.
3968         (Validate_RACW_Primitives): Enforce E.2.2(14) rules: the types of all
3969         non-controlling formals (and the return type, even though this is not
3970         explicit in the standard) must support external streaming.
3971         (Validate_RCI_Subprogram_Declaration): Enforce E.2.3(14) rules: same
3972         as above for of RAS types and RCI subprograms. (The return type is not
3973         checked yet).
3974         Update comments related to RACWs designating limited interfaces per
3975         ARG ruling on AI05-060.
3976
3977         * sem_util.ads, sem_util.adb
3978         (Is_Remote_Access_To_Class_Wide_Type): Only rely on Is_Remote_Types and
3979         Is_Remote_Call_Interface to identify RACW types in a stable and
3980         consistent way. We used to rely in this predicate on the privateness of
3981         the designated type and its ancestors, but depending on the currently
3982         visible private parts, this caused false negatives. We now uniformly
3983         rely on checks made at the point where the RACW type is declared.
3984         (Inspect_Deferred_Constant_Completion): Moved from Sem_Ch7.
3985
3986 2008-05-20  Javier Miranda  <miranda@adacore.com>
3987             Ed Schonberg  <schonberg@adacore.com>
3988             Hristian Kirtchev  <kirtchev@adacore.com>
3989
3990         * sem_ch3.adb
3991         (Analyze_Object_Declaration): Fix over-conservative condition
3992         restricting use of predefined assignment with tagged types that have
3993         convention CPP.
3994         (Analyze_Object_Declaration): Relax the check regarding deferred
3995         constants declared in scopes other than packages since they can be
3996         completed with pragma Import.
3997         Add missing escaping of all-caps word 'CPP' in error messages.
3998         (Build_Discriminated_Subtype): Do not inherit representation clauses
3999         from parent type if subtype already carries them, because they are
4000         inherited earlier during derivation and already include those that may
4001         come from a partial view.
4002
4003         * sem_ch9.adb, sem_ch5.adb, sem_ch6.adb (Analyze_Subprogram_Body):
4004         Check the declarations of a subprogram body for proper deferred
4005         constant completion.
4006
4007         * sem_ch7.ads, sem_ch7.adb
4008         (Inspect_Deferred_Constant_Completion): Moved to sem_util.
4009
4010 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
4011             Thomas Quinot  <quinot@adacore.com>
4012
4013         * sem_ch4.adb
4014         (Try_Indexed_Call): Handle properly a construct of the form F(S) where
4015         F is a parameterless function that returns an array, and S is a subtype
4016         mark.
4017         (Analyze_Call): Insert dereference when the prefix is a parameterless
4018         function that returns an access to subprogram and the call has
4019         parameters.
4020         Reject a non-overloaded call whose name resolves to denote
4021         a primitive operation of the stub type generated to support a remote
4022         access-to-class-wide type.
4023
4024 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
4025
4026         * sem_ch8.adb
4027         (Note_Redundant_Use): Diagnose a redundant use within a subprogram body
4028         when there is a use clause for the same entity in the context.
4029         (Analyze_Subprogram_Renaming): A renaming_as_body is legal if it is
4030         created for a stream attribute of an abstract type or interface type.
4031
4032 2008-05-20  Thomas Quinot  <quinot@adacore.com>
4033
4034         * sem_dist.ads, sem_dist.adb (Is_RACW_Stub_Type_Operation): New
4035         subprogram.
4036
4037         * sem_type.adb
4038         (Add_One_Interp): Ignore any interpretation that is a primitive
4039         operation of an RACW stub type (these primitives are only executed
4040         through dispatching, never through static calls).
4041         (Collect_Interps): When only one interpretation has been found, set N's
4042         Entity and Etype to that interpretation, otherwise Entity and Etype may
4043         still refer to an interpretation that was ignored by Add_One_Interp,
4044         in which case would end up with being marked as not overloaded but with
4045         an Entity attribute not pointing to its (unique) correct interpretation.
4046
4047 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
4048
4049         * sem_eval.adb