OSDN Git Service

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