OSDN Git Service

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