Add mi_thunk support for vcalls on hppa.
[official-gcc.git] / gcc / ada / ChangeLog-2008
blob4e34213ea802b67a1cd01683a10a7739de8ab39c
1 2008-12-09  Jakub Jelinek  <jakub@redhat.com>
3         PR ada/38450
4         * gcc-interface/utils.c (finish_record_type): Use SET_TYPE_MODE.
5         * gcc-interface/decl.c (gnat_to_gnu_entity, make_aligning_type):
6         Likewise.
8 2008-12-05  Sebastian Pop  <sebastian.pop@amd.com>
10         PR bootstrap/38262
11         * gcc-interface/Make-lang.in (gnat1): Add BACKENDLIBS, remove GMPLIBS.
13 2008-11-29  Eric Botcazou  <ebotcazou@adacore.com>
15         PR ada/30827
16         * g-comver.adb (Ver_Len_Max): Fix inconsistency.
18 2008-11-27  Eric Botcazou  <ebotcazou@adacore.com>
20         * gcc-interface/decl.c: Fix various nits.
22 2008-11-20  Eric Botcazou  <ebotcazou@adacore.com>
24         * gcc-interface/utils.c (init_gigi_decls): Fix type mismatch.
26 2008-11-16  Eric Botcazou  <ebotcazou@adacore.com>
28         PR ada/38127
29         * gcc-interface/decl.c (make_type_from_size) <INTEGER_TYPE>: Do not
30         special-case boolean types.  Propagate  the name.
31         * gcc-interface/targtyps.c: Tweak comment.
33 2008-11-15  Geert Bosch  <bosch@adacore.com>
35         * gcc-interface/trans.c (emit_check): Put back a final save_expr
36         to prevent exponential expansion during gimplification.
38 2008-11-15  Eric Botcazou  <ebotcazou@adacore.com>
40         * gcc-interface/lang-specs.h: Expand -coverage and reorder switches.
42 2008-11-15  Eric Botcazou  <ebotcazou@adacore.com>
44         * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Force constants
45         initialized to a static constant to be statically allocated even if
46         they are of a padding type, provided the original type also has
47         constant size.
49 2008-11-15  Laurent Guerby  <laurent@guerby.net>
51         PR ada/37993
52         * gcc-interface/Makefile.in: Add multilib handling for x86_64
53         on darwin.
54         * system-darwin-x86_64.ads: New file.
56 2008-11-13  Olivier Hainque  <hainque@adacore.com>
58         * gcc-interface/decl.c (gnat_to_gnu_entity) <case E_Function>:
59         Turn Ada Pure on subprograms back into GCC CONST when eh constructs
60         are explicit to the middle-end.  Tidy.
62 2008-11-09  Eric Botcazou  <ebotcazou@adacore.com>
64         * gcc-interface/ada-tree.def (PLUS_NOMOD_EXPR): New tree code.
65         (MINUS_NOMOD_EXPR): Likewise.
66         * gcc-interface/utils2.c (build_binary_op) <PREINCREMENT_EXPR>: Make
67         unreachable.
68         <PLUS_NOMOD_EXPR>: New case.
69         <MINUS_NOMOD_EXPR>: Likewise.
70         * gcc-interface/trans.c (Loop_Statement_to_gnu): Build increment-and-
71         assignment statement instead of using an increment operator.
73 2008-11-07  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
75         * system-irix-n64.ads: New file.
76         * gcc-interface/Makefile.in (mips-sgi-irix6*): Support O32 and N64
77         multilibs.
79 2008-11-07  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
81         PR ada/37681
82         * system-solaris-x86_64.ads: New file.
83         * gcc-interface/Makefile.in (*86-solaris2*): Support x86_64 multilib.
85 2008-11-07  Bechir Zalila  <bechir.zalila@gmail.com>
86             Eric Botcazou  <ebotcazou@adacore.com>
88         PR ada/34289
89         * lib.ads: (Enable_Switch_Storing): Declare.
90         * lib.adb: (Enable_Switch_Storing): New procedure.
91         * switch-c.adb (Scan_Front_End_Switches): Add support for -gnatea.
92         * make.adb: (Compile_Sources.Compile): Add -gnatea as first option.
93         (Display): Never display -gnatea
94         * gcc-interface/lang-specs.h: If -gnatea is present, pass -gnatez.
96 2008-11-07  Thomas Quinot  <quinot@adacore.com>
98         * gcc-interface/trans.c (Attribute_to_gnu, case Attr_Length): Check
99         for empty range in original base type, not converted result type.
101 2008-11-07  Geert Bosch  <bosch@adacore.com>
103         * gcc-interface/trans.c (build_binary_op_trapv): Convert arguments
104         and result for call to __gnat_mulv64.
106 2008-11-07  Eric Botcazou  <ebotcazou@adacore.com>
108         * gcc-interface/trans.c: Fix formatting nits.
110 2008-11-07  Geert Bosch  <bosch@adacore.com>
112         * gcc-interface/trans.c (build_binary_op_trapv): Avoid emitting
113         overflow check for constant result.
115 2008-11-07  Geert Bosch  <bosch@adacore.com>
117         * gcc-interface/trans.c (build_binary_op_trapv): Use more efficient
118         overflow check for addition/subtraction if neither operand is constant.
120 2008-11-06  Eric Botcazou  <ebotcazou@adacore.com>
122         * gcc-interface/Makefile.in (SPARC/Solaris): Use a common set of
123         files for the target-dependent part of the runtime.
124         (SPARC/Linux): Likewise.
126 2008-11-06  Eric Botcazou  <ebotcazou@adacore.com>
128         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Out_Parameter>: If not
129         optimizing, create a PARM_DECL pointing to the VAR_DECL for debugging
130         purposes.
132 2008-11-06  Eric Botcazou  <ebotcazou@adacore.com>
134         * gcc-interface/misc.c (gnat_printable_name): Always return a copy
135         in GC memory.
137 2008-11-06  Eric Botcazou  <ebotcazou@adacore.com>
139         PR ada/19419
140         * gcc-interface/trans.c (gnat_to_gnu) <N_Assignment_Statement>:
141         Generate a call to memmove for an assignment between overlapping
142         array slices.
144 2008-11-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
146         PR target/37977
147         * gcc-interface/Makefile.in: Add multilib handling for
148         s390-linux and s390x-linux.
150 2008-10-24  Jakub Jelinek  <jakub@redhat.com>
152         * gcc-interface/Make-lang.in (check-ada-subtargets): Depend on
153         check-acats-subtargets and check-gnat-subtargets.
154         (check_acats_targets): New variable.
155         (check-acats-subtargets, check-acats%): New targets.
156         (check-acats): If -j is used and CHAPTERS is empty, run the testing
157         in multiple make goals, possibly parallel, and afterwards run
158         dg-extract-results.sh to merge the sum and log files.
160 2008-10-17  Geert Bosch  <bosch@adacore.com>
162         * gcc-interface/trans.c (gnat_to_gnu) <N_Slice>: Simplify expansion
163         to use only a single check instead of three, and avoid unnecessary
164         COMPOUND_EXPR.
165         (emit_check): Avoid useless COMPOUND_EXPRs and SAVE_EXPRs, sometimes
166         creating more opportunities for optimizations.
168 2008-10-13  Jakub Jelinek  <jakub@redhat.com>
170         PR middle-end/37601
171         * gcc-interface/utils.c (gnat_types_compatible_p): Handle
172         NULL TYPE_DOMAIN.
174 2008-10-07  Eric Botcazou  <ebotcazou@adacore.com>
176         * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Move code
177         dealing with volatileness to after code dealing with renaming.
179 2008-10-06  Eric Botcazou  <ebotcazou@adacore.com>
181         * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Minor tweaks.
182         * gcc-interface/trans.c (Pragma_to_gnu): Likewise.
184 2008-10-06  Eric Botcazou  <ebotcazou@adacore.com>
186         * gcc-interface/utils.c (can_fold_for_view_convert_p): New predicate.
187         (unchecked_convert): Use it to disable problematic folding with
188         VIEW_CONVERT_EXPR in the general case.  Always disable it for the
189         special VIEW_CONVERT_EXPR built for integral types and cope with
190         its addressability issues by preserving the first conversion.
192 2008-10-01  Andreas Schwab  <schwab@suse.de>
194         * system-linux-ppc64.ads: New file.
195         * gcc-interface/Makefile.in: Add multilib handling for
196         powerpc-linux.
198 2008-09-26  Eric Botcazou  <ebotcazou@adacore.com>
200         * decl.c (gnat_to_gnu_entity) <object>: Cap the alignment promotion
201         to that of ptr_mode instead of word_mode.
203 2008-09-26  Eric Botcazou  <ebotcazou@adacore.com>
205         PR ada/5911
206         * gcc-interface/Makefile.in (SPARC/Solaris): Add multilib support.
208 2008-09-25  Samuel Tardieu  <sam@rfc1149.net>
210         PR ada/37641
211         * adaint.c (__gnat_set_non_writable): Use FILE_WRITE_EA
212         instead of deprecated FILE_WRITE_PROPERTIES.
214 2008-09-22  Olivier Hainque  <hainque@adacore.com>
216         * gcc-interface/decl.c (gnat_to_gnu_entity): Even when they
217         are never assigned, volatile entities are not constant for code
218         generation purposes.
220 2008-09-21  Laurent Guerby  <laurent@guerby.net>
222         PR ada/5911
223         * gcc-interface/Makefile.in: Add multilib handling for x86_64
224         and sparc.
225         * system-linux-sparcv9.ads: New file.
227 2008-09-20  Eric Botcazou  <ebotcazou@adacore.com>
229         * exp_dbug.ads: Document new convention for the XVZ variable.
230         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Generate
231         debug info if necessary for the type padding the component type.
232         <E_Array_Subtype>: Likewise.
233         (maybe_pad_type): Emit the XVZ variable in units.
234         * gcc-interface/trans.c (Loop_Statement_to_gnu): Fix formatting nits.
235         (Subprogram_Body_to_gnu): Set the source line of the subprogram's node
236         on statements generated to initialize the parameter attributes cache.
237         Set the source line of the end label of the body on the special return
238         statement built for a procedure with copy-in copy-out parameters.
240 2008-09-20  Eric Botcazou  <ebotcazou@adacore.com>
242         PR ada/37585
243         * gcc-interface/utils.c (create_subprog_decl): Disable inlining for
244         inlined external functions if they contain a nested function not
245         declared inline.
247 2008-09-18  Jan Hubicka  <jh@suse.cz>
249         * gcc-interface/utils.c (create_subprog_decl): Use DECL_DECLARED_INLINE_P.
250         (end_subprog_body): Do not set DECL_INLINE.
252 2008-09-17  Pascal Rigaux  <pixel@mandriva.com>
254         PR ada/21327
255         * gnat_ugn.texi: Use proper format in direntry.
257 2008-09-15  Eric Botcazou  <ebotcazou@adacore.com>
259         * gcc-interface/trans.c (gigi): Declare the name of the compilation
260         unit as the first global name.
262 2008-09-14  Jan Hubicka  <jh@suse.cz>
264         * gcc-interface/Make-lang.in (gnat1): Add CFLAGS.
266 2008-09-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
268         * a-crbtgk.adb, a-direct.ads, a-tasatt.adb, ali.ads,
269         bindgen.adb, checks.adb, einfo.ads, exp_aggr.adb, exp_ch11.adb,
270         exp_ch3.adb, exp_ch4.adb, exp_ch6.adb, exp_ch7.adb, exp_ch9.adb,
271         exp_dbug.ads, exp_disp.adb, exp_dist.adb, exp_pakd.adb,
272         exp_util.adb, g-alveop.ads, g-comlin.adb, g-comlin.ads,
273         g-diopit.adb, g-socket.ads, gcc-interface/decl.c,
274         gcc-interface/gigi.h, gcc-interface/trans.c,
275         lib-load.adb, lib-xref.ads, make.adb, mlib-prj.adb, nlists.ads,
276         opt.ads, par-ch10.adb, par-ch5.adb, par.adb, s-os_lib.ads,
277         s-oscons-tmplt.c, s-parint.ads, s-regpat.ads, s-shasto.ads,
278         s-stausa.ads, s-taprop-vms.adb, sem.adb, sem_ch10.adb,
279         sem_ch11.adb, sem_ch12.adb, sem_ch13.adb, sem_ch3.adb,
280         sem_ch3.ads, sem_ch4.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb,
281         sem_elim.adb, sem_prag.adb, sem_util.adb, sem_util.ads,
282         sem_warn.adb, sinfo.ads, styleg.adb, vms_data.ads: Fix typos in
283         comments.
284         * gnathtml.pl: Fix typos.
286 2008-09-10  Joel Sherrill <joel.sherrill@oarcorp.com>
288         * gcc-interface/Makefile.in: Switch RTEMS to s-interr-hwint.adb.
289         * s-osinte-rtems.ads: Add shared hardware interrupt adapter
290         layer. RTEMS binds to OS provided adapter routines so there are
291         no modifications to s-osinte-rtems.adb.
293 2008-09-09  Arnaud Charlet  <charlet@adacore.com>
294             Joel Sherrill  <joel.sherrill@oarcorp.com>
296        * gcc-interface/Makefile.in: Switch VxWorks to s-interr-hwint.adb.
298        * s-interr-vxworks.adb: Renamed to s-interr-hwint.adb
300        * s-interr-hwint.adb: New file.
302         * s-osinte-vxworks.ads, s-osinte-vxworks.adb: Add new functions
303         needed by s-interr-hwint.adb.
305         * s-osinte-vxworks-kernel.adb: New file.
307 2008-09-05  Joel Sherrill <joel.sherrill@oarcorp.com>
309         * s-stchop-rtems.adb: Add file missed in early commit.  Already
310         referenced in gcc-interface/Makefile.in.
312 2008-08-30  Thomas Quinot  <quinot@adacore.com>
314         * gcc-interface/Make-lang.in: Allow s-oscons.{o,ali} to
315         be built even without a separate libada directory.
317 2008-08-22  Arnaud Charlet  <charlet@adacore.com>
319         * lib-xref.ads: Fix typo in subprogram reference definition.
321 2008-08-22  Robert Dewar  <dewar@adacore.com>
323         * s-sopco3.adb, s-sopco4.adb, s-sopco5.adb, s-strops.adb: Minor code fix
324         to avoid warning.
326         * g-trasym.adb: Ditto
328         * s-utf_32.adb (Get_Category): Fix obvious typo
330         * s-wwdcha.adb: Minor code reorganization
331         Remove dead code
333 2008-08-22  Robert Dewar  <dewar@adacore.com>
335         * checks.adb (Determine_Range): Deal with values that might be invalid
337         * opt.adb, opt.ads (Assume_No_Invalid_Values[_Config]): New
338         configuration switches.
340         * par-prag.adb: Dummy entry for pragma Assume_No_Invalid_Values
342         * sem_prag.adb: Implement pragma Assume_No_Default_Values
344         * snames.adb, snames.ads, snames.h:
345         Add entries for pragma Assume_No_Invalid_Values
347         * switch-c.adb: Add processing for -gnatB switch
349         * usage.adb: Add entry for flag -gnatB (no bad invalid values)
351 2008-08-22  Javier Miranda  <miranda@adacore.com>
353         * exp_ch3.adb (Build_Init_Statements): Transfer to the body of the
354         init procedure all the expanded code associated with the spec of
355         task types and protected types.
357 2008-08-22  Gary Dismukes  <dismukes@adacore.com>
359         * exp_aggr.adb (Static_Array_Aggregate): Call Analyze_And_Resolve on the
360         component expression copies rather than directly setting Etype and
361         Is_Static_Expression.
363 2008-08-22  Gary Dismukes  <dismukes@adacore.com>
365         * sem_util.adb (Has_Preelaborable_Initialization): Revise checking of
366         private types to allow for types derived from a private type with
367         preelaborable initialization, but return False for a private extension
368         (unless it has the pragma).
370 2008-08-22  Robert Dewar  <dewar@adacore.com>
372         * opt.ads: Minor code reorganization (put entries in alpha order)
374 2008-08-22  Pascal Obry  <obry@adacore.com>
376         * initialize.c, adaint.c: Use Lock_Task and Unlock_Task for non-blocking
377         spawn.
379 2008-08-22  Geert Bosch  <bosch@adacore.com>
381         * gcc-interface/trans.c: Define FP_ARITH_MAY_WIDEN
382         (convert_with_check): Only use longest_float_type if FP_ARITH_MAY_WIDEN is 0
384 2008-08-22  Doug Rupp  <rupp@adacore.com>
386         * bindgen.adb [VMS] (Gen_Adainit_Ada, Gen_Adainit_C): Import and call
387         __gnat_set_features.
389         * init.c
390         (__gnat_set_features): New function.
391         (__gnat_features_set): New tracking variable.
392         (__gl_no_malloc_64): New feature global variable
394 2008-08-22  Ed Schonberg  <schonberg@adacore.com>
396         * sem_ch8.adb (Use_One_Type): Do not emit warning message about redundant
397         use_type_clause in an instance.
399 2008-08-22  Bob Duff  <duff@adacore.com>
401         * exp_ch6.ads: Remove pragma Precondition, since it breaks some builds.
403 2008-08-22  Robert Dewar  <dewar@adacore.com>
405         * exp_ch6.adb: Minor reformatting
407         * exp_ch7.adb: Minor reformatting
409         * exp_ch7.ads: Put routines in proper alpha order
411         * exp_dist.adb: Minor reformatting
413 2008-08-22  Vincent Celier  <celier@adacore.com>
415         * prj.ads: Minor comment update
417 2008-08-22  Robert Dewar  <dewar@adacore.com>
419         * sem_ch5.adb (One_Bound): Fix latent bug involving secondary stack
421 2008-08-22  Ed Schonberg  <schonberg@adacore.com>
423         * exp_tss.adb:
424         (Base_Init_Proc): For a protected subtype, use the base type of the
425         corresponding record to locate the propoer initialization procedure.
427 2008-08-22  Robert Dewar  <dewar@adacore.com>
429         * checks.adb:
430         (In_Subrange_Of): New calling sequence
431         (Determine_Range): Prepare for new processing using base type
433         * exp_ch4.adb:
434         (Compile_Time_Compare): Use new calling sequence
436         * exp_ch5.adb:
437         (Compile_Time_Compare): Use new calling sequence
439         * sem_eval.adb:
440         (Compile_Time_Compare): New calling sequence allows dealing with
441         invalid values.
442         (In_Subrange_Of): Ditto
444         * sem_eval.ads:
445         (Compile_Time_Compare): New calling sequence allows dealing with
446         invalid values.
447         (In_Subrange_Of): Ditto
449 2008-08-22  Pascal Obry  <obry@adacore.com>
451         * adaint.c: Fix possible race condition on win32_wait().
453 2008-08-22  Bob Duff  <duff@adacore.com>
455         * exp_ch5.adb, exp_ch7.adb, exp_ch7.ads, exp_util.adb, freeze.adb,
456         exp_ch4.adb, exp_ch6.ads, exp_ch6.adb, sem_ch6.adb, exp_aggr.adb,
457         exp_intr.adb, exp_ch3.adb: Rename:
458         Exp_Ch7.Controlled_Type => Needs_Finalization
459         Exp_Ch7.CW_Or_Controlled_Type => CW_Or_Has_Controlled_Part
460         Exp_Ch5.Expand_N_Extended_Return_Statement.Controlled_Type =>
461          Has_Controlled_Parts
462         (Has_Some_Controlled_Component): Fix bug in array case.
464 2008-08-22  Robert Dewar  <dewar@adacore.com>
466         * sem_ch8.adb: Minor reformatting
468 2008-08-22  Kevin Pouget  <pouget@adacore.com>
470         * s-shasto.ads, s-shasto.adb: Move Shared_Var_ROpen, Shared_Var_WOpen and
471         Shared_Var_Close procedure specifications from package spec to package body.
473         * rtsfind.ads: Remove RE_Shared_Var_Close, RE_Shared_Var_ROpen,
474         RE_Shared_Var_WOpen entries.
476         * exp_dist.adb: Update RE_Any_Content_Ptr to RE_Any_Container_Ptr in
477         Build_To_Any_Call, Build_TypeCode_Call and Build_From_Any_Call procedures.
479 2008-08-22  Eric Botcazou  <ebotcazou@adacore.com>
481         * init.c: adjust EH support code on Alpha/Tru64 as well.
483         * raise-gcc.c: Add back a couple of comments.
485 2008-08-22  Ed Schonberg  <schonberg@adacore.com>
487         * exp_ch5.adb (Expand_Simple_Function_Return): If secondary stack is
488         involved and the return type is class-wide, use the type of the expression
489         for the generated access type. Suppress useless discriminant checks on the
490         allocator.
492 2008-08-22  Bob Duff  <duff@adacore.com>
494         * exp_ch7.adb: Minor comment fix
496         * exp_ch6.ads: Minor comment fix
498 2008-08-22  Thomas Quinot  <quinot@adacore.com>
500         * sem_ch8.adb: Minor reformatting
501         Minor code reorganization (introduce subprogram to factor duplicated
502         code).
504 2008-08-22  Sergey Rybin  <rybin@adacore.com>
506         * gnat_ugn.texi: Change the description of gnatcheck default rule
507         settings.
509 2008-08-22  Eric Botcazou  <ebotcazou@adacore.com>
511         * init.c (__gnat_adjust_context_for_raise): Delete for AIX, HP-UX,
512         Solaris, FreeBSD, VxWorks and PowerPC/Linux.  For x86{-64}/Linux,
513         do not adjust the PC anymore.
514         (__gnat_error_handler): Do not call __gnat_adjust_context_for_raise
515         on AIX, HP-UX, Solaris, FreeBSD and VxWorks.
517         * raise-gcc.c (get_call_site_action_for): Use _Unwind_GetIPInfo
518         instead of _Unwind_GetIP.
520 2008-08-22  Gary Dismukes  <dismukes@adacore.com>
522         * exp_aggr.adb (Static_Array_Aggregate): When a static array aggregate
523         with a range is transformed into a positional aggregate, any copied
524         component literals should be marked Is_Static_Expression.
526         * sem_eval.adb (Compile_Time_Known_Value): Don't treat null literals as
527         not being known at at compile time when Configurable_Run_Time_Mode is
528         true.
530 2008-08-22  Robert Dewar  <dewar@adacore.com>
532         * exp_attr.adb:
533         (Expand_N_Attribute_Reference): No validity checking on OUT parameter of
534         Read or Input attribute.
536 2008-08-22  Ed Schonberg  <schonberg@adacore.com>
538         * sem_ch8.adb (Use_One_Type): when checking which of two use_type
539         clauses in related units is redundant, if one of the units is a package
540         instantiation, use its instance_spec to determine which unit is the
541         ancestor of the other.
543 2008-08-22  Javier Miranda  <miranda@adacore.com>
545         * exp_attr.adb (Expand_N_Attribute_Reference): In case of access
546         attributes add missing support to handle designated types that come
547         from the limited view.
549         * exp_disp.adb (Expand_Interface_Conversion): Remove wrong assertion.
551 2008-08-22  Sergey Rybin  <rybin@adacore.com>
553         * vms_data.ads: Add entry for new gnatcheck -mNNN option
555         * gnat_ugn.texi: Add description for gnatcheck option '-m'
557 2008-08-22  Sergey Rybin  <rybin@adacore.com>
559         * gnat_ugn.texi: Update the gnatcheck subsection for metric rules
560         acoording to the latest changes in the metric rule interface
562 2008-08-22  Vincent Celier  <celier@adacore.com>
564         * make.adb (Check.File_Not_A_Source_Of): New Boolean function
565         (Check): Check if the file names registered in the ALI file for the
566         spec, the body and each of the subunits are the ones expected.
568 2008-08-22  Robert Dewar  <dewar@adacore.com>
570         * g-catiio.adb: Code cleanup.
572 2008-08-20  Vincent Celier  <celier@adacore.com>
574         * make.adb (Gnatmake): Remove extra space in version line
576         * ali.adb:
577         (Scan_ALI): Use Name_Find, not Name_Enter to get the name of a subunit,
578         as the name may already have been entered in the table by the Project
579         Manager.
581 2008-08-20  Jose Ruiz  <ruiz@adacore.com>
583         * errno.c (__get_errno, __set_errno for MaRTE): Transform then into
584         weak symbols so we use the version provided by MaRTE when available.
586 2008-08-20  Emmanuel Briot  <briot@adacore.com>
588         * g-catiio.ads, g-catiio.adb:
589         (Value): Avoid an unnecessary system call to Clock in most cases.
590         This call is only needed when only the time is provided in the string,
591         and ignored in all other cases. This is more efficient.
593 2008-08-20  Eric Botcazou  <ebotcazou@adacore.com>
595         * raise-gcc.c: Fix formatting nits.
597 2008-08-20  Robert Dewar  <dewar@adacore.com>
599         * sem_ch13.adb:
600         (Adjust_Record_For_Reverse_Bit_Order): Do not access First_Bit for
601         non-existing component clause.
603         * exp_ch5.adb: Minor reformatting
605         * g-comlin.adb: Minor reformatting
607         * make.adb: Minor reformatting
609         * prj-proc.adb: Minor reformatting
611         * stylesw.ads: Minor reformatting
613 2008-08-20  Vincent Celier  <celier@adacore.com>
615         * make.adb (Gnatmake_Switch_Found): New Boolean global variable
616         (Switch_May_Be_Passed_To_The_Compiler): New Boolean global variable
617         (Add_Switches): New Boolean parameter Unknown_Switches_To_The_Compiler
618          defaulted to True. Fail when Unknown_Switches_To_The_Compiler is False
619         and a switch is not recognized by gnatmake.
620         (Gnatmake): Implement new scheme for gnatmake switches and global
621         compilation switches.
622         (Switches_Of): Try successively Switches (<file name>),
623         Switches ("Ada"), Switches (others) and Default_Switches ("Ada").
625 2008-08-20  Ed Schonberg  <schonberg@adacore.com>
627         * styleg-c.ads, styleg-c.adb (Missing_Overriding): new procedure to
628         implement style check that overriding operations are explicitly marked
629         at such.
631         * style.ads (Missing_Overriding): new procedure that provides interface
632         to previous one.
634         * stylesw.ads, stylesw.adb: New style switch -gnatyO, to enable check
635         that the declaration or body of overriding operations carries an
636         explicit overriding indicator.
638         * sem_ch8.adb
639         (Analyze_Subprogram_Renaming): if operation is overriding, check whether
640         explicit indicator should be present.
642         * sem_ch6.adb (Verify_Overriding_Indicator,
643         Check_Overriding_Indicator): If operation is overriding, check whether
644         declaration and/or body of subprogram should be present
646 2008-08-20  Vincent Celier  <celier@adacore.com>
648         * prj-nmsc.adb (Check_Naming_Schemes): Accept source file names for
649         gprbuild when casing is MixedCase, whatever the casing of the letters
650         in the file name.
652 2008-08-20  Gary Dismukes  <dismukes@adacore.com>
654         * exp_ch3.adb (Build_Array_Init_Proc): Clarify comment related to
655         creating dummy init proc.
656         (Requires_Init_Proc): Return False in the case No_Default_Initialization
657         is in force and the type does not have associated default
658         initialization. Move test of Is_Public (with tests of restrictions
659         No_Initialize_Scalars and No_Default_Initialization) to end, past tests
660         for default initialization.
662 2008-08-20  Jerome Lambourg  <lambourg@adacore.com>
664         * g-comlin.adb (For_Each_Simple_Switch): Take care of switches not part
665         of any alias or prefix but having attached parameters (as \"-O2\").
667 2008-08-20  Robert Dewar  <dewar@adacore.com>
669         * s-fileio.adb: Minor reformatting
671 2008-08-20  Thomas Quinot  <quinot@adacore.com>
673         * exp_strm.adb (Build_Elementary_Input_Call,
674         Build_Elementary_Write_Call): Fix incorrect condition in circuitry that
675         selects the stream attribute routines for long float types.
677 2008-08-20  Vincent Celier  <celier@adacore.com>
679         * prj-proc.adb (Process_Declarative_Items): Add Location for Array_Data
681         * prj.ads (Array_Data): Add a component Location
683 2008-08-20  Ed Schonberg  <schonberg@adacore.com>
685         * sem_prag.adb:
686         (Analyze_Pragma, case Obsolescent): Add entity information on the pragma
687         argument for ASIS and navigation use.
689 2008-08-20  Ed Schonberg  <schonberg@adacore.com>
691         * einfo.ads: Add comment.
693 2008-08-20  Bob Duff  <duff@adacore.com>
695         * sem_eval.ads: Minor comment fix.
697 2008-08-20  Bob Duff  <duff@adacore.com>
699         * exp_ch4.adb (Expand_N_And_Then, Expand_N_Or_Else): Improve constant
700         folding. We were folding things like "False and then ...", but not
701         "X and then ..." where X is a constant whose value is known at compile
702         time.
704 2008-08-20  Hristian Kirtchev  <kirtchev@adacore.com>
706         * exp_ch5.adb (Controlled_Type): New routine.
707         (Expand_N_Extended_Return_Statement): When generating a move of the
708         final list in extended return statements, check the type of the
709         function and in the case of double expanded return statements, the type
710         of the returned object.
711         (Expand_Simple_Function_Return): Perform an interface conversion when
712         the type of the returned object is an interface and the context is an
713         extended return statement.
715 2008-08-20  Ed Schonberg  <schonberg@adacore.com>
717         * sem_util.adb (Set_Debug_Info_Needed): If the entity is a private type
718         and the full view is visible, set flag on full view as well.
720 2008-08-20  Thomas Quinot  <quinot@adacore.com>
722         * g-comlin.adb: Minor reformatting
723         Minor code reorganization.
725         * freeze.adb: Minor reformatting
727 2008-08-20  Vincent Celier  <celier@adacore.com>
729         * prj-nmsc.adb (Check_File): An excluded Ada source file may be a
730         source of another project.
732 2008-08-20  Pascal Obry  <obry@adacore.com>
734         * s-os_lib.ads: Minor reformatting.
736 2008-08-20  Arnaud Charlet  <charlet@adacore.com>
738         * gnatvsn.ads: Minor reformatting.
740 2008-08-20  Arnaud Charlet  <charlet@adacore.com>
742         * a-crbtgk.adb, repinfo.adb, g-traceb.ads, repinfo.ads,
743         system-linux-s390x.ads, s-fatflt.ads, s-parame-ae653.ads, g-spipat.adb,
744         g-spipat.ads, g-tasloc.adb, g-debpoo.adb, g-except.ads, g-debpoo.ads,
745         mdll-utl.adb, g-string.adb, g-soliop-solaris.ads, par-sync.adb,
746         exp_ch6.ads, a-cihama.ads, g-curexc.ads, system-linux-sh4.ads,
747         g-utf_32.adb, g-hesorg.adb, s-proinf-irix-athread.ads, s-parint.adb,
748         s-parint.ads, exp_ch7.ads, system-linux-alpha.ads, g-dirope.adb,
749         sinfo-cn.adb, par-labl.adb, a-ciorse.adb, g-calend.adb,
750         s-parame-vms-alpha.ads, nlists.h, exp_imgv.adb, exp_fixd.ads,
751         g-calend.ads, gnatcmd.ads, g-table.adb, s-memory-mingw.adb,
752         g-alveop.ads, g-memdum.ads, g-altive.ads, initialize.c, g-regpat.adb,
753         g-busorg.ads, g-regpat.ads, g-encstr.ads, g-regexp.adb, g-regexp.ads,
754         live.ads, g-dyntab.adb, prj-nmsc.ads, par-ch12.adb, 9drpc.adb,
755         g-alvevi.ads, s-memory.adb, math_lib.adb, s-parame.ads, s-memory.ads,
756         s-regexp.adb, a-exexda.adb, i-cstrea-vms.adb, a-exexpr.adb,
757         g-soliop-mingw.ads, s-imgrea.adb, namet.adb, system-vms.ads,
758         s-inmaop-dummy.adb, s-finroo.ads, a-ngcefu.adb, s-hibaen.ads,
759         g-soliop.ads, s-auxdec.adb, g-locfil.ads, gnatxref.adb, memroot.adb,
760         osint-b.ads, memroot.ads, s-parame-hpux.ads, errutil.adb,
761         system-linux-s390.ads, par-util.adb, osint-c.ads, exp_pakd.ads,
762         i-pacdec.ads, par-endh.adb, mlib-tgt.ads, prj-strt.ads,
763         s-osprim-vms.adb, s-proinf.ads, output.ads, g-moreex.ads,
764         a-finali.ads, s-fatlfl.ads, namet.h, mdll.ads, g-dynhta.ads,
765         s-imgenu.ads, par-tchk.adb, g-excact.ads, memtrack.adb, s-fatgen.adb,
766         a-exexpr-gcc.adb, g-arrspl.adb, par-ch4.adb, g-cgideb.adb, freeze.ads,
767         g-altcon.adb, s-fatllf.ads, gnatfind.adb, s-osinte-lynxos-3.adb,
768         a-exextr.adb, g-htable.ads, a-calfor.adb, s-imgcha.adb, argv.c,
769         a-chahan.ads, g-hesora.adb, system-vms_64.ads, par-ch5.adb, g-md5.adb,
770         lib-xref.ads, g-md5.ads, g-casuti.ads, s-fatsfl.ads, exp_dbug.ads,
771         s-htable.ads, a-ngcoar.adb, s-arit64.ads, a-ngelfu.adb, a-filico.ads,
772         par-ch6.adb, s-inmaop.ads, s-parame-vxworks.ads, s-casuti.ads,
773         a-numaux-darwin.adb, a-cohama.ads, system-linux-sparc.ads, g-os_lib.adb,
774         system-vms-ia64.ads, s-parame-vms-restrict.ads, a-clrefi.ads,
775         s-parame-vms-ia64.ads, a-strfix.adb, a-coorse.adb, a-comlin.ads,
776         a-chtgke.adb, s-imgint.adb, g-expect.ads, exp_ch4.ads, s-finimp.adb,
777         mingw32.h, g-heasor.adb, g-alleve.adb, a-ngrear.adb, s-mastop-irix.adb,
778         s-poosiz.adb, link.c: Fix copyright notice.
780 2008-08-20  Arnaud Charlet  <charlet@adacore.com>
782         * g-comlin.ads: Update comments.
784 2008-08-20  Ed Schonberg  <schonberg@adacore.com>
786         * sem_ch8.adb (Analyze_Subprogram_Renaming): Inherit Is_Imported flag.
788 2008-08-20  Gary Dismukes  <dismukes@adacore.com>
790         * exp_ch11.adb:
791         (Expand_Exception_Handlers): Call Make_Exception_Handler instead of
792         Make_Implicit_Exception_Handler when rewriting an exception handler with
793         a choice parameter, and pass the handler's Sloc instead of that of the
794         handled sequence of statements. Make_Implicit_Exception_Handler sets the
795         Sloc to No_Location (unless debugging generated code), which we don't
796         want for the case of a user handler.
798 2008-08-20  Robert Dewar  <dewar@adacore.com>
800         * freeze.adb (Freeze_Record_Type): Improve msg for non-contiguous field
802         * sem_ch13.adb:
803         (Adjust_Record_For_Reverse_Bit_Order): Messages about layout are
804         now labeled as info msgs, not warnings.
806         * tbuild.ads: Clarify documentation of Make_Implicit_Exception_Handler
808         * usage.adb: Minor change to avoid overlong line for -gnatwz/Z
810         * a-textio.adb: Remove redundant test.
812         * a-witeio.adb: Minor code reorganization
813         Remove redundant test found working on another issue
815         * a-ztexio.adb: Minor code reorganization
816         Remove redundant test found working on another issue
818 2008-08-20  Thomas Quinot  <quinot@adacore.com>
820         * s-fileio.adb (Open) Use C helper function to determine whether a
821         given errno value corresponds to a "file not found" error.
823         * sysdep.c (__gnat_is_file_not_found_error): New C helper function.
825 2008-08-20  Jose Ruiz  <ruiz@adacore.com>
827         * errno.c (__get_errno for MaRTE): Use the MaRTE function pthread_errno
828         to get access to the per-task errno variable.
829         (__set_errno for MaRTE): Do not redefine this function here since it is
830         already defined in MaRTE.
832 2008-08-20  Tristan Gingold  <gingold@adacore.com>
834         * gnat_ugn.texi: Gcov is not supported on static library on AIX.
836 2008-08-20  Robert Dewar  <dewar@adacore.com>
838         * freeze.adb: Minor reformatting
840         * g-comlin.adb: Minor reformatting
842         * g-socket.adb: Minor reformatting
844         * g-socthi-mingw.adb: Minor reformatting
846         * g-stheme.adb: Minor reformatting
848 2008-08-20  Ed Schonberg  <schonberg@adacore.com>
850         * sem_aggr.adb, sem_type.adb, exp_ch9.ads, einfo.ads,
851         exp_ch6.adb, exp_aggr.adb (Valid_Ancestor): Resolve
852         confusion between partial and full views of an ancestor of the context
853         type when the parent is a private extension declared in a parent unit,
854         and full views are available for the context type.
856 2008-08-18  Samuel Tardieu  <sam@rfc1149.net>
857             Robert Dewar  <dewar@adacore.com>
859         PR ada/30827
860         * bindgen.adb (Gen_Output_File_Ada): Zero-terminate the
861         version string.
862         Move comment in the right place.
863         * g-comver.adb (Version): Look for a zero-termination in
864         addition to a closing parenthesis.
866 2008-08-18  Samuel Tardieu  <sam@rfc1149.net>
868         * exp_ch13.adb, exp_disp.adb, sem_cat.adb, sem_ch10.adb,
869         * sem_ch12.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb,
870         * sem_prag.adb, sem_util.adb, sem_warn.adb: Use
871         Is_Package_Or_Generic_Package instead of hand-crafted tests.
873 2008-08-18  Samuel Tardieu  <sam@rfc1149.net>
875         PR ada/15808
876         * sem_ch6.adb (Check_Private_Overriding): Check for generic packages
877         as well.
879 2008-08-17  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
881         * adaint.c (_gnat_set_close_on_exec) [_WIN32]: Implement.
883 2008-08-16  Eric Botcazou  <ebotcazou@adacore.com>
885         * gcc-interface/trans.c (call_to_gnu): Use the Sloc of the call
886         for back-copy statements in lieu of that of the actual.
888 2008-08-16  Eric Botcazou  <ebotcazou@adacore.com>
890         PR ada/20548
891         * gcc-interface/decl.c (gnat_to_gnu_entity): Use DECL_SIZE_UNIT in the
892         setjmp test consistently.  Adjust for new behavior of flag_stack_check.
893         * gcc-interface/utils2.c (build_call_alloc_dealloc): Remove redundant
894         test of flag_stack_check.  Adjust for new behavior of flag_stack_check.
896 2008-08-13  Samuel Tardieu  <sam@rfc1149.net>
898         PR ada/36777
899         * sem_util.ads, sem_util.adb (Is_Protected_Self_Reference): New.
900         * sem_attr.adb (Check_Type): The current instance of a protected
901         object is not a type name.
902         (Analyze_Access_Attribute): Accept instances of protected objects.
903         (Analyze_Attribute, Attribute_Address clause): Ditto.
904         * exp_attr.adb (Expand_N_Attribute_Reference): Rewrite
905         the prefix as being the current instance if needed.
907 2008-08-12  Danny Smith  <danyssmith@users.sourceforge.net>
909         * gcc-interface/Makefile.in (EXTRA_GNATRTL_NONTASKING_OBJS) [WINDOWS]:
910         Remove duplicate s-win32.o. Add s-winext.o.
912 2008-08-12  Danny Smith  <danyssmith@users.sourceforge.net>
914         * g-stsifd-sockets.adb (Create): Replace Constants.SOCK_STREAM
915         with SOSC.SOCK__STREAM.
916         * g-socthi-mingw.adb (C_Select) Replace Constants.MSG_OOB with
917         SOSC.MSG_OOB.
919 2008-08-11  Joel Sherrill  <joel.sherrill@oarcorp.com>
921         * s-oscons-tmplt.c: RTEMS defines AF_INET6 but does support it.
922         * gsocket.h, socket.c: Update to support RTEMS.
923         * gcc-interface/Make-lang.in: Include CFLAGS_FOR_TARGET when cross.
925 2008-08-10  Samuel Tardieu  <sam@rfc1149.net>
926             Robert Dewar <dewar@adacore.com>
928         * exp_ch4.adb (Expand_N_Op_Expon): Force evaluation of
929         left argument even when right argument is 0.
930         (Expand_N_Op_Mod): Ditto when right argument is 1.
931         (Expand_N_Op_Multiply): Ditto when any argument is 0.
932         (Expand_N_Op_Rem): Ditto when right argument is 1.
934 2008-08-09  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
936         * gcc-interface/misc.c (gnat_handle_option): Replace set_Wunused
937         by warn_unused.
939 2008-08-08  Ed Schonberg  <schonberg@adacore.com>
941         * freeze.adb (Generate_Prim_Op_References): New procedure, abstracted
942         from Freeze_Entity. Used to generate cross-reference information for
943         types declared in generic packages.
945 2008-08-08  Thomas Quinot  <quinot@adacore.com>
947         * gcc-interface/Makefile.in: Reintroduce g-soccon.ads as a
948         compatibility shim.
950 2008-08-08  Thomas Quinot  <quinot@adacore.com>
952         * gsocket.h:
953         On Windows, include <errno.h> and redefine only selected errno values
954         from their <winsock2.h> definitions.
956         * s-osinte-freebsd.ads: Minor reformatting
958         * s-osinte-hpux.ads, s-osinte-irix.ads: Minor reformatting
960         * g-soccon.ads: New file.
962         * g-stheme.adb, g-socthi-vms.adb, g-socthi-vxworks.adb,
963         g-socthi-mingw.adb, g-sttsne-vxworks.adb, g-socthi.adb,
964         g-stsifd-sockets.adb, g-socket.adb, g-socket.ads,
965         g-sothco.adb, g-sothco.ads: Add back GNAT.Sockets.Constants as a child
966         unit, to allow building software that depends on this internal unit
967         with both older and newer compilers.
969 2008-08-08  Robert Dewar  <dewar@adacore.com>
971         * s-strxdr.adb: Minor reformatting
973 2008-08-08  Bob Duff  <duff@adacore.com>
975         * gnat_ugn.texi: The "Run-Time Checks" section said "arithmetic overflow
976         checking for integer operations (including division by zero)", which
977         is wrong -- divide by zero is not part of overflow checking.
978         Also added misc clarification about what check-suppression means.
980         * gnat_rm.texi: Clarify the meaning of pragma Suppress.
982 2008-08-08  Jerome Lambourg  <lambourg@adacore.com>
984         * g-comlin.adb (Add_Switch): Handle addition of switches at the
985         begining of the command line.
986         (Append, Add): Renaming of Append to Add as this now allows addition
987         at the begining of the list.
989         * g-comlin.ads (Add_Switch): Handle addition of switches at the
990         begining of the command line.
992 2008-08-08  Thomas Quinot  <quinot@adacore.com>
994         * g-sercom.ads:
995         (Name): Document application scope (only legacy PC serial ports on
996         Linux and Windows).
998 2008-08-08  Thomas Quinot  <quinot@adacore.com>
1000         * gcc-interface/Makefile.in, gcc-interface/Make-lang.in: Revert
1001         previous change, not needed after all.
1003 2008-08-08  Ed Schonberg  <schonberg@adacore.com>
1005         * exp_ch4.adb (Expand_Allocator_Expression): add check if null
1006         exclusion indicator is present
1008 2008-08-08  Robert Dewar  <dewar@adacore.com>
1010         * g-comlin.adb: Minor code reorganization
1011         Minor reformatting
1013         * g-comlin.ads: Minor reformatting
1015         * s-fileio.adb: Minor reformatting
1017         * sem_attr.adb: Minor code reorganization (use Nkind_In)
1018         Minor reformatting
1020 2008-08-06  Samuel Tardieu  <sam@rfc1149.net>
1022         * gcc-interface/Make-lang.in: Use GCC_FOR_TARGET when dealing
1023         with s-oscons-tmplt.i.
1025 2008-08-06  Samuel Tardieu  <sam@rfc1149.net>
1027         * gcc-interface/Make-lang.in (OSCONS_CPPFLAGS): Remove.
1029 2008-08-06  Ed Schonberg  <schonberg@adacore.com>
1031         * sem_ch3.adb (Analyze_Component_Declaration): Protect against misuse
1032         of incomplete type.
1034         * sem_ch8.adb (Analyze_Object_Renaming): Diagnose properly a renaming
1035         of a formal parameter of an incomplete type. Improve error message for
1036         other improper uses of incomplete types.
1038 2008-08-06  Robert Dewar  <dewar@adacore.com>
1040         * gnat_ugn.texi: Clarify -gnato documentation
1042 2008-08-06  Thomas Quinot  <quinot@adacore.com>
1044         * gcc-interface/Makefile.in,
1045         g-socthi-vxworks.adb, g-socthi-mingw.adb, g-sttsne-vxworks.adb,
1046         g-socthi.adb, g-socket.adb, g-socket.ads, g-sothco.ads,
1047         g-soccon-linux-x86.ads, g-soccon-vxworks.ads, g-soccon-mingw.ads,
1048         g-soccon-hpux-ia64.ads, g-soccon-irix.ads, g-soccon-linux-64.ads,
1049         g-soccon-aix.ads, g-soccon-solaris.ads, g-soccon-lynxos.ads,
1050         g-soccon-vms.ads, g-soccon.ads, g-soccon-freebsd.ads,
1051         g-soccon-linux-ppc.ads, g-soccon-tru64.ads, g-soccon-hpux.ads,
1052         g-soccon-solaris-64.ads, gen-oscons.c, g-soccon-darwin.ads,
1053         g-soccon-mingw-64.ads, g-soccon-linux-mips.ads, g-soccon-rtems.ads:
1054         Remove GNAT.Sockets.Constants. This internal package is replaced by
1055         System.OS_Constants.
1057 2008-08-06  Thomas Quinot  <quinot@adacore.com>
1059         * gcc-interface/Makefile.in, gcc-interface/Make-lang.in:
1060         Remove obsolete targets referencing gen-soccon
1061         When generating s-oscons.ads, use a file name that includes the
1062         THREAD_KIND, to ensure that the (potentially different) version from a
1063         previous build with a different threads flavour does not get reused.
1065 2008-08-06  Thomas Quinot  <quinot@adacore.com>
1067         * sem_res.adb: Minor reformatting
1069         * s-fileio.adb (Open): When file open operation fails, raise Name_Error
1070         only when the operating system reports a non-existing file or directory
1071         (ENOENT), otherwise raise Name_Error.
1073         * exp_ch11.adb: Minor reformatting
1075 2008-08-06  Ed Schonberg  <schonberg@adacore.com>
1077         * sem_ch3.adb (Access_Subprogram_Declaration): If the return type is
1078         incomplete, add the access_to_subprogram type to the list of private
1079         dependents only if the incomplete type will be completed in the current
1080         scope.
1081         (Build_Discriminant_Constraints): If the type of the discriminant is
1082         access_to_variable, reject a constraint that is access_to_constant.
1084 2008-08-06  Thomas Quinot  <quinot@adacore.com>
1086         * g-socket-dummy.adb, g-socket-dummy.ads, g-sothco-dummy.adb,
1087         g-sothco-dummy.ads, g-socthi-dummy.adb, g-socthi-dummy.ads,
1088         g-sttsne-dummy.ads: New files.
1090         * gcc-interface/Makefile.in, Makefile.rtl: Use placeholder sources
1091         with pragma Unimplemented_Unit for sockets packages on Nucleus.
1093 2008-08-06  Pascal Obry  <obry@adacore.com>
1095         * adaint.c: Another fix for ACL support on Windows.
1097 2008-08-06  Javier Miranda  <miranda@adacore.com>
1099         * exp_disp (Expand_Interface_Actuals): Adds missing support for
1100         expansion of calls to subprograms using selected components.
1102 2008-08-06  Ed Schonberg  <schonberg@adacore.com>
1104         * sem_res.adb (Resolve_Call): Use base type to determine whether a
1105         dereference is needed because a subtype of an access_to_subprogram is
1106         simply an access-subtype
1108 2008-08-06  Jerome Lambourg  <lambourg@adacore.com>
1110         * g-comlin.adb (Set_Command_Line): Now that aliases can contain
1111         parameters, always specify the expected separator.
1113 2008-08-06  Thomas Quinot  <quinot@adacore.com>
1115         * xnmake.adb: Use new XUtil package for platform independent text
1116         output.
1118 2008-08-06  Vincent Celier  <celier@adacore.com>
1120         * gnat_ugn.texi: Document compiler switch -gnateG
1122 2008-08-06  Quentin Ochem  <ochem@adacore.com>
1124         * s-stausa.adb (Fill_Stack): Fixed pragma assert and top pattern mark
1125         in the case of an empty pattern size.
1126         (Compute_Result): Do not do any computation in the case of an empty
1127         pattern size.
1128         (Report_Result): Fixed computation of the overflow guard.
1130 2008-08-06  Ed Schonberg  <schonberg@adacore.com>
1132         * g-awk.adb (Finalize): Do not use directly objects of the type in the
1133         finalization routine to prevent elaboration order anomalies in new
1134         finalization scheme.
1136 2008-08-06  Ed Schonberg  <schonberg@adacore.com>
1138         * sem_ch3.adb (Find_Type_Name): protect against duplicate incomplete
1139         declaration for the same type.
1141 2008-08-06  Thomas Quinot  <quinot@adacore.com>
1143         * sem.adb: Minor rewording (comment)
1145 2008-08-06  Jerome Lambourg  <lambourg@adacore.com>
1147         * g-comlin.adb (Define_Switch, Get_Switches): New.
1148         (Can_Have_Parameter, Require_Parameter, Actual_Switch): New, used when
1149         ungrouping switches.
1150         (For_Each_Simple_Switch): Allow more control over parameters handling.
1151         This generic method now allows ungrouping of switches with parameters
1152         and switches with more than one letter after the prefix.
1153         (Set_Command_Line): Take care of switches that are prefixed with a
1154         switch handling parameters without delimiter (-gnatya and -gnaty3 for
1155         example).
1156         (Add_Switch, Remove_Switch): Handle parameters possibly present inside
1157         a group, as in gnaty3aM80 (3 and 80 are parameters). Report status of
1158         the operation.
1159         (Start, Alias_Switches, Group_Switches): Take care of parameters
1160         possibly present inside a group.
1162         * g-comlin.ads (Define_Switch): New method used to define a list of
1163         expected switches, that are necessary for correctly ungrouping switches
1164         with more that one character after the prefix.
1165         (Get_Switches): Method that builds a getopt string from the list of
1166         switches as set previously by Define_Switch.
1167         (Add_Switch, Remove_Switch): New versions of the methods, reporting the
1168         status of the operation. Also allow the removal of switches with
1169         parameters only.
1170         (Command_Line_Configuration_Record): Maintain a list of expected
1171         switches.
1173 2008-08-06  Doug Rupp  <rupp@adacore.com>
1175         * gcc-interface/decl.c (gnat_to_gnu_param): Force 32bit descriptor if
1176         TARGET_MALLOC64 clear.
1178         * gcc-interface/utils2.c (build_call_alloc_dealloc): Force 32bit malloc
1179         if TARGET_MALLOC64 clear.
1181         * gcc-interface/gigi.h (TARGET_ABI_OPEN_VMS): Move here from utils2.c
1182         (TARGET_MALLC64): New macro. Default to clear.
1184 2008-08-06  Doug Rupp  <rupp@adacore.com>
1186         * gcc-interface/utils2.c (snames.h) Include
1187         (TARGET_ABI_OPEN_VMS): Initialize.
1188         (build_call_alloc_dealloc); [TARGET_ABI_OPEN_VMS] Allocate on 32bit heap
1189         for Convention C.
1191 2008-08-06  Ed Schonberg  <schonberg@adacore.com>
1193         * sem_ch3.adb (Process_Discriminants): diagnose redundant or improper
1194         null exclusion in a discriminant declaration
1196         * sem_ch8.adb (Analyze_Object_Renaming): diagnose null exclusion
1197         indicators when type is not an access type.
1199         * sem_ch12.adb (Formal_Object_Declaration): diagnose null exclusion
1200         indicators when type is not an access type.
1202 2008-08-06  Javier Miranda  <miranda@adacore.com>
1204         * exp_disp (Expand_Interface_Conversion): Freeze the entity associated
1205         with the target interface before expanding the code of the interface
1206         conversion.
1208 2008-08-05  Ed Schonberg  <schonberg@adacore.com>
1210         * freeze.adb:
1211         (Freeze_Entity): A deferred constant does not violate the restriction
1212         No_Default_Initialization,
1214         * sem_ch3.adb (Process_Subtype): An allocator is a valid construct that
1215         can carry a null exclusion indicator, and on which an error may be
1216         posted if the indicator is redundant.
1218         * sem_ch8.adb (Analyze_Object_Renaming): Verify that a null exclusion
1219         does not apply to a subtype mark that already excludes null.
1221         * sem_ch12.adb (Formal_Object_Declaration): Verify that a null
1222         exclusion does not apply to a subtype mark that already excludes null.
1224 2008-08-05  Thomas Quinot  <quinot@adacore.com>
1226         * Makefile.rtl: Compile s-oscons.ads as part of the runtime library.
1228 2008-08-05  Doug Rupp  <rupp@adacore.com>
1230         * vms_data.ads: Translation for /POINTER_SIZE qualifier.
1232 2008-08-05  Thomas Quinot  <quinot@adacore.com>
1234         * gsocket.h: Make this file includable in a Nucleus environment, which
1235         does not support sockets.
1237         * socket.c: Remove Nucleus-specific hack.
1239 2008-08-05  Pascal Obry  <obry@adacore.com>
1241         * adaint.c: Remove support for readable attribute on vxworks and nucleus
1243 2008-08-05  Ed Schonberg  <schonberg@adacore.com>
1245         * sem_attr.adb:
1246         (Analyze_Attribute, case 'Result): handle properly the case where some
1247         operand of the expression in a post-condition generates a transient
1248         block.
1250         * sem_ch5.adb (Analyze_Assignment_Statement): Apply conversion to
1251         right-hand side when it is an anonymous access_to_subprogram, to force
1252         static accessibility check when needed.
1254 2008-08-05  Sergey Rybin  <rybin@adacore.com>
1256         * gnat_ugn.texi: Changing the description of the gnatcheck metrics
1257         rule according to the change in the rule option.
1258         Add documentation for -gnatw.b/-gnatw.B
1260 2008-08-05  Robert Dewar  <dewar@adacore.com>
1262         * ug_words: Add entries for -gnatw.b/-gnatw.B
1264         * vms_data.ads: Add entries for -gnatw.b/-gnatw.B
1266 2008-08-05  Vincent Celier  <celier@adacore.com>
1268         * a-wtdeio.adb (Put (Current_Output)): Use Fore in the call to Put
1269         (File).
1271         * a-ztdeio.adb: Ditto.
1273 2008-08-05  Pascal Obry  <obry@adacore.com>
1275         * adaint.c, adaint.h, s-os_lib.adb, s-os_lib.ads: Add support for the
1276         readable attribute.
1278 2008-08-05  Vincent Celier  <celier@adacore.com>
1280         * s-wchwts.adb:
1281         (Wide_String_To_String): Returns a String with the same 'First as its
1282         parameter S.
1283         (Wide_Wide_String_To_String): Ditto
1285         * s-wchwts.ads:
1286         (Wide_String_To_String): Document that the lowest index of the returned
1287         String is equal to S'First.
1289 2008-08-05  Thomas Quinot  <quinot@adacore.com>
1291         * xoscons.adb, xutil.ads, xutil.adb, s-oscons-tmplt.c: New files.
1293         * gcc-interface/Makefile.in, gcc-interface/Make-lang.in: Generate
1294         s-oscons.ads
1296 2008-08-05  Robert Dewar  <dewar@adacore.com>
1298         * opt.ads (Warn_On_Biased_Representation): New flag
1300         * sem_ch13.adb:
1301         (Analyze_Attribute_Definition_Clause): Issue warning when biased
1302         representation is required.
1303         (Minimum_Size): Don't allow biasing if enum rep clause case
1305         * sem_warn.adb:
1306         (Set_Dot_Warning_Switch): Add handling of -gnatw.b/B switches
1307         (Set_Warning_Switch): Include -gnatw.b in -gnatwa, -gnatw.B in gnatws
1309         * usage.adb: Add lines for -gnatw.b/B switches
1311 2008-08-05  Pascal Obry  <obry@adacore.com>
1313         * a-coinve.adb: Reorder the code to avoid uninitialized warning.
1315         * adaint.c: In UNIX cases do not call __gnat_stat but stat directly.
1317 2008-08-05  Thomas Quinot  <quinot@adacore.com>
1319         * socket.c: Minor reformatting.
1321 2008-08-05  Robert Dewar  <dewar@adacore.com>
1323         * sem_ch3.adb: Minor reformatting
1325         * prj-nmsc.adb: Minor reformatting
1327 2008-08-05  Ed Schonberg  <schonberg@adacore.com>
1329         * sem_ch12.adb (Validate_Array_Type_Instance): Only apply complex
1330         visibility check on the component type if the simple test fails.
1332 2008-08-05  Jose Ruiz  <ruiz@adacore.com>
1334         * init.c (__gnat_install_handler for linux): If we are building the
1335         Xenomai run time then we need to do two additional things: avoid
1336         memory swapping and transform the Linux environment task into a native
1337         Xenomai task.
1339         * gcc-interface/Makefile.in (LIBGNAT_TARGET_PAIRS for xenomai run
1340         time): Use interface to Xenomai native skin and avoid linux-specific
1341         way of setting CPU affinity.
1342         (EH_MECHANISM for the xenomai run time): Use sjlj exception mechanism.
1344 2008-08-05  Bob Duff  <duff@adacore.com>
1346         * checks.ads: Minor comment fix
1348 2008-08-05  Thomas Quinot  <quinot@adacore.com>
1350         * g-sercom.adb, g-sercom.ads, g-sercom-mingw.adb,
1351         g-sercom-linux.adb (Data_Bits): Change literals B7 and B8 to CS7 and
1352         CS8.
1354 2008-08-05  Robert Dewar  <dewar@adacore.com>
1356         * mlib.adb: Minor code reorganization
1357         Minor reformatting
1359         * make.adb: Minor reformatting
1361         * prj-attr.ads: Minor reformatting
1363         * s-os_lib.adb: Minor reformatting
1365         * s-fileio.adb: Minor code reorganization
1366         Minor reformatting
1368         * prj.ads: Minor reformatting
1370 2008-08-05  Bob Duff  <duff@adacore.com>
1372         * sem_ch3.adb (Analyze_Object_Declaration): Avoid type Any_Access in
1373         unresolved initial value of "null", because it causes implicitly
1374         generated "=" operators to be ambiguous, and because this type should
1375         not be passed to gigi.
1377 2008-08-05  Vincent Celier  <celier@adacore.com>
1379         * mlib.adb: Update comments.
1381         * make.adb (Switches_Of): Check for Switches (others), before checking
1382         for Default_Switches ("Ada").
1383         (Gnatmake): Use Builder'Switches (others) in preference to
1384         Builder'Default_Switches ("Ada") if there are several mains.
1386         * prj-attr-pm.adb:
1387         (Add_Attribute): Add component Others_Allowed in Attribute_Record
1388         aggregate.
1390         * prj-attr.adb:
1391         Add markers to indicates that attributes Switches allow others as index
1392         (Others_Allowed_For): New Boolean function, returning True for
1393         attributes with the mark.
1394         (Initialize): Recognize optional letter 'O' as the marker for
1395         associative array attributes where others is allowed as the index.
1397         * prj-attr.ads:
1398         (Others_Allowed_For): New Boolean function
1399         (Attribute_Record): New Boolean component Others_Allowed
1401         * prj-dect.adb:
1402         (Parse_Attribute_Declaration): For associative array attribute where
1403         others is allowed as the index, allow others as an index.
1405         * prj-nmsc.adb:
1406         (Process_Binder): Skip associative array attributes with index others
1407         (Process_Compiler): Ditto
1409         * prj-util.adb:
1410         (Value_Of (Index, In_Array)): Make no attempt to put in lower case when
1411         index is All_Other_Names.
1413         * prj.ads:
1414         (All_Other_Names): New constant
1416         * prj-proc.adb:
1417         (Process_Declarative_Items): Skip associative array attribute when index
1418         is reserved word "others".
1420 2008-08-05  Vasiliy Fofanov  <fofanov@adacore.com>
1422         * gen-oscons.c: Adapt for VMS where termios.h is not available.
1424 2008-08-05  Thomas Quinot  <quinot@adacore.com>
1426         * a-rttiev.adb: Minor reformatting (comments)
1428         * gen-soccon.c: Rename to gen-oscons.c
1430         * gen-oscons.c: New file. Now generate System.OS_Constants instead of
1431         GNAT.Sockets.Constants.
1432         Add new constants for GNAT.Serial_Communications and System.File_IO.
1434 2008-08-05  Javier Miranda  <miranda@adacore.com>
1436         * sem_util.adb (Collect_Interfaces_Info): Minor reformating.
1437         * exp_ch3.adb (Build_Offset_To_Top_Functions): Code cleanup: the
1438         implementation of this routine has been simplified.
1440 2008-08-05  Pascal Obry  <obry@adacore.com>
1442         * adaint.c, adaint.h, s-os_lib.adb, s-os_lib.ads: Fix the
1443         Set_Read_Only Win32 implementation.
1445 2008-08-05  Thomas Quinot  <quinot@adacore.com>
1447         * exp_strm.adb: Minor reformatting (comments)
1449         * sem_ch12.adb: Minor reformatting.
1451 2008-08-05  Robert Dewar  <dewar@adacore.com>
1453         * sem_ch3.adb: Minor reformatting
1455         * checks.adb: Minor reformatting
1457 2008-08-05  Thomas Quinot  <quinot@adacore.com>
1459         * tbuild.ads (New_External_Name): Update spec to reflect relaxed
1460         restriction on Prefix.
1462 2008-08-05  Jerome Lambourg  <lambourg@adacore.com>
1464         * g-comlin.adb (Sort_Sections, Group_Switches): New/Modified internal
1465         methods needed to handle switch sections when building a command line.
1466         (Define_Section, Add_Switch, Remove_Switch, Is_New_Section,
1467         Current_Section): New public methods or methods modified to handle
1468         building command lines with sections.
1469         (Set_Command_Line): Take into account sections when analysing a switch
1470         string.
1471         (Start): Sort the switches by sections before iterating the command line
1472         elements.
1474         * g-comlin.ads (Define_Section, Add_Switch, Remove_Switch,
1475         Is_New_Section, Current_Section): New methods or methods modified to
1476         handle building command lines with sections.
1478 2008-08-05  Ed Schonberg  <schonberg@adacore.com>
1480         * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): For access
1481         discriminants, indicate that the corresponding object declaration has
1482         no initialization, to prevent spurious warnings when the access type is
1483         null-excluding.
1485 2008-08-05  Ed Schonberg  <schonberg@adacore.com>
1487         * sem_res.adb (Resolve_Call): If this is a call to the predefined
1488         Abort_Task, warn if the call appears within a protected operation.
1490 2008-08-04  Robert Dewar  <dewar@adacore.com>
1492         * exp_ch4.adb (Expand_N_In): Suppress range warnings in instances
1494 2008-08-04  Ed Schonberg  <schonberg@adacore.com>
1496         * sem_ch3.adb:
1497         (Replace_Anonymous_Access_To_Protected_Subprogram): Handle properly an
1498         anonymous access to protected subprogram that is the return type of the
1499         specification of a subprogram body.
1501         * sem_ch6.adb:
1502         (Analyze_Subprogram_Body): if the return type is an anonymous access to
1503         subprogram, freeze it now to prevent access anomalies in the back-end.
1505         * exp_ch9.adb: Minor code cleanup.
1506         Make sure that new declarations are inserted into the tree before
1507         analysis (from code reading).
1509 2008-08-04  Robert Dewar  <dewar@adacore.com>
1511         * exp_ch5.adb:
1512         (Expand_Simple_Function_Return): Check No_Secondary_Stack restriction
1513         at point of return.
1515 2008-08-04  Thomas Quinot  <quinot@adacore.com>
1517         * sem_type.adb, sem_ch4.adb, sprint.adb, exp_ch3.adb: Minor reformatting
1519 2008-08-04  Vasiliy Fofanov  <fofanov@adacore.com>
1521         * g-soccon-mingw.ads: Fix value for MSG_WAITALL
1523 2008-08-04  Javier Miranda  <miranda@adacore.com>
1525         * sem_prag.adb (Process_Convention): Add missing support for
1526          N_Private_Extension_Declaration nodes.
1528 2008-08-04  Robert Dewar  <dewar@adacore.com>
1530         * exp_ch4.adb: Minor reformatting
1532 2008-08-04  Pascal Obry  <obry@adacore.com>
1534         * adaint.h: Add missing prototype.
1536         * adaint.c: Refine support for Windows file attributes.
1538 2008-08-04  Robert Dewar  <dewar@adacore.com>
1540         * sem_res.adb:
1541         (Valid_Conversion): Catch case of designated types having different
1542         sizes, even though they statically match.
1544 2008-08-04  Javier Miranda  <miranda@adacore.com>
1546         * sem_eval.adb (Subtypes_Statically_Match): Remove superfluous patch
1547         added in previous patch to handle access to subprograms.
1549 2008-08-04  Robert Dewar  <dewar@adacore.com>
1551         * freeze.adb:
1552         (Freeze_Entity): Only check No_Default_Initialization restriction for
1553         constructs that come from source
1555 2008-08-04  Thomas Quinot  <quinot@adacore.com>
1557         * exp_ch6.adb: Minor comment fix.
1559         * sem_ch4.adb: Minor reformatting.
1561 2008-08-04  Robert Dewar  <dewar@adacore.com>
1563         * sem_res.adb: (Large_Storage_Type): Improve previous change.
1565 2008-08-04  Pascal Obry  <obry@adacore.com>
1567         * adaint.c, s-os_lib.adb, s-os_lib.ads: Use Windows ACL to deal with
1568         file attributes.
1570 2008-08-04  Javier Miranda  <miranda@adacore.com>
1572         * sem_ch3.adb (Access_Subprogram_Declaration): Adding missing support
1573         for N_Formal_Object_Declaration nodes. Adding kludge required by
1574         First_Formal to provide its functionality with access to functions.
1575         (Replace_Anonymous_Access_To_Protected_Subprogram): Add missing support
1576         for anonymous access types returned by functions.
1578         * sem_ch5.adb (Analyze_Assignment): Code cleanup to avoid duplicate
1579         conversion of null-excluding access types (required only once to force
1580         the generation of the required runtime check).
1582         * sem_type.adb (Covers): minor reformating
1584         * checks.adb (Null_Exclusion_Static_Checks): Avoid reporting errors
1585         with internally generated nodes. Avoid generating the error inside init
1586         procs.
1588         * sem_res.adb (Resolve_Membership_Test): Minor reformating.
1589         (Resolve_Null): Generate the null-excluding check in case of assignment
1590         to a null-excluding object.
1591         (Valid_Conversion): Add missing support for anonymous access to
1592         subprograms.
1594         * sem_ch6.adb (Check_Return_Subtype_Indication): Add missing support for
1595         anonymous access types whose designated type is an itype. This case
1596         occurs with anonymous access to protected subprograms types.
1597         (Analyze_Return_Type):  Add missing support for anonymous access to
1598         protected subprogram.
1600         * sem_eval.adb (Subtypes_Statically_Match): In case of access to
1601         subprograms addition of missing check on matching convention. Required
1602         to properly handle access to protected subprogram types.
1604         * exp_ch3 (Build_Assignment): Code cleanup removing duplicated check on
1605         null excluding access types.
1607 2008-08-04  Ed Schonberg  <schonberg@adacore.com>
1609         * sem_ch12.adb: Add comments
1611         * sem_ch4.adb (Analyze_Allocator): If the designated type is a non-null
1612         access type and the allocator is not initialized, warn rather than
1613         reporting an error.
1615 2008-08-04  Robert Dewar  <dewar@adacore.com>
1617         * exp_ch4.adb: Minor reformatting
1619         * exp_dist.adb: Minor reformatting
1621         * g-comlin.adb: Minor reformatting
1623 2008-08-04  Gary Dismukes  <dismukes@adacore.com>
1625         * exp_aggr.adb (Build_Record_Aggr_Code): Perform a conversion of the
1626         target to the type of the aggregate in the case where the target object
1627         is class-wide.
1629         * exp_ch5.adb (Expand_Simple_Function_Return): When the function's
1630         result type is class-wide and inherently limited, and the expression
1631         has a specific type, create a return object of the specific type, for
1632         more efficient handling of returns of build-in-place aggregates (avoids
1633         conversions of the class-wide return object to the specific type on
1634         component assignments).
1636         * sem_ch6.adb (Check_Return_Subtype_Indication): Suppress the error
1637         about a type mismatch for a class-wide function with a return object
1638         having a specific type when the object declaration doesn't come from
1639         source. Such an object can result from the expansion of a simple return.
1641 2008-08-04  Vasiliy Fofanov  <fofanov@adacore.com>
1643         * g-soccon-mingw-64.ads, system-mingw-x86_64.ads: New files.
1645         * gcc-interface/Makefile.in: Use 64bit-specific system files when
1646         compiling for 64bit windows.
1648 2008-08-04  Jerome Lambourg  <lambourg@adacore.com>
1650         * g-comlin.adb (Group_Switches): Preserve the switch order when
1651         grouping and allow switch grouping of switches with more than one
1652         character extension (e.g. gnatw.x).
1653         (Args_From_Expanded): Remove this now obsolete method.
1655 2008-08-04  Ed Schonberg  <schonberg@adacore.com>
1657         * exp_ch4.adb (Get_Allocator_Final_List): Freeze anonymous type for
1658         chain at once, to ensure that type is properly decorated for back-end,
1659         when allocator appears within a loop.
1661 2008-08-04  Kevin Pouget  <pouget@adacore.com>
1663         * snames.h, snames.adb, snames.ads:
1664         Add Attr_To_Any, Attr_From_Any and Attr_TypeCode defines.
1666         * exp_dist.ads, exp_dist.adb: Add Build_From_Any_Call,
1667         Build_To_Any_Call and Build_TypeCode_Call procedures.
1669         * exp_attr.adb, sem_attr.adb: Add corresponding cases.
1671         * rtsfind.ads: Add corresponding names.
1673         * tbuild.adb: Update prefix restrictions to allow '_' character.
1675 2008-08-04  Doug Rupp  <rupp@adacore.com>
1677         * gigi.h (fill_vms_descriptor): Add third parameter gnat_actual
1678         * trans.c (call_to_gnu): Call fill_vms_descriptor with new parameter.
1679         * utils2.c (fill_vms_descriptor): Add third parameter for error sloc and
1680         use it.  Calculate pointer range overflow using 64bit types.
1682 2008-08-04  Ed Schonberg  <schonberg@adacore.com>
1684         * sem_ch3.adb (Access_Definition): A formal object declaration is a
1685         legal context for an anonymous access to subprogram.
1687         * sem_ch4.adb (Analyze_One_Call): If the call can be interpreted as an
1688         indirect call, report success to the caller to include possible
1689         interpretation.
1691         * sem_ch6.adb (Check_Return_Type_Indication): Apply proper conformance
1692         check when the type
1693         of the extended return is an anonymous access_to_subprogram type.
1695         * sem_res.adb:
1696         (Resolve_Call): Insert a dereference if the type of the subprogram is an
1697         access_to_subprogram and the context requires its return type, and a
1698         dereference has not been introduced previously.
1700 2008-08-04  Arnaud Charlet  <charlet@adacore.com>
1702         * usage.adb (Usage): Minor rewording of -gnatwz switch, to improve
1703         gnatcheck support in GPS.
1705 2008-08-04  Vincent Celier  <celier@adacore.com>
1707         * mlib.adb (Create_Sym_Links): Create relative symbolic links when
1708         requested
1710 2008-08-04  Vincent Celier  <celier@adacore.com>
1712         * gprep.adb (Process_One_File): Call Prep.Preprocess with a Boolean
1713         variable, but don't check the resulting value as it has no impact on
1714         the processing.
1716         * opt.ads:
1717         (Generate_Processed_File): New Boolean flag, set to True in the compiler
1718         when switch -gnateG is used.
1720         * prep.adb:
1721         (Preprocess): new Boolean out parameter Source_Modified. Set it to True
1722         when the source is modified by the preprocessor and there is no
1723         preprocessing errors.
1725         * prep.ads (Preprocess): new Boolean out parameter Source_Modified
1727         * sinput-l.adb:
1728         (Load_File): Output the result of preprocessing if the source text was
1729         modified.
1731         * switch-c.adb (Scan_Front_End_Switches): Recognize switch -gnateG
1733         * switch-m.adb (Normalize_Compiler_Switches): Normalize switch -gnateG
1735         * ug_words: Add VMS equivalent for -gnateG
1737         * vms_data.ads:
1738         Add VMS option /GENERATE_PROCESSED_SOURCE, equivalent to switch -gnateG
1740 2008-08-04  Doug Rupp  <rupp@adacore.com>
1742         * gcc-interface/utils2.c:
1743         (fill_vms_descriptor): Raise CE if attempt made to pass 64bit pointer
1744         in 32bit descriptor.
1746 2008-08-04  Robert Dewar  <dewar@adacore.com>
1748         * par-ch10.adb: Minor reformatting
1750         * i-cobol.adb: Minor reformatting.
1752 2008-08-04  Ed Schonberg  <schonberg@adacore.com>
1754         * sem_ch3.adb (Access_Definition): Create an itype reference for an
1755         anonymous access return type of a regular function that is not a
1756         compilation unit.
1758 2008-08-04  Vincent Celier  <celier@adacore.com>
1760         * prj-attr.adb: New Builder attribute Global_Compilation_Switches
1762         * snames.adb: New standard name Global_Compilation_Switches
1764         * snames.ads: New standard name Global_Compilation_Switches
1766         * make.adb: Correct spelling error in comment
1768 2008-08-04  Arnaud Charlet  <charlet@adacore.com>
1770         * sem_prag.adb (Check_Form_Of_Interface_Name): Fix handling for CLI
1771         target.
1773 2008-08-04  Thomas Quinot  <quinot@adacore.com>
1775         * sem_ch10.adb: Minor comment fix.
1777 2008-08-04  Robert Dewar  <dewar@adacore.com>
1779         * restrict.adb: Improved messages for restriction warnings
1781         * restrict.ads: Improved messages for restriction messages
1783         * s-rident.ads (Profile_Name): Add No_Profile
1785 2008-08-04  Robert Dewar  <dewar@adacore.com>
1787         * system-darwin-x86.ads: Correct bad definition of Max_Nonbinary_Modulus
1789 2008-08-04  Robert Dewar  <dewar@adacore.com>
1791         * freeze.adb (Freeze_Entity): Check for size clause for boolean warning
1793 2008-08-04  Vincent Celier  <celier@adacore.com>
1795         * prj-proc.adb:
1796         (Copy_Package_Declarations): When inheriting package Naming from a
1797         project being extended, do not inherit source exception names.
1799 2008-08-04  Ed Schonberg  <schonberg@adacore.com>
1801         * sem_prag.adb (Check_Precondition_Postcondition): When scanning the
1802         list of declaration to find previous subprogram, do not go to the
1803         original node of a generic unit.
1805 2008-08-02  Eric Botcazou  <ebotcazou@adacore.com>
1807         * gcc-interface/utils2.c (build_binary_op) <PLUS_EXPR, MINUS_EXPR>:
1808         New case.  Convert BOOLEAN_TYPE operation to the default integer type.
1810 2008-08-01  Eric Botcazou  <ebotcazou@adacore.com>
1812         * gcc-interface/ada-tree.h (DECL_PARM_ALT): Now DECL_PARM_ALT_TYPE.
1813         * gcc-interface/decl.c (gnat_to_gnu_param): Fix formatting, simplify
1814         and adjust for above renaming.
1815         * gcc-interface/utils.c (convert_vms_descriptor): Likewise. Add new
1816         gnu_expr_alt_type parameter.  Convert the expression to it instead
1817         of changing its type in place.
1818         (build_function_stub): Adjust call to above function.
1820 2008-08-01  Eric Botcazou  <ebotcazou@adacore.com>
1822         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Constant>: Remove dead
1823         code.  Do not get full definition of deferred constants with address
1824         clause for a use.  Do not ignore deferred constant definitions with
1825         address clause.  Ignore constant definitions already marked with the
1826         error node.
1827         <object>: Remove obsolete comment.  For a deferred constant with
1828         address clause, get the initializer from the full view.
1829         * gcc-interface/trans.c (gnat_to_gnu) <N_Attribute_Definition_Clause>:
1830         Rework and remove obsolete comment.
1831         <N_Object_Declaration>: For a deferred constant with address clause,
1832         mark the full view with the error node.
1833         * gcc-interface/utils.c (convert_to_fat_pointer): Rework and fix
1834         formatting nits.
1836 2008-08-01  Hristian Kirtchev  <kirtchev@adacore.com>
1838         * rtsfind.ads: Add block IO versions of stream routines for Strings.
1840         * bindgen.adb, gnat_rm.texi, gnat_ugn.texi, opt.ads,
1841         sem_prag.adb, snames.adb, snames.ads, snames.h,
1842         par-prag.adb: Undo previous stream related changes.
1844         * s-rident.ads: Add new restriction No_Stream_Optimizations.
1846         * s-ststop.ads, s-ststop.adb: Comment reformatting.
1847         Define enumeration type to designate different IO mechanisms.
1848         Enchance generic package Stream_Ops_Internal to include an
1849         implementation of Input and Output.
1851         * exp_attr.adb (Find_Stream_Subprogram): If restriction
1852         No_Stream_Optimization is active, choose the default byte IO
1853         implementations of stream attributes for Strings.
1854         Otherwise use the corresponding block IO version.
1856 2008-08-01  Olivier Hainque  <hainque@adacore.com>
1858         * gcc-interface/decl.c (gnat_to_gnu_entity) <case E_Function>: Do not
1859         turn Ada Pure into GCC const, now implicitely implying nothrow as well.
1861 2008-08-01  Robert Dewar  <dewar@adacore.com>
1863         * par-ch3.adb (P_Defining_Identifier): Avoid repeated attempt to
1864         convert plain identifier into defining identifier.
1866 2008-08-01  Robert Dewar  <dewar@adacore.com>
1868         * sem_prag.adb (Check_Form_Of_Interface_Name): Refine and improve
1869         warnings
1871         * lib-xref.adb: Add error defense.
1873 2008-08-01  Bob Duff  <duff@adacore.com>
1875         * ioexcept.ads, sequenio.ads, directio.ads: Correct comment.
1877 2008-08-01  Gary Dismukes  <dismukes@adacore.com>
1879         * exp_ch6.adb (Expand_Call): Adjustment to previous fix for passing
1880         correct accessibility levels. In the "when others" case, retrieve the
1881         access level of the Etype of Prev rather than Prev_Orig, because the
1882         original exression has not always been analyzed.
1884 2008-08-01  Robert Dewar  <dewar@adacore.com>
1886         * prj-nmsc.adb: Minor reformatting
1888         * sem_ch4.adb: Minor reformatting
1889         Minor code reorganization
1891         * prj.ads: Minor reformatting
1893         * s-os_lib.adb: Minor reformatting
1895         * par-prag.adb (Prag, case Wide_Character_Encoding): Deal with upper
1896         half encodings
1898         * scans.ads: Minor reformatting.
1900         * sem_prag.adb (Analyze_Pragma): Put entries in alpha order
1901         (Analyze_Pragma): Make sure all GNAT pragmas call GNAT_Pragma
1903         * sem_res.adb:
1904         (Resolve_Call): Check violation of No_Specific_Termination_Handlers
1906         * sem_ch12.adb: Minor comment reformatting
1908         * par-ch3.adb (P_Type_Declaration): Properly handle missing type
1909         keyword
1911 2008-08-01  Robert Dewar  <dewar@adacore.com>
1913         * sem_ch6.adb (Process_PPCs): Don't copy spec PPC to body if not
1914         generating code
1916 2008-08-01  Ed Schonberg  <schonberg@adacore.com>
1918         * checks.adb (Apply_Float_Conversion_Check): If the expression to be
1919         converted is a real literal and the target type has static bounds,
1920         perform the conversion exactly to prevent floating-point anomalies on
1921         some targets.
1923 2008-08-01  Vincent Celier  <celier@adacore.com>
1925         * prj-attr.adb: New attribute Compiler'Name_Syntax (<lang>)
1927         * prj-nmsc.adb (Process_Compiler): Recognize attribute Name_Syntax
1929         * prj.adb (Object_Exist_For): Use Object_Generated, not
1930         Objects_Generated that is removed and was never modified anyway.
1932         * prj.ads:
1933         (Path_Syntax_Kind): New enumeration type
1934         (Language_Config): New component Path_Syntax, defaulted to Host.
1935         Components PIC_Option and Objects_Generated removed, as they are not
1936         used.
1938         * snames.adb: New standard name Path_Syntax
1940         * snames.ads: New standard name Path_Syntax
1942 2008-08-01  Vincent Celier  <celier@adacore.com>
1944         * mlib-utl.adb:
1945         (Adalib_Path): New variable to store the path of the adalib directory
1946         when procedure Specify_Adalib_Dir is called.
1947         (Lib_Directory): If Adalib_Path is not null, return its value
1948         (Specify_Adalib_Dir): New procedure
1950         * mlib-utl.ads (Specify_Adalib_Dir): New procedure
1952 2008-08-01  Ed Schonberg  <schonberg@adacore.com>
1954         * sem_prag.adb:
1955         (Check_Precondition_Postcondition): If not generating code, analyze the
1956         expression in a postcondition that appears in a subprogram body, so that
1957         it is properly decorated for ASIS use.
1959 2008-08-01  Gary Dismukes  <dismukes@adacore.com>
1961         * exp_ch6.adb (Expand_Call): Remove ugly special-case code that resets
1962         Orig_Prev to Prev in the case where the actual is N_Function_Call or
1963         N_Identifier. This was interfering with other cases that are rewritten
1964         as N_Identifier, such as allocators, resulting in passing of the wrong
1965         accessibility level, and based on testing this code is apparently no
1966         longer needed at all.
1968 2008-08-01  Ed Schonberg  <schonberg@adacore.com>
1970         * sem_ch4.adb (Analyze_One_Call): Handle complex overloading of a
1971         procedure call whose prefix
1972         is a parameterless function call that returns an access_to_procedure.
1974 2008-08-01  Jose Ruiz  <ruiz@adacore.com>
1976         * adaint.c (__gnat_tmp_name): Refine the generation of temporary names
1977         for RTX. Adding a suffix that is incremented at each iteration.
1979 2008-08-01  Robert Dewar  <dewar@adacore.com>
1981         * sem_ch6.adb (Analyze_Subprogram_Body): Remove special casing of
1982         Raise_Exception
1984 2008-08-01  Jerome Lambourg  <lambourg@adacore.com>
1986         * s-os_lib.adb (Normalize_Pathname): Take care of double-quotes in
1987         paths, which are authorized by Windows but can lead to errors when used
1988         elsewhere.
1990 2008-08-01  Ed Schonberg  <schonberg@adacore.com>
1992         * sem_ch12.ads (Need_Subprogram_Instance_Body): new function, to create
1993         a pending instantiation for the body of a subprogram that is to be
1994         inlined.
1996         * sem_ch12.adb:
1997         (Analyze_Subprogram_Instantiation): use Need_Subprogram_Instance_Body.
1999         * sem_prag.adb (Make_Inline): If the pragma applies to an instance,
2000         create a pending instance for its body, so that calls to the subprogram
2001         can be inlined by the back-end.
2003 2008-08-01  Jose Ruiz  <ruiz@adacore.com>
2005         * gnat_ugn.texi: Document the RTX run times (rts-rtx-rtss and
2006         rts-rtx-w32).
2008 2008-08-01  Robert Dewar  <dewar@adacore.com>
2010         * scng.adb (Error_Illegal_Wide_Character): Bump scan pointer
2012 2008-08-01  Doug Rupp  <rupp@adacore.com>
2014         * gnat_rm.texi: Document new mechanism Short_Descriptor.
2016         * types.ads (Mechanism_Type): Modify range for new Short_Descriptor
2017         mechanism values.
2019         * sem_prag.adb (Set_Mechanism_Value): Enhance for Short_Descriptor
2020         mechanism and Short_Descriptor mechanism values.
2022         * snames.adb (preset_names): Add short_descriptor entry.
2024         * snames.ads: Add Name_Short_Descriptor.
2026         * types.h: Add new By_Short_Descriptor mechanism values.
2028         * sem_mech.adb (Set_Mechanism_Value): Enhance for Short_Descriptor
2029         mechanism and Short_Descriptor mechanism values.
2031         * sem_mech.ads (Mechanism_Type): Add new By_Short_Descriptor mechanism
2032         values.
2033         (Descriptor_Codes): Modify range for new mechanism values.
2035         * treepr.adb (Print_Entity_Enfo): Handle new By_Short_Descriptor
2036         mechanism values.
2038         * gcc-interface/decl.c (gnat_to_gnu_entity): Handle By_Short_Descriptor.
2039         (gnat_to_gnu_param): Handle By_Short_Descriptor.
2041         * gcc-interface/gigi.h (build_vms_descriptor64): Remove prototype.
2042         (build_vms_descriptor32): New prototype.
2043         (fill_vms_descriptor): Remove unneeded gnat_actual parameter.
2045         * gcc-interface/trans.c (call_to_gnu): Removed unneeded gnat_actual
2046         argument in call fill_vms_descriptor.
2048         * gcc-interface/utils.c (build_vms_descriptor32): Renamed from
2049         build_vms_descriptor and enhanced to hande Short_Descriptor mechanism.
2050         (build_vms_descriptor): Renamed from build_vms_descriptor64.
2051         (convert_vms_descriptor32): New function.
2052         (convert_vms_descriptor64): New function.
2053         (convert_vms_descriptor): Rewrite to handle both 32bit and 64bit
2054         descriptors.
2056         * gcc-interface/utils2.c (fill_vms_descriptor): Revert previous changes,
2057         no longer needed.
2059 2008-08-01  Jose Ruiz  <ruiz@adacore.com>
2061         * adaint.c (__gnat_tmp_name): RTSS applications do not support tempnam
2062         nor tmpnam, so we always use c:\WINDOWS\Temp\gnat-XXXXXX as temporary
2063         name.
2065 2008-08-01  Jose Ruiz  <ruiz@adacore.com>
2067         * cstreams.c (__gnat_full_name): RTSS applications cannot ask for the
2068         current directory so only fully qualified names are allowed.
2070 2008-08-01  Robert Dewar  <dewar@adacore.com>
2072         * gnat_ugn.texi:
2073         Minor editing, remove uncomfortable use of semicolon
2075         * s-ststop.adb: Add some ??? comments
2077         * sem_ch10.adb: Minor reformatting
2079         * snames.ads:
2080         Minor comment fixes, some pragmas were not properly
2081         categorized in the comments, documentation change only
2083         * xref_lib.adb: Minor reformatting
2085         * sinput.adb: Minor reformatting
2087         * gnatchop.adb: Minor reformatting
2089         * sem_util.ads: Minor reformatting.
2091         * opt.ads: Minor documentation fix
2093         * scng.adb: Minor reformatting
2095         * prj-part.adb: Update comments
2097 2008-08-01  Ed Schonberg  <schonberg@adacore.com>
2099         * exp_disp.adb (Expand_Interface_Conversion): If the target type is a
2100         tagged synchronized type, use corresponding record type.
2102 2008-08-01  Doug Rupp  <rupp@adacore.com>
2104         * mlib-tgt-specific-vms-alpha.adb (Build_Dynamic_Library): Output a
2105         dummy transfer address for debugging.
2107         * mlib-tgt-specific-vms-ia64.adb (Build_Dynamic_Library): Likewise.
2109         * vms_data.ads: vms_data.ads: New qualfier /MACHINE_CODE_LISTING
2111 2008-07-31  Eric Botcazou  <ebotcazou@adacore.com>
2113         * gcc-interface/decl.c (gnat_to_gnu_entity): Fix formatting.
2114         * gcc-interface/utils.c (create_field_decl): Avoid superfluous work.
2116 2008-07-31  Pascal Obry  <obry@adacore.com>
2118         * prj-nmsc.adb: Keep Object and Exec directory casing.
2120 2008-07-31  Jose Ruiz  <ruiz@adacore.com>
2122         * system-rtx-rtss.ads
2123         Change the default stack size. It is important to set the commit part.
2125         * s-taprop-rtx.adb
2126         (Initialize): Get the clock resolution.
2127         (RT_Resolution): Return the clock resolution that is indicated by the
2128         system.
2130         * s-parame-vxworks.adb
2131         Document that this body is used for RTX in RTSS (kernel) mode.
2133         * gcc-interface/Makefile.in
2134         (LIBGNAT_TARGET_PAIRS for the rtx_rtss run time): Use the
2135         s-parame-vxworks.adb body in order to have reasonable stack sizes in
2136         RTX RTSS kernel mode. Virtual memory is not used in that case, so we
2137         cannot ask for too big values.
2139 2008-07-31  Robert Dewar  <dewar@adacore.com>
2141         * exp_aggr.adb: Minor reformatting
2143         * makeutl.adb: Minor reformatting
2145         * prj-env.adb: Minor reformatting
2147 2008-07-31  Hristian Kirtchev  <kirtchev@adacore.com>
2149         * exp_disp.adb (Prim_Op_Kind): Retrieve the full view when a private
2150         tagged type is completed by a concurrent type.
2152 2008-07-31  Gary Dismukes  <dismukes@adacore.com>
2154         * sem_aggr.adb:
2155         (Resolve_Record_Aggregate): Bypass error that a type without
2156         components must have a "null record" aggregate when compiling for Ada
2157         2005, since it's legal to give an aggregate of form (others => <>)
2158         for such a type.
2160 2008-07-31  Javier Miranda  <miranda@adacore.com>
2162         * sem_ch4.adb (Valid_First_Argument_Of): Complete its functionality to
2163         handle synchronized types. Required to handle well the object.operation
2164         notation applied to synchronized types.
2166 2008-07-31  Quentin Ochem  <ochem@adacore.com>
2168         * s-stausa.adb (Fill_Stack): Stack_Used_When_Filling is now stored
2169         anymore - just used internally.
2170         Added handling of very small tasks - when the theoretical size is
2171         already full at the point of the call.
2172         (Report_Result): Fixed result computation, Stack_Used_When_Filling does
2173         not need to be added to the result.
2175 2008-07-31  Hristian Kirtchev  <kirtchev@adacore.com>
2177         * sem_ch6.adb (Disambiguate_Spec): Continue the disambiguation if the
2178         corresponding spec is a primitive wrapper. Update comment.
2180 2008-07-31  Hristian Kirtchev  <kirtchev@adacore.com>
2182         * bindgen.adb Comment reformatting. Update the list of run-time globals.
2183         (Gen_Adainit_Ada): Add the declaration, import and value set for
2184         configuration flag Canonical_Streams.
2185         (Gen_Adainit_C): Add the declaration and initial value of external
2186         symbol __gl_canonical_streams.
2188         * init.c: Update the list of global values computed by the binder.
2190         * opt.ads: Add flag Canonical_Streams.
2192         * par-prag.adb (Prag): Include Pragma_Canonical_Streams to the list of
2193         semantically handled pragmas.
2195         * sem_prag.adb: Add an entry into enumeration type Sig_Flags.
2196         (Analyze_Pragma): Add case for pragma Canonical_Streams.
2198         * snames.adb: Add character value for name Canonical_Streams.
2200         * snames.ads:
2201         Add Name_Canonical_Streams to the list of configuration pragmas.
2202         Add Pragma_Canonical_Streams to enumeration type Pragma_Id.
2204         * snames.h: Add a definition for Pragma_Canonical_Streams.
2206         * s-ststop.adb:
2207         Add a flag and import to seize the value of external symbol
2208         __gl_canonical_streams. Update comment and initial value of constant
2209         Use_Block_IO.
2211         * gnat_rm.texi: Add section of pragma Canonical_Streams.
2213         * gnat_ugn.texi:
2214         Add pragma Canonical_Streams to the list of configuration pragmas.
2216 2008-07-31  Ed Schonberg  <schonberg@adacore.com>
2218         * sem_ch10.adb (Build_Unit_Name): If the unit name in a with_clause
2219         has the form A.B.C and B is a unit renaming, analyze its compilation
2220         unit and add a with_clause on A.b to the context.
2222 2008-07-31  Vincent Celier  <celier@adacore.com>
2224         * makeutl.adb (Executable_Prefix_Path): If Locate_Exec_On_Path fails,
2225         return the empty string, instead of raising Constraint_Error.
2227 2008-07-31  Gary Dismukes  <dismukes@adacore.com>
2229         * checks.ads (Apply_Accessibility_Check): Add parameter Insert_Node.
2231         * checks.adb (Apply_Accessibility_Check): Insert the check on
2232         Insert_Node.
2234         * exp_attr.adb:
2235         (Expand_N_Attribute_Refernce, Attribute_Access): Pass attribute node
2236         to new parameter Insert_Node on call to Apply_Accessibility_Check.
2237         Necessary to distinguish the insertion node because the dereferenced
2238         formal may come from a rename, but the check must be inserted in
2239         front of the attribute.
2241         * exp_ch4.adb:
2242         (Expand_N_Allocator): Pass actual for new Insert_Node parameter on
2243         call to Apply_Accessibility_Check.
2244         (Expand_N_Type_Conversion): Pass actual for new Insert_Node parameter
2245         on call to Apply_Accessibility_Check.
2246         Minor reformatting
2248 2008-07-31  Javier Miranda  <miranda@adacore.com>
2250         * sem_type.adb (Has_Compatible_Type): Complete support for synchronized
2251         types when the candidate type is a synchronized type.
2253         * sem_res.adb (Resolve_Actuals): Reorganize code handling synchronized
2254         types, and complete management of synchronized types adding missing
2255         code to handle formal that is a synchronized type.
2257         * sem_ch4.adb (Try_Primitive_Operation): Avoid testing attributes that
2258         are not available and cause the compiler to blowup. Found compiling
2259         test with switch -gnatc
2261         * sem_ch6.adb (Check_Synchronized_Overriding): Remove local subprogram
2262         Has_Correct_Formal_Mode plus code cleanup.
2264 2008-07-31  Bob Duff  <duff@adacore.com>
2266         * sinput.adb (Skip_Line_Terminators): Fix handling of LF/CR -- it was
2267         recognized as two end-of-lines, but it should be just one.
2269 2008-07-31  Thomas Quinot  <quinot@adacore.com>
2271         * exp_ch9.adb: Minor reformatting
2273         * tbuild.ads: Fix several occurrences of incorrectly referring to
2274         Name_Find as Find_Name.
2276 2008-07-31  Ed Schonberg  <schonberg@adacore.com>
2278         * exp_aggr.adb (Aggr_Size_OK): If the aggregate has a single component
2279         and the context is an object declaration with non-static bounds, treat
2280         the aggregate as non-static.
2282 2008-07-31  Vincent Celier  <celier@adacore.com>
2284         * prj-part.adb, prj-part.ads, prj.adb, prj.ads, prj-env.adb:
2285         Move back spec of Parse_Single_Project to body, as it is not called
2286         outside of package Prj.Part.
2287         (Project_Data): Remove components Linker_Name, Linker_Path and
2288         Minimum_Linker_Options as they are no longer set.
2289         Remove function There_Are_Ada_Sources from package Prj and move code
2290         in the only place it was used, in Prj.Env.Set_Ada_Paths.
2292 2008-07-31  Arnaud Charlet  <charlet@adacore.com>
2294         * mlib-utl.ads: Fix typo.
2296 2008-07-31  Robert Dewar  <dewar@adacore.com>
2298         * sem_ch12.adb: Minor reformatting
2300 2008-07-31  Sergey Rybin  <rybin@adacore.com>
2302         * gnat_ugn.texi: Change the description of the
2303         Overly_Nested_Control_Structures: now the rule always requires a
2304         positive parameter for '+R' option
2306 2008-07-31  Thomas Quinot  <quinot@adacore.com>
2308         * g-pehage.adb: Minor reformatting
2310 2008-07-31  Pascal Obry  <obry@adacore.com>
2312         * s-finimp.ads: Minor reformatting.
2314 2008-07-31  Vincent Celier  <celier@adacore.com>
2316         * s-regexp.ads: Minor comment fix
2318 2008-07-31  Arnaud Charlet  <charlet@adacore.com>
2320         * s-direio.adb (Reset): Replace pragma Unmodified by Warnings (Off),
2321         so that we can compile this file successfully with -gnatc.
2323 2008-07-31  Hristian Kirtchev  <kirtchev@adacore.com>
2325         * exp_attr.adb (Find_Stream_Subprogram): Check the base type instead
2326         of the type when looking for stream subprograms for type String,
2327         Wide_String and Wide_Wide_String.
2329         * s-ststop.adb: Change the initialization expression of constant
2330         Use_Block_IO.
2332 2008-07-31  Geert Bosch  <bosch@adacore.com>
2334         * arit64.c:
2335         New file implementing __gnat_mulv64 signed integer multiplication with
2336         overflow checking
2338         * fe.h (Backend_Overflow_Checks_On_Target): Define for use by Gigi
2340         * gcc-interface/gigi.h:
2341         (standard_types): Add ADT_mulv64_decl
2342         (mulv64_decl): Define subprogram declaration for __gnat_mulv64
2344         * gcc-interface/utils.c:
2345         (init_gigi_decls): Add initialization of mulv64_decl
2347         * gcc-interface/trans.c:
2348         (build_unary_op_trapv): New function
2349         (build_binary_op_trapv): New function
2350         (gnat_to_gnu): Use the above functions instead of
2351         build_{unary,binary}_op
2353         * gcc-interface/Makefile.in
2354         (LIBGNAT_SRCS): Add arit64.c
2355         (LIBGNAT_OBJS): Add arit64.o
2357 2008-07-31  Vincent Celier  <celier@adacore.com>
2359         * prj-nmsc.adb (Check_Library_Attributes): Check if Linker'Switches or
2360         Linker'Default_Switches are declared. Warn if they are declared.
2362 2008-07-31  Ed Schonberg  <schonberg@adacore.com>
2364         * exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration): Use
2365         Insert_Actions to place the pointer declaration in the code, rather
2366         than Insert_Before_And_Analyze, so that insertions of temporaries are
2367         kept in the proper order when transient scopes are present.
2370 2008-07-31  Robert Dewar  <dewar@adacore.com>
2372         * einfo.adb (Spec_PPC): Now defined for generic subprograms
2374         * einfo.ads (Spec_PPC): Now defined for generic subprograms
2376         * sem_prag.adb (Check_Precondition_Postcondition): Handle generic
2377         subprogram case
2379 2008-07-31  Vincent Celier  <celier@adacore.com>
2381         * s-os_lib.adb: Minor comment fix
2383 2008-07-31  Ed Schonberg  <schonberg@adacore.com>
2385         * sem_ch6.adb (Analyze_Generic_Subprogram_Body): After analysis,
2386         transfer pre/postconditions from generic copy to original tree, so that
2387         they will appear in each instance.
2388         (Process_PPCs): Do not transform postconditions into a procedure in a
2389         generic context, to prevent double expansion of check pragmas.
2391         * sem_attr.adb: In an instance, the prefix of the 'result attribute
2392         can be the renaming of the
2393         current instance, so check validity of the name accordingly.
2395 2008-07-31  Robert Dewar  <dewar@adacore.com>
2397         * mlib-utl.ads: Minor reformatting
2399 2008-07-31  Ed Schonberg  <schonberg@adacore.com>
2401         sem_attr.adb: 'Result can have an ambiguous prefix, and is resolved
2402         from context. This attribute must be usable in Ada95 mode.
2403         The attribute can appear in the body of a function marked
2404         Inline_Always, but in this case the postocondition is not enforced.
2406         sem_prag.adb (Check_Precondition_Postcondition): within the expansion
2407         of an inlined call pre- and postconditions are legal
2409 2008-07-31  Vincent Celier  <celier@adacore.com>
2411         * prj.adb, prj.ads, clean.adb, prj-nmsc.adb: Remove declarations that
2412         were for gprmake only
2414 2008-07-31  Robert Dewar  <dewar@adacore.com>
2416         * gnat_ugn.texi: Update -gnatN documentation.
2418         * gnat_rm.texi: Add note about pre/postcondition
2419         pragmas not checked in conjunction with front-end inlining.
2421 2008-07-31  Robert Dewar  <dewar@adacore.com>
2423         * g-pehage.adb, g-pehage.ads: Minor reformatting
2425 2008-07-31  Arnaud Charlet  <charlet@adacore.com>
2427         * mlib-utl.ads, prj-makr.ads: Add comments.
2429 2008-07-30  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
2431         * gcc-interface/Makefile.in (EXTRA_GNATRTL_NONTASKING_OBJS)
2432         [WINDOWS]: Add s-winext.o.
2434 2008-07-30  Eric Botcazou  <ebotcazou@adacore.com>
2436         PR ada/36554
2437         * back_end.adb (Call_Back_End): Pass Standard_Boolean to gigi.
2438         * gcc-interface/gigi.h (gigi): Take new standard_boolean parameter.
2439         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Enumeration_Subtype>:
2440         Set precision to 1 for subtype of BOOLEAN_TYPE.
2441         (set_rm_size): Set TYPE_RM_SIZE_NUM for BOOLEAN_TYPE.
2442         (make_type_from_size): Deal with BOOLEAN_TYPE.
2443         * gcc-interface/misc.c (gnat_print_type): Likewise.
2444         * gcc-interface/trans.c (gigi): Take new standard_boolean parameter.
2445         Set boolean_type_node as its translation in the table, as well
2446         as boolean_false_node for False and boolean_true_node for True.
2447         * gcc-interface/utils.c (gnat_init_decl_processing): Create custom
2448         8-bit boolean_type_node and set its TYPE_RM_SIZE_NUM.
2449         (create_param_decl): Deal with BOOLEAN_TYPE.
2450         (build_vms_descriptor): Likewise.
2451         (build_vms_descriptor64): Likewise.
2452         (convert): Deal with BOOLEAN_TYPE like with ENUMERAL_TYPE.
2454 2008-07-30  Robert Dewar  <dewar@adacore.com>
2456         * exp_ch9.adb: Minor reformatting
2458         * exp_util.ads (Find_Prim_Op): Document that Program_Error is raised
2459         if no primitive operation is found.
2461         * exp_util.adb: (Find_Prim_Op): Add comments for previous change
2463         * sem_ch8.adb: Minor reformatting
2465 2008-07-30  Laurent Pautet  <pautet@adacore.com>
2467         * g-pehage.adb:
2468         Remove a limitation on the length of the words handled by the minimal
2469         perfect hash function generator.
2471         * g-pehage.ads:
2472         Detail the use of subprograms Insert, Initialize, Compute and Finalize.
2473         Fix some typos.
2475 2008-07-30  Robert Dewar  <dewar@adacore.com>
2477         * gnatlink.adb: Minor reformatting
2479 2008-07-30  Thomas Quinot  <quinot@adacore.com>
2481         * rtsfind.adb (Check_RPC): Check version consistency even when not
2482         generating RCI stubs. Provide more detailed error message in case of
2483         mismatch.
2485 2008-07-30  Ed Schonberg  <schonberg@adacore.com>
2487         * sem_ch8.adb (Analyze_Subprogram_Renaming): When renaming an attribute
2488         as a actual in an instance, check for a missing attribute to prevent
2489         program_error on an illegal program.
2491         * exp_util.adb (Find_Prim_Op): Rather than Assert (False), raise program
2492         error if primitive is not found, so that exception can be handled
2493         elsewhere on illegal programs.
2495 2008-07-30  Robert Dewar  <dewar@adacore.com>
2497         * uintp.adb (UI_GCD): Fix potential overflow
2499 2008-07-30  Hristian Kirtchev  <kirtchev@adacore.com>
2501         * einfo.adb: Flag245 is now used.
2502         (Is_Primitive_Wrapper, Set_Is_Primitive_Wrapper): Relax the assertion
2503         check to include functions.
2504         (Is_Private_Primitive, Set_Is_Private_Primitive): New subprograms.
2505         (Wrapped_Entity, Set_Wrapped_Entity): Relax the assertion check to
2506         include functions.
2507         (Write_Entity_Flags): Move flag Is_Primitive, add Is_Private_Primitive
2508         to the list of displayed flags.
2510         * einfo.ads: Update comment on the usage of Is_Primitive_Wrapper and
2511         Wrapped_Entity. These two flags are now present in functions.
2512         New flag Is_Private_Primitive.
2513         (Is_Private_Primitive, Set_Is_Private_Primitive): New subprograms.
2515         * exp_ch9.adb:
2516         (Build_Wrapper_Bodies): New subprogram.
2517         (Build_Wrapper_Body): The spec and body have been moved to in
2518         Build_Wrapper_ Bodies. Code cleanup.
2519         (Build_Wrapper_Spec): Moved to the spec of Exp_Ch9. Code cleanup.
2520         Wrappers are now generated for primitives declared between the private
2521         and full view of a concurrent type that implements an interface.
2522         (Build_Wrapper_Specs): New subprogram.
2523         (Expand_N_Protected_Body): Code reformatting. Replace the wrapper body
2524         creation mechanism with a call to Build_Wrapper_Bodies.
2525         (Expand_N_Protected_Type_Declaration): Code reformatting. Replace the
2526         wrapper spec creation mechanism with a call to Build_Wrapper_Specs.
2527         (Expand_N_Task_Body): Replace the wrapper body creation
2528         mechanism with a call to Build_Wrapper_Bodies.
2529         (Expand_N_Task_Type_Declaration): Replace the wrapper spec
2530         creation mechanism with a call to Build_Wrapper_Specs.
2531         (Is_Private_Primitive_Subprogram): New subprogram.
2532         (Overriding_Possible): Code cleanup.
2533         (Replicate_Entry_Formals): Renamed to Replicate_Formals, code cleanup.
2535         * exp_ch9.ads (Build_Wrapper_Spec): Moved from the body of Exp_Ch9.
2537         * sem_ch3.adb: Add with and use clause for Exp_Ch9.
2538         (Process_Full_View): Build wrapper specs for all primitives
2539         that belong to a private view completed by a concurrent type
2540         implementing an interface.
2542         * sem_ch6.adb (Analyze_Subprogram_Body): When the current subprogram
2543         is a primitive of a
2544         concurrent type with a private view that implements an interface, try to
2545         find the proper spec.
2546         (Analyze_Subprogram_Declaration): Mark a subprogram as a private
2547         primitive if the type of its first parameter is a non-generic tagged
2548         private type.
2549         (Analyze_Subprogram_Specification): Code reformatting.
2550         (Disambiguate_Spec): New routine.
2551         (Find_Corresponding_Spec): Add a flag to controll the output of errors.
2552         (Is_Private_Concurrent_Primitive): New routine.
2554         * sem_ch6.ads:
2555         (Find_Corresponding_Spec): Add a formal to control the output of errors.
2557 2008-07-30  Doug Rupp  <rupp@adacore.com>
2559         * gigi.h (build_vms_descriptor64): New function prototype.
2560         (fill_vms_descriptor): Modified function prototype.
2562         * utils.c (build_vms_descriptor64): New function.
2564         * utils2.c (fill_vms_descriptor): Fix handling on 32bit systems.
2566         * trans.c (call_to_gnu): Call fill_vms_descriptor with new third
2567         argument.
2569         * decl.c (gnat_to_gnu_tree): For By_Descriptor mech, build both a
2570         64bit and 32bit descriptor and save the 64bit version as an alternate
2571         TREE_TYPE in the parameter.
2572         (make_type_from_size) <RECORD_TYPE>: Use the appropriate mode for the
2573         thin pointer.
2575         * ada-tree.h (DECL_PARM_ALT, SET_DECL_PARM_ALT): New macros.
2577 2008-07-30  Robert Dewar  <dewar@adacore.com>
2579         * make.adb: Minor reformatting
2581         * mlib-utl.adb: Minor reformatting
2583         * osint.ads: Minor reformatting
2585 2008-07-30  Jose Ruiz  <ruiz@adacore.com>
2587         * adaint.c
2588         (__gnat_file_exists): Do not use __gnat_stat for RTX.
2589         (__main for RTX in RTSS mode): Create this dummy procedure symbol to
2590         avoid the use of this symbol from libgcc.a in RTX kernel mode.
2592         * cio.c
2593         (put_int, put_int_stderr, put_char, put_char_stderr): For RTX we call
2594         the function RtPrintf for console output.
2596         * argv.c Do not use the environ variable for RTX.
2598         * gnatlink.adb (gnatlink): The part that handles the --RTS option has
2599         been moved before the call to Osint.Add_Default_Search_Dirs in order
2600         to take into account the flags in system.ads (RTX_RTSS_Kernel_Module)
2601         from the appropriate run time.
2603         * targparm.ads
2604         (RTX_RTSS_Kernel_Module_On_Target): Add this flag that is set to True if
2605         target is a RTSS module for RTX.
2607         * targparm.adb (Targparm_Tags, RTX_Str, Targparm_Str): Add tag RTX for
2608         RTX_RTSS_Kernel_Module
2609         (Get_Target_Parameters): Add processing of RTX_RTSS_Kernel_Module flag.
2611         * gcc-interface/Makefile.in (LIBGNAT_TARGET_PAIRS for RTX): Use gcc
2612         exception handling mechanism for Windows and RTX in Win32 mode, but
2613         not for RTX in kernel mode (RTSS).
2614         (LIBGNAT_SRCS): Remove ada.h
2616 2008-07-30  Paolo Bonzini  <bonzini@gnu.org>
2618         * gcc-interface/Make-lang.in (ALL_ADAFLAGS): Remove X_ADAFLAGS and
2619         T_ADAFLAGS, replace ALL_ADA_CFLAGS with ADA_CFLAGS.
2620         (ALL_ADA_CFLAGS): Remove, replace throughout with ADA_CFLAGS.
2621         * gcc-interface/Makefile.in (XCFLAGS, X_CFLAGS, X_CPPFLAGS, T_CPPFLAGS,
2622         X_ADA_CFLAGS, T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS, ADA_CFLAGS,
2623         ALL_ADA_CFLAGS): Remove.
2624         (ALL_ADAFLAGS, MOST_ADAFLAGS): Remove X_ADAFLAGS and T_ADAFLAGS,
2625         replace ALL_ADA_CFLAGS with ADA_CFLAGS.
2626         (GCC_CFLAGS): Remove X_CFLAGS.
2627         (LOOSE_CFLAGS): Remove X_CFLAGS and XCFLAGS.
2628         (ALL_CPPFLAGS): Remove X_CPPFLAGS and T_CPPFLAGS.
2629         (ADA_CFLAGS): Substitute.
2631 2008-07-30  Laurent Guerby  <laurent@guerby.net>
2633         PR ada/5911
2634         * gcc-interface/Makefile.in (MULTISUBDIR, RTSDIR): New variables.
2635         Pass MULTISUBDIR to recursive make. Use $(RTSDIR) instead of rts.
2636         Replace stamp-gnatlib* by stamp-gnatlib*-rts.
2637         * gcc-interface/Make-lang.in: Replace stamp-gnatlib2
2638         by stamp-gnatlib2-rts.
2640 2008-07-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2642         PR documentation/15479
2643         * gnat-style.texi: Remove AdaCore copyright statement and GPL
2644         statement for GNAT.  Add @copying stanza, use it.  Update to
2645         GFDL 1.2.  Do not list GFDL as Invariant Section, do not list
2646         title as Front-Cover Text.
2647         * gnat_rm.texi: Likewise.
2648         * gnat_ugn.texi: Likewise.
2650 2008-07-29  Jan Hubicka  <jh@suse.cz>
2652         * trans.c (process_inlined_subprograms): Remove tree_really_inline
2653         check.
2655 2008-07-29  Arnaud Charlet  <charlet@adacore.com>
2657         * gcc-interface: New directory.
2659         * ada-tree.def, cuintp.c, gigi.h, Makefile.in, targtyps.c, ada.h,
2660         utils.c, ada-tree.h, decl.c, lang.opt, Make-lang.in, trans.c,
2661         config-lang.in, deftarg.c, lang-specs.h, misc.c, utils2.c: Moved
2662         to gcc-interface subdirectory.
2664 2008-07-29  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
2666         * Makefile.in (EXTRA_GNATRTL_NONTASKING_OBJS): Remove extra s-win32.o.
2668 2008-07-28  Jan Hubicka  <jh@suse.cz>
2670         * misc.c (gnat_post_options): Do not set flag_no_inline.
2672 2008-07-28  Richard Guenther  <rguenther@suse.de>
2674         Merge from gimple-tuples-branch.
2676         2008-07-22  Olivier Hainque  <hainque@adacore.com>
2678         * gigi.h (end_subprog_body): New ELAB_P argument, saying if
2679         this is called for an elab proc to be discarded if empty.
2680         * utils.c (end_subprog_body): Honor ELAB_P.
2681         (build_function_stub): Adjust call to end_subprog_body.
2682         * trans.c (Subprogram_Body_to_gnu): Likewise.
2683         (gigi): Reorganize processing of elab procs to prevent
2684         gimplifying twice, using the new end_subprog_body argument.
2686         2008-07-19  Richard Guenther  <rguenther@suse.de>
2688         * Make-lang.in (trans.o): Add tree-iterator.h dependency.
2689         (utils.o): Likewise.
2690         * trans.c: Include tree-iterator.h.
2691         (gnat_gimplify_expr): Adjust prototype.  Fix typo.
2692         (gnat_gimplify_stmt): Use SET_EXPR_LOCATION.
2693         (set_expr_location_from_node): Likewise.
2694         (gigi): Tuplify.
2695         * ada-tree.h (union lang_tree_node): Use TREE_CHAIN instead
2696         of GENERIC_NEXT.
2697         * utils.c: Include tree-iterator.h.
2698         * gigi.h (gnat_gimplify_expr): Adjust prototype.
2700         2008-07-18  Aldy Hernandez  <aldyh@redhat.com>
2702         * trans.c: Include gimple.h instead of tree-gimple.h.
2703         * utils.c: Same.
2705         2008-07-14  Aldy Hernandez  <aldyh@redhat.com>
2707         * trans.c (gnat_gimplify_expr): Use gimplify_assign.
2709 2008-07-25  Jan Hubicka  <jh@suse.cz>
2711         * utils.c (end_subprog_body): Remove inline trees check.
2712         * misc.c (gnat_post_options): Do not set flag_inline_trees.
2714 2008-07-25  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2716         * raise-gcc.c: Move tsystem.h before tm.h.
2718 2008-07-20  Arnaud Charlet  <charlet@adacore.com>
2720         * gnathtml.pl: New file.
2722 2008-07-19  Olivier Hainque  <hainque@adacore.com>
2724         * targtyps.c (get_target_default_allocator_alignment): Use
2725         MALLOC_ABI_ALIGNMENT.
2727 2008-07-17  Olivier Hainque  <hainque@adacore.com>
2729         * adaint.c (__MINGW32__ section): Include ctype.h and define
2730         a fallback ISALPHA if IN_RTS.
2731         (__gnat_is_absolute_path): Use ISALPHA instead of isalpha.
2733 2008-07-17  Olivier Hainque  <hainque@adacore.com>
2735         * utils.c (create_var_decl_1): Relax expectations on the PUBLIC_FLAG
2736         argument, to apply to references in addition to definitions.  Prevent
2737         setting TREE_STATIC on externals.
2738         (gnat_pushdecl): Always clear DECL_CONTEXT on public externals.
2740 2008-07-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2742         PR documentation/15479
2743         * gnat_ugn.texi (@ovar): New macro, from autoconf.texi.
2744         Replace backets around optional parameters with @ovar
2745         where possible, use @r{[}, @r{]} otherwise.
2746         Replace some @r, @i, and @emph with @var where appropriate.
2748 2008-07-02  Eric Botcazou  <ebotcazou@adacore.com>
2750         * decl.c (make_type_from_size) <INTEGER_TYPE>: Fix typo and tidy up.
2752 2008-06-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2754         * ada-tree.h (SET_TYPE_LANG_SPECIFIC, SET_DECL_LANG_SPECIFIC): Fix
2755         -Wc++-compat warnings.
2756         * adaint.c (__gnat_locate_regular_file, __gnat_locate_exec,
2757         __gnat_locate_exec_on_path): Likewise.
2758         * decl.c (annotate_value): Likewise.
2759         * misc.c (gnat_handle_option): Likewise.
2760         * trans.c (gnat_to_gnu, extract_encoding, decode_name,
2761         post_error_ne_tree): Likewise.
2763 2008-06-27  Eric Botcazou  <ebotcazou@adacore.com>
2765         * utils.c (convert) <CONSTRUCTOR>: When converting it to a packable
2766         version of its type, attempt to first convert its elements.
2768 2008-06-26  Chris Proctor  <chrisp_42@bigpond.com>
2770         * Makefile.in: Fix *86 kfreebsd target specific pairs.
2772 2008-06-25  Samuel Tardieu  <sam@rfc1149.net>
2774         * Makefile.in: Use mlib-tgt-specific-linux.adb for sh4 as well.
2776 2008-06-24  Eric Botcazou  <ebotcazou@adacore.com>
2778         * utils2.c (known_alignment): Derive the alignment from pointed-to
2779         types only if it is otherwise unknown.
2780         <INTEGER_CST>: Tidy.
2781         <MULT_EXPR>: Likewise.
2782         <POINTER_PLUS_EXPR>: If the alignment of the offset is unknown, use
2783         that of the base.
2785 2008-06-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2787         PR ada/36573
2788         * s-osinte-hpux-dce.ads (SA_ONSTACK): Define.
2790 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2792         * gnat_rm.texi (Implementation Defined Characteristics)
2793         (Standard Library Routines): Use @smallexample for indented
2794         text.  Drop Indentation outside examples.
2795         * gnat_ugn.texi: Likewise.
2797 2008-06-13  Olivier Hainque  <hainque@adacore.com>
2799         * decl.c (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): Define to 0
2800         if undefined.
2801         (gnat_to_gnu_entity) <case E_Function/Procedure>: Request stack
2802         realignment with force_align_arg_pointer attribute on foreign
2803         convention subprograms if FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN.
2805 2008-06-13  Olivier Hainque  <hainque@adacore.com>
2807         * utils.c (rest_of_record_type_compilation): When computing
2808         encodings for the components of a variable size type, early
2809         strip conversions on the current position expression to make
2810         sure it's shape is visible.  Use remove_conversions for this
2811         purpose.
2813 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
2815         * decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: In the case of a
2816         constrained subtype of a discriminated type, discard the fields that
2817         are beyond its limits according to its size.
2819 2008-06-10  Olivier Hainque  <hainque@adacore.com>
2821         * utils.c (create_subprog_decl): If this is for the 'main' entry
2822         point according to the asm name, redirect main_identifier_node.
2824 2008-06-09  Eric Botcazou  <ebotcazou@adacore.com>
2826         * decl.c (components_to_record): Adjust the packedness for the
2827         qualified union as well.
2829 2008-06-09  Arnaud Charlet  <charlet@adacore.com>
2831         * Make-lang.in: Use -gnatwns instead of -gnatws to make sytyle
2832         checks non fatal.
2834 2008-06-07  Samuel Tardieu  <sam@rfc1149.net>
2836         * sem_res.adb (Large_Storage_Type): A type is large if it
2837         requires as many bits as Positive to store its values and its
2838         bounds are known at compile time.
2839         * sem_ch13.adb (Minimum_Size): Note that this function returns
2840         0 if the size is not known at compile time.
2842 2008-06-06  Nicolas Setton  <setton@adacore.com>
2843             Olivier Hainque  <hainque@adacore.com>
2845         * ada-tree.h (DECL_PARALLEL_TYPE): New language specific
2846         attribute, parallel descriptive type attached to another
2847         type for debug info generation purposes.
2848         * utils.c (add_parallel_type): New function, register
2849         parallel type to be attached to a type.
2850         (get_parallel_type): New function, fetch a registered
2851         parallel type, if any.
2852         (rest_of_record_type_compilation): Register the parallel
2853         type we make for variable size records.
2854         * gigi.h (add_parallel_type, get_parallel_type): Declare.
2855         * decl.c (gnat_to_gnu_entity, maybe_pad_type): Register the
2856         parallel debug types we make.
2857         * trans.c (extract_encoding, decode_name): New functions.
2858         (gigi): If the DWARF attribute extensions are available, setup
2859         to use them.
2860         * lang.opt: Register language specific processing request
2861         for -gdwarf+.
2862         * misc.c (gnat_dwarf_extensions): New global variable. How much
2863         do we want of our DWARF extensions. 0 by default.
2864         (gnat_handle_option) <OPT_gdwarf_>: Increment gnat_dwarf_extensions.
2865         (gnat_post_options): Map gnat_dwarf_extensions to the
2866         commonuse_gnu_debug_info_extensions for later processing.
2868 2008-06-04  Samuel Tardieu  <sam@rfc1149.net>
2870         * einfo.ads, einfo.adb: Remove unused flag Function_Returns_With_DSP.
2872 2008-06-03  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2874         * Makefile.in (common_tools): Fix typos in $(exeext) extension.
2875         * gnat_ugn.texi (Style Checking)
2876         (Adding the Results of Compiler Checks to gnatcheck Output)
2877         (Example of Binder Output File): Fix typos.
2878         * ali.ads, einfo.ads, exp_ch4.adb, exp_ch6.adb,
2879         exp_dbug.ads, exp_dist.adb, exp_smem.adb, g-socket.ads,
2880         s-osinte-rtems.ads, s-shasto.ads, s-stausa.adb,
2881         s-stausa.ads, sem_cat.adb, sem_ch12.adb, sem_ch3.adb,
2882         sem_ch4.adb, sem_ch6.adb, sem_ch8.adb, sem_util.ads,
2883         sinfo.ads, utils.c: Fix typos in comments.
2884         * sem_ch6.adb, vms_data.ads: Fix typos in strings.
2886 2008-05-29  Thomas Quinot  <quinot@adacore.com>
2888         * sem_eval.adb: Minor reformatting
2890 2008-05-29  Ed Schonberg  <schonberg@adacore.com>
2892         * sem_ch6.adb (Analyze_Subprogram_Specification): if the return type
2893         is abstract, do not apply abstractness check on subprogram if this is
2894         a renaming declaration.
2896 2008-05-29  Arnaud Charlet  <charlet@adacore.com>
2898         PR ada/864
2899         * osint.ads, osint.adb (Program_Name): New parameter "Prog" to
2900         allow recognition of program suffix in addition to prefix.
2902         * gnatchop.adb (Locate_Executable): Add support for prefix.
2904         * make.adb, gnatcmd.adb, gnatlink.adb, prj-makr.adb,
2905         mlib-utl.adb: Adjust calls to Program_Name.
2907 2008-05-29  Robert Dewar  <dewar@adacore.com>
2909         * sem_ch3.adb: Minor reformatting
2910         * sem_prag.adb: Minor reformatting
2911         * sem_res.adb: Minor reformatting
2912         * sinput-p.ads: Minor reformatting
2914 2008-05-29  Javier Miranda  <miranda@adacore.com>
2916         * sem_util.adb:
2917         (Abstract_Interface_List): Add missing support for full type-declaration
2918         associated with synchronized types.
2920 2008-05-29  Robert Dewar  <dewar@adacore.com>
2922         * sem_eval.adb (Is_Same_Value): Take care of several more cases
2924 2008-05-28  Ed Schonberg  <schonberg@adacore.com>
2926         * sem_ch5.adb (Analyze_Assignment): If the name is of a local anonymous
2927         access type, wrap the expression in a conversion to force an
2928         accessibility check.
2930         * sem_aggr.adb (Aggegate_Constraint_Checks): Apply conversion to force
2931         accessibility checks even when expansion is disabled in order to
2932         generate messages in the presence of previous errors or in
2933         semantics-only mode.
2935 2008-05-28  Eric Botcazou  <ebotcazou@adacore.com>
2937         * system-lynxos-ppc.ads (Always_Compatible_Rep): Set to False.
2938         * system-lynxos-x86.ads (Always_Compatible_Rep): Set to False.
2940 2008-05-28  Vincent Celier  <celier@adacore.com>
2942         PR ada/34446
2943         * gnat_ugn.texi: Document restriction introduced on 2007-04-20 in
2944         preprocessing expressions
2946 2008-05-28  Vincent Celier  <celier@adacore.com>
2948         * sinput-p.adb (Source_File_Is_Subunit): Allow special character used
2949         for preprocessing
2951         * sinput-p.ads: Minor comment update and reformatting
2953 2008-05-28  Ed Schonberg  <schonberg@adacore.com>
2955         * sem_res.adb (Valid_Conversion): An anonymous access_to_subprogram
2956         type has a deeper level than any master only when it is the type of an
2957         access parameter.
2959 2008-05-28  Javier Miranda  <miranda@adacore.com>
2961         * sem_ch3.adb (Derive_Progenitor_Subprograms): Add documentation.
2963 2008-05-28  Javier Miranda  <miranda@adacore.com>
2965         * sem_util.ads (Find_Overridden_Synchronized_Primitive): Removed.
2966         * sem_util.adb (Find_Overridden_Synchronized_Primitive): Removed.
2967         * sem_ch6.adb (Check_Synchronized_Overriding): Remove one formal.
2968         Add code that was previously located in
2969         Find_Overridden_Synchronized_Primitive because it is only used here.
2971 2008-05-28  Sergey Rybin  <rybin@adacore.com>
2973         * sem_prag.adb (Process_Extended_Import_Export_Subprogram_Pragma): Set
2974         Entity field for formal_parameter_NAME in MECHANISM_ASSOCIATION.
2976 2008-05-28  Robert Dewar  <dewar@adacore.com>
2978         * restrict.ads:
2979         Add missing restrictions, and properly label all GNAT defined ones
2981         * rtsfind.ads:
2982         Add entry for Ada_Real_Time.Timing_Events.Timing_Event
2983         Add entry for Ada.Task_Termination.Set_Specific_Handler
2984         Add entry for Ada.Task_Termination.Specific_Handler
2986         * s-rident.ads:
2987         Add missing restrictions and properly mark all gnat defined ones
2989         * sem_ch3.adb:
2990         (Analyze_Object_Declaration): Check No_Local_Timing_Events restriction
2992         * sem_res.adb:
2993         (Resolve_Call): Check violation of No_Specific_Termination_Handlers
2995         * gnat_rm.texi: Add missing restrictions, and properly label all
2996         GNAT defined ones
2998 2008-05-28  Robert Dewar  <dewar@adacore.com>
3000         * restrict.adb:
3001         (Check_Restriction): violation of restriction No_Finalization is
3002         treated as a serious error to stop expansion
3004 2008-05-28  Robert Dewar  <dewar@adacore.com>
3006         * exp_util.adb: Minor reformatting
3007         * exp_util.ads: Minor reformatting.
3009 2008-05-28  Arnaud Charlet  <charlet@adacore.com>
3011         * Make-lang.in: Remove gprmake.
3013         * gprmake.adb, makegpr.ads, makegpr.adb: Removed.
3015 2008-05-28  Ed Schonberg  <schonberg@adacore.com>
3017         * sem_ch3.adb (Diagnose_Interface): Cleanup error messages involving
3018         improper progenitor names, and avoid cascaded errors.
3020 2008-05-28  Robert Dewar  <dewar@adacore.com>
3022         * gnat_rm.texi: Add note on Old giving warning when applied to constant
3024         * sem_attr.adb (Analyze_Attribute, case Old): Give warning if prefix is
3025         a constant
3027 2008-05-28  Robert Dewar  <dewar@adacore.com>
3029         * exp_fixd.adb (Build_Multiply): Correct one-off error in computing
3030         size
3032 2008-05-28  Robert Dewar  <dewar@adacore.com>
3034         * exp_ch5.adb:
3035         (Expand_Simple_Function_Return): Copy unaligned result into temporary
3037 2008-05-28  Javier Miranda  <miranda@adacore.com>
3039         * sem_ch3.adb (Derive_Progenitor_Primitives): Add missing support
3040         for user-defined predefined primitives.
3042         * sem_util.adb (Matches_Prefixed_View_Profile): Ditto.
3043         (Find_Overridden_Synchronized_Primitive): Ditto.
3045         * sem_ch6.adb (Check_Synchronized_Overriding): Ditto.
3047 2008-05-27  Arnaud Charlet  <charlet@adacore.com>
3049         * a-ststio.adb, s-direio.adb:
3050         Further code clean up of previous change.
3051         Update comments.
3053 2008-05-27  Vincent Celier  <celier@adacore.com>
3055         * prj-nmsc.adb: Minor reformatting
3057 2008-05-27  Bob Duff  <duff@adacore.com>
3059         * sem_ch3.adb (Build_Incomplete_Type_Declaration): In the case of an
3060         untagged private type with a tagged full type, where the full type has
3061         a self reference, create the corresponding class-wide type early, in
3062         case the self reference is "access T'Class".
3064 2008-05-27  Ed Schonberg  <schonberg@adacore.com>
3066         * exp_aggr.adb (Build_Array_Aggr_Code): If component type includes
3067         tasks and context is an object declaration. create master entity before
3068         expansion.
3070 2008-05-27  Robert Dewar  <dewar@adacore.com>
3072         * mlib-prj.adb: Minor reformatting
3074         * prj-part.adb: Minor reformatting
3076         * prj.ads: Minor reformatting
3078         * exp_ch3.adb: Minor reformatting.
3080         * sem_ch3.ads: Minor reformatting
3082         * sem_eval.adb: Minor reformatting
3084 2008-05-27  Vincent Celier  <celier@adacore.com>
3086         * gnatcmd.adb:
3087         <prefix>-gnat stack spawns gnatstack, not <prefix>-gnatstack
3089 2008-05-27  Ed Schonberg  <schonberg@adacore.com>
3091         * exp_aggr.adb (Expand_Array_Aggregate): If the aggregate contains
3092         tasks, create an activation chain now, before the expansion into
3093         assignments and build-in-place calls that require the presence of an
3094         activation chain.
3095         (Backend_Processing_Possible): If the component type is inherently
3096         limited, the aggregate must be expanded into individual built-in-place
3097         assignments.
3099         * sem_ch6.adb (Build_Extra_Formals): Use underlying type of result to
3100         determine whether an allocation extra parameter must be built, to
3101         handle case of a private type whose full type is a discriminated type
3102         with defaults.
3104 2008-05-27  Bob Duff  <duff@adacore.com>
3106         * gnat_rm.texi:
3107         Document the new behavior regarding trampolines.
3109 2008-05-27  Arnaud Charlet  <charlet@adacore.com>
3111         * a-direio.adb, a-sequio.adb: Replace address clause by
3112         unrestricted_access, simpler and compatible with .NET.
3114 2008-05-27  Vincent Celier  <celier@adacore.com>
3116         * prj-part.adb:
3117         (Project_Path_Name_Of.Try_Path): Do not use Locate_Regular_File to find
3118         a project file, so that symbolic links are not resolved.
3120 2008-05-27  Arnaud Charlet  <charlet@adacore.com>
3122         * a-ztexio.adb, a-textio.adb, a-witeio.adb, s-direio.adb:
3123         Replace heavy address clause by 'Unrestricted_Access, cleaner and more
3124         portable across GNAT targets, since this kind of address clause is not
3125         supported by VM back-ends (.NET/JGNAT).
3127 2008-05-27  Arnaud Charlet  <charlet@adacore.com>
3129         * bindgen.adb: Update comments.
3131         * s-tasinf-mingw.adb: Add "with" of System.OS_Interface
3133 2008-05-27  Vincent Celier  <celier@adacore.com>
3135         * gnatcmd.adb, prj-proc.adb, make.adb, mlib-prj.adb, prj.adb,
3136         prj.ads, makegpr.adb, makeutl.adb, clean.adb, prj-nmsc.adb,
3137         mlib-tgt.adb, prj-env.adb, prj-env.ads:
3138         (Path_Information): New record type
3139         Use component of type Path_Information when there are two paths, one in
3140         canonical format and one in display format.
3141         Update the project manager to these new components.
3143 2008-05-27  Robert Dewar  <dewar@adacore.com>
3145         * makeutl.adb: Minor reformatting
3146         * prj-nmsc.adb: Minor reformatting
3147         * s-stausa.adb: Minor reformatting
3148         * s-stausa.ads: Minor reformatting
3149         * sem_ch6.adb: Minor reformatting
3151 2008-05-27  Thomas Quinot  <quinot@adacore.com>
3153         * sem_res.adb: Minor comment fixes
3155 2008-05-27  Thomas Quinot  <quinot@adacore.com>
3157         * makeutl.adb: Minor code reorganization
3159         * exp_aggr.adb: Add ??? comment
3160         Fix typo
3162         * exp_ch6.adb: Minor reformatting
3164 2008-05-27  Quentin Ochem  <ochem@adacore.com>
3166         * s-stausa.adb (Initialize): Updated result initialization, and
3167         initialization of environment stack.
3168         (Fill_Stack): Improved computation of the pattern zone, taking into
3169         account already filled at the calling point.
3170         (Get_Usage_Range): Now uses Min_Measure and Max_Measure instead of
3171         Measure and Overflow_Guard.
3172         (Report_Result): Fixed computation of the result using new fields of
3173         Stack_Analyzer.
3175         * s-stausa.ads (Initialize_Analyzer): Replaced Size / Overflow_Guard
3176         params by more explicit Stack_Size / Max_Pattern_Size params.
3177         (Stack_Analyzer): Added distinct Stack_Size & Pattern_Size fields.
3178         Added Stack_Used_When_Filling field.
3179         (Task_Result): Replaced Measure / Overflow_Guard by more explicit
3180         Min_Measure and Max_Measure fields.
3182         * s-tassta.adb (Task_Wrapper): Updated call to Initialize_Analyzer.
3184 2008-05-27  Vincent Celier  <celier@adacore.com>
3186         * prj-nmsc.adb:
3187         (Check_File): Make sure that a unit that replaces the same unit in a
3188          project being extended is properly processed.
3190 2008-05-27  Ed Schonberg  <schonberg@adacore.com>
3192         * sem_ch3.adb:
3193         (Get_Discr_Value): Remove obsolete code that failed to find the value
3194         of a discriminant for an inherited task component appearing in a type
3195         extension.
3197 2008-05-27  Thomas Quinot  <quinot@adacore.com>
3199         (System.File_IO.{Close, Delete, Reset}):
3200         Change File parameter from "in out AFCB_Ptr" to "access AFCB_Ptr".
3202         (Ada.*_IO.{Close, Delete, Reset, Set_Mode}):
3203         Pass File parameter by reference.
3205 2008-05-27  Vincent Celier  <celier@adacore.com>
3207         * prj-nmsc.adb:
3208         (Process_Sources_In_Multi_Language_Mode): Check that there are not two
3209         sources of the same project that have the same object file name.
3210         (Find_Explicit_Sources): Always remove a source exception that was not
3211         found.
3213 2008-05-27  Thomas Quinot  <quinot@adacore.com>
3215         * sem_ch3.adb: Minor reformatting
3217 2008-05-27  Ed Schonberg  <schonberg@adacore.com>
3219         * sem_ch6.adb:
3220         (Is_Interface_Conformant): Handle properly a primitive operation that
3221         overrides an interface function with a controlling access result.
3222         (Type_Conformance): If Skip_Controlling_Formals is true, when matching
3223         inherited and overriding operations, omit as well the conformance check
3224         on result types, to prevent spurious errors.
3226 2008-05-27  Vincent Celier  <celier@adacore.com>
3228         * makeutl.ads, makeutl.adb:
3229         (Set_Location): New procedure
3230         (Get_Location): New function
3231         (Update_Main): New procedure
3233 2008-05-27  Vincent Celier  <celier@adacore.com>
3235         * prj-nmsc.adb:
3236         (Check_Library): Allow standard project to be extended as a static
3237         library project.
3238         (Get_Mains): Do not inherit attribute Main in an extending library
3239         project.
3241 2008-05-27  Eric Botcazou  <ebotcazou@adacore.com>
3243         * system-darwin-ppc.ads (Always_Compatible_Rep): Set to False.
3244         * system-darwin-x86.ads (Always_Compatible_Rep): Likewise.
3245         * system-freebsd-x86.ads (Always_Compatible_Rep): Likewise.
3246         * system-linux-ppc.ads (Always_Compatible_Rep): Likewise.
3247         * system-linux-x86_64.ads (Always_Compatible_Rep): Likewise.
3248         * system-linux-x86.ads (Always_Compatible_Rep): Likewise.
3249         * system-mingw.ads (Always_Compatible_Rep): Likewise.
3250         * system-solaris-sparc.ads (Always_Compatible_Rep): Likewise.
3251         * system-solaris-sparcv9.ads (Always_Compatible_Rep): Likewise.
3252         * system-solaris-x86.ads (Always_Compatible_Rep): Likewise.
3254 2008-05-27  Ed Schonberg  <schonberg@adacore.com>
3256         * sem_attr.adb: add guard to previous patch.
3258 2008-05-27  Ed Schonberg  <schonberg@adacore.com>
3260         * exp_disp.adb (Build_Dispatch_Tables): For a private type completed by
3261         a synchronized tagged type, do not attempt to build dispatch table for
3262         full view. The table is built for the corresponding record type, which
3263         has its own declaration.
3265 2008-05-27  Gary Dismukes  <dismukes@adacore.com>
3267         * sem_ch3.adb (Fixup_Bad_Constraint): Set the Etype on the bad subtype
3268         to the known type entity E, rather than setting it to Any_Type. Fixes
3269         possible blowup in function Base_Init_Proc, as called from Freeze_Entity
3270         for objects whose type had an illegal constraint.
3272 2008-05-27  Vincent Celier  <celier@adacore.com>
3274         * gnat_ugn.texi:
3275         Add succinct documentation for attribute Excluded_Source_List_File
3277 2008-05-27  Vincent Celier  <celier@adacore.com>
3279         * prj-attr.adb: Add new project level attribute Map_File_Option
3281         * prj-nmsc.adb (Process_Linker): Process new attribute Map_File_Option
3283         * prj.ads: Minor reformatting and comment update
3284         (Project_Configuration): New component Map_File_Option
3286         * snames.adb: New standard name Map_File_Option
3288         * snames.ads: New standard name Map_File_Option
3290 2008-05-27  Vincent Celier  <celier@adacore.com>
3292         * xsnames.adb: Remove unused variable Oname
3294 2008-05-27  Doug Rupp  <rupp@adacore.com>
3296         * exp_ch6.adb:
3297         (Expand_N_Function_Call): Fix comments. Minor reformatting.
3299         * exp_vfpt.ads:
3300         (Expand_Vax_Foreign_Return): Fix comments.
3302 2008-05-27  Thomas Quinot  <quinot@adacore.com>
3304         * exp_dist.adb: Minor reformating
3306 2008-05-26  Gary Dismukes  <dismukes@adacore.com>
3308         * exp_ch3.adb (Expand_N_Object_Declaration): Remove checks for
3309         No_Default_Initialization, which is now delayed until the freeze point
3310         of the object. Add a comment about deferral of the check.
3312         * freeze.adb (Freeze_Entity): The check for No_Default_Initialization
3313         on objects is moved here.
3315 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
3317         * s-casi16.adb (Uhalf): Rewrite it as integer with small alignment.
3318         (Compare_Array_S16): Adjust for above change.
3319         * s-casi32.adb (Uword): Likewise.
3320         (Compare_Array_S32): Likewise.
3321         * s-casi64.adb (Uword): Likewise.
3322         (Compare_Array_S64): Likewise.
3323         * s-caun16.adb (Uhalf): Likewise.
3324         (Compare_Array_U16): Likewise.
3325         * s-caun32.adb (Uword): Likewise.
3326         (Compare_Array_U32): Likewise.
3327         * s-caun64.adb (Uword): Likewise.
3328         (Compare_Array_U64): Likewise.
3330 2008-05-26  Robert Dewar  <dewar@adacore.com>
3332         * exp_ch6.adb: Add ??? comment for previous change
3334         * exp_vfpt.adb: Minor reformatting
3336         * exp_vfpt.ads: Add ??? comment for last change
3338         * sem_attr.adb: Add some ??? comments for previous change
3340         * s-vaflop.ads: Add comments for previous change
3342 2008-05-26  Doug Rupp  <rupp@adacore.com>
3344         * s-vaflop-vms-alpha.adb:
3345         Remove System.IO use clause, to prevent spurious ambiguities when
3346         package is access through rtsfind.
3348 2008-05-26  Sergey Rybin  <rybin@adacore.com>
3350         * tree_io.ads (ASIS_Version_Number): Update because of the changes
3351         made in front-end
3353 2008-05-26  Ed Schonberg  <schonberg@adacore.com>
3355         * sem_attr.adb:
3356         (Resolve_Attribute, case 'address):  S (A .. B)' address can be safely
3357         converted to S (A)'address only if A .. B is known to be a non-null
3358         range.
3360 2008-05-26  Doug Rupp  <rupp@adacore.com>
3362         * s-vaflop.adb:
3363         (Return_D, Return_F, Return_G): New functions.
3365         * s-vaflop.ads:
3366         (Return_D, Return_F, Return_G): New functions.
3368         * exp_vfpt.adb:
3369         (Expand_Vax_Foreign_Return): New procedure
3371         * exp_vfpt.ads:
3372         (Expand_Vax_Foreign_Return): New procedure
3374         * rtsfind.ads:
3375         (RE_Return_D, RE_Return_F, RE_Return_G): New RE_Ids
3376         (RE_Return_D, RE_Return_F, RE_Return_G): New RE_Unit_Table elements
3378         * exp_ch6.adb:
3379         Import Exp_Vfpt
3380         (Expand_N_Function_Call): Call Expand_Vax_Foreign_Return.
3382         * s-vaflop-vms-alpha.adb:
3383         (Return_D, Return_F, Return_G): New functions.
3385 2008-05-26  Gary Dismukes  <dismukes@adacore.com>
3387         * exp_ch3.adb (Build_Array_Init_Proc): Only set Init_Proc to a dummy
3388         init proc entity when there is actual default initialization associated
3389         with the component type, to avoid spurious errors on objects of scalar
3390         array types that are marked Is_Public when No_Default_Initialization
3391         applies.
3393 2008-05-26  Thomas Quinot  <quinot@adacore.com>
3395         * rtsfind.ads, rtsfind.adb:
3396         (RE_Get_RACW): New runtime library entity provided by PolyORB s-parint.
3397         (Check_RPC): Support per-PCS-kind API versioning.
3399         exp_dist.ads, exp_dist.adb:
3400         (Build_Stub_Tag, Get_Stub_Elements): New utility subprograms.
3401         (PolyORB_Support.Add_RACW_From_Any): Offload common code to new runtime
3402          library function Get_RACW.
3403         (PolyORB_Support.Add_RACW_To_Any): Offload common code to new runtime
3404         library function Get_Reference.
3405         (PolyORB_Support.Add_RACW_Read_Attribute): Use Get_RACW instead of going
3406         through an intermediate Any.
3407         (PolyORB_Support.Add_RACW_Write_Attribute): Use Get_Reference instead of
3408         going through an intermediate Any.
3410         * sem_dist.adb: Minor reformatting.
3412 2008-05-26  Javier Miranda  <miranda@adacore.com>
3414         * einfo.ads (Abstract_Interface_Alias): Renamed as Interface_Alias.
3415         (Set_Abstract_Interface_Alias): Renamed as Set_Interface_Alias.
3416         (Is_Internal): Adding documentation on internal entities that have
3417         attribute Interface_Alias (old attribute Abstract_Interface_Alias)
3419         * einfo.adb (Abstract_Interface_Alias): Renamed as Interface_Alias.
3420         (Set_Abstract_Interface_Alias): Renamed as Set_Interface_Alias.
3421         Added assertion to force entities with this attribute to have
3422         attribute Is_Internal set to True.
3423         (Next_Tag_Component): Simplify assertion using attribute Is_Tag.
3425         * sem_ch3.adb (Derive_Interface_Subprograms): This subprogram has been
3426         renamed as Derive_Progenitor_Subprograms. In addition, its code is
3427         a new implementation.
3428         (Add_Interface_Tag_Components): Remove special management of
3429         synchronized interfaces.
3430         (Analyze_Interface_Declaration): Minor reformating
3431         (Build_Derived_Record_Type): Minor reformating
3432         (Check_Abstract_Overriding): Avoid reporting error in case of abstract
3433         predefined primitive inherited from interface type because the body of
3434         internally generated predefined primitives of tagged types are generated
3435         later by Freeze_Type
3436         (Derive_Subprogram): Avoid generating an internal name if the parent
3437         subprogram overrides an interface primitive.
3438         (Derive_Subprograms): New implementation that keeps separate the
3439         management of tagged types not implementing interfaces, from tagged
3440         types that implement interfaces.
3441         (Is_Progenitor): New implementation.
3442         (Process_Full_View): Add documentation
3443         (Record_Type_Declaration): Replace call to Derive_Interface_Subprograms
3444         by call to Derive_Progenitor_Subprograms.
3446         * sem_ch6.ads (Is_Interface_Conformant): New subprogram.
3447         (Check_Subtype_Conformant, Subtype_Conformant): Adding new argument
3448         Skip_Controlling_Formals.
3450         * sem_ch6.adb (Is_Interface_Conformant): New subprogram.
3451         (Check_Conventions): New implementation. Remove local subprogram
3452         Skip_Check. Remove formal Search_From of routine Check_Convention.
3453         (Check_Subtype_Conformant, Subtype_Conformant): Adding new argument
3454         Skip_Controlling_Formals.
3455         (New_Overloaded_Entity): Enable addition of predefined dispatching
3456         operations.
3458         * sem_disp.ads
3459         (Find_Primitive_Covering_Interface): New subprogram.
3461         * sem_disp.adb (Check_Dispatching_Operation): Disable registering
3462         the task body procedure as a primitive of the corresponding tagged
3463         type.
3464         (Check_Operation_From_Private_Type): Avoid adding twice an entity
3465         to the list of primitives.
3466         (Find_Primitive_Covering_Interface): New subprogram.
3467         (Override_Dispatching_Operation): Add documentation.
3469         * sem_type.adb (Covers): Minor reformatings
3471         * sem_util.ads (Collect_Abstract_Interfaces): Renamed as
3472         Collect_Interfaces.
3473         Rename formal.
3474         (Has_Abstract_Interfaces): Renamed as Has_Interfaces.
3475         (Implements_Interface): New subprogram.
3476         (Is_Parent): Removed.
3477         (Primitive_Names_Match): New subprogram.
3478         (Remove_Homonym): Moved here from Derive_Interface_Subprograms.
3479         (Ultimate_Alias): New subprogram.
3481         * sem_util.adb (Collect_Abstract_Interfaces): Renamed as
3482         Collect_Interfaces.
3483         Remove special management for synchronized types. Rename formal. Remove
3484         internal subprograms Interface_Present_In_Parent and Add_Interface.
3485         (Has_Abstract_Interfaces): Renamed as Has_Interfaces. Replace assertion
3486         on non-record types by code to return false in such case.
3487         (Implements_Interface): New subprogram.
3488         (Is_Parent): Removed. No special management is now required for
3489         synchronized types covering interfaces.
3490         (Primitive_Names_Match): New subprogram.
3491         (Remove_Homonym): Moved here from Derive_Interface_Subprograms.
3492         (Ultimate_Alias): New subprogram.
3494         * exp_ch3.adb (Add_Internal_Interface_Entities): New subprogram.
3495         Add internal entities associated with secondary dispatch tables to
3496         the list of tagged type primitives that are not interfaces.
3497         (Freeze_Record_Type): Add new call to Add_Internal_Interface_Entities
3498         (Make_Predefined_Primitive_Specs): Code reorganization to improve
3499         the management of predefined equality operator. In addition, if
3500         the type has an equality function corresponding with a primitive
3501         defined in an interface type, the inherited equality is abstract
3502         as well, and no body can be created for it.
3504         * exp_disp.ads (Is_Predefined_Dispatching_Operation): Moved from
3505         exp_util to exp_disp.
3506         (Is_Predefined_Interface_Primitive): New subprogram. Returns True if
3507         an entity corresponds with one of the predefined primitives required
3508         to implement interfaces.
3509         Update copyright notice.
3511         * exp_disp.adb (Set_All_DT_Position): Add assertion. Exclude from the
3512         final check on abstract subprograms all the primitives associated with
3513         interface primitives because they must be visible in the public and
3514         private part.
3515         (Write_DT): Use Find_Dispatching_Type to locate the name of the
3516         interface type. This allows the use of this routine, for debugging
3517         purposes, when the tagged type is not fully decorated.
3518         (Is_Predefined_Dispatching_Operation): Moved from exp_util to exp_disp.
3519         Factorize code calling new subprogram Is_Predefined_Interface_Primitive.
3520         (Is_Predefined_Interface_Primitive): New subprogram. Returns True if an
3521         entity corresponds with one of the predefined primitives required to
3522         implement interfaces.
3524         * exp_util.adb (Find_Interface_ADT): New implementation
3525         (Find_Interface): Removed.
3527         * sprint.adb (Sprint_Node_Actual): Generate missing output for the
3528         list of interfaces associated with nodes
3529         N_Formal_Derived_Type_Definition and N_Private_Extension_Declaration.
3531 2008-05-26  Thomas Quinot  <quinot@adacore.com>
3533         * exp_ch5.adb (Make_Tag_Ctrl_Assignment): Add missing guard on
3534         condition for assignment to temporary.
3536 2008-05-26  Ed Schonberg  <schonberg@adacore.com>
3538         * exp_ch4.adb (Expand_Concatenate_Other): Add explicit constraint
3539         checks on the upper bound if the index type is a modular type, to
3540         prevent wrap-around computations when size is close to upper bound of
3541         type.
3543 2008-05-26  Robert Dewar  <dewar@adacore.com>
3545         * sem_ch3.adb: Minor reformatting
3547 2008-05-26  Ed Schonberg  <schonberg@adacore.com>
3549         * sem_ch12.adb (Remove_Parent): Use specification of instance
3550         to retrieve generic parent,
3551         to handle properly the case where the instance is a child unit.
3552         Add guard to handle properly wrapper packages.
3553         Minor reformatting
3555 2008-05-26  Thomas Quinot  <quinot@adacore.com>
3557         * sinfo.ads: Minor reformatting
3559 2008-05-26  Hristian Kirtchev  <kirtchev@adacore.com>
3561         * exp_ch4.adb (Expand_N_Type_Conversion): Minor code reformatting.
3562         Generate a tag check when the result subtype of a function, defined by
3563         an access definition, designates a specific tagged type.
3564         (Make_Tag_Check): New routine.
3566 2008-05-26  Arnaud Charlet  <charlet@adacore.com>
3568         * ceinfo.adb, csinfo.adb: Remove warnings. Update headers.
3570 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
3572         * gigi.h (gigi): Remove bogus ATTRIBUTE_UNUSED marker.
3573         (builtin_decl_for): Likewise.
3574         * trans.c (gigi): Likewise.
3575         * utils.c (def_builtin_1): Fix formatting.
3577 2008-05-26  Hristian Kirtchev  <kirtchev@adacore.com>
3579         * exp_ch3.adb (Build_Init_Statements): Alphabetize local variables.
3580         Create the statements which map a string name to protected or task
3581         entry indix.
3583         * exp_ch9.adb: Add with and use clause for Stringt.
3584         Minor code reformatting.
3585         (Build_Entry_Names): New routine.
3586         (Make_Initialize_Protection, Make_Task_Create_Call): Generate a value
3587         for flag Build_Entry_Names which controls the allocation of the data
3588         structure for the string names of entries.
3590         * exp_ch9.ads (Build_Entry_Names): New subprogram.
3592         * exp_util.adb (Entry_Names_OK): New function.
3594         * exp_util.ads (Entry_Names_OK): New function.
3596         * rtsfind.ads: Add RO_PE_Set_Entry_Name and RO_TS_Set_Entry_Name to
3597         enumerations RE_Id and RE_Unit_Table.
3599         * s-taskin.adb Add with and use clause for Ada.Unchecked_Deallocation.
3600         (Free_Entry_Names_Array): New routine.
3602         * s-taskin.ads: Comment reformatting.
3603         Add types String_Access, Entry_Names_Array, Entry_Names_Array_Access.
3604         Add component Entry_Names to record Ada_Task_Control_Block.
3605         (Free_Entry_Names_Array): New routine.
3607         * s-tassta.adb (Create_Task): If flag Build_Entry_Names is set,
3608         dynamically allocate an array
3609         of string pointers. This structure holds string entry names.
3610         (Free_Entry_Names): New routine.
3611         (Free_Task, Vulnerable_Free_Task): Deallocate the entry names array.
3612         (Set_Entry_Names): New routine.
3614         * s-tassta.ads:
3615         (Create_Task): Add formal Build_Entry_Names. The flag is used to
3616         control the allocation of the data structure which stores entry names.
3617         (Set_Entry_Name): New routine.
3619         * s-tpoben.adb:
3620         Add with and use clause for Ada.Unchecked_Conversion.
3621         (Finalize): Deallocate the entry names array.
3622         (Free_Entry_Names): New routine.
3623         (Initialize_Protection_Entries): When flag Build_Entry_Names is set,
3624         create an array of string pointers to hold the entry names.
3625         (Set_Entry_Name): New routine.
3627         * s-tpoben.ads:
3628         Add field Entry_Names to record Protection_Entries.
3629         (Initialize_Protection_Entries): Add formal Build_Entry_Names.
3630         (Set_Entry_Name): New routine.
3632 2008-05-26  Vincent Celier  <celier@adacore.com>
3634         * prj-nmsc.adb:
3635         (Process_Project_Level_Simple_Attributes): process attribute Library_GCC
3637         * prj.ads:
3638         (Project_Configuration): New component Shared_Lib_Driver
3640 2008-05-26  Ed Schonberg  <schonberg@adacore.com>
3642         * inline.adb:
3643         (Cleanup_Scopes): For a protected operation, transfer finalization list
3644         to protected body subprogram, to force cleanup actions when needed.
3646 2008-05-26  Robert Dewar  <dewar@adacore.com>
3648         * sem_cat.adb: Minor reformatting
3650         * gnatname.adb: Minor reformatting
3652         * osint.ads: Minor reformatting
3654         * s-carun8.ads: Minor reformatting
3656         * g-heasor.ads: Minor comment fix (unit is now pure)
3658 2008-05-26  Robert Dewar  <dewar@adacore.com>
3660         * exp_ch2.adb:
3661         (Expand_Current_Value): Properly type generated integer literal
3663 2008-05-26  Sergey Rybin  <rybin@adacore.com>
3665         * gnat_ugn.texi: Add description for the new gnatcheck rule -
3666         Separate_Numeric_Error_Handlers.
3668 2008-05-26  Pascal Obry  <obry@adacore.com>
3670         * sem_aggr.adb: Minor reformatting.
3672 2008-05-26  Jose Ruiz  <ruiz@adacore.com>
3674         * s-osinte-aix.adb:
3675         (To_Target_Priority): Setting the time slice value to 0 or greater sets
3676         the scheduling policy to FIFO within priorities or round-robin
3677         respectively.
3678         Hence, the priority must be set in this case to the one selected by the
3679         user.
3681 2008-05-26  Ed Schonberg  <schonberg@adacore.com>
3683         * sem_ch12.adb:
3684         (Remove_Parent): If the enclosing scope is an instance whose generic
3685         parent is declared within some parent scope of the just completed
3686         instance, make full views of the entities in that parent visible, when
3687         applicable.
3689 2008-05-26  Kai Tietz  <kai.tietz@onevision.com>
3691         * mingw32.h (STD_MINGW): Set to true for target w64.
3693 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
3695         * trans.c (Attribute_to_gnu) <Code_Address>: Set TREE_NO_TRAMPOLINE
3696         instead of TREE_STATIC on the ADDR_EXPR.
3698 2008-05-24  Eric Botcazou  <ebotcazou@adacore.com>
3700         * trans.c (gnat_to_gnu): Do not set source location info on NOP_EXPRs.
3701         (Sloc_to_locus): Do not overwrite known GCC locations when translating
3702         GNAT standard locations.
3704 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
3706         * gigi.h (mark_visited): Declare.
3707         * decl.c (gnat_to_gnu_entity): Use mark_visited instead of marking
3708         only the topmost node of expressions.
3709         (elaborate_expression_1): Look deeper for read-only variables.
3710         * trans.c (add_decl_expr): Use mark_visited instead of marking by hand.
3711         (mark_visited): Move logic to mark_visited_r.  Invoke walk_tree.
3712         (mark_visited_r): New function.
3714 2008-05-23  Vincent Celier  <celier@adacore.com>
3716         * snames.adb: New standard name Excluded_Source_List_File.
3718         * snames.ads: New standard name Excluded_Source_List_File.
3720         * prj-attr.adb: New project level attribute Excluded_Source_List_File.
3722         * prj-nmsc.adb: (Find_Excluded_Sources): New parameter Project.
3723         Get excluded sources from
3724         file indicated by attribute Excluded_Source_List_File, when present and
3725         neither Excluded_Source_Files nor Locally_Removed_Files are declared.
3727 2008-05-23  Robert Dewar  <dewar@adacore.com>
3729         * exp_dist.adb: Minor reformatting
3731 2008-05-23  Ed Schonberg  <schonberg@adacore.com>
3733         * sem_attr.adb (Resolve_Attribute, case 'address): If the prefix is a
3734         slice, convert it to an indexed component, which is equivalent, more
3735         efficient, and usable even if the slice itself is not addressable.
3737 2008-05-23  Olivier Hainque  <hainque@adacore.com>
3739         * gnat_ugn.texi (Calling Conventions): Document that the Intrinsic
3740         convention also allows access to named compiler built-in subprograms
3741         such as the GCC __builtin family.
3743 2008-05-23  Vincent Celier  <celier@adacore.com>
3745         * prj-nmsc.adb (Check_Naming_Schemes): Check a file for spec, body and
3746         sep. If there are several possibilities, choose the one with the
3747         longer prefix.
3749 2008-05-23  Vincent Celier  <celier@adacore.com>
3751         * gnatlink.adb (Process_Args): Do not disable scanning of ALI file for
3752         back end switches when executable specified with --GCC= is same as
3753         default, even if there are additional options.
3755         * gnat_ugn.texi:
3756         Document when the back end switches from the ALI file are taken into
3757         account when gnatlink is invoked with --GCC=
3759 2008-05-23  Thomas Quinot  <quinot@adacore.com>
3761         * s-os_lib.adb:
3762         (copy_File): Do not open destination file if source file is unreadable.
3764 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
3766         * utils.c (handle_type_generic_attribute): Adjust to accept
3767         fixed arguments before an elipsis.
3769 2008-05-21  Thomas Quinot  <quinot@adacore.com>
3771         * g-sothco.ads, g-sothco.adb: New files.
3773 2008-05-20  Thomas Quinot  <quinot@adacore.com>
3775         * Makefile.rtl (GNAT.Sockets.Thin_Common): New unit.
3777         * g-sttsne-vxworks.adb: Add missing dependency on Sockets.Constants.
3778         Add missing "with" of Ada.Unchecked_Conversion
3780         * g-soccon-linux-ppc.ads, g-soccon-linux-64.ads, g-soccon-lynxos.ads,
3781         g-soccon-linux-x86.ads, g-soccon-hpux-ia64.ads,
3782         g-soccon-solaris-64.ads, g-soccon-tru64.ads, g-soccon-aix.ads,
3783         g-soccon-irix.ads, g-soccon-hpux.ads, g-soccon-solaris.ads,
3784         g-soccon-vms.ads, g-soccon-mingw.ads, g-soccon-vxworks.ads,
3785         g-socthi-vxworks.adb, g-soccon-freebsd.ads, g-soccon.ads:
3786         Move common code out of GNAT.Sockets.Thin implementations and into
3787         Thin_Common.
3788         New constant SIZEOF_fd_set
3789         New flag Has_Sockaddr_Len
3790         New constants SIZEOF_sockaddr_in, SIZEOF_sockaddr_in6
3792         * g-stsifd-sockets.adb
3793         (Create): Remove call to Set_Length; use Set_Family to set the family
3794         and (on appropriate platforms) length fields in struct sockaddr.
3796         * g-socthi.adb, g-socthi.ads, g-socthi-vms.ads, g-socthi-vms.adb,
3797         g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vxworks.adb,
3798         g-soccon-darwin.ads, g-soccon-darwin.ads: New constant SIZEOF_fd_set
3799         Move common code out of GNAT.Sockets.Thin implementations and into
3800         Thin_Common.
3802         * g-socket.ads, g-socket.adb:
3803         Move common code out of GNAT.Sockets.Thin implementations and into
3804         Thin_Common.
3805         (Connect_Socket, Accept_Socket): Provide new versions of these two
3806         routines that operate with a user specified timeout.
3807         (Bind_Socket, Connect_Socket, Send_Socket): Remove calls to Set_Length,
3808         this is now handled automatically by Set_Family on platforms that
3809         require it.
3811         * gen-soccon.c:
3812         Move common code out of GNAT.Sockets.Thin implementations and into
3813         Thin_Common.
3814         (SIZEOF_sockaddr_in6): On platforms where IPv6 is not supported, define
3815         this constant to 0 (not -1) because we use it to initialize an
3816         unsigned_char value.
3817         Align values for numeric constants only.
3818         Handle the case of systems that do not support AF_INET6.
3819         New constant SIZEOF_fd_set
3820         New flag Has_Sockaddr_Len
3821         New constants SIZEOF_sockaddr_in, SIZEOF_sockaddr_in6
3823         * gsocket.h: New flag Has_Sockaddr_Len
3824         New constants SIZEOF_sockaddr_in, SIZEOF_sockaddr_in6
3826 2008-05-20  Santiago Uruena  <uruena@adacore.com>
3828         * i-cobol.ads: Interfaces.COBOL should be preelaborate.
3830 2008-05-20  Arnaud Charlet  <charlet@adacore.com>
3832         * s-linux-hppa.ads (atomic_lock_t): Put back proper alignment now that
3833         the underlying issue with malloc/free has been fixed. Remove associated
3834         comments.
3835         Minor reformatting.
3836         Related to PR ada/24533
3838 2008-05-20  Robert Dewar  <dewar@adacore.com>
3840         * ali.adb: Correct casing of ASCII.NUL
3842         * styleg-c.adb (Check_Identifier): Handle case of names in ASCII
3843         properly.
3845 2008-05-20  Robert Dewar  <dewar@adacore.com>
3846             Gary Dismukes  <dismukes@adacore.com>
3848         * checks.adb (Apply_Arithmetic_Overflow_Check): Avoid intermediate
3849         overflow if result converted to wider integer type.
3850         (Apply_Type_Conversion_Checks): Don't emit checks on conversions to
3851         discriminated types when discriminant checks are suppressed.
3853 2008-05-20  Vincent Celier  <celier@adacore.com>
3855         * cstand.adb (Print_Standard): Issue the correct Size clause for type
3856         Wide_Wide_Character.
3858 2008-05-20  Tristan Gingold  <gingold@adacore.com>
3860         * decl.c: Do not emit a variable for a object that has an address
3861         representation clause whose value is known at compile time.
3862         When a variable has an address clause whose value is known at compile
3863         time, refer to this variable by using directly the address instead of
3864         dereferencing a pointer.
3866 2008-05-20  Robert Dewar  <dewar@adacore.com>
3868         PR ada/30740
3869         * einfo.ads, einfo.adb (Non_Binary_Modulus): Applies to all types and
3870         subtypes, always False for non-modular types.
3871         Shared_Var_Assign_Proc (node22) and Shared_Var_Read_Proc (node 15)
3872         entry nodes have been replaced by Shared_Var_Procs_Instance (node22)
3873         for Shared_Storage package.
3874         (Is_RACW_Stub_Type): New entity flag.
3876         * exp_ch4.adb
3877         (Expand_N_Op_Expon): Avoid incorrect optimization of a*(2**b) in the
3878         case where we have a modular type with a non-binary modules.
3879         Comments reformattings.
3881         * sem_intr.adb: Simplify code not that Non_Binary_Modulus applies to
3882         all types.
3884 2008-05-20  Javier Miranda  <miranda@adacore.com>
3886         * exp_aggr.adb
3887         (Build_Record_Aggr_Code): Fix wrong tests checking progenitors. Previous
3888         tests did not covered the case in which the type of the aggregate has
3889         no progenitors but some its parents has progenitors.
3891 2008-05-20  Gary Dismukes  <dismukes@adacore.com>
3892             Hristian Kirtchev  <kirtchev@adacore.com>
3894         * exp_ch3.adb
3895         (Expand_N_Object_Declaration): Correct the condition which triggers the
3896         generation of a call to Displace when initializing a class-wide object.
3897         (Build_Dcheck_Functions): Build discriminant-checking for null variants
3898         when Frontend_Layout_On_Target is true to ensure that they're available
3899         for calling when a record variant size function is built in Layout.
3901 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
3903         * exp_ch5.adb (Expand_Assign_Record): Within an initialization
3904         procedure for a derived type retrieve the discriminant values from the
3905         parent using the corresponding discriminant.
3906         (Expand_N_Assignment_Statement): Skip generation of implicit
3907         if-statement associated with controlled types if we are
3908         compiling with restriction No_Finalization.
3910 2008-05-20  Vincent Celier  <celier@adacore.com>
3912         * prj.adb (Hash (Project_Id)): New function
3913         (Project_Empty): Add new component Interfaces_Defined
3915         * prj.ads (Source_Data): New component Object_Linked
3916         (Language_Config): New components Object_Generated and Objects_Linked
3917         (Hash (Project_Id)): New function
3918         (Source_Data): New Boolean components In_Interfaces and
3919         Declared_In_Interfaces.
3920         (Project_Data): New Boolean component Interfaces_Defined
3922         * prj-attr.adb:
3923         New project level attribute Object_Generated and Objects_Linked
3924         Add new project level attribute Interfaces
3926         * prj-dect.adb: Use functions Present and No throughout
3927         (Parse_Variable_Declaration): If a string type is specified as a simple
3928         name and is not found in the current project, look for it also in the
3929         ancestors of the project.
3931         * prj-makr.adb:
3932         Replace procedure Make with procedures Initialize, Process and Finalize
3933         to implement H414-023: process different directories with different
3934         patterns.
3935         Use functions Present and No throughout
3937         * prj-makr.ads:
3938         Replace procedure Make with procedures Initialize, Process and Finalize
3940         * prj-nmsc.adb
3941         (Add_Source): Set component Object_Exists and Object_Linked accordnig to
3942         the language configuration.
3943         (Process_Project_Level_Array_Attributes): Process new attributes
3944         Object_Generated and Object_Linked.
3945         (Report_No_Sources): New Boolean parameter Continuation, defaulted to
3946         False, to indicate that the erreor/warning is a continuation.
3947         (Check): Call Report_No_Sources with Contnuation = True after the first
3948         call.
3949         (Error_Msg): Process successively contnuation character and warning
3950         character.
3951         (Find_Explicit_Sources): Check that all declared sources have been found
3952         (Check_File): Indicate in hash table Source_Names when a declared source
3953         is found.
3954         (Check_File): Set Other_Part when found
3955         (Find_Explicit_Sources): In multi language mode, check if all exceptions
3956         to the naming scheme have been found. For Ada, report an error if an
3957         exception has not been found. Otherwise, disregard the exception.
3958         (Check_Interfaces): New procedure
3959         (Add_Source): When Other_Part is defined, set mutual pointers in spec
3960         and body.
3961         (Check): In multi-language mode, call Check_Interfaces
3962         (Process_Sources_In_Multi_Language_Mode): Set In_Interfaces to False
3963         for an excluded source.
3964         (Remove_Source): A source replacing a source in the interfaces is also
3965         in the interfaces.
3967         * prj-pars.adb: Use function Present
3969         * prj-part.adb: Use functions Present and No throughout
3970         (Parse_Single_Project): Set the parent project for child projects
3971         (Create_Virtual_Extending_Project): Register project with no qualifier
3972         (Parse_Single_Project): Allow an abstract project to be extend several
3973         times. Do not allow an abstract project to extend a non abstract
3974         project.
3976         * prj-pp.adb: Use functions Present and No throughout
3977         (Print): Take into account the full associative array attribute
3978         declarations.
3980         * prj-proc.adb: Use functions Present and No throughout
3981         (Expression): Call itself with the same From_Project_Node for the
3982         default value of an external reference.
3984         * prj-strt.adb: Use functions Present and No throughout
3985         (Parse_Variable_Reference): If a variable is specified as a simple name
3986         and is not found in the current project, look for it also in the
3987         ancestors of the project.
3989         * prj-tree.ads, prj-tree.adb (Present): New function
3990         (No): New function
3991         Use functions Present and No throughout
3992         (Parent_Project_Of): New function
3993         (Set_Parent_Project_Of): New procedure
3995         * snames.ads, snames.adb:
3996         Add new standard names Object_Generated and Objects_Linked
3998 2008-05-20  Hristian Kirtchev  <kirtchev@adacore.com>
4000         * exp_ch6.adb (Expand_Call): Add guard to ensure that both the parent
4001         and the derived type are of the same kind.
4002         (Expand_Call): Generate type conversions for actuals of
4003         record or array types when the parent and the derived types differ in
4004         size and/or packed status.
4006 2008-05-20  Javier Miranda  <miranda@adacore.com>
4007             Ed Schonberg  <schonberg@adacore.com>
4009         * exp_disp.adb (Make_DT, Make_Secondary_DT, Make_Tags): Avoid
4010         generating dispatch tables of locally defined tagged types statically.
4011         Remove implicit if-statement that is no longer required.
4012         (Expand_Dispatching_Call): If this is a call to an instance of the
4013         generic dispatching constructor, the type of the first argument may be
4014         a subtype of Tag, so always use the base type to recognize this case.
4016 2008-05-20  Thomas Quinot  <quinot@adacore.com>
4018         * exp_dist.adb
4019         (GARLIC_Support.Add_RACW_Read_Attribute): When a zero value is received,
4020         and the RACW is null-excluding, raise CONSTRAINT_ERROR instead of
4021         assigning NULL into the result, to avoid a spurious warning.
4022         (Add_RACW_Features, case Same_Scope): Add assertion that designated type
4023         is not frozen.
4024         (Add_Stub_Type): Set entity flag Is_RACW_Stub_Type on generated stub
4025         type.
4026         (Build_From_Any_Function, Build_To_Any_Function,
4027         Build_TypeCode_Function): For a type that has user-specified stream
4028         attributes, use an opaque sequence of octets as the representation.
4030 2008-05-20  Kevin Pouget  <pouget@adacore.com>
4032         * exp_smem.ads, exp_smem.adb: Construction of access and assign
4033         routines has been replaced by an instantiation of
4034         System.Shared_Storage.Shared_Var_Procs generic package, while expanding
4035         shared variable declaration.
4036         Calls to access and assign routines have been replaced by calls to
4037         Read/Write routines of System.Shared_Storage.Shared_Var_Procs
4038         instantiated package.
4040         * rtsfind.ads: RE_Shared_Var_Procs entry has been added in RE_Unit_Table
4041         It identifies the new generic package added in s-shasto.
4043         * s-shasto.adb, s-shasto.ads: A new generic package has been added, it
4044         is instantiated for each shared passive variable. It provides
4045         supporting procedures called upon each read or write access by the
4046         expanded code.
4048         * sem_attr.adb:
4049         For this runtime unit (always compiled in GNAT mode), we allow
4050         stream attributes references for limited types for the case where
4051         shared passive objects are implemented using stream attributes,
4052         which is the default in GNAT's persistent storage implementation.
4054 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
4056         * freeze.adb
4057         (Freeze_Enumeration_Type): For a subtype that inherits a foreign
4058         convention from its base type, do not set the type to that of integer,
4059         because it may inherit a size clause.
4060         Warn on a size clause with a size different
4061         from that of Integer, if the type has convention C.
4063 2008-05-20  Vincent Celier  <celier@adacore.com>
4065         * gnatname.adb
4066         (Scan_Args): Rewrite to take into account new switch --and to separate
4067         arguments into sections.
4068         (Gnatname): Call Prj.Makr.Initialize, then Prj.Makr.Process for each
4069         section, then Finalize.
4071 2008-05-20  Tristan Gingold  <gingold@adacore.com>
4073         * init.c: Enable stack probing on ppc-linux.
4075         * tracebak.c: Add symbolic traceback for ppc-linux.
4077         * system-linux-ppc.ads: Enable stack probing on ppc-linux.
4079 2008-05-20  Arnaud Charlet  <charlet@adacore.com>
4081         * Makefile.in
4082         (common-tools): New rule, to avoid parallel build failure on gnat tools.
4083         Reenable parallel builds on this Makefile.
4085         * Make-lang.in: Update dependencies.
4087 2008-05-20  Robert Dewar  <dewar@adacore.com>
4089         * opt.ads (Treat_Restrictions_As_Warnings): New switch
4091         * sem_prag.adb, par-prag.adb, restrict.ads: Implement flag
4092         Treat_Restrictions_As_Warnings.
4094         * switch-c.adb: Recognize new switch -gnatr
4096         * usage.adb: Add line for -gnatr
4098 2008-05-20  Hristian Kirtchev  <kirtchev@adacore.com>
4100         * par-ch3.adb
4101         (P_Access_Definition): Change the error message when parsing "access
4102         all" in Ada 95 mode. The message no longer forces the user to recompile
4103         in 05 mode only to discover that anonymous access types are not allowed
4104         to have "all".
4106 2008-05-20  Hristian Kirtchev  <kirtchev@adacore.com>
4108         * par-ch9.adb
4109         (P_Protected): Update the error message on missing "-gnat05" switch when
4110         using interfaces in conjunction with protected types. Remove the
4111         incorrect error message associated with the presence of "private" after
4112         a "with".
4114 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
4116         * sem_aggr.adb: Update comments.
4117         Improve previous change for PR ada/17985
4119 2008-05-20  Thomas Quinot  <quinot@adacore.com>
4121         * sem_cat.adb
4122         (Set_Categorization_From_Scope): Do not set In_Remote_Types unless in
4123         the visible part of the spec of a remote types unit.
4124         (Validate_Remote_Access_Object_Type_Declaration):
4125         New local subprogram Is_Valid_Remote_Object_Type, replaces
4126         Is_Recursively_Limited_Private.
4127         (Validate_RACW_Primitives): Enforce E.2.2(14) rules: the types of all
4128         non-controlling formals (and the return type, even though this is not
4129         explicit in the standard) must support external streaming.
4130         (Validate_RCI_Subprogram_Declaration): Enforce E.2.3(14) rules: same
4131         as above for of RAS types and RCI subprograms. (The return type is not
4132         checked yet).
4133         Update comments related to RACWs designating limited interfaces per
4134         ARG ruling on AI05-060.
4136         * sem_util.ads, sem_util.adb
4137         (Is_Remote_Access_To_Class_Wide_Type): Only rely on Is_Remote_Types and
4138         Is_Remote_Call_Interface to identify RACW types in a stable and
4139         consistent way. We used to rely in this predicate on the privateness of
4140         the designated type and its ancestors, but depending on the currently
4141         visible private parts, this caused false negatives. We now uniformly
4142         rely on checks made at the point where the RACW type is declared.
4143         (Inspect_Deferred_Constant_Completion): Moved from Sem_Ch7.
4145 2008-05-20  Javier Miranda  <miranda@adacore.com>
4146             Ed Schonberg  <schonberg@adacore.com>
4147             Hristian Kirtchev  <kirtchev@adacore.com>
4149         * sem_ch3.adb
4150         (Analyze_Object_Declaration): Fix over-conservative condition
4151         restricting use of predefined assignment with tagged types that have
4152         convention CPP.
4153         (Analyze_Object_Declaration): Relax the check regarding deferred
4154         constants declared in scopes other than packages since they can be
4155         completed with pragma Import.
4156         Add missing escaping of all-caps word 'CPP' in error messages.
4157         (Build_Discriminated_Subtype): Do not inherit representation clauses
4158         from parent type if subtype already carries them, because they are
4159         inherited earlier during derivation and already include those that may
4160         come from a partial view.
4162         * sem_ch9.adb, sem_ch5.adb, sem_ch6.adb (Analyze_Subprogram_Body):
4163         Check the declarations of a subprogram body for proper deferred
4164         constant completion.
4166         * sem_ch7.ads, sem_ch7.adb
4167         (Inspect_Deferred_Constant_Completion): Moved to sem_util.
4169 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
4170             Thomas Quinot  <quinot@adacore.com>
4172         * sem_ch4.adb
4173         (Try_Indexed_Call): Handle properly a construct of the form F(S) where
4174         F is a parameterless function that returns an array, and S is a subtype
4175         mark.
4176         (Analyze_Call): Insert dereference when the prefix is a parameterless
4177         function that returns an access to subprogram and the call has
4178         parameters.
4179         Reject a non-overloaded call whose name resolves to denote
4180         a primitive operation of the stub type generated to support a remote
4181         access-to-class-wide type.
4183 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
4185         * sem_ch8.adb
4186         (Note_Redundant_Use): Diagnose a redundant use within a subprogram body
4187         when there is a use clause for the same entity in the context.
4188         (Analyze_Subprogram_Renaming): A renaming_as_body is legal if it is
4189         created for a stream attribute of an abstract type or interface type.
4191 2008-05-20  Thomas Quinot  <quinot@adacore.com>
4193         * sem_dist.ads, sem_dist.adb (Is_RACW_Stub_Type_Operation): New
4194         subprogram.
4196         * sem_type.adb
4197         (Add_One_Interp): Ignore any interpretation that is a primitive
4198         operation of an RACW stub type (these primitives are only executed
4199         through dispatching, never through static calls).
4200         (Collect_Interps): When only one interpretation has been found, set N's
4201         Entity and Etype to that interpretation, otherwise Entity and Etype may
4202         still refer to an interpretation that was ignored by Add_One_Interp,
4203         in which case would end up with being marked as not overloaded but with
4204         an Entity attribute not pointing to its (unique) correct interpretation.
4206 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
4208         * sem_eval.adb
4209         (Eval_Slice): Warn when a slice whose discrete range is a subtype name
4210         denotes the whole array of its prefix.
4212 2008-05-20  Robert Dewar  <dewar@adacore.com>
4214         * sem_res.adb (Resolve_Op_Not): Warn on double negation
4216 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
4218         * sprint.adb
4219         (Print_Itype): Do not modify the sloc of the component type of a
4220         (packed) array itype, because it is an unrelated type whose source
4221         location is independent of the point of creation of the itype itself.
4223 2008-05-20  Thomas Quinot  <quinot@adacore.com>
4225         * uintp.adb, urealp.adb: Replace calls to Increment_Last + Set with
4226         Append.
4228 2008-05-20  Robert Dewar  <dewar@adacore.com>
4229             Vincent Celier  <celier@adacore.com>
4231         * vms_data.ads: Add entry for -gnatr
4232         Put GNAT SYNC section in proper alpha order
4233         Add VMS qualifier /DISPLAY_PROGRESS equivalent to gnatmake switch -d
4235         * gnat_ugn.texi: Add documentation for new gnatname switch --and
4236         Update the style checks section
4237         Add documentation of -gnatr
4238         Add to the "Adding the Results of Compiler Checks to gnatcheck Output"
4239         subsection the explanation how compiler checks should be disabled for
4240         gnatcheck.
4241         Update the list of Ada 95 reserved words used by in the project language
4242         Add documentation for project qualifiers.
4243         Document that abstract projects may be extended by different projects in
4244         the same project tree.
4245         Add documentation for gnatmake switch -d
4247         * ug_words: Add -gnatyy VMS equivalence string.
4248         Add entry for -gnatr
4250 2008-05-20  Bob Duff  <duff@adacore.com>
4252         * a-rttiev.adb
4253         (Set_Handler): Remove code from both of these that implements
4254         RM-D.15(15/2), because it causes a race condition and potential
4255         deadlock.
4256         (Process_Queued_Events): Add comment explaining "exception when others
4257         => null". Add clarifying ".all", even though implicit .all is legal
4258         here.
4260 2008-05-20  Arnaud Charlet  <charlet@adacore.com>
4262         * s-winext.ads: Replace representation clause by pragma Pack. Gives
4263         equivalent representation, but has the advantage of allowing
4264         compilation of this file under 64 bits platforms.
4266         * s-os_lib.adb (Normalize_Pathname): Mark Cur_Dir constant.
4268         * s-osinte-irix.ads: (Alternate_Stack_Size): Add dummy declaration.
4270         * adaint.c:
4271         Don't define dummy implementation of convert_addresses on ppc-linux.
4273 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
4275         * exp_ch7.adb
4276         (Expand_Ctrl_Function_Call): Do not attach result to finalization list
4277         if expression is aggregate component.
4279 2008-05-20  Robert Dewar  <dewar@adacore.com>
4281         * g-byorma.adb, gnatlink.adb, prepcomp.adb, sinfo.ads,
4282         sem_ch12.adb: Update comments. Minor reformatting.
4284         * exp_ch2.adb: Typo
4286         * s-unstyp.ads: Fixed some typos in comments.
4288 2008-05-20  Arnaud Charlet  <charlet@adacore.com>
4290         * s-taspri-vxworks.ads (Task_Address, Task_Address_Size): New
4291         type/constant.
4293         * g-socthi-vxworks.ads: Update to latest socket changes.
4295         * a-caldel-vms.adb: Resync with a-caldel spec.
4297         * exp_ch9.ads, sem_ch8.ads, inline.adb: Minor reformatting.
4298         Update comments.
4300 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
4302         * trans.c (gnat_to_gnu) <N_Validate_Unchecked_Conversion>: Account
4303         for dummy types pointed to by the converted pointer types.
4305 2008-05-15  Eric Botcazou  <ebotcazou@adacore.com>
4307         * trans.c (add_decl_expr): At toplevel, mark the TYPE_ADA_SIZE field
4308         of records and unions.
4309         (gnat_to_gnu) <N_Validate_Unchecked_Conversion>: Fix formatting.
4311 2008-05-14  Samuel Tardieu  <sam@rfc1149.net>
4312             Robert Dewar <dewar@adacore.com>
4314         * sem_attr.adb (Analyze_Attribute, Attribute_Old case): Add
4315         restrictions to the prefix of 'Old.
4316         * sem_util.ads, sem_util.adb (In_Parameter_Specification): New.
4317         * gnat_rm.texi ('Old): Note that 'Old cannot be applied to local
4318         variables.
4320 2008-05-13  Eric Botcazou  <ebotcazou@adacore.com>
4322         PR ada/24880
4323         PR ada/26635
4324         * utils.c (convert) <INTEGER_TYPE>: When converting an additive
4325         expression to an integral type with lower precision, use NOP_EXPR
4326         directly in a couple of special cases.
4328 2008-05-12  Samuel Tardieu  <sam@rfc1149.net>
4329             Ed Schonberg <schonberg@adacore.com>
4331         * sem_ch3.adb (Build_Derived_Record_Type): Accept statically matching
4332         constraint expressions.
4334 2008-05-12  Tomas Bily  <tbily@suse.cz>
4336         * utils2.c (known_alignment, contains_save_expr_p)
4337         (gnat_mark_addressable): Use CASE_CONVERT.
4338         * decl.c (annotate_value): Likewise.
4339         * trans.c (maybe_stabilize_reference): Likewise.
4340         * utils2.c (build_binary_op): Use CONVERT_EXPR_P.
4341         * utils.c (rest_of_record_type_compilation): Likewise.
4342         * trans.c (protect_multiple_eval, Attribute_to_gnu)
4343         (protect_multiple_eval): Likewise.
4345 2008-05-08  Andreas Schwab  <schwab@suse.de>
4347         * utils.c (handle_pure_attribute, init_gigi_decls): Rename
4348         DECL_IS_PURE to DECL_PURE_P.
4350 2008-05-05  Eric Botcazou  <ebotcazou@adacore.com>
4352         * decl.c (maybe_pad_type): Add ??? comment.
4354 2008-05-03  Eric Botcazou  <ebotcazou@adacore.com>
4356         * decl.c (components_to_record): Zero the alignment of the qualified
4357         union built for the variant part upon creating it.
4359 2008-05-03  Eric Botcazou  <ebotcazou@adacore.com>
4361         * decl.c (maybe_pad_type): Try to get a form of the type with integral
4362         mode even if the alignment is not a factor of the original size.  But
4363         make sure to create the inner field with the original size.  Reorder.
4364         * trans.c (addressable_p) <COMPONENT_REF>: Treat the field of a padding
4365         record as always addressable.
4366         * utils.c (convert): Deal specially with conversions between original
4367         and packable versions of a record type.
4368         * utils2.c (build_binary_op) <MODIFY_EXPR>: Be more restrictive when
4369         recognizing an assignment between padded objects.
4371 2008-05-01  Eric Botcazou  <ebotcazou@adacore.com>
4373         * decl.c (make_packable_type): Resize the last component to its RM size
4374         only if it is of an aggregate type.
4375         * trans.c (call_to_gnu): Fix nit in comment.
4376         (gnat_to_gnu): Likewise.
4378 2008-04-30  Samuel Tardieu  <sam@rfc1149.net>
4380         * Makefile.in: Adapt sh4-linux target.
4382 2008-04-29  Ed Schonberg  <schonberg@adacore.com>
4384         PR ada/35792
4385         * sem_ch3.adb (Find_Type_Name): Refuse completion of an incomplete
4386         tagged type by an untagged protected or task type.
4388 2008-04-28  Eric Botcazou  <ebotcazou@adacore.com>
4389             Tristan Gingold  <gingold@adacore.com>
4391         PR ada/36007
4392         * decl.c (gnat_to_gnu_entity) <object>: Do not promote alignment
4393         of aliased objects with an unconstrained nominal subtype.
4394         Cap the promotion to the effective alignment of the word mode.
4396 2008-04-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4398         * Make-lang.in (ada.tags, check-acats, ada/treeprs.ads)
4399         (ada/einfo.h, ada/sinfo.h, ada/nmake.adb, ada/nmake.ads):
4400         Use '&&' instead of ';'.
4402 2008-04-24  Olivier Hainque  <hainque@adacore.com>
4404         * trans.c (Attribute_to_gnu) <case Attr_Length>: Length computation
4405         doesn't require signed arithmetic anymore.
4407 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
4409         * trans.c (Attribute_to_gnu): Don't set TREE_INVARIANT.
4410         (call_to_gnu): Don't set TREE_INVARIANT.
4411         * utils2.c (gnat_build_constructor): Don't set TREE_INVARIANT.
4413 2008-04-22  Joel Sherrill <joel.sherrill@oarcorp.com>
4415         * s-osinte-rtems.adb: Add sigalstack function.
4416         * s-osinte-rtems.ads: Add SO_ONSTACK and sigalstack
4417         function. Add Alternate_Stack and Alternate_Stack_Size.
4418         Add missing process_shared field to pthread_condattr_t
4419         and change ss_low_priority to int from timespec.
4421 2008-04-22  Samuel Tardieu  <sam@rfc1149.net>
4423         * i-forbla.adb: Link against -llapack and -lblas by default
4424         instead of the private -lgnalasup.
4426 2008-04-21  Olivier Hainque  <hainque@adacore.com>
4428         Access to most C builtins from Ada
4429         * utils.c: #include "langhooks.h" and define GCC_DIAG_STYLE.
4430         (handle_pure_attribute, handle_novops_attribute,
4431         handle_nonnull_attribute, handle_sentinel_attribute,
4432         handle_noreturn_attribute, handle_malloc_attribute,
4433         handle_type_generic_attribute): New attribute handlers, from C fe.
4434         (gnat_internal_attribute_table): Map the new handlers.
4435         (gnat_init_decl_processing): Move call to gnat_install_builtins to ...
4436         (init_gigi_decls): ... here.
4437         (handle_const_attribute, handle_nothrow_attribute, builtin_decl_for):
4438         Move to a section dedicated to builtins processing.
4439         (build_void_list_node, builtin_type_for_size): New functions.
4440         (def_fn_type, get_nonnull_operand): Likewise.
4441         (install_builtin_elementary_type, install_builtin_function_types,
4442         install_builtin_attributes): Likewise.
4443         (fake_attribute_handler): Fake handler for attributes we don't
4444         support in Ada.
4445         (def_builtin_1): New function, worker for DEF_BUILTIN.
4446         (install_builtin_functions): New function.
4447         (gnat_install_builtins): Move to the builtins processing section.
4448         Now calling the newly introduced installers.
4450 2008-04-20  Eric Botcazou  <ebotcazou@adacore.com>
4452         * decl.c (gnat_to_gnu_entity) <object>: Also promote the alignment of
4453         constant objects, but not exceptions.
4454         * trans.c (add_decl_expr): Use gnat_types_compatible_p for type
4455         compatibility test.
4456         * utils.c (create_var_decl_1): Likewise.
4457         * utils2.c (build_binary_op) <MODIFY_EXPR>: Also use the padded view of
4458         the type when copying to padded object and the source is a constructor.
4460 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
4462         * decl.c (gnat_to_gnu_entity) <object>: When trying to promote the
4463         alignment, reset it to zero if it would end up not being greater
4464         than that of the type.
4466 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
4468         * decl.c (maybe_pad_type): Only generate the XVS parallel type if
4469         the padded type has a variable size.
4471 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
4473         * decl.c (gnat_to_gnu_entity) <E_Subprogram_Type>: Use the return by
4474         target pointer mechanism as soon as the size is not constant.
4476 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
4478         * gigi.h (create_var_decl_1): Declare.
4479         (create_var_decl): Turn into a macro invoking create_var_decl_1.
4480         (create_true_var_decl): Likewise.
4481         * utils.c (create_var_decl_1): Make global and reorder parameters.
4482         (create_var_decl): Delete.
4483         (create_true_var_decl): Likewise.
4485 2008-04-17  Eric Botcazou  <ebotcazou@adacore.com>
4487         * decl.c (gnat_to_gnu_entity) <object>: Promote the alignment of
4488         objects by default.
4489         * fe.h (Debug_Flag_Dot_A): Delete.
4490         * debug.adb (-gnatd.a): Update documentation.
4492 2008-04-17  Samuel Tardieu  <sam@rfc1149.net>
4494         * g-socket.ads, g-socket.adb (Get_Address): Make Stream a
4495         "not null" parameter.
4497 2008-04-17  Samuel Tardieu  <sam@rfc1149.net>
4499         * g-socket.adb: Add a message "IPv6 not supported" to the
4500         Socket_Error exception.
4502 2008-04-16  Samuel Tardieu  <sam@rfc1149.net>
4504         PR ada/29015
4505         * sem_ch12.adb (Instantiate_Type): Check whether the full view of
4506         the type is known instead of the underlying type.
4508 2008-04-15  Ed Schonberg  <schonberg@adacore.com>
4510         PR ada/22387
4511         * exp_ch5.adb (Expand_Assign_Record): Within an initialization
4512         procedure for a derived type retrieve the discriminant values from
4513         the parent using the corresponding discriminant.
4515 2008-04-15  Samuel Tardieu  <sam@rfc1149.net>
4516             Gary Dismukes  <dismukes@adacore.com>
4518         PR ada/28733
4519         * sem_ch8.adb (Analyze_Use_Package): Do not allow "use" of something
4520         which is not an entity (and hence not a package).
4521         (End_Use_Package): Ditto.
4523 2008-04-15  Ed Schonberg  <schonberg@adacore.com>
4525         PR ada/16086
4526         * sem_ch12.adb (Analyze_Formal_Subprogram): The default can be any
4527         protected operation that matches the signature, not only an entry, a
4528         regular subprogram or a literal.
4530 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
4532         * ada-tree.h (DECL_BY_COMPONENT_PTR_P): Use DECL_LANG_FLAG_3.
4533         * decl.c (gnat_to_gnu_entity) <object>: Call maybe_pad_type only
4534         if a size or alignment is specified.  Do not take into account
4535         alignment promotions for the computation of the object's size.
4536         <type>: Call maybe_pad_type only if a size or alignment is specified.
4537         (maybe_pad_type): Really reuse the RM_Size of the original type if
4538         requested.
4539         * trans.c (Attribute_to_gnu): Fix a couple of nits.
4540         * utils2.c (build_binary_op) <MODIFY_EXPR>: Merge related conditional
4541         statements.  Use the padded view of the type when copying between
4542         padded objects of the same underlying type.
4544 2008-04-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4546         * vms_data.ads: Fix typo in constant.
4547         * gen-soccon.c: Fix typo in error string.
4548         * gnat_rm.texi (Pragma Optimize_Alignment, Pragma Postcondition):
4549         Fix typos.
4550         * a-calcon.ads, a-calend-vms.adb, a-calend.adb, a-crdlli.ads,
4551         bcheck.adb, checks.adb, einfo.ads, errout.adb, erroutc.adb,
4552         erroutc.ads, exp_attr.adb, exp_ch11.adb, exp_ch2.adb,
4553         exp_ch5.adb, exp_ch9.adb, exp_ch9.ads, exp_pakd.adb,
4554         exp_util.adb, fmap.adb, g-soccon-linux-mips.ads,
4555         g-soccon-rtems.ads, g-timsta.adb, g-timsta.ads, lib-writ.ads,
4556         mlib-tgt-specific-linux.adb, mlib-tgt-specific-tru64.adb,
4557         s-interr-vxworks.adb, s-interr.adb, s-osinte-lynxos.ads,
4558         s-rident.ads, s-taprop-solaris.adb, s-tassta.adb, s-win32.ads,
4559         sem_aggr.adb, sem_attr.ads, sem_ch10.adb, sem_ch13.ads,
4560         sem_ch3.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb, sem_ch9.adb,
4561         sem_prag.ads, sem_res.adb, sem_util.adb, sem_util.ads,
4562         sinfo.ads: Fix typos in comments.
4564 2008-04-14  Robert Dewar  <dewar@adacore.com>
4566         * sem_prag.adb (Analyze_Pragma, Linker_Section case): Extend error
4567         to every non-object and change error message.
4569 2008-04-14  Robert Dewar  <dewar@adacore.com>
4571         * sem_util.ads, sem_util.adb (In_Subprogram): Remove.
4572         * sem_attr.adb (Anayze_Attribute): Check for Current_Subprogram
4573         directly.
4575 2008-04-14  Samuel Tardieu  <sam@rfc1149.net>
4577         PR ada/18680
4578         * sem_prag.adb (Analyze_Pragma, Linker_Section case): Refuse to
4579         apply pragma Linker_Section on type.
4581 2008-04-14  Samuel Tardieu  <sam@rfc1149.net>
4583         PR ada/16098
4584         * sem_prag.adb (Error_Pragma_Ref): New.
4585         (Process_Convention): Specialized message for non-local
4586         subprogram renaming. Detect the problem in homonyms as well.
4588 2008-04-14  Samuel Tardieu  <sam@rfc1149.net>
4590         PR ada/15915
4591         * sem_util.ads, sem_util.adb (Denotes_Variable): New function.
4592         * sem_ch12.adb (Instantiate_Object): Use it.
4593         * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Ensure that
4594         storage pool denotes a variable as per RM 13.11(15).
4596 2008-04-14  Samuel Tardieu  <sam@rfc1149.net>
4598         * sem_util.ads, sem_util.adb (In_Subprogram): New function.
4599         * sem_attr.adb (Analyze_Attribute, Attribute_Old case): Use it.
4601 2008-04-14  Rolf Ebert  <rolf.ebert.gcc@gmx.de>
4603         PR ada/20822
4604         * xgnatugn.adb (Put_Line): New procedure, ensuring Unix
4605         line endings even on non-Unix platforms.
4607 2008-04-14  Samuel Tardieu  <sam@rfc1149.net>
4609         PR ada/35050
4610         * xref_lib.adb (Parse_Identifier_Info): Correctly parse and ignore the
4611         renaming information.
4613 2008-04-13  Samuel Tardieu  <sam@rfc1149.net>
4615         PR ada/17985
4616         * sem_aggr.adb (Valid_Ancestor_Type): A type is not an ancestor of
4617         itself.
4619 2008-04-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4621         * sfn_scan.adb, sfn_scan.ads, sinfo.ads,
4622         sinput-d.ads, sinput-l.adb, sinput-l.ads, sinput.ads,
4623         snames.ads, sprint.adb, stand.ads, stringt.ads,
4624         styleg.adb, styleg.ads, stylesw.adb, stylesw.ads,
4625         switch.ads, sysdep.c, table.adb, table.ads,
4626         targparm.ads, tb-gcc.c, tbuild.ads, tracebak.c,
4627         trans.c, tree_io.adb, treepr.adb, types.adb, types.ads,
4628         uintp.adb, uintp.ads, utils.c, utils2.c, validsw.ads,
4629         vms_conv.adb, vms_conv.ads, vms_data.ads, widechar.adb,
4630         widechar.ads, xeinfo.adb, xgnatugn.adb, xr_tabls.adb,
4631         xr_tabls.ads, xref_lib.adb, xref_lib.ads, xsinfo.adb:
4632         Fix comment typos.
4634         * sem_ch10.adb, sem_ch10.ads,
4635         sem_ch12.adb, sem_ch12.ads, sem_ch13.adb, sem_ch13.ads,
4636         sem_ch3.adb, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb,
4637         sem_ch6.ads, sem_ch8.adb, sem_ch8.ads, sem_ch9.adb,
4638         sem_elab.adb, sem_elab.ads, sem_elim.ads, sem_eval.adb,
4639         sem_eval.ads, sem_intr.adb, sem_mech.adb, sem_mech.ads,
4640         sem_prag.adb, sem_prag.ads, sem_res.adb, sem_res.ads,
4641         sem_type.adb, sem_util.adb, sem_util.ads, sem_warn.adb,
4642         sem_warn.ads: Fix comment typos.
4644         * s-secsta.adb, s-sequio.ads, s-shasto.ads,
4645         s-soflin.ads, s-stalib.ads, s-stausa.adb,
4646         s-stausa.ads, s-strxdr.adb, s-taenca.adb, s-taenca.ads,
4647         s-taprob.adb, s-taprop-hpux-dce.adb, s-taprop-irix.adb,
4648         s-taprop-linux.adb, s-taprop-mingw.adb, s-taprop-posix.adb,
4649         s-taprop-solaris.adb, s-taprop-tru64.adb, s-taprop-vms.adb,
4650         s-taprop-vxworks.adb, s-taprop.ads, s-tarest.adb,
4651         s-tarest.ads, s-tasini.adb, s-tasini.ads, s-taskin.ads,
4652         s-tasque.ads, s-tassta.adb, s-tassta.ads, s-tasuti.ads,
4653         s-tpoben.adb, s-tpoben.ads, s-tpobop.adb,
4654         s-tpopsp-posix.adb, s-tpopsp-rtems.adb, s-tposen.adb,
4655         s-tposen.ads, s-traceb-hpux.adb, s-traces.ads,
4656         s-trafor-default.ads, s-unstyp.ads, s-utf_32.ads,
4657         s-vaflop.adb, s-vaflop.ads, s-valrea.adb, s-valuti.adb,
4658         s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, scans.ads,
4659         scn.adb, scng.adb, seh_init.c, sem.ads, sem_aggr.adb,
4660         sem_attr.adb, sem_attr.ads, sem_case.adb, sem_case.ads,
4661         sem_cat.adb, sem_cat.ads: Fix comment typos.
4663 2008-04-12  Joel Sherrill  <joel@oarcorp.com>
4665         PR ada/35825
4666         * g-soccon-rtems.ads: Add IP_PKTINFO as unsupported.
4668 2008-04-12  Arnaud Charlet  <charlet@adacore.com>
4670         * s-linux-hppa.ads: Fix syntax errors.
4672 2008-04-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4674         * gnat_ugn.texi: Fix typos.
4675         * raise-gcc.c, repinfo.adb, repinfo.ads, restrict.adb,
4676         restrict.ads, rtsfind.adb, rtsfind.ads, s-arit64.ads,
4677         s-asthan-vms-alpha.adb, s-auxdec.ads, s-casuti.ads,
4678         s-fatflt.ads, s-fatgen.adb, s-fatlfl.ads,
4679         s-fatllf.ads, s-fatsfl.ads, s-filofl.ads,
4680         s-finimp.adb, s-finroo.ads, s-fishfl.ads,
4681         s-fvadfl.ads, s-fvaffl.ads, s-fvagfl.ads,
4682         s-hibaen.ads, s-htable.ads, s-imgcha.adb,
4683         s-imgenu.ads, s-imgint.adb, s-imgrea.adb,
4684         s-inmaop-dummy.adb, s-inmaop.ads, s-interr-vms.adb,
4685         s-interr-vxworks.adb, s-interr.adb, s-interr.ads,
4686         s-intman-vxworks.ads, s-intman.ads, s-mastop-irix.adb,
4687         s-os_lib.adb, s-os_lib.ads, s-osinte-aix.ads,
4688         s-osinte-darwin.ads, s-osinte-freebsd.ads,
4689         s-osinte-hpux.ads, s-osinte-lynxos-3.adb,
4690         s-osinte-lynxos-3.ads, s-osinte-lynxos.ads,
4691         s-osinte-rtems.ads, s-osinte-solaris-posix.ads,
4692         s-osprim-mingw.adb, s-osprim-vms.adb, s-parame-ae653.ads,
4693         s-parame-hpux.ads, s-parame-vms-alpha.ads,
4694         s-parame-vms-ia64.ads, s-parame-vms-restrict.ads,
4695         s-parame-vxworks.ads, s-parame.ads, s-parint.adb,
4696         s-parint.ads, s-poosiz.adb, s-proinf-irix-athread.ads,
4697         s-proinf.ads, s-regexp.adb, s-regpat.adb, s-regpat.ads,
4698         s-rident.ads: Fix comment typos.
4700 2008-04-09  Samuel Tardieu  <sam@rfc1149.net>
4702         PR ada/28305
4703         * sem_ch6.adb (Build_Body_To_Inline): Do not save and restore
4704         environment if generic instance is a top-level one.
4706 2008-04-09  Doug Rupp  <rupp@adacore.com>
4708         * decl.c (validate_size): Set minimum size for fat pointers same as
4709         access types. Code clean ups.
4711         * gmem.c (xstrdup32): New macro for 32bit dup on VMS, noop otherwise
4712         (__gnat_gmem_a2l_initialize): Dup exename into 32 bit memory on VMS
4714         * s-auxdec-vms_64.ads, s-auxdec.ads (Short_Address_Size): New constant
4716         * s-crtl.ads (malloc32) New function, alias for malloc
4717         (realloc32) New function, alias for realloc
4719         * socket.c (__gnat_new_socket_set): Malloc fd_set in 32 bits on VMS
4721         * utils2.c (build_call_alloc_dealloc): Return call to short malloc if
4722         allocator size is 32 and default pointer size is 64.
4723         (find_common_type): Document assumption on t1/t2 vs lhs/rhs. Force use of
4724         lhs type if smaller, whatever the modes.
4726         * gigi.h (malloc32_decl): New macro definition
4728         * utils.c (init_gigi_decls): New malloc32_decl
4729         Various code clean ups.
4731         * s-asthan-vms-alpha.adb (Process_AST.To_Address): Unchecked convert to
4732         Task_Address vice System.Address.
4734         * s-taspri-vms.ads: Import System.Aux_DEC
4735         (Task_Address): New subtype of System.Aux_DEC.Short_Address
4736         (Task_Address_Size): New constant size of System.Aux_DEC.Short_Address
4738         * s-asthan-vms-alpha.adb (Process_AST.To_Address): Unchecked convert to
4739         Task_Address vice System.Address.
4741         * s-inmaop-vms.adb: Import System.Task_Primitives
4742         (To_Address): Unchecked convert to Task_Address vice System.Address
4744         * s-taprop-vms.adb (Timed_Delay): Always set the timer even if delay
4745         expires now.
4746         (To_Task_ID) Unchecked convert from Task_Adddress vice System.Address
4747         (To_Address) Unchecked convert to Task_Address vice System.Address
4749         * s-tpopde-vms.adb: Remove unnecessary warning pragmas
4751         * g-socthi-vms.ads: Add 32bit size clauses on socket access types.
4753 2008-04-08  Eric Botcazou  <ebotcazou@adacore.com>
4755         * gigi.h (standard_datatypes): Add ADT_fdesc_type and ADT_null_fdesc.
4756         (fdesc_type_node): Define.
4757         (null_fdesc_node): Likewise.
4758         * decl.c (gnat_to_gnu_entity) <E_Access_Subprogram_Type>: If the target
4759         uses descriptors for vtables and the type comes from a dispatch table,
4760         return the descriptor type.
4761         * trans.c (Attribute_to_gnu) <Attr_Unrestricted_Access>: If the target
4762         uses descriptors for vtables and the type comes from a dispatch table,
4763         build a descriptor in the static case and copy the existing one in the
4764         non-static case.
4765         (gnat_to_gnu) <N_Null>: If the target uses descriptors for vtables and
4766         the type is a pointer-to-subprogram coming from a dispatch table,
4767         return the null descriptor.
4768         <N_Unchecked_Type_Conversion>: If the target uses descriptors for
4769         vtables, the source type is the descriptor type and the target type
4770         is a pointer type, first build the pointer.
4771         * utils.c (init_gigi_decls): If the target uses descriptors for vtables
4772         build the descriptor type and the null descriptor.
4774 2008-04-08  Eric Botcazou  <ebotcazou@adacore.com>
4776         * decl.c (prepend_attributes): Fix typo.
4777         * trans.c (Pragma_to_gnu): Likewise.
4778         * utils.c (gnat_genericize): Likewise.
4780 2008-04-08  Eric Botcazou  <ebotcazou@adacore.com>
4781             Richard Kenner  <kenner@adacore.com>
4783         * ada-tree.h (TYPE_PACKED_ARRAY_TYPE_P): Only set it when bit-packed.
4784         * decl.c (gnat_to_gnu_entity): Adjust for above change.
4785         <E_Record_Type>: Try to get a better form of the component for
4786         packing, even if it has an integral mode.
4787         <E_Record_Subtype>: Likewise.
4788         * trans.c (gnat_to_gnu): Do not require BLKmode for the special
4789         exception suppressing the final conversion between record types.
4791 2008-04-08  Eric Botcazou  <ebotcazou@adacore.com>
4793         * decl.c (gnat_to_gnu_entity) <object>: If -gnatd.a and not optimizing
4794         alignment for space, promote the alignment of non-scalar variables with
4795         no size and alignment.
4796         * gigi.h (gnat_types_compatible_p): Declare.
4797         * misc.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Set to above predicate.
4798         * trans.c (gnat_to_gnu): Revert revision 129339 change.  Minor cleanup.
4799         * utils.c (gnat_types_compatible_p) : New predicate.
4800         (convert): Use it throughout to test for cases where a mere view
4801         conversion is sufficient.
4802         * utils2.c (build_binary_op): Minor tweaks.
4803         (build_unary_op): Likewise.
4805 2008-04-08  Eric Botcazou  <ebotcazou@adacore.com>
4807         * decl.c (adjust_packed): Expand comment.
4809 2008-04-08  Arnaud Charlet  <charlet@adacore.com>
4811         * s-tasuti.ads: Use Task_Address instead of System.Address.
4813         * makeutl.adb (Path_Or_File_Name): New function
4815         * nlists.ads, itypes.ads: Update comments.
4817         * s-crtl.ads (malloc32, realloc32): New functions.
4819         * s-auxdec.ads (Short_Address_Size): New constant.
4821         * a-taside.adb, s-tasdeb.adb: Use Task_Address.
4823         * s-ststop.ads, s-ststop.adb: New file.
4825         * exp_tss.ads, s-taprop-lynxos.adb: Update comments.
4826         Minor reformatting.
4828 2008-04-08  Pascal Obry  <obry@adacore.com>
4830         * g-sercom.ads, g-sercom.adb (Data_Rate): Add B115200.
4831         (Stop_Bits_Number): New type.
4832         (Parity_Check): Likewise.
4833         (Set): Add parameter to set the number of stop bits and
4834         the parity. Parameter timeout is now a duration instead
4835         of a plain integer.
4837         * g-sercom-linux.adb:
4838         Implement the stop bits and parity support for GNU/Linux.
4839         Fix handling of timeout, it must be given in tenth of seconds.
4841         * g-sercom-mingw.adb:
4842         Implement the stop bits and parity support for Windows.
4843         Use new s-win32.ads unit instead of declaring Win32 services
4844         directly into this body.
4845         Update handling of timeout as now a duration.
4847         * s-win32.ads, s-winext.ads: New files.
4849 2008-04-08  Eric Botcazou  <ebotcazou@adacore.com>
4850             Arnaud Charlet  <charlet@adacore.com>
4852         * s-osinte-linux-alpha.ads, s-osinte-linux-hppa.ads: Removed.
4854         s-taspri-posix-noaltstack.ads, s-linux.ads, s-linux-alpha.ads,
4855         s-linux-hppa.ads: New files. Disable alternate stack on ia64-hpux.
4857         * s-osinte-lynxos-3.ads,
4858         (Alternate_Stack): Remove when not needed. Simplify declaration
4859         otherwise.
4860         (Alternate_Stack_Size): New constant.
4862         s-osinte-mingw.ads, s-taprop-mingw.adb: Code clean up: avoid use of
4863         'Unrestricted_Access.
4865         * s-osinte-hpux.ads, s-osinte-solaris-posix.ads, s-osinte-aix.ads,
4866         s-osinte-lynxos.ads, s-osinte-freebsd.ads s-osinte-darwin.ads,
4867         s-osinte-tru64.ads, s-osinte-irix.ads, s-osinte-linux.ads,
4868         s-osinte-solaris.ads, s-osinte-vms.ads
4869         (SA_ONSTACK): New constant.
4870         (stack_t): New record type.
4871         (sigaltstack): New imported function.
4872         (Alternate_Stack): New imported variable.
4873         (Alternate_Stack_Size): New constant.
4875         * system-linux-x86_64.ads: (Stack_Check_Probes): Set to True.
4877         * s-taspri-lynxos.ads, s-taspri-solaris.ads, s-taspri-tru64.ads,
4878         s-taspri-hpux-dce.ads, s-taspri-dummy.ads, s-taspri-posix.ads,
4879         s-taspri-vms.ads (Task_Address): New subtype of System.Address
4880         (Task_Address_Size): New constant size of System.Address
4881         (Alternate_Stack_Size): New constant.
4883         * s-taprop-posix.adb, s-taprop-linux.adb (Get_Stack_Attributes): Delete.
4884         (Enter_Task): Do not notify stack to System.Stack_Checking.Operations.
4885         Establish the alternate stack if the platform makes use of n alternate
4886         signal stack for stack overflows.
4887         (Create_Task): Take into account the alternate stack in the stack size.
4888         (Initialize): Save the address of the alternate stack into the ATCB for
4889         the environment task.
4890         (Create_Task): Fix assertions for NPTL library (vs old LinuxThreads).
4892         * s-parame.adb (Minimum_Stack_Size): Increase value to 16K
4894         * system-linux-x86.ads: (Stack_Check_Probes): Set to True.
4896         * s-intman-posix.adb:
4897         (Initialize): Set SA_ONSTACK for SIGSEGV if the platform makes use of an
4898         alternate signal stack for stack overflows.
4900         * init.c (__gnat_adjust_context_for_raise, Linux version): On i386 and
4901         x86-64, adjust the saved value of the stack pointer if the signal was
4902         raised by a stack checking probe.
4903         (HP-UX section): Use global __gnat_alternate_stack as signal handler
4904         stack and only for SIGSEGV.
4905         (Linux section): Likewise on x86 and x86-64.
4906         [VxWorks section]
4907         (__gnat_map_signal): Now static.
4908         (__gnat_error_handler): Not static any more.
4909         (__gnat_adjust_context_for_raise): New function. Signal context
4910         adjustment for PPC && !VTHREADS && !RTP, as required by the zcx
4911         propagation circuitry.
4912         (__gnat_error_handler): Second argument of a sigaction handler is a
4913         pointer, not an int, and is unused.
4914         Adjust signal context before mapping to exception.
4915         Install signal handlers for LynxOS case.
4917         * s-taskin.ads (Common_ATCB): New field Task_Alternate_Stack.
4918         (Task_Id): Set size to Task_Address_Size
4919         (To_Task_id): Unchecked convert from Task_Address vice System.Address
4920         (To_Address): Unchecked convert to Task_Address vice System.Address
4922         * s-tassta.adb (Task_Wrapper): Define the alternate stack and save its
4923         address into the ATCB if the platform makes use of an alternate signal
4924         stack for stack overflows.
4925         (Free_Task): Add call to Finalize_Attributes_Link.
4926         Add argument Relative_Deadline to pass the value specified for
4927         the task. This is not yet used for any target.
4929         * s-tassta.ads (Create_Task): Add argument Relative_Deadline to pass
4930         the value specified for the task.
4932 2008-04-08  Arnaud Charlet  <charlet@adacore.com>
4934         (s-osinte-vxworks6.ads): Removed, merged with s-osinte-vxworks.ads/.adb
4935         (s-vxwext.ads, s-vxwext-kernel.ads, s-vxwext-rtp.ads,
4936         s-vxwext-rtp.adb): New files.
4938         * s-taprop-vxworks.adb, s-osinte-vxworks.ads, s-osinte-vxworks.adb:
4939         Minor updates to accomodate changes above.
4941 2008-04-08  Pascal Obry  <obry@adacore.com>
4943         * a-exetim-mingw.adb, s-gloloc-mingw.adb, s-taprop-mingw.adb,
4944         s-tasinf-mingw.ad{s,b}, s-taspri-mingw.ads:
4945         Use new s-win32.ads unit instead of declaration
4946         from s-osinte-mingw.ads.
4948         * s-osinte-mingw.ads:
4949         Move all non tasking based interface to s-win32.ads.
4951         * s-osprim-mingw.adb:
4952         Remove duplicated declarations and use s-win32.ads
4953         unit instead.
4955 2008-04-08  Vincent Celier  <celier@adacore.com>
4956             Arnaud Charlet  <charlet@adacore.com>
4958         * mlib-tgt-aix.adb, mlib-tgt-darwin.adb, mlib-tgt-hpux.adb,
4959         mlib-tgt-irix.adb, mlib-tgt-linux.adb, mlib-tgt-lynxos.adb,
4960         mlib-tgt-solaris.adb, mlib-tgt-tru64.adb, mlib-tgt-vms.adb,
4961         mlib-tgt-vms.ads, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
4962         mlib-tgt-vxworks.adb, mlib-tgt-mingw.adb: Renamed into...
4964         * mlib-tgt-specific-aix.adb, mlib-tgt-specific-darwin.adb,
4965         mlib-tgt-specific-hpux.adb, mlib-tgt-specific-irix.adb,
4966         mlib-tgt-specific-linux.adb, mlib-tgt-specific-lynxos.adb,
4967         mlib-tgt-specific-solaris.adb, mlib-tgt-specific-tru64.adb,
4968         mlib-tgt-vms_common.adb, mlib-tgt-vms_common.ads,
4969         mlib-tgt-specific-vms-alpha.adb, mlib-tgt-specific-vms-ia64.adb,
4970         mlib-tgt-specific-vxworks.adb, mlib-tgt-specific-xi.adb,
4971         mlib-tgt-specific-mingw.adb: New names.
4973         * Makefile.in:
4974         On VxWorks platforms use s-stchop-limit.ads for s-stchop.ads
4975         Get rid of gnatbl.
4976         (EXTRA_GNATRTL_NONTASKING_OBJS): Add s-win32.o
4977         Files mlib-tgt-*.adb have been renamed mlib-tgt-specific-*.adb
4978         Minor updates for VMS
4980         * gnatbl.c: Removed.
4982 2008-04-08  Thomas Quinot  <quinot@adacore.com>
4984         * g-expect-vms.adb, a-textio.adb, a-witeio.adb, exp_dbug.adb,
4985         g-expect.adb, g-locfil.adb, gnatchop.adb, gnatdll.adb, gnatlbr.adb,
4986         gnatmem.adb, g-regist.adb, i-vxwork.ads, mlib-utl.adb, i-vxwork-x86.ads,
4987         a-ztexio.adb, g-enblsp-vms-alpha.adb, g-enblsp-vms-ia64.adb,
4988         s-os_lib.adb, s-regpat.adb, s-regpat.ads: Fix incorrect casing of
4989         ASCII.NUL throughout.
4991 2008-04-08  Arnaud Charlet  <charlet@adacore.com>
4992             Matthew Heaney  <heaney@adacore.com>
4994         * a-cgcaso.adb, a-convec.adb: (Swap, Sift): Avoid use of complex
4995         renaming.
4997         * a-cgaaso.ads, a-secain.ads, a-slcain.ads, a-shcain.ads,
4998         a-crdlli.ads, a-coormu.ads, a-ciormu.ads: modified header to conform
4999         to convention for non-RM specs.
5000         Add descriptive header, and documented each operation
5001         document each operation
5003 2008-04-08  Robert Dewar  <dewar@adacore.com>
5004             Bob Duff  <duff@adacore.com>
5005             Gary Dismukes  <dismukes@adacore.com>
5006             Ed Schonberg  <schonberg@adacore.com>
5008         * alloc.ads: Add entries for Obsolescent_Warnings table
5010         * einfo.ads, einfo.adb: Minor reformatting.
5011         (Is_Discriminal): New subprogram.
5012         (Is_Prival): New subprogram.
5013         (Is_Protected_Component): New subprogram.
5014         (Is_Protected_Private): Removed.
5015         (Object_Ref, Set_Object_Ref): Removed.
5016         (Prival, Set_Prival): Change assertion.
5017         (Privals_Chain, Set_Privals_Chain): Removed.
5018         (Prival_Link, Set_Prival_Link): New subprogram.
5019         (Protected_Operation, Set_Protected_Operation): Removed.
5020         (Protection_Object, Set_Protection_Object): New subprogram.
5021         (Write_Field17_Name): Remove case for Object_Ref.
5022         (Write_Field20_Name): Add case for Prival_Link.
5023         (Write_Field22_Name): Remove case for Protected_Operation,
5024         Privals_Chain.
5025         Add case for Protection_Object.
5026         (Can_Use_Internal_Rep): Make this into a [base type only] attribute,
5027         so clients
5028         (Overlays_Constant): New flag
5029         (Is_Constant_Object): New predicate
5030         (Is_Standard_Character_Type): New predicate
5031         (Optimize_Alignment_Space): New flag
5032         (Optimize_Alignment_Time): New flag
5033         (Has_Postconditions): New flag
5034         (Obsolescent_Warrning): Field removed
5035         (Spec_PPC_List): New field
5036         (Relative_Deadline_Variable, Set_Relative_Deadline_Variable): Add
5037         subprograms to get and set the relative deadline associated to a task.
5039         * exp_attr.adb (May_Be_External_Call): Account for the case where the
5040         Access attribute is part of a named parameter association.
5041         (Expand_Access_To_Protected_Op): Test for the attribute occurring
5042         within an init proc and use that directly as the scope rather than
5043         traversing up to the protected operation's enclosing scope. Only apply
5044         assertion on Is_Open_Scopes in the case the scope traversal is done.
5045         For the init proc case use the address of the first formal (_init) as
5046         the protected object reference.
5047         Implement Invalid_Value attribute
5048         (Expand_N_Attribute_Reference): Case Attribute_Unrestricted_Access.
5049         contents of the dispatch table there is no need to duplicate the
5050         itypes associated with record types (i.e. the implicit full view
5051         of private types).
5052         Implement Enum_Val attribute
5053         (Expand_N_Attribute_Reference, case Old): Properly handle appearence
5054         within _Postconditions procedure
5055         (Expand_N_Attribute_Reference, case Result): Implement new attribute
5057         * exp_ch5.adb (Expand_N_Simple_Return_Statement): Handle case in which
5058         a return statement calls a function that is not available in
5059         configurable runtime.
5060         (Analyze_If_Statement): don't optimize simple True/False cases in -O0
5061         (Expand_Non_Function_Return): Generate call to _Postconditions proc
5062         (Expand_Simple_Function_Return): Ditto
5064         * frontend.adb: Add call to Sem_Aux.Initialize
5066         * sem_aux.ads, sem_aux.adb: New file.
5068         * par-prag.adb: Add entries for pragmas Precondition/Postcondition
5069         Add new Pragma_Relative_Deadline.
5070         Add support for pragmas Check and Check_Policy
5072         * sem_attr.ads, sem_attr.adb (Check_Not_CPP_Type): New subprogram.
5073         (Check_Stream_Attribute): Add missing check (not allowed in CPP types)
5074         (Analyze_Attribute): In case of attributes 'Alignment and 'size add
5075         missing check because they are not allowed in CPP tagged types.
5076         Add Sure parameter to Note_Possible_Modification calls
5077         Add implementation of Invalid_Value attribute
5078         Implement new attribute Has_Tagged_Values
5079         Implement Enum_Val attribute
5080         (Analyze_Attribute, case Range): Set Name_Req True for prefix of
5081         generated attributes.
5082         (Analyze_Attribute, case Result): If prefix of the attribute is
5083         overloaded, it always resolves to the enclosing function.
5084         (Analyze_Attribute, case Result): Properly deal with analysis when
5085         Postconditions are not active.
5086         (Resolve_Attribute, case Result): Properly deal with appearence during
5087         preanalysis in spec.
5088         Add processing for attribute Result
5090         * sem_ch6.ads, sem_ch6.adb (Check_Overriding_Indicator): Code cleanup
5091         for operators.
5092         (Analyze_Subprogram_Body): Install private_with_clauses when the body
5093         acts as a spec.
5094         (Check_Inline_Pragma): recognize an inline pragma that appears within
5095         the subprogram body to which it applies.
5096         (Analyze_Function_Return): Check that type of the expression of a return
5097         statement in a function with a class-wide result is not declared at a
5098         deeper level than the function.
5099         (Process_PPCs): Deal with enabling/disabling, using PPC_Enabled flag
5100         (Verify_Overriding_Indicator): Handle properly subprogram bodies for
5101         user- defined operators.
5102         (Install_Formals): Moved to spec to allow use from Sem_Prag for
5103         analysis of precondition/postcondition pragmas.
5104         (Analyze_Subprogram_Body.Last_Real_Spec_Entity): New name for
5105         Last_Formal, along with lots of comments on what this is about
5106         (Analyze_Subprogram_Body): Fix case where we move entities from the
5107         spec to the body when there are no body entities (now possible with
5108         precondition and postcondition pragmas).
5109         (Process_PPCs): New procedure
5110         (Analyze_Subprogram_Body): Add call to Process_PPCs
5112         * sem_ch8.adb (Use_One_Type): refine warning on a redundant use_type
5113         clause.
5114         (Pop_Scope): Restore Check_Policy_List on scope exit
5115         (Push_Scope): Save Check_Policy_List on scope entry
5116         Change name In_Default_Expression      => In_Spec_Expression
5117         Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
5118         Change name Pre_Analyze_And_Resolve    => Preanalyze_And_Resolve
5119         (Analyze_Object_Renaming): Allow 'Reference as object
5120         (Analyze_Pragma, case Restriction_Warnings): Call GNAT_Pragma
5121         (Process_Restrictions_Or_Restriction_Warnings): Check for bad spelling
5122         of restriction identifier.
5123         Add Sure parameter to Note_Possible_Modication calls
5125         * sem_prag.ads, sem_prag.adb (Analyze_Pragma, case Stream_Convert):
5126         Don't check for primitive operations when calling Rep_Item_Too_Late.
5127         (Process_Import_Or_Interface): Do not place flag on formal
5128         subprograms.
5129         (Analyze_Pragma, case Export): If the entity is a deferred constant,
5130         propagate information to full view, which is the one elaborated by the
5131         back-end.
5132         (Make_Inline): the pragma is effective if it applies to an internally
5133         generated subprogram declaration for a body that carries the pragma.
5134         (Analyze_Pragma, case Optimize_Alignment): Set new flag
5135         Optimize_Alignment_Local.
5136         (Analyze_PPC_In_Decl_Part): New procedure
5137         (Get_Pragma_Arg): Moved to outer level
5138         (Check_Precondition_Postcondition): Change to allow new visibility
5139         rules for package spec
5140         (Analyze_Pragma, case Check_Policy): Change placement rules to be
5141         same as pragma Suppress/Unsuppress.
5142         Change name In_Default_Expression      => In_Spec_Expression
5143         Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
5144         Change name Pre_Analyze_And_Resolve    => Preanalyze_And_Resolve
5145         (Check_Precondition_Postcondition): Do proper visibility preanalysis
5146         for the case of these pragmas appearing in the spec.
5147         (Check_Enabled): New function
5148         (Initialize): New procedure
5149         (Tree_Read): New procedure
5150         (Tree_Write): New procedure
5151         (Check_Precondition_Postcondition): New procedure
5152         Implement pragmas Check and Check_Policy
5153         Merge Assert processing with Check
5155         * sem_warn.adb (Warn_On_Known_Condition): Handle pragma Check
5156         New warning flag -gnatw.e
5158         * sinfo.ads, sinfo.adb (Has_Relative_Deadline_Pragma): New function
5159         returning whether a task (or main procedure) has a pragma
5160         Relative_Deadline.
5161         (Set_Has_Relative_Deadline_Pragma): Procedure to indicate that a task
5162         (or main procedure) has a pragma Relative_Deadline.
5163         Add Next_Pragma field to N_Pragma node
5164         (PPC_Enabled): New flag
5165         (Next_Pragma): Now used for Pre/Postcondition processing
5167         * snames.h, snames.ads, snames.adb: New standard name
5168         Inherit_Source_Path
5169         Add entry for 'Invalid_Value attribute
5170         Add entry for new attribute Has_Tagged_Values
5171         Add entry for Enum_Val attribute
5172         Add new standard names Aggregate, Configuration and Library.
5173         Add _Postconditions
5174         Add _Result
5175         Add Pragma_Precondition
5176         Add Pragma_Postcondition
5177         Add Attribute_Result
5178         New standard name Archive_Builder_Append_Option
5179         (Preset_Names): Add _relative_deadline and relative_deadline definitions
5180         There was also a missing non_preemptive_within_priorities.
5181         (Get_Pragma_Id, Is_Pragma_Name): Add support for pragma
5182         Relative_Deadline.
5183         Add support for pragmas Check and Check_Policy
5185         * tree_gen.adb: Call Sem_Aux.Tree_Write
5187         * tree_in.adb: Call Sem_Aux.Tree_Read
5189         * exp_ch11.adb (Expand_N_Raise_Statement): New Build_Location calling
5190         sequence
5192         * exp_intr.adb (Expand_Source_Info): New Build_Location calling
5193         sequence
5195         * exp_prag.adb (Expand_Pragma_Relative_Deadline): New procedure.
5196         (Expand_N_Pragma): Call the appropriate procedure for expanding pragma
5197         Relative_Deadline.
5198         (Expand_Pragma_Check): New procedure
5200         * sinput.ads, sinput.adb (Build_Location_String): Now appends to name
5201         buffer.
5203         * sinfo.adb (PPC_Enabled): New flag
5205 2008-04-08  Robert Dewar  <dewar@adacore.com>
5206             Gary Dismukes  <dismukes@adacore.com>
5207             Javier Miranda  <miranda@adacore.com>
5208             Ed Schonberg  <schonberg@adacore.com>
5210         * fe.h: Remove global Optimize_Alignment flag, no longer used
5212         * layout.adb: Test Optimize_Alignment flags rather than global switch
5214         * lib.ads, lib.adb: New OA_Setting field in library record
5216         * lib-load.adb: New OA_Setting field in library record
5218         * lib-writ.ads, lib-writ.adb (Collect_Withs, Write_With_Lines): Place
5219         units mentioned in limited_with_ clauses in the ali file, with an
5220         'Y' marker.
5221         New Ox fields in U line
5223         * opt.adb: New flag Optimize_Alignment_Local
5224         (Check_Policy_List[_Config]): New flags
5226         * opt.ads (Invalid_Value_Used): New flag
5227         New switch Optimize_Alignment_Local
5228         (Warn_On_Parameter_Order): New flag
5229         (Check_Policy_List[_Config]): New flags
5231         * ali.ads, ali.adb: Add indicator 'Y' to mark mark the presence of
5232         limited_with clauses.
5233         New data structures for Optimize_Alignment
5235         * bcheck.adb (Check_Consistent_Restriction_No_Default_Initialization):
5236         New procedure
5237         (Check_Consistent_Optimize_Alignment): Rework for new structure
5238         (Check_Consistent_Restrictions): Fix incorrect error message
5240         sem_ch10.adb (Decorate_Tagged_Type): Set the Parent field of a newly
5241         created class-wide type (to the Parent field of the specific type).
5242         (Install_Siblings): Handle properly private_with_clauses on subprogram
5243         bodies and on generic units.
5244         (Analyze_With_Clause, Install_Limited_Withed_Unit): Guard against an
5245         illegal limited_with_clause that names a non-existent package.
5246         (Check_Body_Required): Determine whether a unit named a limited_with
5247         clause needs a body.
5248         (Analyze_Context): A limited_with_clause is illegal on a unit_renaming.
5249         Capture Optimize_Alignment settings to set new OA_Setting field in
5250         library record.
5251         (Build_Limited_Views): Include task and protected type declarations.
5253         * sem_ch3.ads, sem_ch3.adb (Analyze_Object_Declaration): Handle the
5254         case of a possible constant redeclaration where the current object is
5255         an entry index constant.
5256         (Analyze_Object_Declaration): Generate an error in case of CPP
5257         class-wide object initialization.
5258         (Analyze_Object_Declaration): Add extra information on warnings for
5259         declaration of unconstrained objects.
5260         (Access_Type_Declaration): Set Associated_Final_Chain to Empty, to avoid
5261         conflicts with the setting of Stored_Constraint in the case where the
5262         access type entity has already been created as an E_Incomplete_Type due
5263         to a limited with clause.
5264         Use new Is_Standard_Character_Type predicate
5265         (Analyze_Object_Declaration): Apply access_constant check only after
5266         expression has been resolved, given that it may be overloaded with
5267         several access types.
5268         (Constant_Redeclaration): Additional legality checks for deferred
5269         constant declarations tha involve anonymous access types and/or null
5270         exclusion indicators.
5271         (Analyze_Type_Declaration): Set Optimize_Alignment flags
5272         (Analyze_Subtype_Declaration): Ditto
5273         (Analyze_Object_Declaration): Ditto
5274         (Analyze_Object_Declaration): Don't count tasks in generics
5275         Change name In_Default_Expression      => In_Spec_Expression
5276         Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
5277         Change name Pre_Analyze_And_Resolve    => Preanalyze_And_Resolve
5278         (Process_Discriminants): Additional check for illegal use of default
5279         expressions in access discriminant specifications in a type that is not
5280         explicitly limited.
5281         (Check_Abstract_Overriding): If an inherited function dispaches on an
5282         access result, it must be overridden, even if the type is a null
5283         extension.
5284         (Derive_Subprogram): The formals of the derived subprogram have the
5285         names and defaults of the parent subprogram, even if the type is
5286         obtained from the actual subprogram.
5287         (Derive_Subprogram): In the presence of interfaces, a formal of an
5288         inherited operation has the derived type not only if it descends from
5289         the type of the formal of the parent operation, but also if it
5290         implements it. This is relevant for the renamings created for the
5291         primitive operations of the actual for a formal derived type.
5292         (Is_Progenitor): New predicate, to determine whether the type of a
5293         formal in the parent operation must be replaced by the derived type.
5295         * sem_util.ads, sem_util.adb (Has_Overriding_Initialize): Make
5296         predicate recursive to handle components that have a user-defined
5297         Initialize procedure. Handle controlled derived types whose ancestor
5298         has a user-defined Initialize procedured.
5299         (Note_Possible_Modification): Add Sure parameter, generate warning if
5300         sure modification of constant
5301         Use new Is_Standard_Character_Type predicate
5302         (Find_Parameter_Type): when determining whether a protected operation
5303         implements an interface operation, retrieve the type of the formal from
5304         the entity when the formal is an access parameter or an
5305         anonymous-access-to-subprogram.
5306         Move Copy_Parameter_List to sem_util, for use when building stubbed
5307         subprogram bodies.
5308         (Has_Access_Values): Tagged types now return False
5309         (Within_HSS_Or_If): New procedure
5310         (Set_Optimize_Alignment_Flags): New procedure
5311         Change name In_Default_Expression      => In_Spec_Expression
5312         Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
5313         Change name Pre_Analyze_And_Resolve    => Preanalyze_And_Resolve
5315 2008-04-08  Tristan Gingold  <gingold@adacore.com>
5317         * s-fileio.adb: Name_Error shouldn't be raised for a tempory file.
5319 2008-04-08  Tristan Gingold  <gingold@adacore.com>
5321 PR ada/10768
5323         * cuintp.c: Fix 16 bits issue for AVR.
5324         On AVR, integer is 16 bits, so it can't be used to do math with
5325         Base (=32768).
5326         So use long_integer instead.
5328 2008-04-08  Hristian Kirtchev  <kirtchev@adacore.com>
5330         * a-calend-vms.ads, a-calend-vms.adb: Add with and use clause for
5331         System.OS_Primitives.
5332         Change type of various constants, parameters and local variables from
5333         Time to representation type OS_Time.
5334         (To_Ada_Time, To_Unix_Time): Correct sign of origin shift.
5335         Remove the declaration of constant Mili_F from several routines. New
5336         body for internal package Conversions_Operations.
5337         (Time_Of): Add default parameters for several formals.
5339         * a-caldel.adb: Minor reformatting
5341         * a-calend.ads, a-calend.adb: New body for internal package
5342         Conversions_Operations.
5343         (Time_Of): Add default parameters for several formals.
5345         * Makefile.rtl: Add a-ststop
5346         Add Ada.Calendar.Conversions to the list of runtime files.
5347         Add g-timsta
5349         * a-calcon.adb, a-calcon.ads: New files.
5351 2008-04-08  Jose Ruiz  <ruiz@adacore.com>
5352             Tristan Gingold  <gingold@adacore.com>
5354         * s-interr-dummy.adb, s-interr-vms.adb, s-interr-sigaction.adb
5355         (Install_Restricted_Handlers): New procedure
5356         which is a simplified version of Install_Handlers that does not store
5357         previously installed.
5359         * s-interr-vxworks.adb: Fix ACATS cxc3001
5360         On VxWorks interrupts can't be detached.
5361         (Install_Restricted_Handlers): New procedure.
5363         * s-interr.ads, s-interr.adb (Install_Restricted_Handlers): New
5364         procedure.
5366 2008-04-08  Olivier Hainque  <hainque@adacore.com>
5368         * s-intman-vxworks.ads, s-intman-vxworks.adb
5369         (Map_And_Raise_Exception): Remove. Was an import of only part of the
5370         required services already implemented elsewhere.
5371         (Notify_Exception): Delete body, import __gnat_error_handler instead.
5372         (Initialize): Add SA_SIGINFO to the sa_flags, to get the sigcontext
5373         argument passed to the handler, which we need for ZCX propagation
5374         purposes.
5376 2008-04-08  Hristian Kirtchev  <kirtchev@adacore.com>
5378         * adaint.h, adaint.c (__gnat_current_time_string): New routine.
5380         * g-timsta.adb, g-timsta.ads: New files.
5382 2008-04-08  Robert Dewar  <dewar@adacore.com>
5384         * a-except-2005.ads, a-except-2005.adb, a-except.ads, a-except.adb
5385         (Raise_Exception): In accordance with AI-446, raise CE for Null_Id
5386         (Raise_Exception_Always): Fix documentation accordingly
5388 2008-04-08  Robert Dewar  <dewar@adacore.com>
5390         * a-strbou.ads, a-strbou.adb (From_String): New procedure (for use by
5391         Stream_Convert)
5393         * sem_ch13.ads (Rep_Item_Too_Late): Document that Stream_Convert sets
5394         FOnly
5396 2008-04-08  Javier Miranda  <miranda@adacore.com>
5397             Robert Dewar  <dewar@adacore.com>
5398             Ed Schonberg  <schonberg@adacore.com>
5400         * a-tags.adb (Register_Interface_Offset): New subprogram.
5401         (Set_Dynamic_Offset_To_Top): New subprogram (see previous comment).
5402         (To_Predef_Prims_Table_Ptr): Removed.
5403         (Acc_Size): Removed.
5404         (To_Acc_Size): Removed.
5405         (Parent_Size): Modified to the call the subprogram returning the size of
5406         the parent by means of the new TSD component Size_Func.
5408         * a-tags.ads (Offset_To_Top_Ptr): New access type declaration.
5409         (DT_Offset_To_Top_Offset): New constant value that is used to generate
5410         code referencing the Offset_To_Top component of the dispatch table's
5411         prologue.
5412         (Prim_Ptr): New declaration of access to procedure. Used to avoid the
5413         use of 'address to initialize dispatch table slots.
5414         (Size_Func): New component of the TSD. Used by the run-time to call the
5415         size primitive of the tagged type.
5417         * checks.adb (Apply_Access_Check): Avoid check when accessing the
5418         Offset_To_Top component of a dispatch table.
5419         (Null_Exclusion_Static_Checks): If the non-null access type appears in a
5420         deferred constant declaration. do not add a null expression, to prevent
5421         spurious errors when full declaration is analyzed.
5422         (Apply_Discriminant_Check): If both discriminant constraints share a
5423         node which is not static but has no side effects, do not generate a
5424         check for that discriminant.
5425         (Generate_Index_Checks): Set Name_Req to true in call to duplicate
5426         subexpr, since the prefix of an attribute is a name.
5428         * checks.ads: Fix nit in comment.
5430         * exp_ch3.ads, exp_ch3.adb (Freeze_Record_Type): Do not add the spec
5431         and body of predefined primitives in case of CPP tagged type
5432         derivations.
5433         (Freeze_Type): Deal properly with no storage pool case
5434         (Make_Predefined_Primitive_Specs): Generate specification of abstract
5435         primitive Deep_Adjust if a nonlimited interface is derived from a
5436         limited interface.
5437         (Build_Dcheck_Functions): Create discriminant-checking functions only
5438         for variants that have some component(s).
5439         (Build_Slice_Assignment): In expanded code for slice assignment, handle
5440         properly the case where the slice bounds extend to the last value of the
5441         underlying representation.
5442         (Get_Simple_Init_Val): New calling sequence, accomodate Invalid_Value
5443         (Is_Variable_Size_Record): An array component has a static size if
5444         index bounds are enumeration literals.
5446         * exp_disp.adb (Make_DT): Use the first subtype to determine whether
5447         an external tag has been specified for the type.
5448         (Building_Static_DT): Add missing support for private types.
5449         (Make_DT): Add declaration of Parent_Typ to ensure consistent access
5450         to the entity associated with the parent of Typ. This is done to
5451         avoid wrong access when the parent is a private type.
5452         (Expand_Interface_Conversion): Improve error message when the
5453         configurable runtime has no support for dynamic interface conversion.
5454         (Expand_Interface_Thunk): Add missing support to interface types in
5455         configurable runtime.
5456         (Expand_Dispatching_Call): remove obsolete code.
5457         (Make_DT): Replace occurrences of RE_Address by RE_Prim_Ptr, and
5458         ensure that all subtypes and aggregates associated with dispatch
5459         tables have the attribute Is_Dispatch_Table_Entity set to true.
5460         (Register_Primitive): Rename one variable to improve code reading.
5461         Replace occurrences of RE_Addres by RE_Prim_Ptr. Register copy o
5462         of the pointer to the 'size primitive in the TSD.
5464         * rtsfind.ads (RE_DT_Offset_To_Top_Offset): New entity.
5465         (RE_Offset_To_Top_Ptr): New entity.
5466         (RE_Register_Interface_Offset): New entity.
5467         (RE_Set_Dynamic_Offset_To_Top): New entity.
5468         (RE_Set_Offset_To_Top): Removed entity.
5469         (RE_Prim_Ptr): New entity
5470         (RE_Size_Func): New entity
5471         (RE_Size_Ptr): New entity
5472         (RTU_Id): Add Ada_Dispatching and Ada_Dispatching_EDF.
5473         (Ada_Dispatching_Child): Define this new subrange.
5474         (RE_Id): Add new required run-time calls (RE_Set_Deadline, RE_Clock,
5475          RE_Time_Span, and RE_Time_Span_Zero).
5476         (RE_Unit_Table): Add new required run-time calls
5478         * rtsfind.adb (Get_Unit_Name): Add processing for Ada.Dispatching
5479         children.
5481         * exp_atag.ads, exp_atag.adb (Build_Offset_To_Top): New subprogram.
5482         (Build_Set_Static_Offset_To_Top): New subprogram. Generates code that
5483          initializes the Offset_To_Top component of a dispatch table.
5484         (Build_Predef_Prims): Removed.
5485         (Build_Get_Predefined_Prim_Op_Address): Replace call to Predef_Prims by
5486          its actual code.
5487         (Build_Set_Size_Function): New subprogram.
5489         * exp_ch13.adb: Do not generate storage variable for storage_size zero
5490         (Expand): Handle setting/restoring flag Inside_Freezing_Actions
5492 2008-04-08  Robert Dewar  <dewar@adacore.com>
5494         * a-ztdeau.adb, a-tideau.adb, a-wtdeau.adb (Puts_Dec): Fix error in
5495         computing Fore when Exp > 0
5497 2008-04-08  Robert Dewar  <dewar@adacore.com>
5499         * back_end.adb: Remove Big_String_Ptr declarations (now in Types)
5501         * errout.adb: Remove Big_String_Ptr declarations (now in Types)
5502         Change name Is_Style_Msg to Is_Style_Or_Info_Msg
5504         * fmap.adb: Remove Big_String declarations (now in Types)
5505         (No_Mapping_File): New Boolean global variable
5506         (Initialize): When mapping file cannot be read, set No_Mapping_File to
5507         False.
5508         (Update_Mapping_File): Do nothing if No_Mapping_File is True. If the
5509         tables were empty before adding entries, open the mapping file
5510         with Truncate = True, instead of delete/re-create.
5512         * fname-sf.adb: Remove Big_String declarations (now in Types)
5514         * s-strcom.adb, g-dyntab.ads, g-table.ads, s-carsi8.adb,
5515         s-stalib.ads, s-carun8.adb: Add zero size Storage_Size clauses for
5516         big pointer types
5518         * table.ads: Add for Table_Ptr'Storage_Size use 0
5520         * types.ads: Add Big_String declarations
5521         Add Size_Clause of zero for big pointer types
5523 2008-04-08  Vincent Celier  <celier@adacore.com>
5525         * clean.adb (Parse_Cmd_Line): Recognize switch --subdirs=
5526         (Usage): Add line for switch --subdirs=
5527         Add new switch -eL, to follow symbolic links when processing project
5528         files.
5530         * gnatcmd.adb: Process switches -eL and --subdirs=
5531         (Non_VMS_Usage): Output "gnaampcmd" instead of "gnat", and call
5532         Program_Name to get proper tool names when AAMP_On_Target is set.
5533         (Gnatcmd): Call Add_Default_Search_Dirs and Get_Target_Parameters to get
5534         AAMP_On_Target set properly for use of GNAAMP tools (this is needed by
5535         Osint.Program_Name).
5537         * gnatname.adb: (Scan_Args): Recognize switches -eL and --subdirs=
5538         (Usage): Add lines for switches -eL and --subdirs=
5540         * makeusg.adb: Add line for switch --subdirs=
5542         * prj.ads:
5543         (Source_Data): New Boolean component Compiled, defaulted to True
5544         (Empty_File_Name: New global variable in private part, initialized in
5545         procedure Initialize.
5546         (Subdirs_Option): New constant string
5547         (Subdirs): New String_Ptr global variable
5548         (Language_Config): New component Include_Compatible_Languages
5549         (Project_Qualifier): New type for project qualifiers
5550         (Project_Data): New component Qualifier
5551         (Project_Configuration): New component Archive_Builder_Append_Option
5553         * prj-nmsc.adb (Get_Unit_Exceptions): When a unit is already in
5554         another imported project indicate the name of this imported project.
5555         (Check_File): When a unit is in two project files, indicate the project
5556         names and the paths of the source files for each project.
5557         (Add_Source): Set Compiled to False if compiler driver is empty. Only
5558         set object, dependency and switches file names if Compiled is True.
5559         (Process_Compiler): Allow the empty string for value of attribute Driver
5560         (Get_Directories): When Subdirs is not null and Object_Dir is not
5561          specified, locate and create if necessary the actual object dir.
5562         (Locate_Directory): When Subdirs is not empty and Create is not the
5563         empty string, locate and create if necessary the actual directory
5564         as a subdirectory of directory Name.
5565         (Check_Library_Attributes.Check_Library): Allow a project where the only
5566         "sources" are header files of file based languages to be imported by
5567         library projects, in multi-language mode (gprbuild).
5568         (Check_Library_Attributes.Check_Library): In multi-language mode
5569         (gprbuild), allow a library project to import a project with no
5570         sources, even when this is not declared explicitly.
5571         (Check_If_Externally_Built): A virtual project extending an externally
5572         built project is also externally built.
5573         (Check_Library_Attributes): For a virtual project extending a library
5574         project, inherit the library directory.
5575         (Process_Project_Level_Array_Attributes): Process new attribute
5576         Inherit_Source_Path.
5577         For projects with specified qualifiers "standard", "library" or
5578         "abstract", check that the project conforms to the qualifier.
5579         (Process_Project_Level_Simple_Attributes): Process new attribute
5580          Archive_Builder_Append_Option.
5582         * switch-m.adb: (Scan_Make_Switches): Process switch --subdirs=
5583         (Normalize_Compiler_Switches): Only keep compiler switches that are
5584         passed to gnat1 by the gcc driver and that are stored in the ALI file
5585         by gnat1.
5586         Do not take into account switc -save-temps
5588         * makegpr.adb (Compile_Link_With_Gnatmake): Transmit switch -eL if
5589         gprmake is called with -eL.
5590         (Scan_Arg): Recognize switch -eL
5591         (Usage): Add line for switch -eL
5593         * prj.adb (Initialize): Initialize Empty_File_Name
5594         (Project_Empty): New component Qualifier
5596         * prj-attr.ads, prj-attr.adb: New project level attribute
5597         Inherit_Source_Path.
5598         New project level attribute Archive_Builder_Append_Option
5600         * prj-dect.adb: Replace System.Strings by GNAT.Strings.
5602         * prj-ext.adb (Initialize_Project_Path): In Multi_Language mode, add
5603         <prefix>/lib/gnat in the project path, after <prefix>/share/gpr, for
5604         upward compatibility.
5606         * prj-part.adb (Project_Path_Name_Of.Try_Path): In high verbosity, put
5607         each Trying ..." on different lines.
5608         (Parse_Single_Project): Recognize project qualifiers. Fail in qualifier
5609         is "configuration" when not in configuration. Fail when in configuration
5610         when a specified qualifier is other than "configuration".
5612         * prj-proc.adb (Process_Declarative_Items): Link new elements of copied
5613         full associative array together.
5614         (Recursive_Process): Put the project qualifier in the project data
5616         * prj-tree.ads, prj-tree.adb: (Project_Qualifier_Of): New function
5617         (Set_Project_Qualifier_Of): New procedure
5619 2008-04-08  Robert Dewar  <dewar@adacore.com>
5621         * errout.ads: Update comments for new handling of info: messages
5623         * erroutc.adb (Matches): New procedure
5624         (Warning_Specifically_Suppressed): Modified to handle multiple * chars
5625         (Is_Style_Or_Info_Msg): New name for Is_Style_Msg, now set for
5626          info messages as well as style messages.
5628         * erroutc.ads: Remove unneeded fields from Specific_Warning_Entry
5630         * sem_elab.adb (Supply_Bodies): Create actual bodies for stubbed
5631         subprograms.
5632         (Check_A_Call): Special "info: " warnings now have ? in the text
5633         (Elab_Warning): Use info message in static case
5635 2008-04-08  Ed Schonberg  <schonberg@adacore.com>
5637         * exp_aggr.adb (Static_Array_Aggregate): Use Max_Aggr_Size to determine
5638         whether an array aggregate with static bounds and scalar components
5639         should be expanded into a static constant.
5641 2008-04-08  Gary Dismukes  <dismukes@adacore.com>
5642             Ed Schonberg  <schonberg@adacore.com>
5643             Robert Dewar  <dewar@adacore.com>
5645         * sem_cat.adb (Validate_RCI_Subprogram_Declaration): Add tests of
5646         Has_Stream_Attribute_ Definition when checking for available stream
5647         attributes on parameters of a limited type in Ada 2005. Necessary for
5648         proper recognition of visible stream attribute clauses.
5649         (Has_Stream_Attribute_Definition): If the type is derived from a
5650         private type, then use the derived type's underlying type for checking
5651         whether it has stream attributes.
5652         (Validate_Object_Declaration): The check for a user-defined Initialize
5653         procedure applies also to types with controlled components or a
5654         controlled ancestor.
5655         Reject an object declaration in a preelaborated unit if the type is a
5656         controlled type with an overriding Initialize procedure.
5657         (Validate_Remote_Access_To_Class_Wide_Type): Return without further
5658         checking when the parent of a dereference is a selected component and
5659         the name has not been analyzed.
5661         * sem_ch4.adb (Analyze_Selected_Component): Add checking for selected
5662         prefixes that are invalid explicit dereferences of remote
5663         access-to-class-wide values, first checking whether the selected
5664         component is a prefixed form of call to a tagged operation.
5665         (Analyze_Call): Remove code that issues an error for limited function
5666         calls in illegal contexts, as we now support all of the contexts that
5667         were forbidden here.
5668         Allow a function call that returns a task.and appears as the
5669         prefix of a selected component.
5670         (Analyze_Reference): Give error message if we try to make a 'Reference
5671         for an object that is atomic/aliased without its type having the
5672         corresponding attribute.
5673         (Analyze_Call): Remove condition checking for attributes to allow
5674         calls to functions with inherently limited results as prefixes of
5675         attributes. Remove related comment about Class attributes.
5676         (Analyze_Selected_Component): If the prefix is a remote type, check
5677         whether this is a prefixed call before reporting an error.
5678         (Complete_Object_Operation): If the controlling formal is an access to
5679         variable reject an actual that is a constant or an access to one.
5680         (Try_Object_Operation): If prefix is a tagged protected object,retrieve
5681         primitive operations from base type.
5683         * exp_ch4.adb (Expand_N_Indexed_Component): Test for prefix that is a
5684         build-in-place
5685         function call and call Make_Build_In_Place_Call_In_Anonymous_Context.
5686         (Expand_N_Selected_Component): Test for prefix that is a build-in-place
5687         function call and call Make_Build_In_Place_Call_In_Anonymous_Context.
5688         (Expand_N_Slice): Test for prefix that is a build-in-place function call
5689         and call Make_Build_In_Place_Call_In_Anonymous_Context.
5690         (Analyze_Call): Remove code that issues an error for limited function
5691         calls in illegal contexts, as we now support all of the contexts that
5692         were forbidden here.
5693         New calling sequence for Get_Simple_Init_Val
5694         (Expand_Boolean_Operator): Add call to Silly_Boolean_Array_Xor_Test
5695         (Expand_N_Op_Not): Add call to Silly_Boolan_Array_Not_Test
5697 2008-04-08  Hristian Kirtchev  <kirtchev@adacore.com>
5698             Ed Schonberg  <schonberg@adacore.com>
5699             Robert Dewar  <dewar@adacore.com>
5701         * exp_ch2.adb: Minor reformatting.
5702         (Expand_Entry_Index_Parameter): Set the type of the identifier.
5703         (Expand_Entry_Reference): Add call to Expand_Protected_Component.
5704         (Expand_Protected_Component): New routine.
5705         (Expand_Protected_Private): Removed.
5706         Add Sure parameter to Note_Possible_Modification calls
5708         * sem_ch12.ads, sem_ch12.adb (Analyze_Subprogram_Instantiation): The
5709         generated subprogram declaration must inherit the overriding indicator
5710         from the instantiation node.
5711         (Validate_Access_Type_Instance): If the designated type of the actual is
5712         a limited view, use the available view in all cases, not only if the
5713         type is an incomplete type.
5714         (Instantiate_Object):  Actual is illegal if the formal is null-excluding
5715         and the actual subtype does not exclude null.
5716         (Process_Default): Handle properly abstract formal subprograms.
5717         (Check_Formal_Package_Instance): Handle properly defaulted formal
5718         subprograms in a partially parameterized formal package.
5719         Add Sure parameter to Note_Possible_Modification calls
5720         (Validate_Derived_Type_Instance): if the formal is non-limited, the
5721         actual cannot be limited.
5722         (Collect_Previous_Instances): Generate instance bodies for subprograms
5723         as well.
5725         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Small): Don't
5726         try to set RM_Size.
5727         Add Sure parameter to Note_Possible_Modification calls
5728         (Analyze_At_Clause): Preserve Comes_From_Source on Rewrite call
5729         (Analyze_Attribute_Definition_Clause, case Attribute_Address): Check for
5730         constant overlaid by variable and issue warning.
5731         Use new Is_Standard_Character_Type predicate
5732         (Analyze_Record_Representation_Clause): Check that the specified
5733         Last_Bit is not less than First_Bit - 1.
5734         (Analyze_Attribute_Definition_Clause, case Address): Check for
5735         self-referential address clause
5737         * sem_ch5.ads, sem_ch5.adb (Diagnose_Non_Variable_Lhs): Rewrite the
5738         detection mechanism when the lhs is a prival.
5739         (Analyze_Assignment): Call Check_Unprotected_Access to detect
5740         assignment of a pointer to protected data, to an object declared
5741         outside of the protected object.
5742         (Analyze_Loop_Statement): Check for unreachable code after loop
5743         Add Sure parameter to Note_Possible_Modication calls
5744         Protect analysis from previous syntax error such as a scope mismatch
5745         or a missing begin.
5746         (Analyze_Assignment_Statement): The assignment is illegal if the
5747         left-hand is an interface.
5749         * sem_res.ads, sem_res.adb (Resolve_Arithmetic_Op): For mod/rem check
5750         violation of restriction No_Implicit_Conditionals
5751         Add Sure parameter to Note_Possible_Modication calls
5752         Use new Is_Standard_Character_Type predicate
5753         (Make_Call_Into_Operator): Preserve Comes_From_Source when rewriting
5754         call as operator. Fixes problems (e.g. validity checking) which
5755         come from the result looking as though it does not come from source).
5756         (Resolve_Call): Check case of name in named parameter if style checks
5757         are enabled.
5758         (Resolve_Call): Exclude calls to Current_Task as entry formal defaults
5759         from the checking that such calls should not occur from an entry body.
5760         (Resolve_Call): If the return type of an Inline_Always function
5761         requires the secondary stack, create a transient scope for the call
5762         if the body of the function is not available for inlining.
5763         (Resolve_Actuals): Apply Ada2005 checks to view conversions of arrays
5764         that are actuals for in-out formals.
5765         (Try_Object_Operation): If prefix is a tagged protected object,retrieve
5766         primitive operations from base type.
5767         (Analyze_Selected_Component): If the context is a call to a protected
5768         operation the parent may be an indexed component prior to expansion.
5769         (Resolve_Actuals): If an actual is of a protected subtype, use its
5770         base type to determine whether a conversion to the corresponding record
5771         is needed.
5772         (Resolve_Short_Circuit): Handle pragma Check
5774         * sem_eval.adb: Minor code reorganization (usea Is_Constant_Object)
5775         Use new Is_Standard_Character_Type predicate
5776         (Eval_Relational_Op): Catch more cases of string comparison
5778 2008-04-08  Robert Dewar  <dewar@adacore.com>
5779             Gary Dismukes  <dismukes@adacore.com>
5781         * s-rident.ads: Add No_Default_Initialization restriction
5783         * exp_tss.adb:
5784         (Has_Non_Null_Base_Init_Proc): Handle No_Default_Initialization case
5785         (Set_TSS): Handle No_Default_Initialization case
5787         * exp_ch6.adb (Expand_N_Subprogram_Body): Handle restriction
5788         No_Default_Initialization
5789         (Expand_N_Subprogram_Body): Remove redundant initialization of out
5790         parameters when Normalize_Scalars is active.
5791         (Add_Final_List_Actual_To_Build_In_Place_Call): Add formal Sel_Comp
5792         Fix casing error in formal parameter name in call
5793         (Register_Predefined_DT_Entry): Replace occurrences of RE_Address by
5794         (Expand_Call, Propagate_Tag): Call Kill_Current_Values when processing a
5795         dispatching call on VM targets.
5797 2008-04-08  Gary Dismukes  <dismukes@adacore.com>
5798             Thomas Quinot  <quinot@adacore.com>
5800         * exp_ch7.adb (Find_Final_List): Change the test for generating a
5801         selected component from an access type's Associated_Final_Chain to
5802         check for the presence of that field, rather than assuming it exists
5803         for all named access types.
5804         (Make_Clean): New formal Chained_Cleanup_Action allowing to specify a
5805         procedure to call at the end of the generated cleanup procedure.
5806         (Expand_Cleanup_Actions): When a new cleanup procedure is generated, and
5807         and an At_End_Proc already exists in the handled sequence of statements
5808         for which cleanup actions are being expanded, the original cleanup
5809         action must be preserved.
5811 2008-04-08  Hristian Kirtchev  <kirtchev@adacore.com>
5812             Ed Schonberg  <schonberg@adacore.com>
5813             Robert Dewar  <dewar@adacore.com>
5814             Gary Dismukes  <dismukes@adacore.com>
5816         * exp_ch9.ads, exp_ch9.adb (Build_Protected_Entry,
5817         Build_Unprotected_Subprogram_Body): Generate debug info for
5818         declarations related to the handling of private data in task and
5819         protected types.
5820         (Debug_Private_Data_Declarations): New subprogram.
5821         (Install_Private_Data_Declarations): Remove all debug info flagging.
5822         This is now done by Debug_Private_Data_Declarations at the correct
5823         stage of expansion.
5824         (Build_Simple_Entry_Call): If the task name is a function call, expand
5825         the prefix into an object declaration, and make the surrounding block a
5826         task master.
5827         (Build_Master_Entity): An internal block is a master if it wraps a call.
5828         Code reformatting, update comments. Code clean up.
5829         (Make_Task_Create_Call): Use 'Unrestricted_Access instead of 'Address.
5830         (Replicate_Entry_Formals): If the formal is an access parameter or
5831         anonymous access to subprogram, copy the original tree to create new
5832         entities for the formals of the subprogram.
5833         (Expand_N_Task_Type_Declaration): Create a Relative_Deadline variable
5834         for tasks to store the value passed using pragma Relative_Deadline.
5835         (Make_Task_Create_Call): Add the Relative_Deadline argument to the
5836         run-time call to create a task.
5837         (Build_Wrapper_Spec): If the controlling argument of the interface
5838         operation is an access parameter with a non-null indicator, use the
5839         non-null indicator on the wrapper.
5841         * sem_ch9.adb (Analyze_Protected_Type): Only retrieve the full view when
5842         present, which it may not be in the case where the type entity is an
5843         incomplete view brought in by a limited with.
5844         (Analyze_Task_Type): Only retrieve the full view when present, which it
5845         may not be in the case where the type entity is an incomplete view brought
5846         in by a limited with.
5847         (Analyze_Protected_Definition): Set Is_Frozen on all itypes generated for
5848         private components of a protected type, to prevent the generation of freeze
5849         nodes for which there is no proper scope of elaboration.
5851         * exp_util.ads, exp_util.adb
5852         (Remove_Side_Effects): If the expression is a function call that returns a
5853         task, expand into a declaration to invoke the build_in_place machinery.
5854         (Find_Protection_Object): New routine.
5855         (Remove_Side_Effects): Also make a copy of the value
5856         for attributes whose result is of an elementary type.
5857         (Silly_Boolean_Array_Not_Test): New procedure
5858         (Silly_Boolean_Array_Xor_Test): New procedure
5859         (Is_Volatile_Reference): New function
5860         (Remove_Side_Effects): Use Is_Volatile_Reference
5861         (Possible_Bit_Aligned_Component): Handle slice case properly
5863         * exp_pakd.adb (Expand_Packed_Not): Move silly true/true or false/false
5864         case test to Exp_Util
5865         (Expand_Packed_Xor): Move silly true/true case test to Exp_Util
5867 2008-04-08  Thomas Quinot  <quinot@adacore.com>
5869         * exp_dist.ads, exp_dist.adb: Fix casing error in formal parameter name
5870         in call
5871         (Add_RACW_Features): When processing an RACW in another unit than the
5872         main unit, set Body_Decls to No_List to indicate that the bodies of
5873         the type's TSS must not be generated.
5874         (GARLIC_Support.Add_RACW_Read_Attribute,
5875         GARLIC_Support.Add_RACW_Write_Attribute): Do not generate bodies if
5876         Body_Decls is No_List.
5877         (PolyORB_Support.Add_RACW_Read_Attribute,
5878         PolyORB_Support.Add_RACW_Write_Attribute,
5879         PolyORB_Support.Add_RACW_From_Any,
5880         PolyORB_Support.Add_RACW_To_Any,
5881         PolyORB_Support.Add_RACW_TypeCode): Same.
5882         (Transmit_As_Unconstrained): New function.
5883         (Build_Ordered_Parameters_List): Use the above to order parameters.
5884         (GARLIC_Support.Build_General_Calling_Stubs):
5885         Use the above to determine which parameters to unmarshall using 'Input
5886         at the point where their temporary is declared (as opposed to later on
5887         with a 'Read call).
5888         (PolyORB_Support.Build_General_Calling_Stubs):
5889         Use the above to determine which parameters to unmarshall using From_Any
5890         at the point where their temporary is declared (as opposed to later on
5891         with an assignment).
5893 2008-04-08  Ed Schonberg  <schonberg@adacore.com>
5895         * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): If this is
5896         an Input function for an access type, do not perform default
5897         initialization on the local variable that receives the value, to
5898         prevent spurious warnings when the type is null-excluding.
5900 2008-04-08  Robert Dewar  <dewar@adacore.com>
5901             Ed Schonberg  <schonberg@adacore.com>
5903         * freeze.adb (Freeze_Entity): Improve warnings on access types in pure
5904         units.
5905         (Size_Known): Generic formal scalar types have known at compile
5906         time size, so remove check.
5907         Fix casing error in formal parameter name in call
5908         (Freeze_Subprogram): If the subprogram is a user-defined operator,
5909         recheck its overriding indication.
5911 2008-04-08  Vincent Celier  <celier@adacore.com>
5913         * gnat1drv.adb: Send all messages indicating an error to standard error
5915 2008-04-08  Robert Dewar  <dewar@adacore.com>
5917         * gnatbind.adb (Restriction_Could_Be_Set): New procedure
5918         (List_Applicable_Restrictions): Do not list existing restrictions
5920 2008-04-08  Thomas Quinot  <quinot@adacore.com>
5922         * g-socket.ads, g-socket.adb: Improve documentation of GNAT.Sockets:
5923         add a pointer to generic sockets literature
5924         do not mention that the given example is "typical" usage.
5925         Remove obsolete comment about multicast not being supported on Windows.
5926         (Connect_Socket): Make Server mode IN rather than IN OUT
5927         since this formal is never modified.
5929 2008-04-08  Robert Dewar  <dewar@adacore.com>
5931         * sprint.adb (Write_Itype): Handle Itypes whose Parent field points to
5932         the declaration for some different entity.
5933         (Sprint_Node_Actual, case N_Derived_Type_Definition): When an interface
5934         list is precent (following the parent subtype indication), display
5935         appropriate "and" keyword.
5937         * itypes.adb: Remove unnecessary calls to Init_Size_Align and Init_Esize
5938         Remove unnecessary calls to Init_Size_Align and Init_Esize.
5939         Add notes on use of Parent field of an Itype
5941 2008-04-08  Ed Schonberg  <schonberg@adacore.com>
5942             Robert Dewar  <dewar@adacore.com>
5943             Gary Dismukes  <dismukes@adacore.com>
5945         * lib-xref.adb (Is_On_LHS): Remove dead code
5946         (Output_Overriden_Op): If the overridden operation is itself inherited,
5947         list the ancestor operation, which is the one whose body or absstract
5948         specification is actually being overridden. For source navigation
5949         purposes.
5951         * sem_ch7.adb (Is_Primitive_Of): use base type to determine whether
5952         operation is primitive for the type.
5953         (Declare_Inherited_Private_Subprograms): If the new operation overrides
5954         an inherited private subprogram, set properly the Overridden_Operation
5955         attribute, for better cross-reference information.
5956         (Analyze_Package_Specification): Do late analysis of spec PPCs
5957         (Install_Private_Declaration, Uninstall_Declarations): Save/restore
5958         properly the full view and underlying full views of a private type in a
5959         child unit, whose full view is derived from a private type in a parent
5960         unit, and whose own full view becomes visible in the child body.
5962         * sem_disp.adb (Check_Dispatching_Operation): When a body declares a
5963         primitive operation after the type has been frozen, add an explicit
5964         reference to the type and the operation, because other primitive
5965         references have been emitted already.
5966         (Expand_Call, Propagate_Tag): Call Kill_Current_Values when processing a
5967         dispatching call on VM targets.
5969 2008-04-08  Vincent Celier  <celier@adacore.com>
5970             Thomas Quinot  <quinot@adacore.com>
5972         * make.adb: (Gnatmake_Called): Remove, no longer necessary
5973         (Compile_Surces): Call Delete_Temp_Config_Files only if Gnatmake_Called
5974         is True and Debug_Flag_N is False. Debug_Flag_N means "keep temp files".
5975         (Insert_Project_Sources): Take into account index in multi-unit source
5976         files.
5977         After building a library project, delete all temporary files.
5978         (Initialize): Reset current output after parsing project file.
5979         (Collect_Arguments_And_Compile): Never insert in the queue the sources
5980         of library projects that are externally built.
5981         Put file name in error and inform messages if -df is used
5982         (Display): If invoked with -d7, do not display path names, but only
5983         file names.
5985         * makeutl.ads (Path_Or_File_Name): New function
5986         (Path_Or_File_Name): New function
5988 2008-04-08  Arnaud Charlet  <charlet@adacore.com>
5990         * Make-lang.in: Disable warnings during first stage of bootstrap
5991         Get rid of gnatbl.
5992         Update dependencies.
5994 2008-04-08  Vincent Celier  <celier@adacore.com>
5996         * mlib-prj.adb (Build_Library): Compare with ALI file name in canonical
5997         case to decide if ALI object file is included in library.
5998         (Build_Library): Never attempt to build a library if the project is
5999         externally built.
6001 2008-04-08  Thomas Quinot  <quinot@adacore.com>
6003         * nlists.adb (Is_Non_Empty_List): Remove redundant test. First
6004         (No_List) is defined to return Empty.
6006 2008-04-08  Jose Ruiz  <ruiz@adacore.com>
6008         * osint.ads, osint.adb (Get_Libraries_From_Registry): Improve
6009         documentation.
6010         Update comments.
6011         (Read_Default_Search_Dirs): Do not consider spaces as path separators
6012         because spaces may be part of legal paths.
6014 2008-04-08  Robert Dewar  <dewar@adacore.com>
6016         * par-ch11.adb (P_Exception_Handler): Check indentation level for
6017         handler
6019 2008-04-08  Ed Schonberg  <schonberg@adacore.com>
6021         * par-ch3.adb (P_Type_Declaration) Reject the keyword "synchronized"
6022         in a type declaration, if this is not an interface declaration or
6023         private type extension.
6025 2008-04-08  Vincent Celier  <celier@adacore.com>
6027         * prj-util.adb (Executable_Of): New String parameter Language. When
6028         Ada_Main is False and Language is not empty, attempt to remove the body
6029         suffix or the spec suffix of the language to get the base of the
6030         executable file name.
6031         (Put): New Boolean parameter Lower_Case, defauilted to False. When
6032         Lower_Case is True, put the value in lower case in the name list.
6033         (Executable_Of): If there is no executable suffix in the configuration,
6034         then do not modify Executable_Extension_On_Target.
6036         * prj-util.ads (Executable_Of): New String parameter Language,
6037         defaulted to the empty string.
6038         (Put): New Boolean parameter Lower_Case, defauilted to False
6040 2008-04-08  Robert Dewar  <dewar@adacore.com>
6042         * scng.adb (Scan_Identifier): Handle case of identifier starting with
6043         wide character using UTF-8 encoding.
6045 2008-04-08  Javier Miranda  <miranda@adacore.com>
6047         * sem.adb (Analyze): Consider case in which we analyze an empty node
6048         that was generated by a call to a runtime function that is not
6049         available under the configurable runtime.
6051         * sem.ads (Inside_Freezing_Actions): New flag.
6052         (Save_Check_Policy_List): New field in scope stack entry
6054 2008-04-08  Ed Schonberg  <schonberg@adacore.com>
6055             Robert Dewar  <dewar@adacore.com>
6057         * sem_aggr.adb (Analyze_N_Extension_Aggregate): Add legality checks for
6058         the ancestor part of an extension aggregate for a limited type.
6059         (Resolve_Array_Aggregate): Issue warning for sliding of aggregate with
6060         enumeration index bounds.
6061         (Resolve_Array_Aggregate): Add circuit for diagnosing missing choices
6062         when array is too short.
6063         (Check_Expr_OK_In_Limited_Aggregate): Move function
6064         Check_Non_Limited_Type from Resolve_Record_Aggregate to top level (and
6065         change name).
6066         (Resolve_Array_Aggregate.Resolve_Aggr_Expr):
6067         Check_Expr_OK_In_Limited_Aggregates called to check for illegal limited
6068         component associations.
6069         (Check_Non_Limited_Type): Moved to outer level and renamed.
6070         (Resolve_Record_Aggregate): In an extension aggregate, an association
6071         with a box initialization can only designate a component of the
6072         extension, not a component inherited from the given ancestor
6074         * sem_case.adb: Use new Is_Standard_Character_Type predicate
6076 2008-04-08  Robert Dewar  <dewar@adacore.com>
6078         * s-imgdec.adb (Set_Decimal_Digits): Fix error when input is zero with
6079         negative scale
6080         (Set_Decimal_Digits): Properly handle Aft=0 (equivalent to Aft=1)
6081         Properly handle case where Aft > Scale and input number is less than
6082         one.
6084 2008-04-08  Hristian Kirtchev  <kirtchev@adacore.com>
6086         * s-stoele.ads, s-soflin.ads: Move the location of
6087         Dummy_Communication_Block from System.Storage_Elements to
6088         System.Soft_Links.
6090         * s-tpobop.ads: Add comment on usage of Dummy_Communication_Block to
6091         emulate Communication_Block in certain scenarios.
6093 2008-04-08  Hristian Kirtchev  <kirtchev@adacore.com>
6095         * s-strxdr.adb, s-stratt.ads, s-stratt.adb (Block_IO_OK): New
6096         subprogram.
6097         Add new subtype S_WWC, unchecked conversion routines From_WWC and
6098         To_WWC.
6099         (I_WWC, O_WWC): New routines for input and output of
6100         Wide_Wide_Character.
6102 2008-04-08  Robert Dewar  <dewar@adacore.com>
6104         * stringt.adb (Write_String_Table_Entry): Handle wide characters
6105         properly
6107 2008-04-08  Robert Dewar  <dewar@adacore.com>
6109         * styleg.adb (Check_Comment): Allow special char after -- in
6110         non-end-of-line case
6112 2008-04-08  Robert Dewar  <dewar@adacore.com>
6114         * stylesw.adb: Implement -gnaty + - y options
6115         (Set_GNAT_Style_Check_Options): Includ I in style check string
6117         * stylesw.ads: Add comments for new style switch options
6119 2008-04-08  Sergey Rybin  <rybin@adacore.com>
6121         * tree_io.ads: Increase ASIS_Version_Number because of adding Sem_Aux
6122         to the set of the GNAT components needed by ASIS.
6124 2008-04-08  Bob Duff  <duff@adacore.com>
6126         * types.h: Change CE_Null_Exception_Id to the correct value (8, was 9).
6128 2008-04-08  Tristan Gingold  <gingold@adacore.com>
6130         * vxaddr2line.adb: Use Unsigned_32 instead of Integer for address type.
6131         Improve error message generation.
6133 2008-04-08  Vincent Celier  <celier@adacore.com>
6135         * a-direct.adb (Start_Search): Check for Name_Error before checking for
6136         Use_Error, as specified in the RM. Check if directory is open and raise
6137         Use_Error if it is not.
6139 2008-04-08  Vincent Celier  <celier@adacore.com>
6140             Robert Dewar  <dewar@adacore.com>
6142         * vms_conv.adb (Output_Version): Print "GNAAMP" instead of "GNAT when
6143         AAMP_On_Target is set.
6145         * vms_data.ads: Add NOxxx to style check switch list
6146         Add entry COMPONENTS for -gnatVe
6147         Add VMS qualifiers for -eL (/FOLLOW_LINKS_FOR_FILES) and --subdirs=
6148         (/SUBDIRS=).
6149         (GCC_Switches): Add /ALL_BACK_END_WARNINGS.
6150         Add qualifiers for gnatmetric coupling options
6151         Add note that -gnata enables all checks
6152         Add entries [NO]PARAMETER_ORDER for -gnatw.p[P]
6153         Fix inconsistency for VMS qualifier for the gnatpp '-rnb' option
6154         New warning flag -gnatw.e
6156         * usage.adb: Add entries for -gnaty+ -gnaty- -gnatyy
6157         Add entry for -gnatyN (forgotten before)
6158         Line for new warning switch -gnatw.p
6159         New warning flag -gnatw.e
6161         * gnat_ugn.texi: Add documentation fpr project file switch -aP
6162         Document -gnaty - + y
6163         Replace occurences of "package specification" with "package spec"
6164         Define preprocessing symbols in documentation of gnatprep
6165         Clarify reason for distinguishing overflow checking
6166         Add documentation for project-aware tool switches -eL and --subdirs=
6167         Complete list of configuration pragmas
6168         Specify that, even when gnatmake switch -x is used, mains on the command
6169         line need to be sources of project files.
6170         Editing of gnatcheck/gnatmetric doc.
6171         Add documentation for -gnatw.p/-gnatw.P
6172         Add missing documentation for -fno-inline-functions.
6173         Add documentation for -gnatw.e
6175         * gnat_rm.texi: Add documentation for No_Default_Initialization
6176         Replace occurences of "package specification" with "package spec"
6177         Document use of * in Warnings Off string
6178         Update documentation of alignment/component clauses.
6179         Add documentation for Invalid_Value
6180         Document new consistency rule for Optimize_Alignment
6181         Add documentation for Precondition and Postcondition pragmas
6182         Add documentation for Check and Check_Policy pragmas
6183         Document new Enum_Val attribute
6184         Remove requirement for static string in pragma Assert
6185         Add documentation on GNAT.Time_Stamp
6187         * ug_words: add entry for -gnatVe
6188         Add entries for -gnat.p[P] /WARNINGS=[NO]PARAMETER_ORDER
6189         Add entry for -gnatw.e
6191         * debug.adb: Add missing documentation for d.a flag
6192         Document new -gnatd.a switch.
6193         Add documentation for new gnatmake debug switch -df
6195 2008-04-08  Thomas Quinot  <quinot@adacore.com>
6197         * gen-soccon.c: Bump year in copyright notices.
6199         * g-soccon-vxworks.ads: Add new constant IP_PKTINFO
6201 2008-04-08  Eric Botcazou  <ebotcazou@adacore.com>
6203         * ctrl_c.c: Improve handling of ctrl-c on LynxOS and Windows.
6204         Minor reformatting.
6206 2008-04-08  Robert Dewar  <dewar@adacore.com>
6207             Bob Duff  <duff@adacore.com>
6209         * impunit.adb: Add Interfaces.Java.JNI, System.Strings.Stream_Ops,
6210         Ada.Calendar.Conversions, Ada.Dispatching.EDF, GNAT.Time_Stamp
6212         * s-intman-mingw.adb: Minor comment fix -- spell 'explicitly' correctly
6214         * g-trasym.adb: Minor comment fix -- spell 'explicitly' correctly
6216         * g-trasym.ads: Minor comment improvements
6218         * s-stalib.adb: Minor comment fix -- spell 'explicitly' correctly
6220         * a-sequio.ads, a-direio.ads: improve message for tagged type
6222         * a-strunb.ads: Minor reformatting
6224         * a-tifiio.adb: Minor reformatting
6226         * atree.adb (Fix_Parents): Use clearer names for formals
6227         Cleanup and simplify code
6228         Use named notation in calls
6230         * exp_fixd.adb (Do_Multiply_Fixed_Universal): Use named notation in
6231         confusing calls
6233         * uintp.adb: Used named notation for some confusing calls
6235         * bindusg.adb: Minor change in one line of output
6237         * cstand.adb: Minor reformatting of src representation of Standard
6239         * a-assert.ads: Add comment.
6241         * g-decstr.adb: Fix bad indentation
6243         * expander.ads, expander.adb: Code clean up.
6245         * sem_dist.ads: Minor comment improvement
6247         * sem_type.adb, g-dirope.ads, g-exctra.ads, s-valwch.adb,
6248         s-wchstw.adb, targparm.ads, widechar.adb: Minor reformatting
6250         * i-cstrin.adb: Fix casing error in formal parameter name in call
6252 2008-04-08  Ed Schonberg  <schonberg@adacore.com>
6254         * binde.adb (Gather_All_Links, Gather_Dependencies): units that are
6255         mentioned in limited_with_clauses to do create semantic dependencies
6256         even though they appear in the ali file.
6258 2008-04-08  Emmanuel Briot  <briot@adacore.com>
6260         * g-comlin.ads, g-comlin.adb (Expansion): Remove unreachable return
6261         statement.
6262         (Get_Configuration): New subprogram.
6264         * prj-pp.ads, prj-pp.adb (Pretty_Print): new parameters Id and Id_Tree
6265         These optional parameters help preserve the casing of the project's name
6266         when pretty-printing.
6268 2008-04-08  Jerome Lambourg  <lambourg@adacore.com>
6269             Arnaud Charlet  <charlet@adacore.com>
6271         * bindgen.adb (Gen_Adainit_Ada): If the main program is a CIL function,
6272         then use __gnat_set_exit_status to report the returned status code.
6274         * comperr.adb (Compiler_Abort): Convert most bug boxes into clean error
6275         messages on .NET, since some constructs of the language are not
6276         properly supported.
6278         * gnatlink.adb (Gnatlink): In case the command line is too long for the
6279         .NET linker, gnatlink now concatenate all .il files and pass this to
6280         ilasm.
6282 2008-04-07  Aurelien Jarno  <aurelien@aurel32.net>
6283             Xavier Grave  <grave@ipno.in2p3.fr>
6285         * Makefile.in: Add make ifeq define for mips/mipsel support.
6286         * g-soccon-linux-mips.ads, system-linux-mipsel.ads,
6287         system-linux-mips.ads: New files.
6289 2008-04-07  Aurelien Jarno  <aurelien@aurel32.net>
6291         * sysdep.c: add __GLIBC__ to the #ifdef preprocessor macros to
6292         detect systems using GNU libc.
6293         * gsocket.h: ditto.
6294         * socket.c: ditto.
6295         * adaint.c: ditto.
6296         * link.c: ditto.
6298 2008-04-07  Aurelien Jarno  <aurelien@aurel32.net>
6300         * s-osinte-linux-kfreebsd.ads (SC_NPROCESSORS_ONLN): New
6301         constant constant for sysconf call.
6302         (bit_field): New packed boolean type used by cpu_set_t.
6303         (cpu_set_t): New type corresponding to the C type with
6304         the same name. Note that on the Ada side we use a bit
6305         field array for the affinity mask. There is not need
6306         for the C macro for setting individual bit.
6307         (pthread_setaffinity_np): New imported routine.
6308         * Makefile.in: Use s-tasinf-linux.ads and s-tasinf-linux.adb
6309         on GNU/kFreeBSD.
6311 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
6313         * utils2.c (build_binary_op): Fold ARRAY_REF and ARRAY_RANGE_REF too.
6315 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
6317         * gigi.h (create_subprog_type): Remove returns_with_dsp parameter.
6318         * decl.c (gnat_to_gnu_entity): Adjust for above new prototype.
6319         * utils.c (create_subprog_type): Remove returns_with_dsp parameter.
6320         * trans.c (gnat_to_gnu) <N_Return_Statement>: Remove code dealing with
6321         Return by Depressed Stack Pointer.
6323 2008-04-06  Eric Botcazou  <ebotcazou@adacore.com>
6325         * decl.c (is_variable_size): Do not unconditionally return false
6326         on non-strict alignment platforms.
6328 2008-04-06  Eric Botcazou  <ebotcazou@adacore.com>
6330         * decl.c (rest_of_type_decl_compilation_no_defer): New local function
6331         used to process all the variants of the specified type.
6332         (gnat_to_gnu_entity): Invoke rest_of_type_decl_compilation for enumeral
6333         types too.  Call rest_of_type_decl_compilation_no_defer if undeferring.
6334         (rest_of_type_decl_compilation): Likewise.
6335         * utils.c (gnat_pushdecl): Propagate the name to all variants of type.
6337 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
6339         * gigi.h (insert_block): Kill.
6340         * utils.c (insert_block): Kill.
6342 2008-04-02  Eric Botcazou  <ebotcazou@adacore.com>
6344         * decl.c (gnat_to_gnu_entity) <object>: For a constant object whose
6345         type has self-referential size, get the size from the initializing
6346         expression directly if it is also a constant whose nominal type
6347         has self-referential size.
6349 2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6351         PR ada/33688
6352         * g-soccon-darwin.ads: Define new constant IP_PKTINFO.
6354         PR ada/33857
6355         * env.c: Always include crt_externs.h if __APPLE__ is defined.
6356         (__gnat_setenv): Use setenv instead of putenv if __APPLE__ is defined.
6358 2008-04-01  Andreas Jaeger  <aj@suse.de>
6360         * g-soccon-linux-ppc.ads: Add new constants SO_REUSEPORT and
6361         IP_PKTINFO.
6363 2008-03-31  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6365         * g-table.adb, g-tasloc.adb, g-traceb.ads,
6366         g-trasym.adb, g-utf_32.adb, gen-soccon.c, gigi.h, gmem.c,
6367         gnatbind.adb, gnatchop.adb, gnatcmd.adb,
6368         gnatcmd.ads, gnatdll.adb, gnatfind.adb,
6369         gnatlink.adb, gnatmem.adb, gprep.adb,
6370         i-cstrea-vms.adb, i-cstrin.adb, i-pacdec.ads,
6371         i-vxwork.ads, impunit.adb, init.c, initialize.c, inline.adb,
6372         layout.adb, lib-writ.adb, lib-writ.ads, lib-xref.adb,
6373         lib-xref.ads, lib.adb, link.c, live.ads,
6374         make.adb, makegpr.adb, makeutl.adb, math_lib.adb,
6375         mdll-utl.adb, mdll.ads, memroot.adb, memroot.ads,
6376         misc.c, mlib-prj.adb, mlib-tgt-hpux.adb,
6377         mlib-tgt-linux.adb, mlib-tgt-tru64.adb, mlib-tgt.ads,
6378         namet.adb, namet.h, nlists.adb, nlists.ads,
6379         nlists.h, opt.ads, osint-b.ads, osint-c.adb,
6380         osint-c.ads, osint.adb, osint.ads, output.ads,
6381         par-ch10.adb, par-ch12.adb, par-ch2.adb, par-ch3.adb,
6382         par-ch4.adb, par-ch5.adb, par-ch6.adb, par-ch9.adb,
6383         par-endh.adb, par-labl.adb, par-prag.adb,
6384         par-sync.adb, par-tchk.adb, par-util.adb,
6385         par.adb, prep.adb, prep.ads, prepcomp.adb, prj-attr.ads,
6386         prj-dect.adb, prj-env.adb, prj-ext.adb, prj-nmsc.adb,
6387         prj-nmsc.ads, prj-pp.adb, prj-proc.adb,
6388         prj-strt.ads, prj-tree.ads, prj.adb, prj.ads: Fix comment typos.
6390 2008-03-31  Eric Botcazou  <ebotcazou@adacore.com>
6392         * decl.c (gnat_to_gnu_entity) <object>: Do not force a non-null
6393         size if it has overflowed.
6395 2008-03-31  Olivier Hainque  <hainque@adacore.com>
6396             Eric Botcazou  <ebotcazou@adacore.com>
6398         * utils2.c (find_common_type): Document assumption on t1/t2 vs
6399         lhs/rhs. Force use of lhs type if smaller, whatever the modes.
6401 2008-03-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6403         * a-textio.ads, a-witeio.ads, a-ztexio.ads, ali.ads,
6404         einfo.ads, erroutc.adb, erroutc.ads, exp_attr.adb,
6405         exp_imgv.adb, exp_intr.adb, exp_pakd.adb,
6406         exp_pakd.ads, exp_prag.adb, exp_smem.adb,
6407         exp_tss.ads, exp_util.adb, exp_util.ads,
6408         exp_vfpt.adb, freeze.adb, freeze.ads,
6409         frontend.adb, g-alleve.adb, g-altcon.adb,
6410         g-altive.ads, g-alveop.ads, g-alvevi.ads,
6411         g-arrspl.adb, g-busorg.ads, g-calend.adb,
6412         g-calend.ads, g-casuti.ads, g-cgideb.adb,
6413         g-comlin.adb, g-comlin.ads, g-curexc.ads,
6414         g-debpoo.adb, g-debpoo.ads, g-decstr.adb,
6415         g-dirope.adb, g-dirope.ads, g-dynhta.ads,
6416         g-dyntab.adb, g-encstr.ads, g-excact.ads,
6417         g-except.ads, g-expect.ads, g-heasor.adb,
6418         g-hesora.adb, g-hesorg.adb, g-htable.ads,
6419         g-locfil.ads, g-md5.adb, g-md5.ads,
6420         g-memdum.ads, g-moreex.ads, g-os_lib.adb,
6421         g-pehage.adb, g-pehage.ads, g-regexp.adb,
6422         g-regexp.ads, g-regpat.adb, g-regpat.ads,
6423         g-soccon-aix.ads, g-soccon-darwin.ads,
6424         g-soccon-freebsd.ads, g-soccon-hpux-ia64.ads,
6425         g-soccon-hpux.ads, g-soccon-irix.ads,
6426         g-soccon-linux-64.ads, g-soccon-linux-ppc.ads,
6427         g-soccon-linux-x86.ads, g-soccon-lynxos.ads,
6428         g-soccon-mingw.ads, g-soccon-solaris-64.ads,
6429         g-soccon-solaris.ads, g-soccon-tru64.ads,
6430         g-soccon-vms.ads, g-soccon-vxworks.ads,
6431         g-soccon.ads, g-socket.adb, g-socket.ads,
6432         g-socthi-mingw.adb, g-socthi-vms.adb,
6433         g-socthi-vxworks.adb, g-soliop-mingw.ads,
6434         g-soliop-solaris.ads, g-soliop.ads, g-spipat.adb,
6435         g-spipat.ads, g-string.adb, g-stsifd-sockets.adb: Fix comment
6436         typos.
6438 2008-03-27  Eric Botcazou  <ebotcazou@adacore.com>
6440         * decl.c (gnat_to_gnu_entity) <E_Procedure>: Also set the public flag
6441         if the procedure is imported.
6443 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
6445         * adaint.c: Fix warnings.
6447 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
6449         * g-dirope.ads, g-dirope.adb: (Dir_Type_Value): Moved to spec.
6451 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
6453         * a-witeio.adb: Fix problem with Current_Output (introduce Self).
6454         Fix problem of status check for null file
6456 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
6458         * s-proinf-irix-athread.ads, s-vxwork-mips.ads,
6459         s-traces.ads, s-vxwork-arm.ads, s-vxwork-ppc.ads, s-vxwork-sparcv9.ads,
6460         s-tasinf-mingw.ads, s-tasinf-linux.ads, s-tasdeb.ads, mlib-tgt.ads,
6461         i-cstrin.ads, uintp.adb, g-catiio.adb, s-vmexta.ads,
6462         s-trafor-default.ads, s-vxwork-m68k.ads: Minor reformatting. Update
6463         comments.
6465 2008-03-26  Thomas Quinot  <quinot@adacore.com>
6467         PR ada/33688
6468         * g-socket.ads, g-socket.adb (Options, Set_Socket_Option,
6469         Get_Socket_Option): Add support for Receive_Packet_Info.
6471         * g-soccon.ads, g-soccon-tru64.ads, g-soccon-aix.ads,
6472         g-soccon-irix.ads, g-soccon-hpux.ads, g-soccon-solaris.ads,
6473         g-soccon-vms.ads, g-soccon-mingw.ads, g-soccon-freebsd.ads,
6474         g-soccon-hpux-ia64.ads, g-soccon-solaris-64.ads, g-soccon-darwin.ads,
6475         g-soccon-lynxos.ads, g-soccon-linux-64.ads, g-soccon-linux-x86.ads: Add
6476         new constants SO_REUSEPORT and IP_PKTINFO
6478 2008-03-26  Robert Dewar  <dewar@adacore.com>
6480         * a-taster.adb, s-shasto.adb, s-soflin.adb, s-taasde.adb, s-taenca.adb,
6481         a-sytaco.adb, a-sytaco.ads, a-tasatt.adb, a-taside.adb,
6482         a-intnam-lynxos.ads, a-retide.adb, a-intnam-tru64.ads, a-intnam-aix.ads,
6483         a-intnam-irix.ads, a-intnam-hpux.ads, a-intnam-linux.ads,
6484         a-intnam-solaris.ads, a-caldel-vms.adb, a-intnam-vms.ads,
6485         a-excpol-abort.adb, a-intnam-mingw.ads, s-interr.adb, s-interr.ads,
6486         s-intman.ads, s-gloloc.adb, s-osinte-lynxos-3.ads,
6487         s-interr-sigaction.adb, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
6488         a-intnam-freebsd.ads, s-osinte-freebsd.ads, s-osinte-lynxos.ads,
6489         s-taspri-lynxos.ads, s-osinte-tru64.ads, s-osinte-tru64.ads,
6490         s-taspri-tru64.ads, s-osinte-aix.ads, s-osinte-irix.ads,
6491         s-osinte-hpux-dce.ads, s-taprop-hpux-dce.adb, s-taspri-hpux-dce.ads,
6492         s-osinte-linux.ads, s-osinte-dummy.ads, s-taprop-dummy.adb,
6493         s-taspri-dummy.ads, s-interr-dummy.adb, s-osinte-solaris.ads,
6494         s-osinte-mingw.ads, s-taprop-solaris.adb, s-taspri-solaris.ads,
6495         s-inmaop-vms.adb, s-interr-vms.adb, s-intman-vms.ads, s-osinte-vms.ads,
6496         s-osinte-vms.ads, s-taprop-vms.adb, s-taspri-vms.ads,
6497         s-taspri-mingw.ads, s-interr-vxworks.adb, s-inmaop-posix.adb,
6498         s-intman-vxworks.ads, s-osinte-vxworks.ads, s-osprim-vxworks.adb,
6499         s-taspri-vxworks.ads, s-taspri-posix.ads, a-caldel.adb, a-calend.adb,
6500         a-elchha.adb, a-dynpri.adb, a-except.adb, a-except.ads, a-interr.ads,
6501         a-textio.adb, a-tigeau.ads, atree.adb, s-taprob.adb, s-taprop.ads,
6502         s-tarest.adb, s-tarest.ads, s-tasini.adb, s-taskin.adb, s-taskin.ads,
6503         s-tasque.adb, s-tasren.adb, s-tasren.ads, s-tassta.adb, s-tassta.ads,
6504         s-tasuti.adb, s-tataat.adb, s-tataat.ads, s-tpoben.adb, s-tpoben.ads,
6505         s-tpobop.adb, s-tpobop.ads, s-tposen.adb, s-tposen.ads, s-valrea.adb,
6506         s-valuti.adb, a-intnam-darwin.ads, s-osinte-darwin.ads, s-solita.adb,
6507         a-ztinau.ads, s-osinte-linux-hppa.ads, a-except-2005.adb,
6508         a-except-2005.ads, a-rttiev.adb, s-osinte-vxworks6.ads, s-regexp.adb,
6509         s-tasloc.adb: Minor reformatting.
6510         Update comments.
6511         Remove "used for" sections from comments.
6513 2008-03-26  Robert Dewar  <dewar@adacore.com>
6515         * s-tpopsp-posix.adb, s-tpopsp-solaris.adb, s-tpopsp-posix-foreign.adb,
6516         s-tpopsp-lynxos.adb, s-tpopde-vms.ads, s-tpopde-vms.adb,
6517         s-tpopsp-vxworks.adb, s-casi16.adb, s-caun16.adb, s-inmaop.ads,
6518         s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-tpinop.adb,
6519         s-tpinop.ads, s-tporft.adb, a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb,
6520         a-crbtgk.ads, a-crbtgk.adb, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
6521         a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
6522         a-cgcaso.adb, a-cgaaso.adb, a-ciormu.adb, a-cihase.adb, a-swuwha.ads,
6523         a-rbtgso.ads, a-cgaaso.ads, a-cgaaso.ads, a-ciorma.adb, a-chtgke.ads,
6524         a-chtgke.adb, a-llfzti.ads, a-ztenau.adb, a-ztenau.ads, a-stzhas.ads,
6525         a-szbzha.ads, a-szbzha.adb, a-crdlli.ads, a-crdlli.ads, a-crdlli.adb,
6526         i-forbla-darwin.adb, i-forbla.ads, s-regexp.adb, a-nllrar.ads,
6527         a-nlrear.ads, a-nucoar.ads, a-nurear.ads, i-forlap.ads, s-gearop.adb,
6528         s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb, s-gecola.ads,
6529         s-gerebl.adb, s-gerela.ads, a-swuwha.adb, i-forbla-unimplemented.ads,
6530         double spaced if it fits on one line and otherwise single spaced.
6532 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
6534         * s-taprop-irix.adb, s-taprop-tru64.adb, s-taprop-lynxos.adb,
6535         s-taprop-linux.adb, s-taprop-mingw.adb, s-taprop-vxworks.adb,
6536         s-taprop-posix.adb (Create_Task): Do not attempt to set task priority
6537         or task info if the thread could not be created.
6539 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
6541         * gnatvsn.ads (Library_Version): Bump to 4.4.
6542         (Current_Year): Bump to 2008.
6544 2008-03-26  Robert Dewar  <dewar@adacore.com>
6546         * ali.ads, ali.adb (Optimize_Alignment_Setting): New field in ALI record
6548         * bcheck.adb (Check_Consistent_Optimize_Alignment): New procedure
6550         * debug.adb: Add debug flags d.r and d.v
6551         Add debug flag .T (Optimize_Alignment (Time))
6552         Add debug flag .S (Optimize_Alignment (Space))
6554         * freeze.adb (Freeze_Record_Type): Set OK_To_Reorder_Components
6555         depending on setting of relevant debug flags.
6556         Replace use of Warnings_Off by Has_Warnings_Off
6557         (Freeze_Entity): In circuit for warning on suspicious convention
6558         actuals, do not give warning if subprogram has same entity as formal
6559         type, or if subprogram does not come from source.
6560         (Freeze_Entity): Don't reset Is_Packed for fully rep speced record
6561         if Optimize_Alignment set to Space.
6563         * frontend.adb: Add call to Sem_Warn.Initialize
6564         Add call to Sem_Warn.Output_Unused_Warnings_Off_Warnings
6565         Reset Optimize_Alignment mode from debug switches .S and .T
6567         * layout.adb (Layout_Composite_Object): Rewritten for
6568         Optimize_Aligment pragma.
6570         * lib-writ.ads, lib-writ.adb: New Ox parameter for Optimize_Alignment
6571         mode.
6573         * opt.ads, opt.adb: (Optimize_Alignment): New global switch
6575         * par-prag.adb (N_Pragma): Chars field removed, use Chars
6576         (Pragma_Identifier (..  instead, adjustments throughout to accomodate
6577         this change. Add entry for pragma Optimize_Alignment
6579         * sem_prag.adb (N_Pragma): Chars field removed, use Chars
6580         (Pragma_Identifier (..
6581         instead, adjustments throughout to accomodate this change.
6582         (Process_Compile_Time_Warning_Or_Error): Use !! for generated msg
6583         (Favor_Top_Level): Use new function Is_Access_Subprogram_Type
6584         Add implementation of pragma Optimize_Alignment
6586 2008-03-26  Vincent Celier  <celier@adacore.com>
6588         * a-szuzti.adb, a-swuwti.adb, a-suteio.adb (functions Get_Line):
6589         Improve memory usage to avoid use of stack.
6591 2008-03-26  Robert Dewar  <dewar@adacore.com>
6593         * a-teioed.ads: Correct value of Default_Fill
6595         * a-teioed.adb (Image): Use Fill_Character instead of '*' to fill
6597 2008-03-26  Robert Dewar  <dewar@adacore.com>
6599         * a-ztexio.adb, a-ztexio.ads, a-witeio.ads, a-witeio.adb: Fix problem
6600         with Current_Output (introduce Self).
6602 2008-03-26  Robert Dewar  <dewar@adacore.com>
6604         * checks.adb (Ensure_Valid): Capture valid status if possible
6605         (eliminate checks)
6607 2008-03-26  Robert Dewar  <dewar@adacore.com>
6609         * stand.ads: Deal with reordering of package standard declarations
6611         * cstand.adb: Put package Standard declarations in proper order
6613 2008-03-26  Robert Dewar  <dewar@adacore.com>
6615         * einfo.ads, einfo.adb (N_Pragma): Chars field removed, use Chars
6616         (Pragma_Identifier (.. instead.
6617         (OK_To_Reorder_Components): New flag
6618         (Has_Entries): Code cleanup.
6619         (Warnings_Off_Used): New flag
6620         (Warnings_Off_Used_Unmodified): New flag
6621         (Warnings_Off_Used_Unreferenced): New flag
6622         (Has_Warnings_Off): New function
6623         (Has_Unmodified): New function
6624         (Has_Unreferenced): New function
6625         (Is_Trivial_Subprogram): New flag
6626         (Is_Static_Dispatch_Table_Entity): New attribute.
6627         Change name Access_Subprogram_Type_Kind to Access_Subprogram_Kind
6628         (more consistent with other similar names)
6629         (Access_Subprogram_Type): New classification function
6631 2008-03-26  Robert Dewar  <dewar@adacore.com>
6633         * errout.ads: Document new !! insertion sequence
6635         * errout.adb (N_Pragma): Chars field removed, use Chars
6636         (Pragma_Identifier (..  instead.
6637         Replace use of Warnings_Off by Has_Warnings_Off
6638         (Error_Msg_Internal): Don't delete warning ending in !!
6640 2008-03-26  Robert Dewar  <dewar@adacore.com>
6642         * par.adb (Check_No_Right_Paren): Removed no longer used
6644         * par-ch10.adb (N_Pragma): Chars field removed, use Chars
6645         (Pragma_Identifier (..  instead.
6647         * par-ch10.adb (P_Subunit): Improvement in error recovery and message
6649         * par-tchk.adb, par-ch5.adb, par-ch6.adb, par-ch3.adb,
6650         par-ch4.adb: Minor improvements in error recovery and messages.
6652         * erroutc.adb (Test_Style_Warning_Serious_Msg): Treat style msgs as
6653         non-serious
6655         * par-ch9.adb: Minor improvements in error recovery and messages
6656         (P_Protected): Better error recovery for "protected type x;"
6658         * par-util.adb: Minor improvements in error recovery and messages
6659         (Check_No_Right_Paren): Removed no longer used
6661 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
6663         * exp_aggr.adb (Replace_Type): When checking for self-reference, verify
6664         that the prefix of an attribute is the type of the aggregate being
6665         expanded.
6667 2008-03-26  Javier Miranda  <miranda@adacore.com>
6668             Robert Dewar  <dewar@adacore.com>
6670         * exp_attr.adb (N_Pragma): Chars field removed.
6671         (Expand_N_Attribute_Reference): If the designated type associated with
6672         attribute 'Unrestricted_Access is a subprogram entity then replace it
6673         by an E_Subprogram_Type itype.
6674         Implement attribute Old
6676         * sem_attr.ads (Attribute_Class_Array): Move to snames.ads
6678         * sem_attr.adb (Build_Access_Subprogram_Itype): Add documentation.
6679         Replace call to
6680         New_Internal_Entity by call to Create_Itype to centralize calls
6681         building itypes, ad propagate the convention of the designated
6682         subprogram. In addition, disable the machinery cleaning constant
6683         indications from all entities in current scope when 'Unrestricted_Access
6684         corresponds with a node initializing a dispatch table slot.
6685         (Analyze_Attribute): Parameterless attributes returning a string or a
6686         type will not be called with improper arguments, so we can remove junk
6687         code that was dealing with this case.
6688         Implement attribute Old
6690         * snames.ads, snames.h, snames.adb: Add entries for attribute Old
6691         Add entry for pragma Optimize_Alignment
6692         New standard names Sync and Synchronize
6694 2008-03-26  Robert Dewar  <dewar@adacore.com>
6695             Arnaud Charlet  <charlet@adacore.com>
6697         * exp_ch11.adb (Expand_At_End_Handler): Set From_At_End flag on raise
6698         stmt.
6699         (No_Exception_Propagation_Active): New function.
6700         (Expand_Exception_Handlers): Use No_Exception_Propagation_Active.
6701         Update comments, and review all uses of No_Exception_Propagation, which
6702         are now correct and in sync with what gigi expects.
6704         * restrict.ads, restrict.adb (No_Exception_Propagation_Active): New
6705         function.
6706         (Expand_Exception_Handlers): Use No_Exception_Propagation_Active.
6707         Update comments, and review all uses of No_Exception_Propagation, which
6708         are now correct and in sync with what gigi expects.
6710 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
6712         * sem_ch3.adb (Access_Definition): If the access type is the return
6713         result of a protected function, create an itype reference for it
6714         because usage will be in an inner scope from the point of declaration.
6715         (Build_Derived_Record_Type): Inherit Reverse_Bit_Order and
6716         OK_To_Reorder_Components.
6717         (Make_Index): If an overloaded range includes a universal integer
6718         interpretation, resolve to Standard.Integer.
6719         (Analyze_Subtype_Indication): Copy Convention to subtype
6720         (Check_Abstract_Interfaces): Complete semantic checks on the legality of
6721         limited an synchronized progenitors in type declaration and private
6722         extension declarations.
6724         * exp_ch13.adb (Expand_N_Freeze_Entity): If the scope of the entity is a
6725         protected subprogram body, determine proper scope from subprogram
6726         declaration.
6728 2008-03-26  Robert Dewar  <dewar@adacore.com>
6730         * exp_ch4.adb (Expand_N_Op_Concat): Remove special tests for
6731         No_Run_Time_Mode
6733 2008-03-26  Gary Dismukes  <dismukes@adacore.com>
6735         * exp_ch5.adb (Expand_N_Extended_Return_Statement): Suppress generation
6736         of a heap allocator for a limited unconstrained function return when
6737         resstriction No_Allocators is active.
6738         (Analyze_Allocator): The restriction No_Allocators is now only checked
6739         on allocators that have Comes_From_Source set, as per RM-H.4(7).
6741         * sem_ch4.adb (Expand_N_Extended_Return_Statement): Suppress generation
6742         of a heap allocator for a limited unconstrained function return when
6743         resstriction No_Allocators is active.
6744         (Analyze_Allocator): The restriction No_Allocators is now only checked
6745         on allocators that have Comes_From_Source set, as per RM-H.4(7).
6746         (Has_Fixed_Op):  If the name in a function call is Standard."*" and the
6747         operands are fixed-point types, the universal_fixed predefined operation
6748         is used, regardless of whether the operand type (s) have a primitive
6749         operation of the same name.
6751 2008-03-26  Javier Miranda  <miranda@adacore.com>
6753         * exp_disp.adb (Make_DT, Make_Secondary_DT): Set attribute
6754         Is_Static_Dispatch_Table
6755         (Build_Dispatch_Tables): Replace calls to Exchange_Entities() by calls
6756         to Exchange_Declarations to exchange the private and full-view. Bug
6757         found working in this issue.
6758         (Expand_Dispatching_Call): Propagate the convention of the subprogram
6759         to the subprogram pointer type.
6760         (Make_Secondary_DT): Replace generation of Prim'Address by
6761         Address (Prim'Unrestricted_Access)
6762         (Make_DT): Replace generation of Prim'Address by
6763         Address (Prim'Unrestricted_Access)
6764         (Make_Disp_*_Bodies): When compiling for a restricted profile, use
6765         simple call form for single entry.
6766         (Make_DT): Handle new contents of Access_Disp_Table (access to dispatch
6767         tables of predefined primitives).
6768         (Make_Secondary_DT): Add support to handle access to dispatch tables of
6769         predefined primitives.
6770         (Make_Tags): Add entities to Access_Dispatch_Table associated with
6771         access to dispatch tables containing predefined primitives.
6773         * exp_ch6.adb (N_Pragma): Chars field removed, use Chars
6774         (Pragma_Identifier (..  instead, adjustments throughout to accomodate
6775         this change.
6776         (Register_Predefined_DT_Entry): Updated to handle the new contents
6777         of attribute Access_Disp_Table (pointers to dispatch tables containing
6778         predefined primitives).
6780         * exp_util.ads, exp_util.adb (Corresponding_Runtime_Package): New
6781         subprogram.
6782         (Find_Interface_ADT): Updated to skip the new contents of attribute
6783         Access_Dispatch_Table (pointers to dispatch tables containing predefined
6784         primitives).
6786         * sem_util.adb (Has_Abstract_Interfaces): Add missing support for
6787         concurrent types.
6788         (Set_Convention): Use new function Is_Access_Subprogram_Type
6789         (Collect_Interfaces_Info): Updated to skip the new contents of attribute
6790         Access_Dispatch_Table (pointers to dispatch tables containing predefined
6791         primitives).
6793         * exp_atag.ads, exp_atag.adb (Build_Inherit_Predefined_Prims): Improve
6794         expanded code avoiding calls to Build_Predef_Prims.
6795         (Build_Set_Predefined_Prim_Op_Address): Improve expanded code avoiding
6796         call to Build_Get_Predefined_Prim_Op_Address.
6798 2008-03-26  Javier Miranda  <miranda@adacore.com>
6800         * exp_ch7.adb (Make_Clean): Code cleanup using the new centralized
6801         subprogram Corresponding_Runtime_Package to know the runtime package
6802         that will provide support to a given protected type.
6804         * exp_ch9.adb (Add_Private_Declarations,
6805         Build_Protected_Subprogram_Call,
6806         Build_Protected_Entry, Build_Simple_Entry_Call,
6807         Expand_N_Protected_Body, Expand_N_Protected_Type_Declaration,
6808         Expand_N_Timed_Entry_Call, Make_Initialize_Protection): Code
6809         cleanup using the new centralized subprogram Corresponding_Runtime
6810         Package to know the runtime package that provides support to
6811         a given protected type.
6813 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
6815         * exp_pakd.adb (Expand_Bit_Packed_Element_Set): If the component
6816         assignment is within the initialization procedure for a packed array,
6817         and Initialize_Scalars is enabled, compile right-hand side with checks
6818         off, because the value is purposely out of range.
6820 2008-03-26  Vincent Celier  <celier@adacore.com>
6822         * gnatcmd.adb: Add processing for GNAT SYNC
6824         * vms_conv.ads: (Command_Type): Add command Sync
6826         * vms_conv.adb (Initialize): Add Command_List data for new command Sync
6828         * vms_data.ads: Add entries for -gnatw.w
6829         Add qualifier for gnatstub --header-file option
6830         Add switches for GNAT SYNC
6832         * prj-attr.ads, prj-attr.adb: Add new package Synchronize for GNAT SYNC
6833         (Add_Package_Name): New procedure
6834         (Package_Name_List): New function
6835         (Initialize): Add known package names to the list
6836         (Register_New_Package): Add the new package name to the list
6838 2008-03-26  Robert Dewar  <dewar@adacore.com>
6840         * g-pehage.adb, g-regist.adb, g-spipat.ads, g-spipat.adb,
6841         s-asthan.adb, s-parint.adb, s-rpc.adb, s-stchop.adb: Replace
6842         Raise_Exception by "raise with" construct.
6844 2008-03-26  Pascal Obry  <obry@adacore.com>
6846         * Makefile.in: Add proper GNAT.Serial_Communications implementation on
6847         supported platforms.
6849         * Makefile.rtl: Add g-sercom.o.
6851         * impunit.adb: Add g-sercom.adb.
6853         * s-crtl.ads (open): New routine.
6854         (close): Likewise.
6855         (write): Likewise.
6857         * s-osinte-mingw.ads (BYTE): New type.
6858         (CHAR): Likewise.
6859         (OVERLAPPED): Likewise.
6860         (GENERIC_READ): New constant.
6861         (GENERIC_WRITE): Likewise.
6862         (OPEN_EXISTING): Likewise.
6863         (PSECURITY_ATTRIBUTES): Removed this type, use anonymous access
6864         type instead.
6865         (CreateFile): New routine.
6866         (WriteFile): Likewise.
6867         (ReadFile): Likewise.
6868         (CloseHandle): Move next to the other file oriented routines.
6870         * g-sercom.ads: New unit.
6872         * g-sercom.adb: Default implementation, calls to this unit will raise
6873         a program error exception.
6875         * g-sercom-mingw.adb, g-sercom-linux.adb: Windows and
6876         GNU/Linux implementations.
6878 2008-03-26  Robert Dewar  <dewar@adacore.com>
6880         * itypes.adb (Create_Itype): Use new name Access_Subprogram_Kind
6882         * sem_ch13.adb (Validate_Unchecked_Conversion): Give warning for
6883         unchecked conversion for different conventions only for subprogram
6884         pointers or on VMS.
6886 2008-03-26  Vincent Celier  <celier@adacore.com>
6888         * osint-c.adb (Set_Library_Info_Name): Use canonical case file names
6889         to check if the specified object file is correct.
6891 2008-03-26  Thomas Quinot  <quinot@adacore.com>
6893         * sem_cat.adb (Validate_RACW_Primitives): Do not rely on
6894         Comes_From_Source to exclude primitives from being checked. We want to
6895         exclude predefined primitives only, so use the appropriate specific
6896         predicate. Also, flag a formal parameter of an anonymous
6897         access-to-subprogram type as illegal for a primitive operation of a
6898         remote access to class-wide type.
6900 2008-03-26  Vincent Celier  <celier@adacore.com>
6902         * prj-dect.adb (Parse_Package_Declaration): When a package name is not
6903         known, check if it may be a missspelling of a known package name. In
6904         not verbose, not mode, issue warnings only if the package name is a
6905         possible misspelling.
6906         In verbose mode, always issue a warning for a not known package name,
6907         plus a warning if the name is a misspelling of a known package name.
6909         * prj-part.adb (Post_Parse_Context_Clause): Modify so that only non
6910         limited withs or limited withs are parse during one call.
6911         (Parse_Single_Project): Post parse context clause in two passes: non
6912         limited withs before current project and limited withs after current
6913         project.
6915         * prj-proc.adb (Imported_Or_Extended_Project_From): Returns an extended
6916         project with the name With_Name, even if it is only extended indirectly.
6917         (Recursive_Process): Process projects in order: first single withs, then
6918         current project, then limited withs.
6920         * prj-tree.adb (Imported_Or_Extended_Project_Of): Returns an extended
6921         project with the name With_Name, even if it is only extended indirectly.
6923 2008-03-26  Robert Dewar  <dewar@adacore.com>
6925         * scn.adb (Initialize_Scanner): Format messages belong on standard error
6927 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
6929         * sem_ch10.adb (Analyze_Compilation_Unit): if a unit in the context is
6930         a generic subprogram that is imported, do not attempt to compile
6931         non-existent body.
6933         * sem_ch12.adb (Instantiate_Subprogram_Body): if the generic is
6934         imported, do not generate a raise_program_error for the non-existent
6935         body.
6936         (Pre_Analyze_Actuals): If an error is detected during pre-analysis,
6937         perform minimal name resolution on the generic to avoid spurious
6938         warnings.
6939         (Find_Actual_Type): the designated type of the actual in a child unit
6940         may be declared in a parent unit without being an actual.
6942 2008-03-26  Robert Dewar  <dewar@adacore.com>
6944         * sem_ch11.adb: Fix No_Exception_Restriction violation for SJLJ
6945         * sinfo.ads, sinfo.adb (From_At_End): New flag
6947 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
6949         * sem_ch6.adb (Analyze_Subprogram_Body): Remove spurious check on
6950         operations that have an interface parameter.
6951         (Analyze_Subprogram_Body): Set Is_Trivial_Subprogram flag
6952         Don't treat No_Return call as raise.
6954         * sem_disp.adb (Check_Dispatching_Operations): apply check for
6955         non-primitive interface primitives to access parameters, not to all
6956         parameters of an access type.
6958 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
6960         * sem_ch7.adb (Install_Parent_Private_Declarations): If the private
6961         declarations of a parent unit are made visible when compiling a child
6962         instance, the parent is not a hidden open scope, even though it may
6963         contain other pending instance.
6965         * sem_ch8.adb (Restore_Scope_Stack): If an entry on the stack is a
6966         hidden open scope for some child instance, it does affect the
6967         visibility status of other stach entries.
6968         (Analyze_Object_Renaming): Check that a class-wide object cannot be
6969         renamed as an object of a specific type.
6971 2008-03-26  Robert Dewar  <dewar@adacore.com>
6973         * sem_res.adb (Check_Infinite_Recursion): Diagnose definite infinite
6974         recursion and raise SE directly.
6975         (Resolve_Actuals): Reset Never_Set_In_Source if warnings off is
6976         set for formal type for IN mode parameter.
6978 2008-03-26  Robert Dewar  <dewar@adacore.com>
6980         * sem_warn.ads, sem_warn.adb (Warnings_Off_Pragmas): New table
6981         (Initialize): New procedure
6982         (Output_Warnings_Off_Warnings): New procedure
6983         (Check_References): Suppress certain msgs if Is_Trivial_Subprogram
6984         (Output_Non_Modifed_In_Out_Warnings): Ditto
6985         (Warn_On_Unreferenced_Entity): Ditto
6987 2008-03-26  Vincent Celier  <celier@adacore.com>
6989         * a-direct.adb (Start_Search): Raise Use_Error if the directory is not
6990         readable.
6992 2008-03-26  Matthew Heaney  <heaney@adacore.com>
6994         * a-ciorse.ads, a-cidlli.ads, a-cdlili.ads, a-cihase.ads, a-cohase.ads,
6995         a-ciorma.ads, a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-coorse.ads:
6996         Marked with clauses as private, and controlled operations as overriding
6998 2008-03-26  Robert Dewar  <dewar@adacore.com>
7000         * g-byorma.adb (Read_BOM): Reorder tests so that UTF_32 is recognized
7002 2008-03-26  Robert Dewar  <dewar@adacore.com>
7004         * back_end.adb, back_end.ads: Minor reformatting
7006         * bindgen.adb: Minor clarification of comments
7008         * fname.ads: Minor comment fixes
7010         * g-altive.ads, g-catiio.ads, g-trasym.ads, prj.ads,
7011         prj-nmsc.adb, sem_aggr.adb: Minor reformatting
7013         * xeinfo.adb, xnmake.adb, xsinfo.adb, xtreeprs.adb,
7014         xsnames.adb: Remove warnings off pragma no longer needed
7016         * a-catizo.ads, a-calari.ads, a-calfor.adb,
7017         a-calfor.ads: Fix header.
7019 2008-03-26  Tristan Gingold  <gingold@adacore.com>
7021         * init.c: Do not adjust pc for HPARITH on alpha/vms.
7023 2008-03-26  Robert Dewar  <dewar@adacore.com>
7025         * lib-xref.adb: (OK_To_Set_Reference): New function
7026         (Generate_Reference): Don't set referenced from occurrence in Warnings,
7027         Unmodified, or Unreferenced pragma
7029 2008-03-26  Robert Dewar  <dewar@adacore.com>
7031         * alloc.ads: Add entries for Warnings_Off_Pragmas table
7033 2008-03-26  GNAT Script  <nobody@adacore.com>
7035         * Make-lang.in: Makefile automatically updated
7037 2008-03-26  Robert Dewar  <dewar@adacore.com>
7039         * tbuild.ads, tbuild.adb, trans.c, sprint.adb, exp_prag.adb, decl.c,
7040         par-ch2.adb, sem_elab.adb, sem_util.ads (N_Pragma): Chars field
7041         removed, use Chars (Pragma_Identifier (..  instead, adjustments
7042         throughout to accomodate this change.
7044         * s-pooglo.ads, s-pooloc.ads: Minor comment updates
7046         * exp_dbug.adb: Use Sem_Util.Set_Debug_Info_Needed (not
7047         Einfo.Set_Needs_Debug_Info)
7049 2008-03-26  Robert Dewar  <dewar@adacore.com>
7051         * gnat_ugn.texi: Add documentation for -gnatw.w/-gnatw.W
7052         Add description for the new gnatstub option '--header-file'
7053         clarification of -gnatwz/-gnatwZ
7054         Add a "Irix-Specific Considerations" section to document the need to
7055         set LD_LIBRARY_PATH when using the default shared runtime library.
7056         Added documentation for both gcov and gprof.
7058         * gnat_rm.texi: Document that pragma Compile_Time_Warning generates
7059         messages that are not suppressed when clients are compiled.
7060         Add documentation of s-pooglo s-pooloc
7061         Document the new GNAT.Serial_Communications API.
7062         Add documentation for 'Old attribute
7063         Add description of pragma Optimize_Alignment
7065         * ug_words: Add entries for -gnatw.w -gnatw.W
7067         * usage.adb: Add line for -gnatw.w (warn on warnings off)
7069 2008-03-25  Eric Botcazou  <ebotcazou@adacore.com>
7071         Revert
7072         2008-03-05  Eric Botcazou  <ebotcazou@adacore.com>
7073         PR ada/35186
7074         * decl.c (maybe_pad_type): Avoid padding an integral type when
7075         bumping its alignment is sufficient.
7077 2008-03-25  Arnaud Charlet  <charlet@adacore.com>
7079         * exp_ch6.adb, exp_disp.adb: Update copyright notice.
7080         Fix wrong formatting (lines too long)
7082 2008-03-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7084         * 9drpc.adb, a-caldel-vms.adb, a-caldel.adb,
7085         a-calend-vms.adb, a-calend.adb, a-calend.ads,
7086         a-calfor.adb, a-chahan.ads, a-chtgke.adb,
7087         a-cihama.ads, a-ciorse.adb, a-clrefi.ads,
7088         a-cohama.ads, a-comlin.ads, a-coorse.adb,
7089         a-crbtgk.adb, a-direct.adb, a-except-2005.adb,
7090         a-except-2005.ads, a-except.adb, a-except.ads,
7091         a-exexda.adb, a-exexpr-gcc.adb, a-exexpr.adb,
7092         a-exextr.adb, a-filico.ads, a-finali.ads,
7093         a-intnam-aix.ads, a-intnam-solaris.ads, a-ngcefu.adb,
7094         a-ngelfu.adb, a-numaux-darwin.adb, a-numeri.ads,
7095         a-sequio.ads, a-strbou.ads, a-strfix.adb,
7096         checks.adb, exp_ch3.adb, exp_ch4.adb,
7097         exp_ch4.ads, exp_ch5.adb, exp_ch6.adb,
7098         exp_ch6.ads, exp_ch7.adb, exp_ch7.ads,
7099         exp_ch9.adb, exp_ch9.ads, exp_dbug.adb,
7100         exp_dbug.ads, exp_disp.adb, exp_dist.adb,
7101         exp_dist.ads, exp_fixd.adb, exp_fixd.ads: Fix comment typos.
7103 2008-03-24  Robert Dewar  <dewar@adacore.com>
7105         * s-tpopsp-posix.adb, s-tpopsp-solaris.adb, s-tpopsp-posix-foreign.adb,
7106         s-tpopsp-lynxos.adb, s-tpopde-vms.ads, s-tpopde-vms.adb,
7107         s-tpopsp-vxworks.adb, s-casi16.adb, s-caun16.adb, s-inmaop.ads,
7108         s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-tpinop.adb,
7109         s-tpinop.ads, s-tporft.adb, a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb,
7110         a-crbtgk.ads, a-crbtgk.adb, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
7111         a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
7112         a-cgcaso.adb, a-cgaaso.adb, a-ciormu.adb, a-cihase.adb, a-swuwha.ads,
7113         a-rbtgso.ads, a-cgaaso.ads, a-cgaaso.ads, a-ciorma.adb, a-chtgke.ads,
7114         a-chtgke.adb, a-llfzti.ads, a-ztenau.adb, a-ztenau.ads, a-stzhas.ads,
7115         a-szbzha.ads, a-szbzha.adb, a-crdlli.ads, a-crdlli.ads, a-crdlli.adb,
7116         i-forbla-darwin.adb, i-forbla.ads, s-regexp.adb, a-nllrar.ads,
7117         a-nlrear.ads, a-nucoar.ads, a-nurear.ads, i-forlap.ads, s-gearop.adb,
7118         s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb, s-gecola.ads,
7119         s-gerebl.adb, s-gerela.ads, a-swuwha.adb, i-forbla-unimplemented.ads,
7120         double spaced if it fits on one line and otherwise single spaced.
7122 2008-03-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7124         PR documentation/15479
7125         * Make-lang.in (doc/gnat_ugn.texi) Renamed from ...
7126         (doc/gnat_ugn_unw.texi): ... this, and adjusted.
7127         (doc/gnat_ugn.info): Renamed from ...
7128         (doc/gnat_ugn_unw.info): ... this.
7129         (doc/gnat_ugn.dvi): Renamed from ...
7130         (doc/gnat_ugn_unw.dvi): ... this.
7131         (doc/gnat_ugn.pdf): Renamed from ...
7132         (doc/gnat_ugn_unw.pdf): ... this.
7133         (ADA_INFOFILES, ADA_PDFFILES, ada.install-info, ada.dvi):
7134         Adjusted.
7135         * gnat_ugn.texi (FILE): Hard-code gnat_ugn; set filename
7136         unconditionally to gnat_ugn.info.  Fix cross references to the
7137         GNAT Reference Manual.  Convert links to the GCC, GDB, Emacs,
7138         and GNU make manuals to be proper texinfo links.
7139         * gnat_rm.texi: Fix cross references to the GNAT User's Guide.
7141 2008-03-21  Olivier Hainque  <hainque@adacore.com>
7143         * trans.c (Attribute_to_gnu) <'length>: Compute as (hb < lb)
7144         ? 0 : hb - lb + 1 instead of max (hb - lb + 1, 0).
7146 2008-03-21  Eric Botcazou  <ebotcazou@adacore.com>
7148         * trans.c (addressable_p): Add notes on addressability issues.
7150 2008-03-21  Olivier Hainque  <hainque@adacore.com>
7151             Ed Schonberg  <schonberg@adacore.com>
7153         * trans.c (addressable_p): Accept COND_EXPR when both arms
7154         are addressable.
7155         (gnat_gimplify_expr): Let the gimplifier handle &COND_EXPR.
7156         (call_to_gnu): Do not use name reference in the error message
7157         for a misaligned by_reference_parameter. The actual may be a
7158         general expression.
7160 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
7162         * misc.c (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
7164 2008-03-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7166         * gnat_rm.texi (Implementation Defined Characteristics)
7167         (Wide_Text_IO, Wide_Wide_Text_IO): Add @var annotations where
7168         appropriate.
7169         * gnat_ugn.texi (Wide Character Encodings, Switches for gnatbind)
7170         (Switches for gnatchop, Installing a library): Likewise.
7172 2008-03-10  Eric Botcazou  <ebotcazou@adacore.com>
7174         * trans.c (emit_range_check): Do not emit the check if the base type
7175         of the expression is the type against which its range must be checked.
7177 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
7179         * decl.c (maybe_pad_type): Use value_factor_p.
7181 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
7183         * lang.opt (nostdlib): Move around.
7184         * misc.c (gnat_handle_option): Fix formatting.
7185         (gnat_dwarf_name): Move around.
7186         * trans.c (Case_Statement_to_gnu): Fix formatting.
7187         (gnat_to_gnu): Likewise.
7188         * utils.c (aggregate_type_contains_array_p): Likewise.
7189         (create_subprog_decl): Likewise.
7191 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
7193         * decl.c (gnat_to_gnu_entity) <E_Signed_Integer_Subtype>: Do not
7194         bother propagating the TYPE_USER_ALIGN flag when creating a JM type.
7196 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
7198         * decl.c (gnat_to_gnu_entity) <E_Record_Type>: Do not force
7199         BIGGEST_ALIGNMENT when capping the alignment of records with
7200         strict alignment and size clause.
7202 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
7204         * lang-specs.h: Pass -gnatwa if -Wall is passed.
7205         * misc.c (gnat_handle_option) <OPT_Wall>: Expand into -Wunused
7206         and -Wuninitialized.
7207         (gnat_post_options): Clear warn_unused_parameter.
7209 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
7211         * utils.c (finish_record_type): Clear DECL_BIT_FIELD on sufficiently
7212         aligned bit-fields, bumping the alignment of the record type if deemed
7213         profitable.
7214         (value_factor_p): Return false instead of 0.
7216 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
7218         * decl.c (gnat_to_gnu_entity) <E_Signed_Integer_Subtype>: Add support
7219         for scalar types with small alignment.
7221 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
7223         * trans.c (Loop_Statement_to_gnu): Set the SLOC of the loop label
7224         from that of the front-end's end label.
7225         (gnat_gimplify_stmt) <LOOP_STMT>: Set the SLOC of the backward goto
7226         from that of the loop label.
7228 2008-03-07  Eric Botcazou  <ebotcazou@adacore.com>
7230         * decl.c (gnat_to_gnu_entity) <E_Modular_Integer_Subtype>: Add
7231         comment for the packed array type case.
7232         * utils.c (build_template): Use a loop to strip padding or
7233         containing records for justified modular types.
7235 2008-03-07  Eric Botcazou  <ebotcazou@adacore.com>
7237         * decl.c (gnat_to_gnu_entity): Issue a warning on suspiciously
7238         large alignments specified for types.
7239         (validate_alignment): Minor cleanup.
7241 2008-03-07  Eric Botcazou  <ebotcazou@adacore.com>
7243         * decl.c (MAX_FIXED_MODE_SIZE): Define if not already defined.
7244         (gnat_to_gnu_entity) <E_Record_Type>: Try to get a smaller form of
7245         the component for packing, if possible, as well as if a component
7246         size clause is specified.
7247         <E_Record_Subtype>: For an array type used to implement a packed
7248         array, get the component type from the original array type.
7249         Try to get a smaller form of the component for packing, if possible,
7250         as well as if a component size clause is specified.
7251         (round_up_to_align): New function.
7252         (make_packable_type): Add in_record parameter.
7253         For a padding record, preserve the size.  If not in_record and the
7254         size is too large for an integral mode, attempt to shrink the size
7255         by lowering the alignment.
7256         Ditch the padding bits of the last component.
7257         Compute sizes and mode manually, and propagate the RM size.
7258         Return a BLKmode record type if its size has shrunk.
7259         (maybe_pad_type): Use MAX_FIXED_MODE_SIZE instead of BIGGEST_ALIGNMENT.
7260         Use Original_Array_Type to retrieve the type in case of an error.
7261         Adjust call to make_packable_type.
7262         (gnat_to_gnu_field): Likewise.
7263         (concat_id_with_name): Minor tweak.
7264         * trans.c (larger_record_type_p): New predicate.
7265         (call_to_gnu): Compute the nominal type of the object only if the
7266         parameter is by-reference.  Do the conversion actual type -> nominal
7267         type if the nominal type is a larger record.
7268         (gnat_to_gnu): Do not require integral modes on the source type to
7269         avoid the conversion for types with identical names.
7270         (addressable_p): Add gnu_type parameter.  If it is specified, do not
7271         return true if the expression is not addressable in gnu_type.
7272         Adjust recursive calls.
7273         * utils.c (finish_record_type): Remove dead code.
7275 2008-03-05  Eric Botcazou  <ebotcazou@adacore.com>
7277         PR ada/35186
7278         * decl.c (maybe_pad_type): Avoid padding an integral type when
7279         bumping its alignment is sufficient.
7281 2008-03-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7283         * gnatfind.adb, gnatxref.adb: Fix argument parsing typos.
7284         * s-auxdec-empty.adb, s-auxdec.adb: Fix typos in copyright
7285         statement.
7286         * a-ngcoar.adb, a-ngrear.adb, g-awk.adb, g-debpoo.adb,
7287         gprep.adb, make.adb, makegpr.adb, par-ch6.adb, prj-nmsc.adb,
7288         sem_attr.adb, sem_ch4.adb, sem_ch8.adb: Fix typos in ada source
7289         code output strings.
7290         * sem_type.adb, system-vms-ia64.ads, system-vms.ads,
7291         system-vms_64.ads: Fix typos in ada source code comments.
7292         * sinfo-cn.adb: Remove incomplete sentence.
7294         PR documentation/15479
7295         * gnat_rm.texi, gnat_ugn.texi: Avoid standalone `non' word.
7297 2008-02-27  Samuel Tardieu  <sam@rfc1149.net>
7299         PR ada/22255
7300         * s-fileio.adb (Reset): Do not raise Use_Error if mode isn't changed.
7302 2008-02-27  Samuel Tardieu  <sam@rfc1149.net>
7304         PR ada/34799
7305         * sem_ch13.adb (Analyze_Record_Representation_Clause): Check
7306         that underlying type is present.
7308 2008-02-26  Tom Tromey  <tromey@redhat.com>
7310         * misc.c (internal_error_function): Remove test of
7311         USE_MAPPED_LOCATION.
7312         * trans.c (gigi): Remove test of USE_MAPPED_LOCATION.
7313         (Sloc_to_locus): Remove old location code.
7315 2008-02-25  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7317         * gnat_rm.texi, gnat_ugn.texi: Fix spacing after `e.g.' and
7318         `i.e.' by adding comma or `@:' as appropriate.
7319         * gnat_rm.texi (Pragma Wide_Character_Encoding): Instead of
7320         plain characters `C', use `@samp{C}'.
7321         * gnat_ugn.texi (File Naming Rules, About gnatkr)
7322         (Krunching Method): Likewise.
7324         * gnat_ugn.texi (Conventions): List environment variables and
7325         metasyntactic variables.
7326         (Compiling Programs): Fix notation of metasyntactic variables.
7327         Add @file where appropriate.  Use @file for file extensions,
7328         @samp for strings.
7329         * gnat_rm.texi, gnat_ugn.texi: Where appropriate, use @samp
7330         instead of @file, @env instead of @code.
7332 2008-02-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7334         PR documentation/15479
7335         * gnat_rm.texi, gnat_ugn.texi: Where appropriate, replace `..'
7336         and `...' with `@dots{}' or `@enddots{}'.
7338         PR documentation/15479
7339         * gnat_rm.texi, gnat_ugn.texi: Where appropriate, add @command,
7340         use @command instead of @code, @option instead of @samp or @code,
7341         @code instead of @var, @samp instead of @file.
7343         PR documentation/15479
7344         * gnat_ugn.texi (Using gnatmake in a Makefile): Do not ignore errors
7345         in Makefile rules, by using `&&' rather than `;'.
7347 2008-02-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7349         PR documentation/15479
7350         * gnat_ugn.texi: In non-code, avoid space before colon.
7351         (Regular Expressions in gnatfind and gnatxref): Fix indentation.
7352         (Examples of gnatxref Usage): Use @command{vi} instead of
7353         @file{vi}.
7354         (Character Set Control): Do not use @code for UTF-8.
7355         (Validity Checking): Fix typo "NaNs" instead of "NaN's".  Do not
7356         use @code for IEEE.
7357         * gnat_rm.texi (Aggregates with static bounds): Fix typo in code
7358         sample.
7359         * gnat_rm.texi, gnat_ugn.texi: Fix typos.  Bump copyright years.
7361 2008-02-11  Joel Sherrill  <joel.sherrill@oarcorp.com>
7363         PR ada/35143
7364         * env.c: Add __rtems__ to if defined.
7365         * s-osinte-rtems.adb: Add To_Target_Priority.  Fix formatting.
7366         * s-osinte-rtems.ads: Add To_Target_Priority prototype and
7367         PTHREAD_SCOPE_PROCESS/PTHREAD_SCOPE_SYSTEM constants.  Add
7368         pragma Convention as required.
7369         * gsocket.h: Make compile in and out of RTS.
7370         * Makefile.in: Add system-rtems.ads.  Build DEC extensions.
7371         Use g-soccon-rtems.ads.
7372         * g-soccon-rtems.ads, system-rtems.ads: New files.
7374 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7376         PR other/35107
7377         * Make-lang.in (gnat1): Add $(GMPLIBS).
7379 2008-01-26  Eric Botcazou  <ebotcazou@adacore.com>
7381         * decl.c (components_to_record): Improve comment.
7383 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
7385         * decl.c (components_to_record): Do not reuse the empty union type
7386         if there is a representation clause on the record.
7387         * trans.c (addressable_p): Return true for INTEGER_CST.
7389 2008-01-21  Eric Botcazou  <ebotcazou@adacore.com>
7391         * trans.c (gnat_to_gnu) <N_Free_Statement>: Use POINTER_PLUS_EXPR
7392         in pointer arithmetics.
7393         * utils2.c (build_allocator): Likewise.
7395 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
7397         * utils.c (build_function_stub): Properly build the call expression.
7399 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
7401         * decl.c (gnat_to_gnu_entity) <object>: Process renamings
7402         before converting the expression to the type of the object.
7403         * trans.c (maybe_stabilize_reference) <CONSTRUCTOR>: New case.
7404         Stabilize constructors for special wrapping types.
7406 2008-01-13  Eric Botcazou  <ebotcazou@adacore.com>
7408         * trans.c (call_to_gnu): Invoke the addressable_p predicate only
7409         when necessary.  Merge some conditional statements.  Update comments.
7410         Rename unchecked_convert_p local variable to suppress_type_conversion.
7411         Do not suppress conversions in the In case.
7412         (addressable_p) <VIEW_CONVERT_EXPR>: Do not take alignment issues
7413         into account on non strict-alignment platforms.
7415 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
7417         * utils.c (aggregate_type_contains_array_p): New predicate.
7418         (create_field_decl): In a packed record, force byte alignment
7419         for fields without specified position that contain an array.
7421 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
7423         * utils.c (unchecked_convert): Fold the VIEW_CONVERT_EXPR expression.
7425 2008-01-10  John David Anglin  <dave.anglin.@nrc-cnrc.gc.ca>
7427         PR ada/34466
7428         * s-osinte-linux-hppa.ads (SC_NPROCESSORS_ONLN): New constant for
7429         sysconf call.
7430         (bit_field): New packed boolean type used by cpu_set_t.
7431         (cpu_set_t): New type corresponding to the C type with
7432         the same name. Note that on the Ada side we use a bit
7433         field array for the affinity mask. There is not need
7434         for the C macro for setting individual bit.
7435         (pthread_setaffinity_np): New imported routine.
7437 2008-01-03  Tero Koskinen  <tero.koskinen@iki.fi>
7439         PR ada/34647
7440         * adaint.c (__gnat_open_new_temp, __gnat_tmp_name): Use mkstemp()
7441         on OpenBSD as is done on other BSD systems.
7443         PR ada/34645
7444         * sysdep.c (__gnat_ttyname, getc_immediate_nowait,
7445         getc_immediate_common): Treat OpenBSD as FreeBSD regarding immediate
7446         I/O.
7448         PR ada/34644
7449         * env.c (__gnat_clearenv): Treat OpenBSD as other BSD systems missing
7450         clearenv().
7452         PR ada/34646
7453         * init.c (__gnat_error_handler, __gnat_install_handler,
7454         __gnat_init_float): Define for OpenBSD.
7456         * initialize.c (__gnat_initialize): Define for OpenBSD.
7460 Copyright (C) 2008 Free Software Foundation, Inc.
7462 Copying and distribution of this file, with or without modification,
7463 are permitted in any medium without royalty provided the copyright
7464 notice and this notice are preserved.