1 2008-10-17 Geert Bosch <bosch@adacore.com>
3 * gcc-interface/trans.c (gnat_to_gnu) <N_Slice>: Simplify expansion
4 to use only a single check instead of three, and avoid unnecessary
6 (emit_check): Avoid useless COMPOUND_EXPRs and SAVE_EXPRs, sometimes
7 creating more opportunities for optimizations.
9 2008-10-13 Jakub Jelinek <jakub@redhat.com>
12 * gcc-interface/utils.c (gnat_types_compatible_p): Handle
15 2008-10-07 Eric Botcazou <ebotcazou@adacore.com>
17 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Move code
18 dealing with volatileness to after code dealing with renaming.
20 2008-10-06 Eric Botcazou <ebotcazou@adacore.com>
22 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Minor tweaks.
23 * gcc-interface/trans.c (Pragma_to_gnu): Likewise.
25 2008-10-06 Eric Botcazou <ebotcazou@adacore.com>
27 * gcc-interface/utils.c (can_fold_for_view_convert_p): New predicate.
28 (unchecked_convert): Use it to disable problematic folding with
29 VIEW_CONVERT_EXPR in the general case. Always disable it for the
30 special VIEW_CONVERT_EXPR built for integral types and cope with
31 its addressability issues by preserving the first conversion.
33 2008-10-01 Andreas Schwab <schwab@suse.de>
35 * system-linux-ppc64.ads: New file.
36 * gcc-interface/Makefile.in: Add multilib handling for
39 2008-09-26 Eric Botcazou <ebotcazou@adacore.com>
41 * decl.c (gnat_to_gnu_entity) <object>: Cap the alignment promotion
42 to that of ptr_mode instead of word_mode.
44 2008-09-26 Eric Botcazou <ebotcazou@adacore.com>
47 * gcc-interface/Makefile.in (SPARC/Solaris): Add multilib support.
49 2008-09-25 Samuel Tardieu <sam@rfc1149.net>
52 * adaint.c (__gnat_set_non_writable): Use FILE_WRITE_EA
53 instead of deprecated FILE_WRITE_PROPERTIES.
55 2008-09-22 Olivier Hainque <hainque@adacore.com>
57 * gcc-interface/decl.c (gnat_to_gnu_entity): Even when they
58 are never assigned, volatile entities are not constant for code
61 2008-09-21 Laurent Guerby <laurent@guerby.net>
64 * gcc-interface/Makefile.in: Add multilib handling for x86_64
66 * system-linux-sparcv9.ads: New file.
68 2008-09-20 Eric Botcazou <ebotcazou@adacore.com>
70 * exp_dbug.ads: Document new convention for the XVZ variable.
71 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Generate
72 debug info if necessary for the type padding the component type.
73 <E_Array_Subtype>: Likewise.
74 (maybe_pad_type): Emit the XVZ variable in units.
75 * gcc-interface/trans.c (Loop_Statement_to_gnu): Fix formatting nits.
76 (Subprogram_Body_to_gnu): Set the source line of the subprogram's node
77 on statements generated to initialize the parameter attributes cache.
78 Set the source line of the end label of the body on the special return
79 statement built for a procedure with copy-in copy-out parameters.
81 2008-09-20 Eric Botcazou <ebotcazou@adacore.com>
84 * gcc-interface/utils.c (create_subprog_decl): Disable inlining for
85 inlined external functions if they contain a nested function not
88 2008-09-18 Jan Hubicka <jh@suse.cz>
90 * gcc-interface/utils.c (create_subprog_decl): Use DECL_DECLARED_INLINE_P.
91 (end_subprog_body): Do not set DECL_INLINE.
93 2008-09-17 Pascal Rigaux <pixel@mandriva.com>
96 * gnat_ugn.texi: Use proper format in direntry.
98 2008-09-15 Eric Botcazou <ebotcazou@adacore.com>
100 * gcc-interface/trans.c (gigi): Declare the name of the compilation
101 unit as the first global name.
103 2008-09-14 Jan Hubicka <jh@suse.cz>
105 * gcc-interface/Make-lang.in (gnat1): Add CFLAGS.
107 2008-09-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
109 * a-crbtgk.adb, a-direct.ads, a-tasatt.adb, ali.ads,
110 bindgen.adb, checks.adb, einfo.ads, exp_aggr.adb, exp_ch11.adb,
111 exp_ch3.adb, exp_ch4.adb, exp_ch6.adb, exp_ch7.adb, exp_ch9.adb,
112 exp_dbug.ads, exp_disp.adb, exp_dist.adb, exp_pakd.adb,
113 exp_util.adb, g-alveop.ads, g-comlin.adb, g-comlin.ads,
114 g-diopit.adb, g-socket.ads, gcc-interface/decl.c,
115 gcc-interface/gigi.h, gcc-interface/trans.c,
116 lib-load.adb, lib-xref.ads, make.adb, mlib-prj.adb, nlists.ads,
117 opt.ads, par-ch10.adb, par-ch5.adb, par.adb, s-os_lib.ads,
118 s-oscons-tmplt.c, s-parint.ads, s-regpat.ads, s-shasto.ads,
119 s-stausa.ads, s-taprop-vms.adb, sem.adb, sem_ch10.adb,
120 sem_ch11.adb, sem_ch12.adb, sem_ch13.adb, sem_ch3.adb,
121 sem_ch3.ads, sem_ch4.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb,
122 sem_elim.adb, sem_prag.adb, sem_util.adb, sem_util.ads,
123 sem_warn.adb, sinfo.ads, styleg.adb, vms_data.ads: Fix typos in
125 * gnathtml.pl: Fix typos.
127 2008-09-10 Joel Sherrill <joel.sherrill@oarcorp.com>
129 * gcc-interface/Makefile.in: Switch RTEMS to s-interr-hwint.adb.
130 * s-osinte-rtems.ads: Add shared hardware interrupt adapter
131 layer. RTEMS binds to OS provided adapter routines so there are
132 no modifications to s-osinte-rtems.adb.
134 2008-09-09 Arnaud Charlet <charlet@adacore.com>
135 Joel Sherrill <joel.sherrill@oarcorp.com>
137 * gcc-interface/Makefile.in: Switch VxWorks to s-interr-hwint.adb.
139 * s-interr-vxworks.adb: Renamed to s-interr-hwint.adb
141 * s-interr-hwint.adb: New file.
143 * s-osinte-vxworks.ads, s-osinte-vxworks.adb: Add new functions
144 needed by s-interr-hwint.adb.
146 * s-osinte-vxworks-kernel.adb: New file.
148 2008-09-05 Joel Sherrill <joel.sherrill@oarcorp.com>
150 * s-stchop-rtems.adb: Add file missed in early commit. Already
151 referenced in gcc-interface/Makefile.in.
153 2008-08-30 Thomas Quinot <quinot@adacore.com>
155 * gcc-interface/Make-lang.in: Allow s-oscons.{o,ali} to
156 be built even without a separate libada directory.
158 2008-08-22 Arnaud Charlet <charlet@adacore.com>
160 * lib-xref.ads: Fix typo in subprogram reference definition.
162 2008-08-22 Robert Dewar <dewar@adacore.com>
164 * s-sopco3.adb, s-sopco4.adb, s-sopco5.adb, s-strops.adb: Minor code fix
167 * g-trasym.adb: Ditto
169 * s-utf_32.adb (Get_Category): Fix obvious typo
171 * s-wwdcha.adb: Minor code reorganization
174 2008-08-22 Robert Dewar <dewar@adacore.com>
176 * checks.adb (Determine_Range): Deal with values that might be invalid
178 * opt.adb, opt.ads (Assume_No_Invalid_Values[_Config]): New
179 configuration switches.
181 * par-prag.adb: Dummy entry for pragma Assume_No_Invalid_Values
183 * sem_prag.adb: Implement pragma Assume_No_Default_Values
185 * snames.adb, snames.ads, snames.h:
186 Add entries for pragma Assume_No_Invalid_Values
188 * switch-c.adb: Add processing for -gnatB switch
190 * usage.adb: Add entry for flag -gnatB (no bad invalid values)
192 2008-08-22 Javier Miranda <miranda@adacore.com>
194 * exp_ch3.adb (Build_Init_Statements): Transfer to the body of the
195 init procedure all the expanded code associated with the spec of
196 task types and protected types.
198 2008-08-22 Gary Dismukes <dismukes@adacore.com>
200 * exp_aggr.adb (Static_Array_Aggregate): Call Analyze_And_Resolve on the
201 component expression copies rather than directly setting Etype and
202 Is_Static_Expression.
204 2008-08-22 Gary Dismukes <dismukes@adacore.com>
206 * sem_util.adb (Has_Preelaborable_Initialization): Revise checking of
207 private types to allow for types derived from a private type with
208 preelaborable initialization, but return False for a private extension
209 (unless it has the pragma).
211 2008-08-22 Robert Dewar <dewar@adacore.com>
213 * opt.ads: Minor code reorganization (put entries in alpha order)
215 2008-08-22 Pascal Obry <obry@adacore.com>
217 * initialize.c, adaint.c: Use Lock_Task and Unlock_Task for non-blocking
220 2008-08-22 Geert Bosch <bosch@adacore.com>
222 * gcc-interface/trans.c: Define FP_ARITH_MAY_WIDEN
223 (convert_with_check): Only use longest_float_type if FP_ARITH_MAY_WIDEN is 0
225 2008-08-22 Doug Rupp <rupp@adacore.com>
227 * bindgen.adb [VMS] (Gen_Adainit_Ada, Gen_Adainit_C): Import and call
231 (__gnat_set_features): New function.
232 (__gnat_features_set): New tracking variable.
233 (__gl_no_malloc_64): New feature global variable
235 2008-08-22 Ed Schonberg <schonberg@adacore.com>
237 * sem_ch8.adb (Use_One_Type): Do not emit warning message about redundant
238 use_type_clause in an instance.
240 2008-08-22 Bob Duff <duff@adacore.com>
242 * exp_ch6.ads: Remove pragma Precondition, since it breaks some builds.
244 2008-08-22 Robert Dewar <dewar@adacore.com>
246 * exp_ch6.adb: Minor reformatting
248 * exp_ch7.adb: Minor reformatting
250 * exp_ch7.ads: Put routines in proper alpha order
252 * exp_dist.adb: Minor reformatting
254 2008-08-22 Vincent Celier <celier@adacore.com>
256 * prj.ads: Minor comment update
258 2008-08-22 Robert Dewar <dewar@adacore.com>
260 * sem_ch5.adb (One_Bound): Fix latent bug involving secondary stack
262 2008-08-22 Ed Schonberg <schonberg@adacore.com>
265 (Base_Init_Proc): For a protected subtype, use the base type of the
266 corresponding record to locate the propoer initialization procedure.
268 2008-08-22 Robert Dewar <dewar@adacore.com>
271 (In_Subrange_Of): New calling sequence
272 (Determine_Range): Prepare for new processing using base type
275 (Compile_Time_Compare): Use new calling sequence
278 (Compile_Time_Compare): Use new calling sequence
281 (Compile_Time_Compare): New calling sequence allows dealing with
283 (In_Subrange_Of): Ditto
286 (Compile_Time_Compare): New calling sequence allows dealing with
288 (In_Subrange_Of): Ditto
290 2008-08-22 Pascal Obry <obry@adacore.com>
292 * adaint.c: Fix possible race condition on win32_wait().
294 2008-08-22 Bob Duff <duff@adacore.com>
296 * exp_ch5.adb, exp_ch7.adb, exp_ch7.ads, exp_util.adb, freeze.adb,
297 exp_ch4.adb, exp_ch6.ads, exp_ch6.adb, sem_ch6.adb, exp_aggr.adb,
298 exp_intr.adb, exp_ch3.adb: Rename:
299 Exp_Ch7.Controlled_Type => Needs_Finalization
300 Exp_Ch7.CW_Or_Controlled_Type => CW_Or_Has_Controlled_Part
301 Exp_Ch5.Expand_N_Extended_Return_Statement.Controlled_Type =>
303 (Has_Some_Controlled_Component): Fix bug in array case.
305 2008-08-22 Robert Dewar <dewar@adacore.com>
307 * sem_ch8.adb: Minor reformatting
309 2008-08-22 Kevin Pouget <pouget@adacore.com>
311 * s-shasto.ads, s-shasto.adb: Move Shared_Var_ROpen, Shared_Var_WOpen and
312 Shared_Var_Close procedure specifications from package spec to package body.
314 * rtsfind.ads: Remove RE_Shared_Var_Close, RE_Shared_Var_ROpen,
315 RE_Shared_Var_WOpen entries.
317 * exp_dist.adb: Update RE_Any_Content_Ptr to RE_Any_Container_Ptr in
318 Build_To_Any_Call, Build_TypeCode_Call and Build_From_Any_Call procedures.
320 2008-08-22 Eric Botcazou <ebotcazou@adacore.com>
322 * init.c: adjust EH support code on Alpha/Tru64 as well.
324 * raise-gcc.c: Add back a couple of comments.
326 2008-08-22 Ed Schonberg <schonberg@adacore.com>
328 * exp_ch5.adb (Expand_Simple_Function_Return): If secondary stack is
329 involved and the return type is class-wide, use the type of the expression
330 for the generated access type. Suppress useless discriminant checks on the
333 2008-08-22 Bob Duff <duff@adacore.com>
335 * exp_ch7.adb: Minor comment fix
337 * exp_ch6.ads: Minor comment fix
339 2008-08-22 Thomas Quinot <quinot@adacore.com>
341 * sem_ch8.adb: Minor reformatting
342 Minor code reorganization (introduce subprogram to factor duplicated
345 2008-08-22 Sergey Rybin <rybin@adacore.com>
347 * gnat_ugn.texi: Change the description of gnatcheck default rule
350 2008-08-22 Eric Botcazou <ebotcazou@adacore.com>
352 * init.c (__gnat_adjust_context_for_raise): Delete for AIX, HP-UX,
353 Solaris, FreeBSD, VxWorks and PowerPC/Linux. For x86{-64}/Linux,
354 do not adjust the PC anymore.
355 (__gnat_error_handler): Do not call __gnat_adjust_context_for_raise
356 on AIX, HP-UX, Solaris, FreeBSD and VxWorks.
358 * raise-gcc.c (get_call_site_action_for): Use _Unwind_GetIPInfo
359 instead of _Unwind_GetIP.
361 2008-08-22 Gary Dismukes <dismukes@adacore.com>
363 * exp_aggr.adb (Static_Array_Aggregate): When a static array aggregate
364 with a range is transformed into a positional aggregate, any copied
365 component literals should be marked Is_Static_Expression.
367 * sem_eval.adb (Compile_Time_Known_Value): Don't treat null literals as
368 not being known at at compile time when Configurable_Run_Time_Mode is
371 2008-08-22 Robert Dewar <dewar@adacore.com>
374 (Expand_N_Attribute_Reference): No validity checking on OUT parameter of
375 Read or Input attribute.
377 2008-08-22 Ed Schonberg <schonberg@adacore.com>
379 * sem_ch8.adb (Use_One_Type): when checking which of two use_type
380 clauses in related units is redundant, if one of the units is a package
381 instantiation, use its instance_spec to determine which unit is the
382 ancestor of the other.
384 2008-08-22 Javier Miranda <miranda@adacore.com>
386 * exp_attr.adb (Expand_N_Attribute_Reference): In case of access
387 attributes add missing support to handle designated types that come
388 from the limited view.
390 * exp_disp.adb (Expand_Interface_Conversion): Remove wrong assertion.
392 2008-08-22 Sergey Rybin <rybin@adacore.com>
394 * vms_data.ads: Add entry for new gnatcheck -mNNN option
396 * gnat_ugn.texi: Add description for gnatcheck option '-m'
398 2008-08-22 Sergey Rybin <rybin@adacore.com>
400 * gnat_ugn.texi: Update the gnatcheck subsection for metric rules
401 acoording to the latest changes in the metric rule interface
403 2008-08-22 Vincent Celier <celier@adacore.com>
405 * make.adb (Check.File_Not_A_Source_Of): New Boolean function
406 (Check): Check if the file names registered in the ALI file for the
407 spec, the body and each of the subunits are the ones expected.
409 2008-08-22 Robert Dewar <dewar@adacore.com>
411 * g-catiio.adb: Code cleanup.
413 2008-08-20 Vincent Celier <celier@adacore.com>
415 * make.adb (Gnatmake): Remove extra space in version line
418 (Scan_ALI): Use Name_Find, not Name_Enter to get the name of a subunit,
419 as the name may already have been entered in the table by the Project
422 2008-08-20 Jose Ruiz <ruiz@adacore.com>
424 * errno.c (__get_errno, __set_errno for MaRTE): Transform then into
425 weak symbols so we use the version provided by MaRTE when available.
427 2008-08-20 Emmanuel Briot <briot@adacore.com>
429 * g-catiio.ads, g-catiio.adb:
430 (Value): Avoid an unnecessary system call to Clock in most cases.
431 This call is only needed when only the time is provided in the string,
432 and ignored in all other cases. This is more efficient.
434 2008-08-20 Eric Botcazou <ebotcazou@adacore.com>
436 * raise-gcc.c: Fix formatting nits.
438 2008-08-20 Robert Dewar <dewar@adacore.com>
441 (Adjust_Record_For_Reverse_Bit_Order): Do not access First_Bit for
442 non-existing component clause.
444 * exp_ch5.adb: Minor reformatting
446 * g-comlin.adb: Minor reformatting
448 * make.adb: Minor reformatting
450 * prj-proc.adb: Minor reformatting
452 * stylesw.ads: Minor reformatting
454 2008-08-20 Vincent Celier <celier@adacore.com>
456 * make.adb (Gnatmake_Switch_Found): New Boolean global variable
457 (Switch_May_Be_Passed_To_The_Compiler): New Boolean global variable
458 (Add_Switches): New Boolean parameter Unknown_Switches_To_The_Compiler
459 defaulted to True. Fail when Unknown_Switches_To_The_Compiler is False
460 and a switch is not recognized by gnatmake.
461 (Gnatmake): Implement new scheme for gnatmake switches and global
462 compilation switches.
463 (Switches_Of): Try successively Switches (<file name>),
464 Switches ("Ada"), Switches (others) and Default_Switches ("Ada").
466 2008-08-20 Ed Schonberg <schonberg@adacore.com>
468 * styleg-c.ads, styleg-c.adb (Missing_Overriding): new procedure to
469 implement style check that overriding operations are explicitly marked
472 * style.ads (Missing_Overriding): new procedure that provides interface
475 * stylesw.ads, stylesw.adb: New style switch -gnatyO, to enable check
476 that the declaration or body of overriding operations carries an
477 explicit overriding indicator.
480 (Analyze_Subprogram_Renaming): if operation is overriding, check whether
481 explicit indicator should be present.
483 * sem_ch6.adb (Verify_Overriding_Indicator,
484 Check_Overriding_Indicator): If operation is overriding, check whether
485 declaration and/or body of subprogram should be present
487 2008-08-20 Vincent Celier <celier@adacore.com>
489 * prj-nmsc.adb (Check_Naming_Schemes): Accept source file names for
490 gprbuild when casing is MixedCase, whatever the casing of the letters
493 2008-08-20 Gary Dismukes <dismukes@adacore.com>
495 * exp_ch3.adb (Build_Array_Init_Proc): Clarify comment related to
496 creating dummy init proc.
497 (Requires_Init_Proc): Return False in the case No_Default_Initialization
498 is in force and the type does not have associated default
499 initialization. Move test of Is_Public (with tests of restrictions
500 No_Initialize_Scalars and No_Default_Initialization) to end, past tests
501 for default initialization.
503 2008-08-20 Jerome Lambourg <lambourg@adacore.com>
505 * g-comlin.adb (For_Each_Simple_Switch): Take care of switches not part
506 of any alias or prefix but having attached parameters (as \"-O2\").
508 2008-08-20 Robert Dewar <dewar@adacore.com>
510 * s-fileio.adb: Minor reformatting
512 2008-08-20 Thomas Quinot <quinot@adacore.com>
514 * exp_strm.adb (Build_Elementary_Input_Call,
515 Build_Elementary_Write_Call): Fix incorrect condition in circuitry that
516 selects the stream attribute routines for long float types.
518 2008-08-20 Vincent Celier <celier@adacore.com>
520 * prj-proc.adb (Process_Declarative_Items): Add Location for Array_Data
522 * prj.ads (Array_Data): Add a component Location
524 2008-08-20 Ed Schonberg <schonberg@adacore.com>
527 (Analyze_Pragma, case Obsolescent): Add entity information on the pragma
528 argument for ASIS and navigation use.
530 2008-08-20 Ed Schonberg <schonberg@adacore.com>
532 * einfo.ads: Add comment.
534 2008-08-20 Bob Duff <duff@adacore.com>
536 * sem_eval.ads: Minor comment fix.
538 2008-08-20 Bob Duff <duff@adacore.com>
540 * exp_ch4.adb (Expand_N_And_Then, Expand_N_Or_Else): Improve constant
541 folding. We were folding things like "False and then ...", but not
542 "X and then ..." where X is a constant whose value is known at compile
545 2008-08-20 Hristian Kirtchev <kirtchev@adacore.com>
547 * exp_ch5.adb (Controlled_Type): New routine.
548 (Expand_N_Extended_Return_Statement): When generating a move of the
549 final list in extended return statements, check the type of the
550 function and in the case of double expanded return statements, the type
551 of the returned object.
552 (Expand_Simple_Function_Return): Perform an interface conversion when
553 the type of the returned object is an interface and the context is an
554 extended return statement.
556 2008-08-20 Ed Schonberg <schonberg@adacore.com>
558 * sem_util.adb (Set_Debug_Info_Needed): If the entity is a private type
559 and the full view is visible, set flag on full view as well.
561 2008-08-20 Thomas Quinot <quinot@adacore.com>
563 * g-comlin.adb: Minor reformatting
564 Minor code reorganization.
566 * freeze.adb: Minor reformatting
568 2008-08-20 Vincent Celier <celier@adacore.com>
570 * prj-nmsc.adb (Check_File): An excluded Ada source file may be a
571 source of another project.
573 2008-08-20 Pascal Obry <obry@adacore.com>
575 * s-os_lib.ads: Minor reformatting.
577 2008-08-20 Arnaud Charlet <charlet@adacore.com>
579 * gnatvsn.ads: Minor reformatting.
581 2008-08-20 Arnaud Charlet <charlet@adacore.com>
583 * a-crbtgk.adb, repinfo.adb, g-traceb.ads, repinfo.ads,
584 system-linux-s390x.ads, s-fatflt.ads, s-parame-ae653.ads, g-spipat.adb,
585 g-spipat.ads, g-tasloc.adb, g-debpoo.adb, g-except.ads, g-debpoo.ads,
586 mdll-utl.adb, g-string.adb, g-soliop-solaris.ads, par-sync.adb,
587 exp_ch6.ads, a-cihama.ads, g-curexc.ads, system-linux-sh4.ads,
588 g-utf_32.adb, g-hesorg.adb, s-proinf-irix-athread.ads, s-parint.adb,
589 s-parint.ads, exp_ch7.ads, system-linux-alpha.ads, g-dirope.adb,
590 sinfo-cn.adb, par-labl.adb, a-ciorse.adb, g-calend.adb,
591 s-parame-vms-alpha.ads, nlists.h, exp_imgv.adb, exp_fixd.ads,
592 g-calend.ads, gnatcmd.ads, g-table.adb, s-memory-mingw.adb,
593 g-alveop.ads, g-memdum.ads, g-altive.ads, initialize.c, g-regpat.adb,
594 g-busorg.ads, g-regpat.ads, g-encstr.ads, g-regexp.adb, g-regexp.ads,
595 live.ads, g-dyntab.adb, prj-nmsc.ads, par-ch12.adb, 9drpc.adb,
596 g-alvevi.ads, s-memory.adb, math_lib.adb, s-parame.ads, s-memory.ads,
597 s-regexp.adb, a-exexda.adb, i-cstrea-vms.adb, a-exexpr.adb,
598 g-soliop-mingw.ads, s-imgrea.adb, namet.adb, system-vms.ads,
599 s-inmaop-dummy.adb, s-finroo.ads, a-ngcefu.adb, s-hibaen.ads,
600 g-soliop.ads, s-auxdec.adb, g-locfil.ads, gnatxref.adb, memroot.adb,
601 osint-b.ads, memroot.ads, s-parame-hpux.ads, errutil.adb,
602 system-linux-s390.ads, par-util.adb, osint-c.ads, exp_pakd.ads,
603 i-pacdec.ads, par-endh.adb, mlib-tgt.ads, prj-strt.ads,
604 s-osprim-vms.adb, s-proinf.ads, output.ads, g-moreex.ads,
605 a-finali.ads, s-fatlfl.ads, namet.h, mdll.ads, g-dynhta.ads,
606 s-imgenu.ads, par-tchk.adb, g-excact.ads, memtrack.adb, s-fatgen.adb,
607 a-exexpr-gcc.adb, g-arrspl.adb, par-ch4.adb, g-cgideb.adb, freeze.ads,
608 g-altcon.adb, s-fatllf.ads, gnatfind.adb, s-osinte-lynxos-3.adb,
609 a-exextr.adb, g-htable.ads, a-calfor.adb, s-imgcha.adb, argv.c,
610 a-chahan.ads, g-hesora.adb, system-vms_64.ads, par-ch5.adb, g-md5.adb,
611 lib-xref.ads, g-md5.ads, g-casuti.ads, s-fatsfl.ads, exp_dbug.ads,
612 s-htable.ads, a-ngcoar.adb, s-arit64.ads, a-ngelfu.adb, a-filico.ads,
613 par-ch6.adb, s-inmaop.ads, s-parame-vxworks.ads, s-casuti.ads,
614 a-numaux-darwin.adb, a-cohama.ads, system-linux-sparc.ads, g-os_lib.adb,
615 system-vms-ia64.ads, s-parame-vms-restrict.ads, a-clrefi.ads,
616 s-parame-vms-ia64.ads, a-strfix.adb, a-coorse.adb, a-comlin.ads,
617 a-chtgke.adb, s-imgint.adb, g-expect.ads, exp_ch4.ads, s-finimp.adb,
618 mingw32.h, g-heasor.adb, g-alleve.adb, a-ngrear.adb, s-mastop-irix.adb,
619 s-poosiz.adb, link.c: Fix copyright notice.
621 2008-08-20 Arnaud Charlet <charlet@adacore.com>
623 * g-comlin.ads: Update comments.
625 2008-08-20 Ed Schonberg <schonberg@adacore.com>
627 * sem_ch8.adb (Analyze_Subprogram_Renaming): Inherit Is_Imported flag.
629 2008-08-20 Gary Dismukes <dismukes@adacore.com>
632 (Expand_Exception_Handlers): Call Make_Exception_Handler instead of
633 Make_Implicit_Exception_Handler when rewriting an exception handler with
634 a choice parameter, and pass the handler's Sloc instead of that of the
635 handled sequence of statements. Make_Implicit_Exception_Handler sets the
636 Sloc to No_Location (unless debugging generated code), which we don't
637 want for the case of a user handler.
639 2008-08-20 Robert Dewar <dewar@adacore.com>
641 * freeze.adb (Freeze_Record_Type): Improve msg for non-contiguous field
644 (Adjust_Record_For_Reverse_Bit_Order): Messages about layout are
645 now labeled as info msgs, not warnings.
647 * tbuild.ads: Clarify documentation of Make_Implicit_Exception_Handler
649 * usage.adb: Minor change to avoid overlong line for -gnatwz/Z
651 * a-textio.adb: Remove redundant test.
653 * a-witeio.adb: Minor code reorganization
654 Remove redundant test found working on another issue
656 * a-ztexio.adb: Minor code reorganization
657 Remove redundant test found working on another issue
659 2008-08-20 Thomas Quinot <quinot@adacore.com>
661 * s-fileio.adb (Open) Use C helper function to determine whether a
662 given errno value corresponds to a "file not found" error.
664 * sysdep.c (__gnat_is_file_not_found_error): New C helper function.
666 2008-08-20 Jose Ruiz <ruiz@adacore.com>
668 * errno.c (__get_errno for MaRTE): Use the MaRTE function pthread_errno
669 to get access to the per-task errno variable.
670 (__set_errno for MaRTE): Do not redefine this function here since it is
671 already defined in MaRTE.
673 2008-08-20 Tristan Gingold <gingold@adacore.com>
675 * gnat_ugn.texi: Gcov is not supported on static library on AIX.
677 2008-08-20 Robert Dewar <dewar@adacore.com>
679 * freeze.adb: Minor reformatting
681 * g-comlin.adb: Minor reformatting
683 * g-socket.adb: Minor reformatting
685 * g-socthi-mingw.adb: Minor reformatting
687 * g-stheme.adb: Minor reformatting
689 2008-08-20 Ed Schonberg <schonberg@adacore.com>
691 * sem_aggr.adb, sem_type.adb, exp_ch9.ads, einfo.ads,
692 exp_ch6.adb, exp_aggr.adb (Valid_Ancestor): Resolve
693 confusion between partial and full views of an ancestor of the context
694 type when the parent is a private extension declared in a parent unit,
695 and full views are available for the context type.
697 2008-08-18 Samuel Tardieu <sam@rfc1149.net>
698 Robert Dewar <dewar@adacore.com>
701 * bindgen.adb (Gen_Output_File_Ada): Zero-terminate the
703 Move comment in the right place.
704 * g-comver.adb (Version): Look for a zero-termination in
705 addition to a closing parenthesis.
707 2008-08-18 Samuel Tardieu <sam@rfc1149.net>
709 * exp_ch13.adb, exp_disp.adb, sem_cat.adb, sem_ch10.adb,
710 * sem_ch12.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb,
711 * sem_prag.adb, sem_util.adb, sem_warn.adb: Use
712 Is_Package_Or_Generic_Package instead of hand-crafted tests.
714 2008-08-18 Samuel Tardieu <sam@rfc1149.net>
717 * sem_ch6.adb (Check_Private_Overriding): Check for generic packages
720 2008-08-17 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
722 * adaint.c (_gnat_set_close_on_exec) [_WIN32]: Implement.
724 2008-08-16 Eric Botcazou <ebotcazou@adacore.com>
726 * gcc-interface/trans.c (call_to_gnu): Use the Sloc of the call
727 for back-copy statements in lieu of that of the actual.
729 2008-08-16 Eric Botcazou <ebotcazou@adacore.com>
732 * gcc-interface/decl.c (gnat_to_gnu_entity): Use DECL_SIZE_UNIT in the
733 setjmp test consistently. Adjust for new behavior of flag_stack_check.
734 * gcc-interface/utils2.c (build_call_alloc_dealloc): Remove redundant
735 test of flag_stack_check. Adjust for new behavior of flag_stack_check.
737 2008-08-13 Samuel Tardieu <sam@rfc1149.net>
740 * sem_util.ads, sem_util.adb (Is_Protected_Self_Reference): New.
741 * sem_attr.adb (Check_Type): The current instance of a protected
742 object is not a type name.
743 (Analyze_Access_Attribute): Accept instances of protected objects.
744 (Analyze_Attribute, Attribute_Address clause): Ditto.
745 * exp_attr.adb (Expand_N_Attribute_Reference): Rewrite
746 the prefix as being the current instance if needed.
748 2008-08-12 Danny Smith <danyssmith@users.sourceforge.net>
750 * gcc-interface/Makefile.in (EXTRA_GNATRTL_NONTASKING_OBJS) [WINDOWS]:
751 Remove duplicate s-win32.o. Add s-winext.o.
753 2008-08-12 Danny Smith <danyssmith@users.sourceforge.net>
755 * g-stsifd-sockets.adb (Create): Replace Constants.SOCK_STREAM
756 with SOSC.SOCK__STREAM.
757 * g-socthi-mingw.adb (C_Select) Replace Constants.MSG_OOB with
760 2008-08-11 Joel Sherrill <joel.sherrill@oarcorp.com>
762 * s-oscons-tmplt.c: RTEMS defines AF_INET6 but does support it.
763 * gsocket.h, socket.c: Update to support RTEMS.
764 * gcc-interface/Make-lang.in: Include CFLAGS_FOR_TARGET when cross.
766 2008-08-10 Samuel Tardieu <sam@rfc1149.net>
767 Robert Dewar <dewar@adacore.com>
769 * exp_ch4.adb (Expand_N_Op_Expon): Force evaluation of
770 left argument even when right argument is 0.
771 (Expand_N_Op_Mod): Ditto when right argument is 1.
772 (Expand_N_Op_Multiply): Ditto when any argument is 0.
773 (Expand_N_Op_Rem): Ditto when right argument is 1.
775 2008-08-09 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
777 * gcc-interface/misc.c (gnat_handle_option): Replace set_Wunused
780 2008-08-08 Ed Schonberg <schonberg@adacore.com>
782 * freeze.adb (Generate_Prim_Op_References): New procedure, abstracted
783 from Freeze_Entity. Used to generate cross-reference information for
784 types declared in generic packages.
786 2008-08-08 Thomas Quinot <quinot@adacore.com>
788 * gcc-interface/Makefile.in: Reintroduce g-soccon.ads as a
791 2008-08-08 Thomas Quinot <quinot@adacore.com>
794 On Windows, include <errno.h> and redefine only selected errno values
795 from their <winsock2.h> definitions.
797 * s-osinte-freebsd.ads: Minor reformatting
799 * s-osinte-hpux.ads, s-osinte-irix.ads: Minor reformatting
801 * g-soccon.ads: New file.
803 * g-stheme.adb, g-socthi-vms.adb, g-socthi-vxworks.adb,
804 g-socthi-mingw.adb, g-sttsne-vxworks.adb, g-socthi.adb,
805 g-stsifd-sockets.adb, g-socket.adb, g-socket.ads,
806 g-sothco.adb, g-sothco.ads: Add back GNAT.Sockets.Constants as a child
807 unit, to allow building software that depends on this internal unit
808 with both older and newer compilers.
810 2008-08-08 Robert Dewar <dewar@adacore.com>
812 * s-strxdr.adb: Minor reformatting
814 2008-08-08 Bob Duff <duff@adacore.com>
816 * gnat_ugn.texi: The "Run-Time Checks" section said "arithmetic overflow
817 checking for integer operations (including division by zero)", which
818 is wrong -- divide by zero is not part of overflow checking.
819 Also added misc clarification about what check-suppression means.
821 * gnat_rm.texi: Clarify the meaning of pragma Suppress.
823 2008-08-08 Jerome Lambourg <lambourg@adacore.com>
825 * g-comlin.adb (Add_Switch): Handle addition of switches at the
826 begining of the command line.
827 (Append, Add): Renaming of Append to Add as this now allows addition
828 at the begining of the list.
830 * g-comlin.ads (Add_Switch): Handle addition of switches at the
831 begining of the command line.
833 2008-08-08 Thomas Quinot <quinot@adacore.com>
836 (Name): Document application scope (only legacy PC serial ports on
839 2008-08-08 Thomas Quinot <quinot@adacore.com>
841 * gcc-interface/Makefile.in, gcc-interface/Make-lang.in: Revert
842 previous change, not needed after all.
844 2008-08-08 Ed Schonberg <schonberg@adacore.com>
846 * exp_ch4.adb (Expand_Allocator_Expression): add check if null
847 exclusion indicator is present
849 2008-08-08 Robert Dewar <dewar@adacore.com>
851 * g-comlin.adb: Minor code reorganization
854 * g-comlin.ads: Minor reformatting
856 * s-fileio.adb: Minor reformatting
858 * sem_attr.adb: Minor code reorganization (use Nkind_In)
861 2008-08-06 Samuel Tardieu <sam@rfc1149.net>
863 * gcc-interface/Make-lang.in: Use GCC_FOR_TARGET when dealing
864 with s-oscons-tmplt.i.
866 2008-08-06 Samuel Tardieu <sam@rfc1149.net>
868 * gcc-interface/Make-lang.in (OSCONS_CPPFLAGS): Remove.
870 2008-08-06 Ed Schonberg <schonberg@adacore.com>
872 * sem_ch3.adb (Analyze_Component_Declaration): Protect against misuse
875 * sem_ch8.adb (Analyze_Object_Renaming): Diagnose properly a renaming
876 of a formal parameter of an incomplete type. Improve error message for
877 other improper uses of incomplete types.
879 2008-08-06 Robert Dewar <dewar@adacore.com>
881 * gnat_ugn.texi: Clarify -gnato documentation
883 2008-08-06 Thomas Quinot <quinot@adacore.com>
885 * gcc-interface/Makefile.in,
886 g-socthi-vxworks.adb, g-socthi-mingw.adb, g-sttsne-vxworks.adb,
887 g-socthi.adb, g-socket.adb, g-socket.ads, g-sothco.ads,
888 g-soccon-linux-x86.ads, g-soccon-vxworks.ads, g-soccon-mingw.ads,
889 g-soccon-hpux-ia64.ads, g-soccon-irix.ads, g-soccon-linux-64.ads,
890 g-soccon-aix.ads, g-soccon-solaris.ads, g-soccon-lynxos.ads,
891 g-soccon-vms.ads, g-soccon.ads, g-soccon-freebsd.ads,
892 g-soccon-linux-ppc.ads, g-soccon-tru64.ads, g-soccon-hpux.ads,
893 g-soccon-solaris-64.ads, gen-oscons.c, g-soccon-darwin.ads,
894 g-soccon-mingw-64.ads, g-soccon-linux-mips.ads, g-soccon-rtems.ads:
895 Remove GNAT.Sockets.Constants. This internal package is replaced by
898 2008-08-06 Thomas Quinot <quinot@adacore.com>
900 * gcc-interface/Makefile.in, gcc-interface/Make-lang.in:
901 Remove obsolete targets referencing gen-soccon
902 When generating s-oscons.ads, use a file name that includes the
903 THREAD_KIND, to ensure that the (potentially different) version from a
904 previous build with a different threads flavour does not get reused.
906 2008-08-06 Thomas Quinot <quinot@adacore.com>
908 * sem_res.adb: Minor reformatting
910 * s-fileio.adb (Open): When file open operation fails, raise Name_Error
911 only when the operating system reports a non-existing file or directory
912 (ENOENT), otherwise raise Name_Error.
914 * exp_ch11.adb: Minor reformatting
916 2008-08-06 Ed Schonberg <schonberg@adacore.com>
918 * sem_ch3.adb (Access_Subprogram_Declaration): If the return type is
919 incomplete, add the access_to_subprogram type to the list of private
920 dependents only if the incomplete type will be completed in the current
922 (Build_Discriminant_Constraints): If the type of the discriminant is
923 access_to_variable, reject a constraint that is access_to_constant.
925 2008-08-06 Thomas Quinot <quinot@adacore.com>
927 * g-socket-dummy.adb, g-socket-dummy.ads, g-sothco-dummy.adb,
928 g-sothco-dummy.ads, g-socthi-dummy.adb, g-socthi-dummy.ads,
929 g-sttsne-dummy.ads: New files.
931 * gcc-interface/Makefile.in, Makefile.rtl: Use placeholder sources
932 with pragma Unimplemented_Unit for sockets packages on Nucleus.
934 2008-08-06 Pascal Obry <obry@adacore.com>
936 * adaint.c: Another fix for ACL support on Windows.
938 2008-08-06 Javier Miranda <miranda@adacore.com>
940 * exp_disp (Expand_Interface_Actuals): Adds missing support for
941 expansion of calls to subprograms using selected components.
943 2008-08-06 Ed Schonberg <schonberg@adacore.com>
945 * sem_res.adb (Resolve_Call): Use base type to determine whether a
946 dereference is needed because a subtype of an access_to_subprogram is
947 simply an access-subtype
949 2008-08-06 Jerome Lambourg <lambourg@adacore.com>
951 * g-comlin.adb (Set_Command_Line): Now that aliases can contain
952 parameters, always specify the expected separator.
954 2008-08-06 Thomas Quinot <quinot@adacore.com>
956 * xnmake.adb: Use new XUtil package for platform independent text
959 2008-08-06 Vincent Celier <celier@adacore.com>
961 * gnat_ugn.texi: Document compiler switch -gnateG
963 2008-08-06 Quentin Ochem <ochem@adacore.com>
965 * s-stausa.adb (Fill_Stack): Fixed pragma assert and top pattern mark
966 in the case of an empty pattern size.
967 (Compute_Result): Do not do any computation in the case of an empty
969 (Report_Result): Fixed computation of the overflow guard.
971 2008-08-06 Ed Schonberg <schonberg@adacore.com>
973 * g-awk.adb (Finalize): Do not use directly objects of the type in the
974 finalization routine to prevent elaboration order anomalies in new
977 2008-08-06 Ed Schonberg <schonberg@adacore.com>
979 * sem_ch3.adb (Find_Type_Name): protect against duplicate incomplete
980 declaration for the same type.
982 2008-08-06 Thomas Quinot <quinot@adacore.com>
984 * sem.adb: Minor rewording (comment)
986 2008-08-06 Jerome Lambourg <lambourg@adacore.com>
988 * g-comlin.adb (Define_Switch, Get_Switches): New.
989 (Can_Have_Parameter, Require_Parameter, Actual_Switch): New, used when
991 (For_Each_Simple_Switch): Allow more control over parameters handling.
992 This generic method now allows ungrouping of switches with parameters
993 and switches with more than one letter after the prefix.
994 (Set_Command_Line): Take care of switches that are prefixed with a
995 switch handling parameters without delimiter (-gnatya and -gnaty3 for
997 (Add_Switch, Remove_Switch): Handle parameters possibly present inside
998 a group, as in gnaty3aM80 (3 and 80 are parameters). Report status of
1000 (Start, Alias_Switches, Group_Switches): Take care of parameters
1001 possibly present inside a group.
1003 * g-comlin.ads (Define_Switch): New method used to define a list of
1004 expected switches, that are necessary for correctly ungrouping switches
1005 with more that one character after the prefix.
1006 (Get_Switches): Method that builds a getopt string from the list of
1007 switches as set previously by Define_Switch.
1008 (Add_Switch, Remove_Switch): New versions of the methods, reporting the
1009 status of the operation. Also allow the removal of switches with
1011 (Command_Line_Configuration_Record): Maintain a list of expected
1014 2008-08-06 Doug Rupp <rupp@adacore.com>
1016 * gcc-interface/decl.c (gnat_to_gnu_param): Force 32bit descriptor if
1017 TARGET_MALLOC64 clear.
1019 * gcc-interface/utils2.c (build_call_alloc_dealloc): Force 32bit malloc
1020 if TARGET_MALLOC64 clear.
1022 * gcc-interface/gigi.h (TARGET_ABI_OPEN_VMS): Move here from utils2.c
1023 (TARGET_MALLC64): New macro. Default to clear.
1025 2008-08-06 Doug Rupp <rupp@adacore.com>
1027 * gcc-interface/utils2.c (snames.h) Include
1028 (TARGET_ABI_OPEN_VMS): Initialize.
1029 (build_call_alloc_dealloc); [TARGET_ABI_OPEN_VMS] Allocate on 32bit heap
1032 2008-08-06 Ed Schonberg <schonberg@adacore.com>
1034 * sem_ch3.adb (Process_Discriminants): diagnose redundant or improper
1035 null exclusion in a discriminant declaration
1037 * sem_ch8.adb (Analyze_Object_Renaming): diagnose null exclusion
1038 indicators when type is not an access type.
1040 * sem_ch12.adb (Formal_Object_Declaration): diagnose null exclusion
1041 indicators when type is not an access type.
1043 2008-08-06 Javier Miranda <miranda@adacore.com>
1045 * exp_disp (Expand_Interface_Conversion): Freeze the entity associated
1046 with the target interface before expanding the code of the interface
1049 2008-08-05 Ed Schonberg <schonberg@adacore.com>
1052 (Freeze_Entity): A deferred constant does not violate the restriction
1053 No_Default_Initialization,
1055 * sem_ch3.adb (Process_Subtype): An allocator is a valid construct that
1056 can carry a null exclusion indicator, and on which an error may be
1057 posted if the indicator is redundant.
1059 * sem_ch8.adb (Analyze_Object_Renaming): Verify that a null exclusion
1060 does not apply to a subtype mark that already excludes null.
1062 * sem_ch12.adb (Formal_Object_Declaration): Verify that a null
1063 exclusion does not apply to a subtype mark that already excludes null.
1065 2008-08-05 Thomas Quinot <quinot@adacore.com>
1067 * Makefile.rtl: Compile s-oscons.ads as part of the runtime library.
1069 2008-08-05 Doug Rupp <rupp@adacore.com>
1071 * vms_data.ads: Translation for /POINTER_SIZE qualifier.
1073 2008-08-05 Thomas Quinot <quinot@adacore.com>
1075 * gsocket.h: Make this file includable in a Nucleus environment, which
1076 does not support sockets.
1078 * socket.c: Remove Nucleus-specific hack.
1080 2008-08-05 Pascal Obry <obry@adacore.com>
1082 * adaint.c: Remove support for readable attribute on vxworks and nucleus
1084 2008-08-05 Ed Schonberg <schonberg@adacore.com>
1087 (Analyze_Attribute, case 'Result): handle properly the case where some
1088 operand of the expression in a post-condition generates a transient
1091 * sem_ch5.adb (Analyze_Assignment_Statement): Apply conversion to
1092 right-hand side when it is an anonymous access_to_subprogram, to force
1093 static accessibility check when needed.
1095 2008-08-05 Sergey Rybin <rybin@adacore.com>
1097 * gnat_ugn.texi: Changing the description of the gnatcheck metrics
1098 rule according to the change in the rule option.
1099 Add documentation for -gnatw.b/-gnatw.B
1101 2008-08-05 Robert Dewar <dewar@adacore.com>
1103 * ug_words: Add entries for -gnatw.b/-gnatw.B
1105 * vms_data.ads: Add entries for -gnatw.b/-gnatw.B
1107 2008-08-05 Vincent Celier <celier@adacore.com>
1109 * a-wtdeio.adb (Put (Current_Output)): Use Fore in the call to Put
1112 * a-ztdeio.adb: Ditto.
1114 2008-08-05 Pascal Obry <obry@adacore.com>
1116 * adaint.c, adaint.h, s-os_lib.adb, s-os_lib.ads: Add support for the
1119 2008-08-05 Vincent Celier <celier@adacore.com>
1122 (Wide_String_To_String): Returns a String with the same 'First as its
1124 (Wide_Wide_String_To_String): Ditto
1127 (Wide_String_To_String): Document that the lowest index of the returned
1128 String is equal to S'First.
1130 2008-08-05 Thomas Quinot <quinot@adacore.com>
1132 * xoscons.adb, xutil.ads, xutil.adb, s-oscons-tmplt.c: New files.
1134 * gcc-interface/Makefile.in, gcc-interface/Make-lang.in: Generate
1137 2008-08-05 Robert Dewar <dewar@adacore.com>
1139 * opt.ads (Warn_On_Biased_Representation): New flag
1142 (Analyze_Attribute_Definition_Clause): Issue warning when biased
1143 representation is required.
1144 (Minimum_Size): Don't allow biasing if enum rep clause case
1147 (Set_Dot_Warning_Switch): Add handling of -gnatw.b/B switches
1148 (Set_Warning_Switch): Include -gnatw.b in -gnatwa, -gnatw.B in gnatws
1150 * usage.adb: Add lines for -gnatw.b/B switches
1152 2008-08-05 Pascal Obry <obry@adacore.com>
1154 * a-coinve.adb: Reorder the code to avoid uninitialized warning.
1156 * adaint.c: In UNIX cases do not call __gnat_stat but stat directly.
1158 2008-08-05 Thomas Quinot <quinot@adacore.com>
1160 * socket.c: Minor reformatting.
1162 2008-08-05 Robert Dewar <dewar@adacore.com>
1164 * sem_ch3.adb: Minor reformatting
1166 * prj-nmsc.adb: Minor reformatting
1168 2008-08-05 Ed Schonberg <schonberg@adacore.com>
1170 * sem_ch12.adb (Validate_Array_Type_Instance): Only apply complex
1171 visibility check on the component type if the simple test fails.
1173 2008-08-05 Jose Ruiz <ruiz@adacore.com>
1175 * init.c (__gnat_install_handler for linux): If we are building the
1176 Xenomai run time then we need to do two additional things: avoid
1177 memory swapping and transform the Linux environment task into a native
1180 * gcc-interface/Makefile.in (LIBGNAT_TARGET_PAIRS for xenomai run
1181 time): Use interface to Xenomai native skin and avoid linux-specific
1182 way of setting CPU affinity.
1183 (EH_MECHANISM for the xenomai run time): Use sjlj exception mechanism.
1185 2008-08-05 Bob Duff <duff@adacore.com>
1187 * checks.ads: Minor comment fix
1189 2008-08-05 Thomas Quinot <quinot@adacore.com>
1191 * g-sercom.adb, g-sercom.ads, g-sercom-mingw.adb,
1192 g-sercom-linux.adb (Data_Bits): Change literals B7 and B8 to CS7 and
1195 2008-08-05 Robert Dewar <dewar@adacore.com>
1197 * mlib.adb: Minor code reorganization
1200 * make.adb: Minor reformatting
1202 * prj-attr.ads: Minor reformatting
1204 * s-os_lib.adb: Minor reformatting
1206 * s-fileio.adb: Minor code reorganization
1209 * prj.ads: Minor reformatting
1211 2008-08-05 Bob Duff <duff@adacore.com>
1213 * sem_ch3.adb (Analyze_Object_Declaration): Avoid type Any_Access in
1214 unresolved initial value of "null", because it causes implicitly
1215 generated "=" operators to be ambiguous, and because this type should
1216 not be passed to gigi.
1218 2008-08-05 Vincent Celier <celier@adacore.com>
1220 * mlib.adb: Update comments.
1222 * make.adb (Switches_Of): Check for Switches (others), before checking
1223 for Default_Switches ("Ada").
1224 (Gnatmake): Use Builder'Switches (others) in preference to
1225 Builder'Default_Switches ("Ada") if there are several mains.
1228 (Add_Attribute): Add component Others_Allowed in Attribute_Record
1232 Add markers to indicates that attributes Switches allow others as index
1233 (Others_Allowed_For): New Boolean function, returning True for
1234 attributes with the mark.
1235 (Initialize): Recognize optional letter 'O' as the marker for
1236 associative array attributes where others is allowed as the index.
1239 (Others_Allowed_For): New Boolean function
1240 (Attribute_Record): New Boolean component Others_Allowed
1243 (Parse_Attribute_Declaration): For associative array attribute where
1244 others is allowed as the index, allow others as an index.
1247 (Process_Binder): Skip associative array attributes with index others
1248 (Process_Compiler): Ditto
1251 (Value_Of (Index, In_Array)): Make no attempt to put in lower case when
1252 index is All_Other_Names.
1255 (All_Other_Names): New constant
1258 (Process_Declarative_Items): Skip associative array attribute when index
1259 is reserved word "others".
1261 2008-08-05 Vasiliy Fofanov <fofanov@adacore.com>
1263 * gen-oscons.c: Adapt for VMS where termios.h is not available.
1265 2008-08-05 Thomas Quinot <quinot@adacore.com>
1267 * a-rttiev.adb: Minor reformatting (comments)
1269 * gen-soccon.c: Rename to gen-oscons.c
1271 * gen-oscons.c: New file. Now generate System.OS_Constants instead of
1272 GNAT.Sockets.Constants.
1273 Add new constants for GNAT.Serial_Communications and System.File_IO.
1275 2008-08-05 Javier Miranda <miranda@adacore.com>
1277 * sem_util.adb (Collect_Interfaces_Info): Minor reformating.
1278 * exp_ch3.adb (Build_Offset_To_Top_Functions): Code cleanup: the
1279 implementation of this routine has been simplified.
1281 2008-08-05 Pascal Obry <obry@adacore.com>
1283 * adaint.c, adaint.h, s-os_lib.adb, s-os_lib.ads: Fix the
1284 Set_Read_Only Win32 implementation.
1286 2008-08-05 Thomas Quinot <quinot@adacore.com>
1288 * exp_strm.adb: Minor reformatting (comments)
1290 * sem_ch12.adb: Minor reformatting.
1292 2008-08-05 Robert Dewar <dewar@adacore.com>
1294 * sem_ch3.adb: Minor reformatting
1296 * checks.adb: Minor reformatting
1298 2008-08-05 Thomas Quinot <quinot@adacore.com>
1300 * tbuild.ads (New_External_Name): Update spec to reflect relaxed
1301 restriction on Prefix.
1303 2008-08-05 Jerome Lambourg <lambourg@adacore.com>
1305 * g-comlin.adb (Sort_Sections, Group_Switches): New/Modified internal
1306 methods needed to handle switch sections when building a command line.
1307 (Define_Section, Add_Switch, Remove_Switch, Is_New_Section,
1308 Current_Section): New public methods or methods modified to handle
1309 building command lines with sections.
1310 (Set_Command_Line): Take into account sections when analysing a switch
1312 (Start): Sort the switches by sections before iterating the command line
1315 * g-comlin.ads (Define_Section, Add_Switch, Remove_Switch,
1316 Is_New_Section, Current_Section): New methods or methods modified to
1317 handle building command lines with sections.
1319 2008-08-05 Ed Schonberg <schonberg@adacore.com>
1321 * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): For access
1322 discriminants, indicate that the corresponding object declaration has
1323 no initialization, to prevent spurious warnings when the access type is
1326 2008-08-05 Ed Schonberg <schonberg@adacore.com>
1328 * sem_res.adb (Resolve_Call): If this is a call to the predefined
1329 Abort_Task, warn if the call appears within a protected operation.
1331 2008-08-04 Robert Dewar <dewar@adacore.com>
1333 * exp_ch4.adb (Expand_N_In): Suppress range warnings in instances
1335 2008-08-04 Ed Schonberg <schonberg@adacore.com>
1338 (Replace_Anonymous_Access_To_Protected_Subprogram): Handle properly an
1339 anonymous access to protected subprogram that is the return type of the
1340 specification of a subprogram body.
1343 (Analyze_Subprogram_Body): if the return type is an anonymous access to
1344 subprogram, freeze it now to prevent access anomalies in the back-end.
1346 * exp_ch9.adb: Minor code cleanup.
1347 Make sure that new declarations are inserted into the tree before
1348 analysis (from code reading).
1350 2008-08-04 Robert Dewar <dewar@adacore.com>
1353 (Expand_Simple_Function_Return): Check No_Secondary_Stack restriction
1356 2008-08-04 Thomas Quinot <quinot@adacore.com>
1358 * sem_type.adb, sem_ch4.adb, sprint.adb, exp_ch3.adb: Minor reformatting
1360 2008-08-04 Vasiliy Fofanov <fofanov@adacore.com>
1362 * g-soccon-mingw.ads: Fix value for MSG_WAITALL
1364 2008-08-04 Javier Miranda <miranda@adacore.com>
1366 * sem_prag.adb (Process_Convention): Add missing support for
1367 N_Private_Extension_Declaration nodes.
1369 2008-08-04 Robert Dewar <dewar@adacore.com>
1371 * exp_ch4.adb: Minor reformatting
1373 2008-08-04 Pascal Obry <obry@adacore.com>
1375 * adaint.h: Add missing prototype.
1377 * adaint.c: Refine support for Windows file attributes.
1379 2008-08-04 Robert Dewar <dewar@adacore.com>
1382 (Valid_Conversion): Catch case of designated types having different
1383 sizes, even though they statically match.
1385 2008-08-04 Javier Miranda <miranda@adacore.com>
1387 * sem_eval.adb (Subtypes_Statically_Match): Remove superfluous patch
1388 added in previous patch to handle access to subprograms.
1390 2008-08-04 Robert Dewar <dewar@adacore.com>
1393 (Freeze_Entity): Only check No_Default_Initialization restriction for
1394 constructs that come from source
1396 2008-08-04 Thomas Quinot <quinot@adacore.com>
1398 * exp_ch6.adb: Minor comment fix.
1400 * sem_ch4.adb: Minor reformatting.
1402 2008-08-04 Robert Dewar <dewar@adacore.com>
1404 * sem_res.adb: (Large_Storage_Type): Improve previous change.
1406 2008-08-04 Pascal Obry <obry@adacore.com>
1408 * adaint.c, s-os_lib.adb, s-os_lib.ads: Use Windows ACL to deal with
1411 2008-08-04 Javier Miranda <miranda@adacore.com>
1413 * sem_ch3.adb (Access_Subprogram_Declaration): Adding missing support
1414 for N_Formal_Object_Declaration nodes. Adding kludge required by
1415 First_Formal to provide its functionality with access to functions.
1416 (Replace_Anonymous_Access_To_Protected_Subprogram): Add missing support
1417 for anonymous access types returned by functions.
1419 * sem_ch5.adb (Analyze_Assignment): Code cleanup to avoid duplicate
1420 conversion of null-excluding access types (required only once to force
1421 the generation of the required runtime check).
1423 * sem_type.adb (Covers): minor reformating
1425 * checks.adb (Null_Exclusion_Static_Checks): Avoid reporting errors
1426 with internally generated nodes. Avoid generating the error inside init
1429 * sem_res.adb (Resolve_Membership_Test): Minor reformating.
1430 (Resolve_Null): Generate the null-excluding check in case of assignment
1431 to a null-excluding object.
1432 (Valid_Conversion): Add missing support for anonymous access to
1435 * sem_ch6.adb (Check_Return_Subtype_Indication): Add missing support for
1436 anonymous access types whose designated type is an itype. This case
1437 occurs with anonymous access to protected subprograms types.
1438 (Analyze_Return_Type): Add missing support for anonymous access to
1439 protected subprogram.
1441 * sem_eval.adb (Subtypes_Statically_Match): In case of access to
1442 subprograms addition of missing check on matching convention. Required
1443 to properly handle access to protected subprogram types.
1445 * exp_ch3 (Build_Assignment): Code cleanup removing duplicated check on
1446 null excluding access types.
1448 2008-08-04 Ed Schonberg <schonberg@adacore.com>
1450 * sem_ch12.adb: Add comments
1452 * sem_ch4.adb (Analyze_Allocator): If the designated type is a non-null
1453 access type and the allocator is not initialized, warn rather than
1456 2008-08-04 Robert Dewar <dewar@adacore.com>
1458 * exp_ch4.adb: Minor reformatting
1460 * exp_dist.adb: Minor reformatting
1462 * g-comlin.adb: Minor reformatting
1464 2008-08-04 Gary Dismukes <dismukes@adacore.com>
1466 * exp_aggr.adb (Build_Record_Aggr_Code): Perform a conversion of the
1467 target to the type of the aggregate in the case where the target object
1470 * exp_ch5.adb (Expand_Simple_Function_Return): When the function's
1471 result type is class-wide and inherently limited, and the expression
1472 has a specific type, create a return object of the specific type, for
1473 more efficient handling of returns of build-in-place aggregates (avoids
1474 conversions of the class-wide return object to the specific type on
1475 component assignments).
1477 * sem_ch6.adb (Check_Return_Subtype_Indication): Suppress the error
1478 about a type mismatch for a class-wide function with a return object
1479 having a specific type when the object declaration doesn't come from
1480 source. Such an object can result from the expansion of a simple return.
1482 2008-08-04 Vasiliy Fofanov <fofanov@adacore.com>
1484 * g-soccon-mingw-64.ads, system-mingw-x86_64.ads: New files.
1486 * gcc-interface/Makefile.in: Use 64bit-specific system files when
1487 compiling for 64bit windows.
1489 2008-08-04 Jerome Lambourg <lambourg@adacore.com>
1491 * g-comlin.adb (Group_Switches): Preserve the switch order when
1492 grouping and allow switch grouping of switches with more than one
1493 character extension (e.g. gnatw.x).
1494 (Args_From_Expanded): Remove this now obsolete method.
1496 2008-08-04 Ed Schonberg <schonberg@adacore.com>
1498 * exp_ch4.adb (Get_Allocator_Final_List): Freeze anonymous type for
1499 chain at once, to ensure that type is properly decorated for back-end,
1500 when allocator appears within a loop.
1502 2008-08-04 Kevin Pouget <pouget@adacore.com>
1504 * snames.h, snames.adb, snames.ads:
1505 Add Attr_To_Any, Attr_From_Any and Attr_TypeCode defines.
1507 * exp_dist.ads, exp_dist.adb: Add Build_From_Any_Call,
1508 Build_To_Any_Call and Build_TypeCode_Call procedures.
1510 * exp_attr.adb, sem_attr.adb: Add corresponding cases.
1512 * rtsfind.ads: Add corresponding names.
1514 * tbuild.adb: Update prefix restrictions to allow '_' character.
1516 2008-08-04 Doug Rupp <rupp@adacore.com>
1518 * gigi.h (fill_vms_descriptor): Add third parameter gnat_actual
1519 * trans.c (call_to_gnu): Call fill_vms_descriptor with new parameter.
1520 * utils2.c (fill_vms_descriptor): Add third parameter for error sloc and
1521 use it. Calculate pointer range overflow using 64bit types.
1523 2008-08-04 Ed Schonberg <schonberg@adacore.com>
1525 * sem_ch3.adb (Access_Definition): A formal object declaration is a
1526 legal context for an anonymous access to subprogram.
1528 * sem_ch4.adb (Analyze_One_Call): If the call can be interpreted as an
1529 indirect call, report success to the caller to include possible
1532 * sem_ch6.adb (Check_Return_Type_Indication): Apply proper conformance
1534 of the extended return is an anonymous access_to_subprogram type.
1537 (Resolve_Call): Insert a dereference if the type of the subprogram is an
1538 access_to_subprogram and the context requires its return type, and a
1539 dereference has not been introduced previously.
1541 2008-08-04 Arnaud Charlet <charlet@adacore.com>
1543 * usage.adb (Usage): Minor rewording of -gnatwz switch, to improve
1544 gnatcheck support in GPS.
1546 2008-08-04 Vincent Celier <celier@adacore.com>
1548 * mlib.adb (Create_Sym_Links): Create relative symbolic links when
1551 2008-08-04 Vincent Celier <celier@adacore.com>
1553 * gprep.adb (Process_One_File): Call Prep.Preprocess with a Boolean
1554 variable, but don't check the resulting value as it has no impact on
1558 (Generate_Processed_File): New Boolean flag, set to True in the compiler
1559 when switch -gnateG is used.
1562 (Preprocess): new Boolean out parameter Source_Modified. Set it to True
1563 when the source is modified by the preprocessor and there is no
1564 preprocessing errors.
1566 * prep.ads (Preprocess): new Boolean out parameter Source_Modified
1569 (Load_File): Output the result of preprocessing if the source text was
1572 * switch-c.adb (Scan_Front_End_Switches): Recognize switch -gnateG
1574 * switch-m.adb (Normalize_Compiler_Switches): Normalize switch -gnateG
1576 * ug_words: Add VMS equivalent for -gnateG
1579 Add VMS option /GENERATE_PROCESSED_SOURCE, equivalent to switch -gnateG
1581 2008-08-04 Doug Rupp <rupp@adacore.com>
1583 * gcc-interface/utils2.c:
1584 (fill_vms_descriptor): Raise CE if attempt made to pass 64bit pointer
1585 in 32bit descriptor.
1587 2008-08-04 Robert Dewar <dewar@adacore.com>
1589 * par-ch10.adb: Minor reformatting
1591 * i-cobol.adb: Minor reformatting.
1593 2008-08-04 Ed Schonberg <schonberg@adacore.com>
1595 * sem_ch3.adb (Access_Definition): Create an itype reference for an
1596 anonymous access return type of a regular function that is not a
1599 2008-08-04 Vincent Celier <celier@adacore.com>
1601 * prj-attr.adb: New Builder attribute Global_Compilation_Switches
1603 * snames.adb: New standard name Global_Compilation_Switches
1605 * snames.ads: New standard name Global_Compilation_Switches
1607 * make.adb: Correct spelling error in comment
1609 2008-08-04 Arnaud Charlet <charlet@adacore.com>
1611 * sem_prag.adb (Check_Form_Of_Interface_Name): Fix handling for CLI
1614 2008-08-04 Thomas Quinot <quinot@adacore.com>
1616 * sem_ch10.adb: Minor comment fix.
1618 2008-08-04 Robert Dewar <dewar@adacore.com>
1620 * restrict.adb: Improved messages for restriction warnings
1622 * restrict.ads: Improved messages for restriction messages
1624 * s-rident.ads (Profile_Name): Add No_Profile
1626 2008-08-04 Robert Dewar <dewar@adacore.com>
1628 * system-darwin-x86.ads: Correct bad definition of Max_Nonbinary_Modulus
1630 2008-08-04 Robert Dewar <dewar@adacore.com>
1632 * freeze.adb (Freeze_Entity): Check for size clause for boolean warning
1634 2008-08-04 Vincent Celier <celier@adacore.com>
1637 (Copy_Package_Declarations): When inheriting package Naming from a
1638 project being extended, do not inherit source exception names.
1640 2008-08-04 Ed Schonberg <schonberg@adacore.com>
1642 * sem_prag.adb (Check_Precondition_Postcondition): When scanning the
1643 list of declaration to find previous subprogram, do not go to the
1644 original node of a generic unit.
1646 2008-08-02 Eric Botcazou <ebotcazou@adacore.com>
1648 * gcc-interface/utils2.c (build_binary_op) <PLUS_EXPR, MINUS_EXPR>:
1649 New case. Convert BOOLEAN_TYPE operation to the default integer type.
1651 2008-08-01 Eric Botcazou <ebotcazou@adacore.com>
1653 * gcc-interface/ada-tree.h (DECL_PARM_ALT): Now DECL_PARM_ALT_TYPE.
1654 * gcc-interface/decl.c (gnat_to_gnu_param): Fix formatting, simplify
1655 and adjust for above renaming.
1656 * gcc-interface/utils.c (convert_vms_descriptor): Likewise. Add new
1657 gnu_expr_alt_type parameter. Convert the expression to it instead
1658 of changing its type in place.
1659 (build_function_stub): Adjust call to above function.
1661 2008-08-01 Eric Botcazou <ebotcazou@adacore.com>
1663 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Constant>: Remove dead
1664 code. Do not get full definition of deferred constants with address
1665 clause for a use. Do not ignore deferred constant definitions with
1666 address clause. Ignore constant definitions already marked with the
1668 <object>: Remove obsolete comment. For a deferred constant with
1669 address clause, get the initializer from the full view.
1670 * gcc-interface/trans.c (gnat_to_gnu) <N_Attribute_Definition_Clause>:
1671 Rework and remove obsolete comment.
1672 <N_Object_Declaration>: For a deferred constant with address clause,
1673 mark the full view with the error node.
1674 * gcc-interface/utils.c (convert_to_fat_pointer): Rework and fix
1677 2008-08-01 Hristian Kirtchev <kirtchev@adacore.com>
1679 * rtsfind.ads: Add block IO versions of stream routines for Strings.
1681 * bindgen.adb, gnat_rm.texi, gnat_ugn.texi, opt.ads,
1682 sem_prag.adb, snames.adb, snames.ads, snames.h,
1683 par-prag.adb: Undo previous stream related changes.
1685 * s-rident.ads: Add new restriction No_Stream_Optimizations.
1687 * s-ststop.ads, s-ststop.adb: Comment reformatting.
1688 Define enumeration type to designate different IO mechanisms.
1689 Enchance generic package Stream_Ops_Internal to include an
1690 implementation of Input and Output.
1692 * exp_attr.adb (Find_Stream_Subprogram): If restriction
1693 No_Stream_Optimization is active, choose the default byte IO
1694 implementations of stream attributes for Strings.
1695 Otherwise use the corresponding block IO version.
1697 2008-08-01 Olivier Hainque <hainque@adacore.com>
1699 * gcc-interface/decl.c (gnat_to_gnu_entity) <case E_Function>: Do not
1700 turn Ada Pure into GCC const, now implicitely implying nothrow as well.
1702 2008-08-01 Robert Dewar <dewar@adacore.com>
1704 * par-ch3.adb (P_Defining_Identifier): Avoid repeated attempt to
1705 convert plain identifier into defining identifier.
1707 2008-08-01 Robert Dewar <dewar@adacore.com>
1709 * sem_prag.adb (Check_Form_Of_Interface_Name): Refine and improve
1712 * lib-xref.adb: Add error defense.
1714 2008-08-01 Bob Duff <duff@adacore.com>
1716 * ioexcept.ads, sequenio.ads, directio.ads: Correct comment.
1718 2008-08-01 Gary Dismukes <dismukes@adacore.com>
1720 * exp_ch6.adb (Expand_Call): Adjustment to previous fix for passing
1721 correct accessibility levels. In the "when others" case, retrieve the
1722 access level of the Etype of Prev rather than Prev_Orig, because the
1723 original exression has not always been analyzed.
1725 2008-08-01 Robert Dewar <dewar@adacore.com>
1727 * prj-nmsc.adb: Minor reformatting
1729 * sem_ch4.adb: Minor reformatting
1730 Minor code reorganization
1732 * prj.ads: Minor reformatting
1734 * s-os_lib.adb: Minor reformatting
1736 * par-prag.adb (Prag, case Wide_Character_Encoding): Deal with upper
1739 * scans.ads: Minor reformatting.
1741 * sem_prag.adb (Analyze_Pragma): Put entries in alpha order
1742 (Analyze_Pragma): Make sure all GNAT pragmas call GNAT_Pragma
1745 (Resolve_Call): Check violation of No_Specific_Termination_Handlers
1747 * sem_ch12.adb: Minor comment reformatting
1749 * par-ch3.adb (P_Type_Declaration): Properly handle missing type
1752 2008-08-01 Robert Dewar <dewar@adacore.com>
1754 * sem_ch6.adb (Process_PPCs): Don't copy spec PPC to body if not
1757 2008-08-01 Ed Schonberg <schonberg@adacore.com>
1759 * checks.adb (Apply_Float_Conversion_Check): If the expression to be
1760 converted is a real literal and the target type has static bounds,
1761 perform the conversion exactly to prevent floating-point anomalies on
1764 2008-08-01 Vincent Celier <celier@adacore.com>
1766 * prj-attr.adb: New attribute Compiler'Name_Syntax (<lang>)
1768 * prj-nmsc.adb (Process_Compiler): Recognize attribute Name_Syntax
1770 * prj.adb (Object_Exist_For): Use Object_Generated, not
1771 Objects_Generated that is removed and was never modified anyway.
1774 (Path_Syntax_Kind): New enumeration type
1775 (Language_Config): New component Path_Syntax, defaulted to Host.
1776 Components PIC_Option and Objects_Generated removed, as they are not
1779 * snames.adb: New standard name Path_Syntax
1781 * snames.ads: New standard name Path_Syntax
1783 2008-08-01 Vincent Celier <celier@adacore.com>
1786 (Adalib_Path): New variable to store the path of the adalib directory
1787 when procedure Specify_Adalib_Dir is called.
1788 (Lib_Directory): If Adalib_Path is not null, return its value
1789 (Specify_Adalib_Dir): New procedure
1791 * mlib-utl.ads (Specify_Adalib_Dir): New procedure
1793 2008-08-01 Ed Schonberg <schonberg@adacore.com>
1796 (Check_Precondition_Postcondition): If not generating code, analyze the
1797 expression in a postcondition that appears in a subprogram body, so that
1798 it is properly decorated for ASIS use.
1800 2008-08-01 Gary Dismukes <dismukes@adacore.com>
1802 * exp_ch6.adb (Expand_Call): Remove ugly special-case code that resets
1803 Orig_Prev to Prev in the case where the actual is N_Function_Call or
1804 N_Identifier. This was interfering with other cases that are rewritten
1805 as N_Identifier, such as allocators, resulting in passing of the wrong
1806 accessibility level, and based on testing this code is apparently no
1807 longer needed at all.
1809 2008-08-01 Ed Schonberg <schonberg@adacore.com>
1811 * sem_ch4.adb (Analyze_One_Call): Handle complex overloading of a
1812 procedure call whose prefix
1813 is a parameterless function call that returns an access_to_procedure.
1815 2008-08-01 Jose Ruiz <ruiz@adacore.com>
1817 * adaint.c (__gnat_tmp_name): Refine the generation of temporary names
1818 for RTX. Adding a suffix that is incremented at each iteration.
1820 2008-08-01 Robert Dewar <dewar@adacore.com>
1822 * sem_ch6.adb (Analyze_Subprogram_Body): Remove special casing of
1825 2008-08-01 Jerome Lambourg <lambourg@adacore.com>
1827 * s-os_lib.adb (Normalize_Pathname): Take care of double-quotes in
1828 paths, which are authorized by Windows but can lead to errors when used
1831 2008-08-01 Ed Schonberg <schonberg@adacore.com>
1833 * sem_ch12.ads (Need_Subprogram_Instance_Body): new function, to create
1834 a pending instantiation for the body of a subprogram that is to be
1838 (Analyze_Subprogram_Instantiation): use Need_Subprogram_Instance_Body.
1840 * sem_prag.adb (Make_Inline): If the pragma applies to an instance,
1841 create a pending instance for its body, so that calls to the subprogram
1842 can be inlined by the back-end.
1844 2008-08-01 Jose Ruiz <ruiz@adacore.com>
1846 * gnat_ugn.texi: Document the RTX run times (rts-rtx-rtss and
1849 2008-08-01 Robert Dewar <dewar@adacore.com>
1851 * scng.adb (Error_Illegal_Wide_Character): Bump scan pointer
1853 2008-08-01 Doug Rupp <rupp@adacore.com>
1855 * gnat_rm.texi: Document new mechanism Short_Descriptor.
1857 * types.ads (Mechanism_Type): Modify range for new Short_Descriptor
1860 * sem_prag.adb (Set_Mechanism_Value): Enhance for Short_Descriptor
1861 mechanism and Short_Descriptor mechanism values.
1863 * snames.adb (preset_names): Add short_descriptor entry.
1865 * snames.ads: Add Name_Short_Descriptor.
1867 * types.h: Add new By_Short_Descriptor mechanism values.
1869 * sem_mech.adb (Set_Mechanism_Value): Enhance for Short_Descriptor
1870 mechanism and Short_Descriptor mechanism values.
1872 * sem_mech.ads (Mechanism_Type): Add new By_Short_Descriptor mechanism
1874 (Descriptor_Codes): Modify range for new mechanism values.
1876 * treepr.adb (Print_Entity_Enfo): Handle new By_Short_Descriptor
1879 * gcc-interface/decl.c (gnat_to_gnu_entity): Handle By_Short_Descriptor.
1880 (gnat_to_gnu_param): Handle By_Short_Descriptor.
1882 * gcc-interface/gigi.h (build_vms_descriptor64): Remove prototype.
1883 (build_vms_descriptor32): New prototype.
1884 (fill_vms_descriptor): Remove unneeded gnat_actual parameter.
1886 * gcc-interface/trans.c (call_to_gnu): Removed unneeded gnat_actual
1887 argument in call fill_vms_descriptor.
1889 * gcc-interface/utils.c (build_vms_descriptor32): Renamed from
1890 build_vms_descriptor and enhanced to hande Short_Descriptor mechanism.
1891 (build_vms_descriptor): Renamed from build_vms_descriptor64.
1892 (convert_vms_descriptor32): New function.
1893 (convert_vms_descriptor64): New function.
1894 (convert_vms_descriptor): Rewrite to handle both 32bit and 64bit
1897 * gcc-interface/utils2.c (fill_vms_descriptor): Revert previous changes,
1900 2008-08-01 Jose Ruiz <ruiz@adacore.com>
1902 * adaint.c (__gnat_tmp_name): RTSS applications do not support tempnam
1903 nor tmpnam, so we always use c:\WINDOWS\Temp\gnat-XXXXXX as temporary
1906 2008-08-01 Jose Ruiz <ruiz@adacore.com>
1908 * cstreams.c (__gnat_full_name): RTSS applications cannot ask for the
1909 current directory so only fully qualified names are allowed.
1911 2008-08-01 Robert Dewar <dewar@adacore.com>
1914 Minor editing, remove uncomfortable use of semicolon
1916 * s-ststop.adb: Add some ??? comments
1918 * sem_ch10.adb: Minor reformatting
1921 Minor comment fixes, some pragmas were not properly
1922 categorized in the comments, documentation change only
1924 * xref_lib.adb: Minor reformatting
1926 * sinput.adb: Minor reformatting
1928 * gnatchop.adb: Minor reformatting
1930 * sem_util.ads: Minor reformatting.
1932 * opt.ads: Minor documentation fix
1934 * scng.adb: Minor reformatting
1936 * prj-part.adb: Update comments
1938 2008-08-01 Ed Schonberg <schonberg@adacore.com>
1940 * exp_disp.adb (Expand_Interface_Conversion): If the target type is a
1941 tagged synchronized type, use corresponding record type.
1943 2008-08-01 Doug Rupp <rupp@adacore.com>
1945 * mlib-tgt-specific-vms-alpha.adb (Build_Dynamic_Library): Output a
1946 dummy transfer address for debugging.
1948 * mlib-tgt-specific-vms-ia64.adb (Build_Dynamic_Library): Likewise.
1950 * vms_data.ads: vms_data.ads: New qualfier /MACHINE_CODE_LISTING
1952 2008-07-31 Eric Botcazou <ebotcazou@adacore.com>
1954 * gcc-interface/decl.c (gnat_to_gnu_entity): Fix formatting.
1955 * gcc-interface/utils.c (create_field_decl): Avoid superfluous work.
1957 2008-07-31 Pascal Obry <obry@adacore.com>
1959 * prj-nmsc.adb: Keep Object and Exec directory casing.
1961 2008-07-31 Jose Ruiz <ruiz@adacore.com>
1963 * system-rtx-rtss.ads
1964 Change the default stack size. It is important to set the commit part.
1967 (Initialize): Get the clock resolution.
1968 (RT_Resolution): Return the clock resolution that is indicated by the
1971 * s-parame-vxworks.adb
1972 Document that this body is used for RTX in RTSS (kernel) mode.
1974 * gcc-interface/Makefile.in
1975 (LIBGNAT_TARGET_PAIRS for the rtx_rtss run time): Use the
1976 s-parame-vxworks.adb body in order to have reasonable stack sizes in
1977 RTX RTSS kernel mode. Virtual memory is not used in that case, so we
1978 cannot ask for too big values.
1980 2008-07-31 Robert Dewar <dewar@adacore.com>
1982 * exp_aggr.adb: Minor reformatting
1984 * makeutl.adb: Minor reformatting
1986 * prj-env.adb: Minor reformatting
1988 2008-07-31 Hristian Kirtchev <kirtchev@adacore.com>
1990 * exp_disp.adb (Prim_Op_Kind): Retrieve the full view when a private
1991 tagged type is completed by a concurrent type.
1993 2008-07-31 Gary Dismukes <dismukes@adacore.com>
1996 (Resolve_Record_Aggregate): Bypass error that a type without
1997 components must have a "null record" aggregate when compiling for Ada
1998 2005, since it's legal to give an aggregate of form (others => <>)
2001 2008-07-31 Javier Miranda <miranda@adacore.com>
2003 * sem_ch4.adb (Valid_First_Argument_Of): Complete its functionality to
2004 handle synchronized types. Required to handle well the object.operation
2005 notation applied to synchronized types.
2007 2008-07-31 Quentin Ochem <ochem@adacore.com>
2009 * s-stausa.adb (Fill_Stack): Stack_Used_When_Filling is now stored
2010 anymore - just used internally.
2011 Added handling of very small tasks - when the theoretical size is
2012 already full at the point of the call.
2013 (Report_Result): Fixed result computation, Stack_Used_When_Filling does
2014 not need to be added to the result.
2016 2008-07-31 Hristian Kirtchev <kirtchev@adacore.com>
2018 * sem_ch6.adb (Disambiguate_Spec): Continue the disambiguation if the
2019 corresponding spec is a primitive wrapper. Update comment.
2021 2008-07-31 Hristian Kirtchev <kirtchev@adacore.com>
2023 * bindgen.adb Comment reformatting. Update the list of run-time globals.
2024 (Gen_Adainit_Ada): Add the declaration, import and value set for
2025 configuration flag Canonical_Streams.
2026 (Gen_Adainit_C): Add the declaration and initial value of external
2027 symbol __gl_canonical_streams.
2029 * init.c: Update the list of global values computed by the binder.
2031 * opt.ads: Add flag Canonical_Streams.
2033 * par-prag.adb (Prag): Include Pragma_Canonical_Streams to the list of
2034 semantically handled pragmas.
2036 * sem_prag.adb: Add an entry into enumeration type Sig_Flags.
2037 (Analyze_Pragma): Add case for pragma Canonical_Streams.
2039 * snames.adb: Add character value for name Canonical_Streams.
2042 Add Name_Canonical_Streams to the list of configuration pragmas.
2043 Add Pragma_Canonical_Streams to enumeration type Pragma_Id.
2045 * snames.h: Add a definition for Pragma_Canonical_Streams.
2048 Add a flag and import to seize the value of external symbol
2049 __gl_canonical_streams. Update comment and initial value of constant
2052 * gnat_rm.texi: Add section of pragma Canonical_Streams.
2055 Add pragma Canonical_Streams to the list of configuration pragmas.
2057 2008-07-31 Ed Schonberg <schonberg@adacore.com>
2059 * sem_ch10.adb (Build_Unit_Name): If the unit name in a with_clause
2060 has the form A.B.C and B is a unit renaming, analyze its compilation
2061 unit and add a with_clause on A.b to the context.
2063 2008-07-31 Vincent Celier <celier@adacore.com>
2065 * makeutl.adb (Executable_Prefix_Path): If Locate_Exec_On_Path fails,
2066 return the empty string, instead of raising Constraint_Error.
2068 2008-07-31 Gary Dismukes <dismukes@adacore.com>
2070 * checks.ads (Apply_Accessibility_Check): Add parameter Insert_Node.
2072 * checks.adb (Apply_Accessibility_Check): Insert the check on
2076 (Expand_N_Attribute_Refernce, Attribute_Access): Pass attribute node
2077 to new parameter Insert_Node on call to Apply_Accessibility_Check.
2078 Necessary to distinguish the insertion node because the dereferenced
2079 formal may come from a rename, but the check must be inserted in
2080 front of the attribute.
2083 (Expand_N_Allocator): Pass actual for new Insert_Node parameter on
2084 call to Apply_Accessibility_Check.
2085 (Expand_N_Type_Conversion): Pass actual for new Insert_Node parameter
2086 on call to Apply_Accessibility_Check.
2089 2008-07-31 Javier Miranda <miranda@adacore.com>
2091 * sem_type.adb (Has_Compatible_Type): Complete support for synchronized
2092 types when the candidate type is a synchronized type.
2094 * sem_res.adb (Resolve_Actuals): Reorganize code handling synchronized
2095 types, and complete management of synchronized types adding missing
2096 code to handle formal that is a synchronized type.
2098 * sem_ch4.adb (Try_Primitive_Operation): Avoid testing attributes that
2099 are not available and cause the compiler to blowup. Found compiling
2100 test with switch -gnatc
2102 * sem_ch6.adb (Check_Synchronized_Overriding): Remove local subprogram
2103 Has_Correct_Formal_Mode plus code cleanup.
2105 2008-07-31 Bob Duff <duff@adacore.com>
2107 * sinput.adb (Skip_Line_Terminators): Fix handling of LF/CR -- it was
2108 recognized as two end-of-lines, but it should be just one.
2110 2008-07-31 Thomas Quinot <quinot@adacore.com>
2112 * exp_ch9.adb: Minor reformatting
2114 * tbuild.ads: Fix several occurrences of incorrectly referring to
2115 Name_Find as Find_Name.
2117 2008-07-31 Ed Schonberg <schonberg@adacore.com>
2119 * exp_aggr.adb (Aggr_Size_OK): If the aggregate has a single component
2120 and the context is an object declaration with non-static bounds, treat
2121 the aggregate as non-static.
2123 2008-07-31 Vincent Celier <celier@adacore.com>
2125 * prj-part.adb, prj-part.ads, prj.adb, prj.ads, prj-env.adb:
2126 Move back spec of Parse_Single_Project to body, as it is not called
2127 outside of package Prj.Part.
2128 (Project_Data): Remove components Linker_Name, Linker_Path and
2129 Minimum_Linker_Options as they are no longer set.
2130 Remove function There_Are_Ada_Sources from package Prj and move code
2131 in the only place it was used, in Prj.Env.Set_Ada_Paths.
2133 2008-07-31 Arnaud Charlet <charlet@adacore.com>
2135 * mlib-utl.ads: Fix typo.
2137 2008-07-31 Robert Dewar <dewar@adacore.com>
2139 * sem_ch12.adb: Minor reformatting
2141 2008-07-31 Sergey Rybin <rybin@adacore.com>
2143 * gnat_ugn.texi: Change the description of the
2144 Overly_Nested_Control_Structures: now the rule always requires a
2145 positive parameter for '+R' option
2147 2008-07-31 Thomas Quinot <quinot@adacore.com>
2149 * g-pehage.adb: Minor reformatting
2151 2008-07-31 Pascal Obry <obry@adacore.com>
2153 * s-finimp.ads: Minor reformatting.
2155 2008-07-31 Vincent Celier <celier@adacore.com>
2157 * s-regexp.ads: Minor comment fix
2159 2008-07-31 Arnaud Charlet <charlet@adacore.com>
2161 * s-direio.adb (Reset): Replace pragma Unmodified by Warnings (Off),
2162 so that we can compile this file successfully with -gnatc.
2164 2008-07-31 Hristian Kirtchev <kirtchev@adacore.com>
2166 * exp_attr.adb (Find_Stream_Subprogram): Check the base type instead
2167 of the type when looking for stream subprograms for type String,
2168 Wide_String and Wide_Wide_String.
2170 * s-ststop.adb: Change the initialization expression of constant
2173 2008-07-31 Geert Bosch <bosch@adacore.com>
2176 New file implementing __gnat_mulv64 signed integer multiplication with
2179 * fe.h (Backend_Overflow_Checks_On_Target): Define for use by Gigi
2181 * gcc-interface/gigi.h:
2182 (standard_types): Add ADT_mulv64_decl
2183 (mulv64_decl): Define subprogram declaration for __gnat_mulv64
2185 * gcc-interface/utils.c:
2186 (init_gigi_decls): Add initialization of mulv64_decl
2188 * gcc-interface/trans.c:
2189 (build_unary_op_trapv): New function
2190 (build_binary_op_trapv): New function
2191 (gnat_to_gnu): Use the above functions instead of
2192 build_{unary,binary}_op
2194 * gcc-interface/Makefile.in
2195 (LIBGNAT_SRCS): Add arit64.c
2196 (LIBGNAT_OBJS): Add arit64.o
2198 2008-07-31 Vincent Celier <celier@adacore.com>
2200 * prj-nmsc.adb (Check_Library_Attributes): Check if Linker'Switches or
2201 Linker'Default_Switches are declared. Warn if they are declared.
2203 2008-07-31 Ed Schonberg <schonberg@adacore.com>
2205 * exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration): Use
2206 Insert_Actions to place the pointer declaration in the code, rather
2207 than Insert_Before_And_Analyze, so that insertions of temporaries are
2208 kept in the proper order when transient scopes are present.
2211 2008-07-31 Robert Dewar <dewar@adacore.com>
2213 * einfo.adb (Spec_PPC): Now defined for generic subprograms
2215 * einfo.ads (Spec_PPC): Now defined for generic subprograms
2217 * sem_prag.adb (Check_Precondition_Postcondition): Handle generic
2220 2008-07-31 Vincent Celier <celier@adacore.com>
2222 * s-os_lib.adb: Minor comment fix
2224 2008-07-31 Ed Schonberg <schonberg@adacore.com>
2226 * sem_ch6.adb (Analyze_Generic_Subprogram_Body): After analysis,
2227 transfer pre/postconditions from generic copy to original tree, so that
2228 they will appear in each instance.
2229 (Process_PPCs): Do not transform postconditions into a procedure in a
2230 generic context, to prevent double expansion of check pragmas.
2232 * sem_attr.adb: In an instance, the prefix of the 'result attribute
2233 can be the renaming of the
2234 current instance, so check validity of the name accordingly.
2236 2008-07-31 Robert Dewar <dewar@adacore.com>
2238 * mlib-utl.ads: Minor reformatting
2240 2008-07-31 Ed Schonberg <schonberg@adacore.com>
2242 sem_attr.adb: 'Result can have an ambiguous prefix, and is resolved
2243 from context. This attribute must be usable in Ada95 mode.
2244 The attribute can appear in the body of a function marked
2245 Inline_Always, but in this case the postocondition is not enforced.
2247 sem_prag.adb (Check_Precondition_Postcondition): within the expansion
2248 of an inlined call pre- and postconditions are legal
2250 2008-07-31 Vincent Celier <celier@adacore.com>
2252 * prj.adb, prj.ads, clean.adb, prj-nmsc.adb: Remove declarations that
2253 were for gprmake only
2255 2008-07-31 Robert Dewar <dewar@adacore.com>
2257 * gnat_ugn.texi: Update -gnatN documentation.
2259 * gnat_rm.texi: Add note about pre/postcondition
2260 pragmas not checked in conjunction with front-end inlining.
2262 2008-07-31 Robert Dewar <dewar@adacore.com>
2264 * g-pehage.adb, g-pehage.ads: Minor reformatting
2266 2008-07-31 Arnaud Charlet <charlet@adacore.com>
2268 * mlib-utl.ads, prj-makr.ads: Add comments.
2270 2008-07-30 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
2272 * gcc-interface/Makefile.in (EXTRA_GNATRTL_NONTASKING_OBJS)
2273 [WINDOWS]: Add s-winext.o.
2275 2008-07-30 Eric Botcazou <ebotcazou@adacore.com>
2278 * back_end.adb (Call_Back_End): Pass Standard_Boolean to gigi.
2279 * gcc-interface/gigi.h (gigi): Take new standard_boolean parameter.
2280 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Enumeration_Subtype>:
2281 Set precision to 1 for subtype of BOOLEAN_TYPE.
2282 (set_rm_size): Set TYPE_RM_SIZE_NUM for BOOLEAN_TYPE.
2283 (make_type_from_size): Deal with BOOLEAN_TYPE.
2284 * gcc-interface/misc.c (gnat_print_type): Likewise.
2285 * gcc-interface/trans.c (gigi): Take new standard_boolean parameter.
2286 Set boolean_type_node as its translation in the table, as well
2287 as boolean_false_node for False and boolean_true_node for True.
2288 * gcc-interface/utils.c (gnat_init_decl_processing): Create custom
2289 8-bit boolean_type_node and set its TYPE_RM_SIZE_NUM.
2290 (create_param_decl): Deal with BOOLEAN_TYPE.
2291 (build_vms_descriptor): Likewise.
2292 (build_vms_descriptor64): Likewise.
2293 (convert): Deal with BOOLEAN_TYPE like with ENUMERAL_TYPE.
2295 2008-07-30 Robert Dewar <dewar@adacore.com>
2297 * exp_ch9.adb: Minor reformatting
2299 * exp_util.ads (Find_Prim_Op): Document that Program_Error is raised
2300 if no primitive operation is found.
2302 * exp_util.adb: (Find_Prim_Op): Add comments for previous change
2304 * sem_ch8.adb: Minor reformatting
2306 2008-07-30 Laurent Pautet <pautet@adacore.com>
2309 Remove a limitation on the length of the words handled by the minimal
2310 perfect hash function generator.
2313 Detail the use of subprograms Insert, Initialize, Compute and Finalize.
2316 2008-07-30 Robert Dewar <dewar@adacore.com>
2318 * gnatlink.adb: Minor reformatting
2320 2008-07-30 Thomas Quinot <quinot@adacore.com>
2322 * rtsfind.adb (Check_RPC): Check version consistency even when not
2323 generating RCI stubs. Provide more detailed error message in case of
2326 2008-07-30 Ed Schonberg <schonberg@adacore.com>
2328 * sem_ch8.adb (Analyze_Subprogram_Renaming): When renaming an attribute
2329 as a actual in an instance, check for a missing attribute to prevent
2330 program_error on an illegal program.
2332 * exp_util.adb (Find_Prim_Op): Rather than Assert (False), raise program
2333 error if primitive is not found, so that exception can be handled
2334 elsewhere on illegal programs.
2336 2008-07-30 Robert Dewar <dewar@adacore.com>
2338 * uintp.adb (UI_GCD): Fix potential overflow
2340 2008-07-30 Hristian Kirtchev <kirtchev@adacore.com>
2342 * einfo.adb: Flag245 is now used.
2343 (Is_Primitive_Wrapper, Set_Is_Primitive_Wrapper): Relax the assertion
2344 check to include functions.
2345 (Is_Private_Primitive, Set_Is_Private_Primitive): New subprograms.
2346 (Wrapped_Entity, Set_Wrapped_Entity): Relax the assertion check to
2348 (Write_Entity_Flags): Move flag Is_Primitive, add Is_Private_Primitive
2349 to the list of displayed flags.
2351 * einfo.ads: Update comment on the usage of Is_Primitive_Wrapper and
2352 Wrapped_Entity. These two flags are now present in functions.
2353 New flag Is_Private_Primitive.
2354 (Is_Private_Primitive, Set_Is_Private_Primitive): New subprograms.
2357 (Build_Wrapper_Bodies): New subprogram.
2358 (Build_Wrapper_Body): The spec and body have been moved to in
2359 Build_Wrapper_ Bodies. Code cleanup.
2360 (Build_Wrapper_Spec): Moved to the spec of Exp_Ch9. Code cleanup.
2361 Wrappers are now generated for primitives declared between the private
2362 and full view of a concurrent type that implements an interface.
2363 (Build_Wrapper_Specs): New subprogram.
2364 (Expand_N_Protected_Body): Code reformatting. Replace the wrapper body
2365 creation mechanism with a call to Build_Wrapper_Bodies.
2366 (Expand_N_Protected_Type_Declaration): Code reformatting. Replace the
2367 wrapper spec creation mechanism with a call to Build_Wrapper_Specs.
2368 (Expand_N_Task_Body): Replace the wrapper body creation
2369 mechanism with a call to Build_Wrapper_Bodies.
2370 (Expand_N_Task_Type_Declaration): Replace the wrapper spec
2371 creation mechanism with a call to Build_Wrapper_Specs.
2372 (Is_Private_Primitive_Subprogram): New subprogram.
2373 (Overriding_Possible): Code cleanup.
2374 (Replicate_Entry_Formals): Renamed to Replicate_Formals, code cleanup.
2376 * exp_ch9.ads (Build_Wrapper_Spec): Moved from the body of Exp_Ch9.
2378 * sem_ch3.adb: Add with and use clause for Exp_Ch9.
2379 (Process_Full_View): Build wrapper specs for all primitives
2380 that belong to a private view completed by a concurrent type
2381 implementing an interface.
2383 * sem_ch6.adb (Analyze_Subprogram_Body): When the current subprogram
2385 concurrent type with a private view that implements an interface, try to
2386 find the proper spec.
2387 (Analyze_Subprogram_Declaration): Mark a subprogram as a private
2388 primitive if the type of its first parameter is a non-generic tagged
2390 (Analyze_Subprogram_Specification): Code reformatting.
2391 (Disambiguate_Spec): New routine.
2392 (Find_Corresponding_Spec): Add a flag to controll the output of errors.
2393 (Is_Private_Concurrent_Primitive): New routine.
2396 (Find_Corresponding_Spec): Add a formal to control the output of errors.
2398 2008-07-30 Doug Rupp <rupp@adacore.com>
2400 * gigi.h (build_vms_descriptor64): New function prototype.
2401 (fill_vms_descriptor): Modified function prototype.
2403 * utils.c (build_vms_descriptor64): New function.
2405 * utils2.c (fill_vms_descriptor): Fix handling on 32bit systems.
2407 * trans.c (call_to_gnu): Call fill_vms_descriptor with new third
2410 * decl.c (gnat_to_gnu_tree): For By_Descriptor mech, build both a
2411 64bit and 32bit descriptor and save the 64bit version as an alternate
2412 TREE_TYPE in the parameter.
2413 (make_type_from_size) <RECORD_TYPE>: Use the appropriate mode for the
2416 * ada-tree.h (DECL_PARM_ALT, SET_DECL_PARM_ALT): New macros.
2418 2008-07-30 Robert Dewar <dewar@adacore.com>
2420 * make.adb: Minor reformatting
2422 * mlib-utl.adb: Minor reformatting
2424 * osint.ads: Minor reformatting
2426 2008-07-30 Jose Ruiz <ruiz@adacore.com>
2429 (__gnat_file_exists): Do not use __gnat_stat for RTX.
2430 (__main for RTX in RTSS mode): Create this dummy procedure symbol to
2431 avoid the use of this symbol from libgcc.a in RTX kernel mode.
2434 (put_int, put_int_stderr, put_char, put_char_stderr): For RTX we call
2435 the function RtPrintf for console output.
2437 * argv.c Do not use the environ variable for RTX.
2439 * gnatlink.adb (gnatlink): The part that handles the --RTS option has
2440 been moved before the call to Osint.Add_Default_Search_Dirs in order
2441 to take into account the flags in system.ads (RTX_RTSS_Kernel_Module)
2442 from the appropriate run time.
2445 (RTX_RTSS_Kernel_Module_On_Target): Add this flag that is set to True if
2446 target is a RTSS module for RTX.
2448 * targparm.adb (Targparm_Tags, RTX_Str, Targparm_Str): Add tag RTX for
2449 RTX_RTSS_Kernel_Module
2450 (Get_Target_Parameters): Add processing of RTX_RTSS_Kernel_Module flag.
2452 * gcc-interface/Makefile.in (LIBGNAT_TARGET_PAIRS for RTX): Use gcc
2453 exception handling mechanism for Windows and RTX in Win32 mode, but
2454 not for RTX in kernel mode (RTSS).
2455 (LIBGNAT_SRCS): Remove ada.h
2457 2008-07-30 Paolo Bonzini <bonzini@gnu.org>
2459 * gcc-interface/Make-lang.in (ALL_ADAFLAGS): Remove X_ADAFLAGS and
2460 T_ADAFLAGS, replace ALL_ADA_CFLAGS with ADA_CFLAGS.
2461 (ALL_ADA_CFLAGS): Remove, replace throughout with ADA_CFLAGS.
2462 * gcc-interface/Makefile.in (XCFLAGS, X_CFLAGS, X_CPPFLAGS, T_CPPFLAGS,
2463 X_ADA_CFLAGS, T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS, ADA_CFLAGS,
2464 ALL_ADA_CFLAGS): Remove.
2465 (ALL_ADAFLAGS, MOST_ADAFLAGS): Remove X_ADAFLAGS and T_ADAFLAGS,
2466 replace ALL_ADA_CFLAGS with ADA_CFLAGS.
2467 (GCC_CFLAGS): Remove X_CFLAGS.
2468 (LOOSE_CFLAGS): Remove X_CFLAGS and XCFLAGS.
2469 (ALL_CPPFLAGS): Remove X_CPPFLAGS and T_CPPFLAGS.
2470 (ADA_CFLAGS): Substitute.
2472 2008-07-30 Laurent Guerby <laurent@guerby.net>
2475 * gcc-interface/Makefile.in (MULTISUBDIR, RTSDIR): New variables.
2476 Pass MULTISUBDIR to recursive make. Use $(RTSDIR) instead of rts.
2477 Replace stamp-gnatlib* by stamp-gnatlib*-rts.
2478 * gcc-interface/Make-lang.in: Replace stamp-gnatlib2
2479 by stamp-gnatlib2-rts.
2481 2008-07-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2483 PR documentation/15479
2484 * gnat-style.texi: Remove AdaCore copyright statement and GPL
2485 statement for GNAT. Add @copying stanza, use it. Update to
2486 GFDL 1.2. Do not list GFDL as Invariant Section, do not list
2487 title as Front-Cover Text.
2488 * gnat_rm.texi: Likewise.
2489 * gnat_ugn.texi: Likewise.
2491 2008-07-29 Jan Hubicka <jh@suse.cz>
2493 * trans.c (process_inlined_subprograms): Remove tree_really_inline
2496 2008-07-29 Arnaud Charlet <charlet@adacore.com>
2498 * gcc-interface: New directory.
2500 * ada-tree.def, cuintp.c, gigi.h, Makefile.in, targtyps.c, ada.h,
2501 utils.c, ada-tree.h, decl.c, lang.opt, Make-lang.in, trans.c,
2502 config-lang.in, deftarg.c, lang-specs.h, misc.c, utils2.c: Moved
2503 to gcc-interface subdirectory.
2505 2008-07-29 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
2507 * Makefile.in (EXTRA_GNATRTL_NONTASKING_OBJS): Remove extra s-win32.o.
2509 2008-07-28 Jan Hubicka <jh@suse.cz>
2511 * misc.c (gnat_post_options): Do not set flag_no_inline.
2513 2008-07-28 Richard Guenther <rguenther@suse.de>
2515 Merge from gimple-tuples-branch.
2517 2008-07-22 Olivier Hainque <hainque@adacore.com>
2519 * gigi.h (end_subprog_body): New ELAB_P argument, saying if
2520 this is called for an elab proc to be discarded if empty.
2521 * utils.c (end_subprog_body): Honor ELAB_P.
2522 (build_function_stub): Adjust call to end_subprog_body.
2523 * trans.c (Subprogram_Body_to_gnu): Likewise.
2524 (gigi): Reorganize processing of elab procs to prevent
2525 gimplifying twice, using the new end_subprog_body argument.
2527 2008-07-19 Richard Guenther <rguenther@suse.de>
2529 * Make-lang.in (trans.o): Add tree-iterator.h dependency.
2530 (utils.o): Likewise.
2531 * trans.c: Include tree-iterator.h.
2532 (gnat_gimplify_expr): Adjust prototype. Fix typo.
2533 (gnat_gimplify_stmt): Use SET_EXPR_LOCATION.
2534 (set_expr_location_from_node): Likewise.
2536 * ada-tree.h (union lang_tree_node): Use TREE_CHAIN instead
2538 * utils.c: Include tree-iterator.h.
2539 * gigi.h (gnat_gimplify_expr): Adjust prototype.
2541 2008-07-18 Aldy Hernandez <aldyh@redhat.com>
2543 * trans.c: Include gimple.h instead of tree-gimple.h.
2546 2008-07-14 Aldy Hernandez <aldyh@redhat.com>
2548 * trans.c (gnat_gimplify_expr): Use gimplify_assign.
2550 2008-07-25 Jan Hubicka <jh@suse.cz>
2552 * utils.c (end_subprog_body): Remove inline trees check.
2553 * misc.c (gnat_post_options): Do not set flag_inline_trees.
2555 2008-07-25 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2557 * raise-gcc.c: Move tsystem.h before tm.h.
2559 2008-07-20 Arnaud Charlet <charlet@adacore.com>
2561 * gnathtml.pl: New file.
2563 2008-07-19 Olivier Hainque <hainque@adacore.com>
2565 * targtyps.c (get_target_default_allocator_alignment): Use
2566 MALLOC_ABI_ALIGNMENT.
2568 2008-07-17 Olivier Hainque <hainque@adacore.com>
2570 * adaint.c (__MINGW32__ section): Include ctype.h and define
2571 a fallback ISALPHA if IN_RTS.
2572 (__gnat_is_absolute_path): Use ISALPHA instead of isalpha.
2574 2008-07-17 Olivier Hainque <hainque@adacore.com>
2576 * utils.c (create_var_decl_1): Relax expectations on the PUBLIC_FLAG
2577 argument, to apply to references in addition to definitions. Prevent
2578 setting TREE_STATIC on externals.
2579 (gnat_pushdecl): Always clear DECL_CONTEXT on public externals.
2581 2008-07-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2583 PR documentation/15479
2584 * gnat_ugn.texi (@ovar): New macro, from autoconf.texi.
2585 Replace backets around optional parameters with @ovar
2586 where possible, use @r{[}, @r{]} otherwise.
2587 Replace some @r, @i, and @emph with @var where appropriate.
2589 2008-07-02 Eric Botcazou <ebotcazou@adacore.com>
2591 * decl.c (make_type_from_size) <INTEGER_TYPE>: Fix typo and tidy up.
2593 2008-06-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2595 * ada-tree.h (SET_TYPE_LANG_SPECIFIC, SET_DECL_LANG_SPECIFIC): Fix
2596 -Wc++-compat warnings.
2597 * adaint.c (__gnat_locate_regular_file, __gnat_locate_exec,
2598 __gnat_locate_exec_on_path): Likewise.
2599 * decl.c (annotate_value): Likewise.
2600 * misc.c (gnat_handle_option): Likewise.
2601 * trans.c (gnat_to_gnu, extract_encoding, decode_name,
2602 post_error_ne_tree): Likewise.
2604 2008-06-27 Eric Botcazou <ebotcazou@adacore.com>
2606 * utils.c (convert) <CONSTRUCTOR>: When converting it to a packable
2607 version of its type, attempt to first convert its elements.
2609 2008-06-26 Chris Proctor <chrisp_42@bigpond.com>
2611 * Makefile.in: Fix *86 kfreebsd target specific pairs.
2613 2008-06-25 Samuel Tardieu <sam@rfc1149.net>
2615 * Makefile.in: Use mlib-tgt-specific-linux.adb for sh4 as well.
2617 2008-06-24 Eric Botcazou <ebotcazou@adacore.com>
2619 * utils2.c (known_alignment): Derive the alignment from pointed-to
2620 types only if it is otherwise unknown.
2621 <INTEGER_CST>: Tidy.
2622 <MULT_EXPR>: Likewise.
2623 <POINTER_PLUS_EXPR>: If the alignment of the offset is unknown, use
2626 2008-06-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2629 * s-osinte-hpux-dce.ads (SA_ONSTACK): Define.
2631 2008-06-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2633 * gnat_rm.texi (Implementation Defined Characteristics)
2634 (Standard Library Routines): Use @smallexample for indented
2635 text. Drop Indentation outside examples.
2636 * gnat_ugn.texi: Likewise.
2638 2008-06-13 Olivier Hainque <hainque@adacore.com>
2640 * decl.c (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): Define to 0
2642 (gnat_to_gnu_entity) <case E_Function/Procedure>: Request stack
2643 realignment with force_align_arg_pointer attribute on foreign
2644 convention subprograms if FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN.
2646 2008-06-13 Olivier Hainque <hainque@adacore.com>
2648 * utils.c (rest_of_record_type_compilation): When computing
2649 encodings for the components of a variable size type, early
2650 strip conversions on the current position expression to make
2651 sure it's shape is visible. Use remove_conversions for this
2654 2008-06-12 Eric Botcazou <ebotcazou@adacore.com>
2656 * decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: In the case of a
2657 constrained subtype of a discriminated type, discard the fields that
2658 are beyond its limits according to its size.
2660 2008-06-10 Olivier Hainque <hainque@adacore.com>
2662 * utils.c (create_subprog_decl): If this is for the 'main' entry
2663 point according to the asm name, redirect main_identifier_node.
2665 2008-06-09 Eric Botcazou <ebotcazou@adacore.com>
2667 * decl.c (components_to_record): Adjust the packedness for the
2668 qualified union as well.
2670 2008-06-09 Arnaud Charlet <charlet@adacore.com>
2672 * Make-lang.in: Use -gnatwns instead of -gnatws to make sytyle
2675 2008-06-07 Samuel Tardieu <sam@rfc1149.net>
2677 * sem_res.adb (Large_Storage_Type): A type is large if it
2678 requires as many bits as Positive to store its values and its
2679 bounds are known at compile time.
2680 * sem_ch13.adb (Minimum_Size): Note that this function returns
2681 0 if the size is not known at compile time.
2683 2008-06-06 Nicolas Setton <setton@adacore.com>
2684 Olivier Hainque <hainque@adacore.com>
2686 * ada-tree.h (DECL_PARALLEL_TYPE): New language specific
2687 attribute, parallel descriptive type attached to another
2688 type for debug info generation purposes.
2689 * utils.c (add_parallel_type): New function, register
2690 parallel type to be attached to a type.
2691 (get_parallel_type): New function, fetch a registered
2692 parallel type, if any.
2693 (rest_of_record_type_compilation): Register the parallel
2694 type we make for variable size records.
2695 * gigi.h (add_parallel_type, get_parallel_type): Declare.
2696 * decl.c (gnat_to_gnu_entity, maybe_pad_type): Register the
2697 parallel debug types we make.
2698 * trans.c (extract_encoding, decode_name): New functions.
2699 (gigi): If the DWARF attribute extensions are available, setup
2701 * lang.opt: Register language specific processing request
2703 * misc.c (gnat_dwarf_extensions): New global variable. How much
2704 do we want of our DWARF extensions. 0 by default.
2705 (gnat_handle_option) <OPT_gdwarf_>: Increment gnat_dwarf_extensions.
2706 (gnat_post_options): Map gnat_dwarf_extensions to the
2707 commonuse_gnu_debug_info_extensions for later processing.
2709 2008-06-04 Samuel Tardieu <sam@rfc1149.net>
2711 * einfo.ads, einfo.adb: Remove unused flag Function_Returns_With_DSP.
2713 2008-06-03 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2715 * Makefile.in (common_tools): Fix typos in $(exeext) extension.
2716 * gnat_ugn.texi (Style Checking)
2717 (Adding the Results of Compiler Checks to gnatcheck Output)
2718 (Example of Binder Output File): Fix typos.
2719 * ali.ads, einfo.ads, exp_ch4.adb, exp_ch6.adb,
2720 exp_dbug.ads, exp_dist.adb, exp_smem.adb, g-socket.ads,
2721 s-osinte-rtems.ads, s-shasto.ads, s-stausa.adb,
2722 s-stausa.ads, sem_cat.adb, sem_ch12.adb, sem_ch3.adb,
2723 sem_ch4.adb, sem_ch6.adb, sem_ch8.adb, sem_util.ads,
2724 sinfo.ads, utils.c: Fix typos in comments.
2725 * sem_ch6.adb, vms_data.ads: Fix typos in strings.
2727 2008-05-29 Thomas Quinot <quinot@adacore.com>
2729 * sem_eval.adb: Minor reformatting
2731 2008-05-29 Ed Schonberg <schonberg@adacore.com>
2733 * sem_ch6.adb (Analyze_Subprogram_Specification): if the return type
2734 is abstract, do not apply abstractness check on subprogram if this is
2735 a renaming declaration.
2737 2008-05-29 Arnaud Charlet <charlet@adacore.com>
2740 * osint.ads, osint.adb (Program_Name): New parameter "Prog" to
2741 allow recognition of program suffix in addition to prefix.
2743 * gnatchop.adb (Locate_Executable): Add support for prefix.
2745 * make.adb, gnatcmd.adb, gnatlink.adb, prj-makr.adb,
2746 mlib-utl.adb: Adjust calls to Program_Name.
2748 2008-05-29 Robert Dewar <dewar@adacore.com>
2750 * sem_ch3.adb: Minor reformatting
2751 * sem_prag.adb: Minor reformatting
2752 * sem_res.adb: Minor reformatting
2753 * sinput-p.ads: Minor reformatting
2755 2008-05-29 Javier Miranda <miranda@adacore.com>
2758 (Abstract_Interface_List): Add missing support for full type-declaration
2759 associated with synchronized types.
2761 2008-05-29 Robert Dewar <dewar@adacore.com>
2763 * sem_eval.adb (Is_Same_Value): Take care of several more cases
2765 2008-05-28 Ed Schonberg <schonberg@adacore.com>
2767 * sem_ch5.adb (Analyze_Assignment): If the name is of a local anonymous
2768 access type, wrap the expression in a conversion to force an
2769 accessibility check.
2771 * sem_aggr.adb (Aggegate_Constraint_Checks): Apply conversion to force
2772 accessibility checks even when expansion is disabled in order to
2773 generate messages in the presence of previous errors or in
2774 semantics-only mode.
2776 2008-05-28 Eric Botcazou <ebotcazou@adacore.com>
2778 * system-lynxos-ppc.ads (Always_Compatible_Rep): Set to False.
2779 * system-lynxos-x86.ads (Always_Compatible_Rep): Set to False.
2781 2008-05-28 Vincent Celier <celier@adacore.com>
2784 * gnat_ugn.texi: Document restriction introduced on 2007-04-20 in
2785 preprocessing expressions
2787 2008-05-28 Vincent Celier <celier@adacore.com>
2789 * sinput-p.adb (Source_File_Is_Subunit): Allow special character used
2792 * sinput-p.ads: Minor comment update and reformatting
2794 2008-05-28 Ed Schonberg <schonberg@adacore.com>
2796 * sem_res.adb (Valid_Conversion): An anonymous access_to_subprogram
2797 type has a deeper level than any master only when it is the type of an
2800 2008-05-28 Javier Miranda <miranda@adacore.com>
2802 * sem_ch3.adb (Derive_Progenitor_Subprograms): Add documentation.
2804 2008-05-28 Javier Miranda <miranda@adacore.com>
2806 * sem_util.ads (Find_Overridden_Synchronized_Primitive): Removed.
2807 * sem_util.adb (Find_Overridden_Synchronized_Primitive): Removed.
2808 * sem_ch6.adb (Check_Synchronized_Overriding): Remove one formal.
2809 Add code that was previously located in
2810 Find_Overridden_Synchronized_Primitive because it is only used here.
2812 2008-05-28 Sergey Rybin <rybin@adacore.com>
2814 * sem_prag.adb (Process_Extended_Import_Export_Subprogram_Pragma): Set
2815 Entity field for formal_parameter_NAME in MECHANISM_ASSOCIATION.
2817 2008-05-28 Robert Dewar <dewar@adacore.com>
2820 Add missing restrictions, and properly label all GNAT defined ones
2823 Add entry for Ada_Real_Time.Timing_Events.Timing_Event
2824 Add entry for Ada.Task_Termination.Set_Specific_Handler
2825 Add entry for Ada.Task_Termination.Specific_Handler
2828 Add missing restrictions and properly mark all gnat defined ones
2831 (Analyze_Object_Declaration): Check No_Local_Timing_Events restriction
2834 (Resolve_Call): Check violation of No_Specific_Termination_Handlers
2836 * gnat_rm.texi: Add missing restrictions, and properly label all
2839 2008-05-28 Robert Dewar <dewar@adacore.com>
2842 (Check_Restriction): violation of restriction No_Finalization is
2843 treated as a serious error to stop expansion
2845 2008-05-28 Robert Dewar <dewar@adacore.com>
2847 * exp_util.adb: Minor reformatting
2848 * exp_util.ads: Minor reformatting.
2850 2008-05-28 Arnaud Charlet <charlet@adacore.com>
2852 * Make-lang.in: Remove gprmake.
2854 * gprmake.adb, makegpr.ads, makegpr.adb: Removed.
2856 2008-05-28 Ed Schonberg <schonberg@adacore.com>
2858 * sem_ch3.adb (Diagnose_Interface): Cleanup error messages involving
2859 improper progenitor names, and avoid cascaded errors.
2861 2008-05-28 Robert Dewar <dewar@adacore.com>
2863 * gnat_rm.texi: Add note on Old giving warning when applied to constant
2865 * sem_attr.adb (Analyze_Attribute, case Old): Give warning if prefix is
2868 2008-05-28 Robert Dewar <dewar@adacore.com>
2870 * exp_fixd.adb (Build_Multiply): Correct one-off error in computing
2873 2008-05-28 Robert Dewar <dewar@adacore.com>
2876 (Expand_Simple_Function_Return): Copy unaligned result into temporary
2878 2008-05-28 Javier Miranda <miranda@adacore.com>
2880 * sem_ch3.adb (Derive_Progenitor_Primitives): Add missing support
2881 for user-defined predefined primitives.
2883 * sem_util.adb (Matches_Prefixed_View_Profile): Ditto.
2884 (Find_Overridden_Synchronized_Primitive): Ditto.
2886 * sem_ch6.adb (Check_Synchronized_Overriding): Ditto.
2888 2008-05-27 Arnaud Charlet <charlet@adacore.com>
2890 * a-ststio.adb, s-direio.adb:
2891 Further code clean up of previous change.
2894 2008-05-27 Vincent Celier <celier@adacore.com>
2896 * prj-nmsc.adb: Minor reformatting
2898 2008-05-27 Bob Duff <duff@adacore.com>
2900 * sem_ch3.adb (Build_Incomplete_Type_Declaration): In the case of an
2901 untagged private type with a tagged full type, where the full type has
2902 a self reference, create the corresponding class-wide type early, in
2903 case the self reference is "access T'Class".
2905 2008-05-27 Ed Schonberg <schonberg@adacore.com>
2907 * exp_aggr.adb (Build_Array_Aggr_Code): If component type includes
2908 tasks and context is an object declaration. create master entity before
2911 2008-05-27 Robert Dewar <dewar@adacore.com>
2913 * mlib-prj.adb: Minor reformatting
2915 * prj-part.adb: Minor reformatting
2917 * prj.ads: Minor reformatting
2919 * exp_ch3.adb: Minor reformatting.
2921 * sem_ch3.ads: Minor reformatting
2923 * sem_eval.adb: Minor reformatting
2925 2008-05-27 Vincent Celier <celier@adacore.com>
2928 <prefix>-gnat stack spawns gnatstack, not <prefix>-gnatstack
2930 2008-05-27 Ed Schonberg <schonberg@adacore.com>
2932 * exp_aggr.adb (Expand_Array_Aggregate): If the aggregate contains
2933 tasks, create an activation chain now, before the expansion into
2934 assignments and build-in-place calls that require the presence of an
2936 (Backend_Processing_Possible): If the component type is inherently
2937 limited, the aggregate must be expanded into individual built-in-place
2940 * sem_ch6.adb (Build_Extra_Formals): Use underlying type of result to
2941 determine whether an allocation extra parameter must be built, to
2942 handle case of a private type whose full type is a discriminated type
2945 2008-05-27 Bob Duff <duff@adacore.com>
2948 Document the new behavior regarding trampolines.
2950 2008-05-27 Arnaud Charlet <charlet@adacore.com>
2952 * a-direio.adb, a-sequio.adb: Replace address clause by
2953 unrestricted_access, simpler and compatible with .NET.
2955 2008-05-27 Vincent Celier <celier@adacore.com>
2958 (Project_Path_Name_Of.Try_Path): Do not use Locate_Regular_File to find
2959 a project file, so that symbolic links are not resolved.
2961 2008-05-27 Arnaud Charlet <charlet@adacore.com>
2963 * a-ztexio.adb, a-textio.adb, a-witeio.adb, s-direio.adb:
2964 Replace heavy address clause by 'Unrestricted_Access, cleaner and more
2965 portable across GNAT targets, since this kind of address clause is not
2966 supported by VM back-ends (.NET/JGNAT).
2968 2008-05-27 Arnaud Charlet <charlet@adacore.com>
2970 * bindgen.adb: Update comments.
2972 * s-tasinf-mingw.adb: Add "with" of System.OS_Interface
2974 2008-05-27 Vincent Celier <celier@adacore.com>
2976 * gnatcmd.adb, prj-proc.adb, make.adb, mlib-prj.adb, prj.adb,
2977 prj.ads, makegpr.adb, makeutl.adb, clean.adb, prj-nmsc.adb,
2978 mlib-tgt.adb, prj-env.adb, prj-env.ads:
2979 (Path_Information): New record type
2980 Use component of type Path_Information when there are two paths, one in
2981 canonical format and one in display format.
2982 Update the project manager to these new components.
2984 2008-05-27 Robert Dewar <dewar@adacore.com>
2986 * makeutl.adb: Minor reformatting
2987 * prj-nmsc.adb: Minor reformatting
2988 * s-stausa.adb: Minor reformatting
2989 * s-stausa.ads: Minor reformatting
2990 * sem_ch6.adb: Minor reformatting
2992 2008-05-27 Thomas Quinot <quinot@adacore.com>
2994 * sem_res.adb: Minor comment fixes
2996 2008-05-27 Thomas Quinot <quinot@adacore.com>
2998 * makeutl.adb: Minor code reorganization
3000 * exp_aggr.adb: Add ??? comment
3003 * exp_ch6.adb: Minor reformatting
3005 2008-05-27 Quentin Ochem <ochem@adacore.com>
3007 * s-stausa.adb (Initialize): Updated result initialization, and
3008 initialization of environment stack.
3009 (Fill_Stack): Improved computation of the pattern zone, taking into
3010 account already filled at the calling point.
3011 (Get_Usage_Range): Now uses Min_Measure and Max_Measure instead of
3012 Measure and Overflow_Guard.
3013 (Report_Result): Fixed computation of the result using new fields of
3016 * s-stausa.ads (Initialize_Analyzer): Replaced Size / Overflow_Guard
3017 params by more explicit Stack_Size / Max_Pattern_Size params.
3018 (Stack_Analyzer): Added distinct Stack_Size & Pattern_Size fields.
3019 Added Stack_Used_When_Filling field.
3020 (Task_Result): Replaced Measure / Overflow_Guard by more explicit
3021 Min_Measure and Max_Measure fields.
3023 * s-tassta.adb (Task_Wrapper): Updated call to Initialize_Analyzer.
3025 2008-05-27 Vincent Celier <celier@adacore.com>
3028 (Check_File): Make sure that a unit that replaces the same unit in a
3029 project being extended is properly processed.
3031 2008-05-27 Ed Schonberg <schonberg@adacore.com>
3034 (Get_Discr_Value): Remove obsolete code that failed to find the value
3035 of a discriminant for an inherited task component appearing in a type
3038 2008-05-27 Thomas Quinot <quinot@adacore.com>
3040 (System.File_IO.{Close, Delete, Reset}):
3041 Change File parameter from "in out AFCB_Ptr" to "access AFCB_Ptr".
3043 (Ada.*_IO.{Close, Delete, Reset, Set_Mode}):
3044 Pass File parameter by reference.
3046 2008-05-27 Vincent Celier <celier@adacore.com>
3049 (Process_Sources_In_Multi_Language_Mode): Check that there are not two
3050 sources of the same project that have the same object file name.
3051 (Find_Explicit_Sources): Always remove a source exception that was not
3054 2008-05-27 Thomas Quinot <quinot@adacore.com>
3056 * sem_ch3.adb: Minor reformatting
3058 2008-05-27 Ed Schonberg <schonberg@adacore.com>
3061 (Is_Interface_Conformant): Handle properly a primitive operation that
3062 overrides an interface function with a controlling access result.
3063 (Type_Conformance): If Skip_Controlling_Formals is true, when matching
3064 inherited and overriding operations, omit as well the conformance check
3065 on result types, to prevent spurious errors.
3067 2008-05-27 Vincent Celier <celier@adacore.com>
3069 * makeutl.ads, makeutl.adb:
3070 (Set_Location): New procedure
3071 (Get_Location): New function
3072 (Update_Main): New procedure
3074 2008-05-27 Vincent Celier <celier@adacore.com>
3077 (Check_Library): Allow standard project to be extended as a static
3079 (Get_Mains): Do not inherit attribute Main in an extending library
3082 2008-05-27 Eric Botcazou <ebotcazou@adacore.com>
3084 * system-darwin-ppc.ads (Always_Compatible_Rep): Set to False.
3085 * system-darwin-x86.ads (Always_Compatible_Rep): Likewise.
3086 * system-freebsd-x86.ads (Always_Compatible_Rep): Likewise.
3087 * system-linux-ppc.ads (Always_Compatible_Rep): Likewise.
3088 * system-linux-x86_64.ads (Always_Compatible_Rep): Likewise.
3089 * system-linux-x86.ads (Always_Compatible_Rep): Likewise.
3090 * system-mingw.ads (Always_Compatible_Rep): Likewise.
3091 * system-solaris-sparc.ads (Always_Compatible_Rep): Likewise.
3092 * system-solaris-sparcv9.ads (Always_Compatible_Rep): Likewise.
3093 * system-solaris-x86.ads (Always_Compatible_Rep): Likewise.
3095 2008-05-27 Ed Schonberg <schonberg@adacore.com>
3097 * sem_attr.adb: add guard to previous patch.
3099 2008-05-27 Ed Schonberg <schonberg@adacore.com>
3101 * exp_disp.adb (Build_Dispatch_Tables): For a private type completed by
3102 a synchronized tagged type, do not attempt to build dispatch table for
3103 full view. The table is built for the corresponding record type, which
3104 has its own declaration.
3106 2008-05-27 Gary Dismukes <dismukes@adacore.com>
3108 * sem_ch3.adb (Fixup_Bad_Constraint): Set the Etype on the bad subtype
3109 to the known type entity E, rather than setting it to Any_Type. Fixes
3110 possible blowup in function Base_Init_Proc, as called from Freeze_Entity
3111 for objects whose type had an illegal constraint.
3113 2008-05-27 Vincent Celier <celier@adacore.com>
3116 Add succinct documentation for attribute Excluded_Source_List_File
3118 2008-05-27 Vincent Celier <celier@adacore.com>
3120 * prj-attr.adb: Add new project level attribute Map_File_Option
3122 * prj-nmsc.adb (Process_Linker): Process new attribute Map_File_Option
3124 * prj.ads: Minor reformatting and comment update
3125 (Project_Configuration): New component Map_File_Option
3127 * snames.adb: New standard name Map_File_Option
3129 * snames.ads: New standard name Map_File_Option
3131 2008-05-27 Vincent Celier <celier@adacore.com>
3133 * xsnames.adb: Remove unused variable Oname
3135 2008-05-27 Doug Rupp <rupp@adacore.com>
3138 (Expand_N_Function_Call): Fix comments. Minor reformatting.
3141 (Expand_Vax_Foreign_Return): Fix comments.
3143 2008-05-27 Thomas Quinot <quinot@adacore.com>
3145 * exp_dist.adb: Minor reformating
3147 2008-05-26 Gary Dismukes <dismukes@adacore.com>
3149 * exp_ch3.adb (Expand_N_Object_Declaration): Remove checks for
3150 No_Default_Initialization, which is now delayed until the freeze point
3151 of the object. Add a comment about deferral of the check.
3153 * freeze.adb (Freeze_Entity): The check for No_Default_Initialization
3154 on objects is moved here.
3156 2008-05-26 Eric Botcazou <ebotcazou@adacore.com>
3158 * s-casi16.adb (Uhalf): Rewrite it as integer with small alignment.
3159 (Compare_Array_S16): Adjust for above change.
3160 * s-casi32.adb (Uword): Likewise.
3161 (Compare_Array_S32): Likewise.
3162 * s-casi64.adb (Uword): Likewise.
3163 (Compare_Array_S64): Likewise.
3164 * s-caun16.adb (Uhalf): Likewise.
3165 (Compare_Array_U16): Likewise.
3166 * s-caun32.adb (Uword): Likewise.
3167 (Compare_Array_U32): Likewise.
3168 * s-caun64.adb (Uword): Likewise.
3169 (Compare_Array_U64): Likewise.
3171 2008-05-26 Robert Dewar <dewar@adacore.com>
3173 * exp_ch6.adb: Add ??? comment for previous change
3175 * exp_vfpt.adb: Minor reformatting
3177 * exp_vfpt.ads: Add ??? comment for last change
3179 * sem_attr.adb: Add some ??? comments for previous change
3181 * s-vaflop.ads: Add comments for previous change
3183 2008-05-26 Doug Rupp <rupp@adacore.com>
3185 * s-vaflop-vms-alpha.adb:
3186 Remove System.IO use clause, to prevent spurious ambiguities when
3187 package is access through rtsfind.
3189 2008-05-26 Sergey Rybin <rybin@adacore.com>
3191 * tree_io.ads (ASIS_Version_Number): Update because of the changes
3194 2008-05-26 Ed Schonberg <schonberg@adacore.com>
3197 (Resolve_Attribute, case 'address): S (A .. B)' address can be safely
3198 converted to S (A)'address only if A .. B is known to be a non-null
3201 2008-05-26 Doug Rupp <rupp@adacore.com>
3204 (Return_D, Return_F, Return_G): New functions.
3207 (Return_D, Return_F, Return_G): New functions.
3210 (Expand_Vax_Foreign_Return): New procedure
3213 (Expand_Vax_Foreign_Return): New procedure
3216 (RE_Return_D, RE_Return_F, RE_Return_G): New RE_Ids
3217 (RE_Return_D, RE_Return_F, RE_Return_G): New RE_Unit_Table elements
3221 (Expand_N_Function_Call): Call Expand_Vax_Foreign_Return.
3223 * s-vaflop-vms-alpha.adb:
3224 (Return_D, Return_F, Return_G): New functions.
3226 2008-05-26 Gary Dismukes <dismukes@adacore.com>
3228 * exp_ch3.adb (Build_Array_Init_Proc): Only set Init_Proc to a dummy
3229 init proc entity when there is actual default initialization associated
3230 with the component type, to avoid spurious errors on objects of scalar
3231 array types that are marked Is_Public when No_Default_Initialization
3234 2008-05-26 Thomas Quinot <quinot@adacore.com>
3236 * rtsfind.ads, rtsfind.adb:
3237 (RE_Get_RACW): New runtime library entity provided by PolyORB s-parint.
3238 (Check_RPC): Support per-PCS-kind API versioning.
3240 exp_dist.ads, exp_dist.adb:
3241 (Build_Stub_Tag, Get_Stub_Elements): New utility subprograms.
3242 (PolyORB_Support.Add_RACW_From_Any): Offload common code to new runtime
3243 library function Get_RACW.
3244 (PolyORB_Support.Add_RACW_To_Any): Offload common code to new runtime
3245 library function Get_Reference.
3246 (PolyORB_Support.Add_RACW_Read_Attribute): Use Get_RACW instead of going
3247 through an intermediate Any.
3248 (PolyORB_Support.Add_RACW_Write_Attribute): Use Get_Reference instead of
3249 going through an intermediate Any.
3251 * sem_dist.adb: Minor reformatting.
3253 2008-05-26 Javier Miranda <miranda@adacore.com>
3255 * einfo.ads (Abstract_Interface_Alias): Renamed as Interface_Alias.
3256 (Set_Abstract_Interface_Alias): Renamed as Set_Interface_Alias.
3257 (Is_Internal): Adding documentation on internal entities that have
3258 attribute Interface_Alias (old attribute Abstract_Interface_Alias)
3260 * einfo.adb (Abstract_Interface_Alias): Renamed as Interface_Alias.
3261 (Set_Abstract_Interface_Alias): Renamed as Set_Interface_Alias.
3262 Added assertion to force entities with this attribute to have
3263 attribute Is_Internal set to True.
3264 (Next_Tag_Component): Simplify assertion using attribute Is_Tag.
3266 * sem_ch3.adb (Derive_Interface_Subprograms): This subprogram has been
3267 renamed as Derive_Progenitor_Subprograms. In addition, its code is
3268 a new implementation.
3269 (Add_Interface_Tag_Components): Remove special management of
3270 synchronized interfaces.
3271 (Analyze_Interface_Declaration): Minor reformating
3272 (Build_Derived_Record_Type): Minor reformating
3273 (Check_Abstract_Overriding): Avoid reporting error in case of abstract
3274 predefined primitive inherited from interface type because the body of
3275 internally generated predefined primitives of tagged types are generated
3276 later by Freeze_Type
3277 (Derive_Subprogram): Avoid generating an internal name if the parent
3278 subprogram overrides an interface primitive.
3279 (Derive_Subprograms): New implementation that keeps separate the
3280 management of tagged types not implementing interfaces, from tagged
3281 types that implement interfaces.
3282 (Is_Progenitor): New implementation.
3283 (Process_Full_View): Add documentation
3284 (Record_Type_Declaration): Replace call to Derive_Interface_Subprograms
3285 by call to Derive_Progenitor_Subprograms.
3287 * sem_ch6.ads (Is_Interface_Conformant): New subprogram.
3288 (Check_Subtype_Conformant, Subtype_Conformant): Adding new argument
3289 Skip_Controlling_Formals.
3291 * sem_ch6.adb (Is_Interface_Conformant): New subprogram.
3292 (Check_Conventions): New implementation. Remove local subprogram
3293 Skip_Check. Remove formal Search_From of routine Check_Convention.
3294 (Check_Subtype_Conformant, Subtype_Conformant): Adding new argument
3295 Skip_Controlling_Formals.
3296 (New_Overloaded_Entity): Enable addition of predefined dispatching
3300 (Find_Primitive_Covering_Interface): New subprogram.
3302 * sem_disp.adb (Check_Dispatching_Operation): Disable registering
3303 the task body procedure as a primitive of the corresponding tagged
3305 (Check_Operation_From_Private_Type): Avoid adding twice an entity
3306 to the list of primitives.
3307 (Find_Primitive_Covering_Interface): New subprogram.
3308 (Override_Dispatching_Operation): Add documentation.
3310 * sem_type.adb (Covers): Minor reformatings
3312 * sem_util.ads (Collect_Abstract_Interfaces): Renamed as
3315 (Has_Abstract_Interfaces): Renamed as Has_Interfaces.
3316 (Implements_Interface): New subprogram.
3317 (Is_Parent): Removed.
3318 (Primitive_Names_Match): New subprogram.
3319 (Remove_Homonym): Moved here from Derive_Interface_Subprograms.
3320 (Ultimate_Alias): New subprogram.
3322 * sem_util.adb (Collect_Abstract_Interfaces): Renamed as
3324 Remove special management for synchronized types. Rename formal. Remove
3325 internal subprograms Interface_Present_In_Parent and Add_Interface.
3326 (Has_Abstract_Interfaces): Renamed as Has_Interfaces. Replace assertion
3327 on non-record types by code to return false in such case.
3328 (Implements_Interface): New subprogram.
3329 (Is_Parent): Removed. No special management is now required for
3330 synchronized types covering interfaces.
3331 (Primitive_Names_Match): New subprogram.
3332 (Remove_Homonym): Moved here from Derive_Interface_Subprograms.
3333 (Ultimate_Alias): New subprogram.
3335 * exp_ch3.adb (Add_Internal_Interface_Entities): New subprogram.
3336 Add internal entities associated with secondary dispatch tables to
3337 the list of tagged type primitives that are not interfaces.
3338 (Freeze_Record_Type): Add new call to Add_Internal_Interface_Entities
3339 (Make_Predefined_Primitive_Specs): Code reorganization to improve
3340 the management of predefined equality operator. In addition, if
3341 the type has an equality function corresponding with a primitive
3342 defined in an interface type, the inherited equality is abstract
3343 as well, and no body can be created for it.
3345 * exp_disp.ads (Is_Predefined_Dispatching_Operation): Moved from
3346 exp_util to exp_disp.
3347 (Is_Predefined_Interface_Primitive): New subprogram. Returns True if
3348 an entity corresponds with one of the predefined primitives required
3349 to implement interfaces.
3350 Update copyright notice.
3352 * exp_disp.adb (Set_All_DT_Position): Add assertion. Exclude from the
3353 final check on abstract subprograms all the primitives associated with
3354 interface primitives because they must be visible in the public and
3356 (Write_DT): Use Find_Dispatching_Type to locate the name of the
3357 interface type. This allows the use of this routine, for debugging
3358 purposes, when the tagged type is not fully decorated.
3359 (Is_Predefined_Dispatching_Operation): Moved from exp_util to exp_disp.
3360 Factorize code calling new subprogram Is_Predefined_Interface_Primitive.
3361 (Is_Predefined_Interface_Primitive): New subprogram. Returns True if an
3362 entity corresponds with one of the predefined primitives required to
3363 implement interfaces.
3365 * exp_util.adb (Find_Interface_ADT): New implementation
3366 (Find_Interface): Removed.
3368 * sprint.adb (Sprint_Node_Actual): Generate missing output for the
3369 list of interfaces associated with nodes
3370 N_Formal_Derived_Type_Definition and N_Private_Extension_Declaration.
3372 2008-05-26 Thomas Quinot <quinot@adacore.com>
3374 * exp_ch5.adb (Make_Tag_Ctrl_Assignment): Add missing guard on
3375 condition for assignment to temporary.
3377 2008-05-26 Ed Schonberg <schonberg@adacore.com>
3379 * exp_ch4.adb (Expand_Concatenate_Other): Add explicit constraint
3380 checks on the upper bound if the index type is a modular type, to
3381 prevent wrap-around computations when size is close to upper bound of
3384 2008-05-26 Robert Dewar <dewar@adacore.com>
3386 * sem_ch3.adb: Minor reformatting
3388 2008-05-26 Ed Schonberg <schonberg@adacore.com>
3390 * sem_ch12.adb (Remove_Parent): Use specification of instance
3391 to retrieve generic parent,
3392 to handle properly the case where the instance is a child unit.
3393 Add guard to handle properly wrapper packages.
3396 2008-05-26 Thomas Quinot <quinot@adacore.com>
3398 * sinfo.ads: Minor reformatting
3400 2008-05-26 Hristian Kirtchev <kirtchev@adacore.com>
3402 * exp_ch4.adb (Expand_N_Type_Conversion): Minor code reformatting.
3403 Generate a tag check when the result subtype of a function, defined by
3404 an access definition, designates a specific tagged type.
3405 (Make_Tag_Check): New routine.
3407 2008-05-26 Arnaud Charlet <charlet@adacore.com>
3409 * ceinfo.adb, csinfo.adb: Remove warnings. Update headers.
3411 2008-05-26 Eric Botcazou <ebotcazou@adacore.com>
3413 * gigi.h (gigi): Remove bogus ATTRIBUTE_UNUSED marker.
3414 (builtin_decl_for): Likewise.
3415 * trans.c (gigi): Likewise.
3416 * utils.c (def_builtin_1): Fix formatting.
3418 2008-05-26 Hristian Kirtchev <kirtchev@adacore.com>
3420 * exp_ch3.adb (Build_Init_Statements): Alphabetize local variables.
3421 Create the statements which map a string name to protected or task
3424 * exp_ch9.adb: Add with and use clause for Stringt.
3425 Minor code reformatting.
3426 (Build_Entry_Names): New routine.
3427 (Make_Initialize_Protection, Make_Task_Create_Call): Generate a value
3428 for flag Build_Entry_Names which controls the allocation of the data
3429 structure for the string names of entries.
3431 * exp_ch9.ads (Build_Entry_Names): New subprogram.
3433 * exp_util.adb (Entry_Names_OK): New function.
3435 * exp_util.ads (Entry_Names_OK): New function.
3437 * rtsfind.ads: Add RO_PE_Set_Entry_Name and RO_TS_Set_Entry_Name to
3438 enumerations RE_Id and RE_Unit_Table.
3440 * s-taskin.adb Add with and use clause for Ada.Unchecked_Deallocation.
3441 (Free_Entry_Names_Array): New routine.
3443 * s-taskin.ads: Comment reformatting.
3444 Add types String_Access, Entry_Names_Array, Entry_Names_Array_Access.
3445 Add component Entry_Names to record Ada_Task_Control_Block.
3446 (Free_Entry_Names_Array): New routine.
3448 * s-tassta.adb (Create_Task): If flag Build_Entry_Names is set,
3449 dynamically allocate an array
3450 of string pointers. This structure holds string entry names.
3451 (Free_Entry_Names): New routine.
3452 (Free_Task, Vulnerable_Free_Task): Deallocate the entry names array.
3453 (Set_Entry_Names): New routine.
3456 (Create_Task): Add formal Build_Entry_Names. The flag is used to
3457 control the allocation of the data structure which stores entry names.
3458 (Set_Entry_Name): New routine.
3461 Add with and use clause for Ada.Unchecked_Conversion.
3462 (Finalize): Deallocate the entry names array.
3463 (Free_Entry_Names): New routine.
3464 (Initialize_Protection_Entries): When flag Build_Entry_Names is set,
3465 create an array of string pointers to hold the entry names.
3466 (Set_Entry_Name): New routine.
3469 Add field Entry_Names to record Protection_Entries.
3470 (Initialize_Protection_Entries): Add formal Build_Entry_Names.
3471 (Set_Entry_Name): New routine.
3473 2008-05-26 Vincent Celier <celier@adacore.com>
3476 (Process_Project_Level_Simple_Attributes): process attribute Library_GCC
3479 (Project_Configuration): New component Shared_Lib_Driver
3481 2008-05-26 Ed Schonberg <schonberg@adacore.com>
3484 (Cleanup_Scopes): For a protected operation, transfer finalization list
3485 to protected body subprogram, to force cleanup actions when needed.
3487 2008-05-26 Robert Dewar <dewar@adacore.com>
3489 * sem_cat.adb: Minor reformatting
3491 * gnatname.adb: Minor reformatting
3493 * osint.ads: Minor reformatting
3495 * s-carun8.ads: Minor reformatting
3497 * g-heasor.ads: Minor comment fix (unit is now pure)
3499 2008-05-26 Robert Dewar <dewar@adacore.com>
3502 (Expand_Current_Value): Properly type generated integer literal
3504 2008-05-26 Sergey Rybin <rybin@adacore.com>
3506 * gnat_ugn.texi: Add description for the new gnatcheck rule -
3507 Separate_Numeric_Error_Handlers.
3509 2008-05-26 Pascal Obry <obry@adacore.com>
3511 * sem_aggr.adb: Minor reformatting.
3513 2008-05-26 Jose Ruiz <ruiz@adacore.com>
3516 (To_Target_Priority): Setting the time slice value to 0 or greater sets
3517 the scheduling policy to FIFO within priorities or round-robin
3519 Hence, the priority must be set in this case to the one selected by the
3522 2008-05-26 Ed Schonberg <schonberg@adacore.com>
3525 (Remove_Parent): If the enclosing scope is an instance whose generic
3526 parent is declared within some parent scope of the just completed
3527 instance, make full views of the entities in that parent visible, when
3530 2008-05-26 Kai Tietz <kai.tietz@onevision.com>
3532 * mingw32.h (STD_MINGW): Set to true for target w64.
3534 2008-05-25 Eric Botcazou <ebotcazou@adacore.com>
3536 * trans.c (Attribute_to_gnu) <Code_Address>: Set TREE_NO_TRAMPOLINE
3537 instead of TREE_STATIC on the ADDR_EXPR.
3539 2008-05-24 Eric Botcazou <ebotcazou@adacore.com>
3541 * trans.c (gnat_to_gnu): Do not set source location info on NOP_EXPRs.
3542 (Sloc_to_locus): Do not overwrite known GCC locations when translating
3543 GNAT standard locations.
3545 2008-05-23 Eric Botcazou <ebotcazou@adacore.com>
3547 * gigi.h (mark_visited): Declare.
3548 * decl.c (gnat_to_gnu_entity): Use mark_visited instead of marking
3549 only the topmost node of expressions.
3550 (elaborate_expression_1): Look deeper for read-only variables.
3551 * trans.c (add_decl_expr): Use mark_visited instead of marking by hand.
3552 (mark_visited): Move logic to mark_visited_r. Invoke walk_tree.
3553 (mark_visited_r): New function.
3555 2008-05-23 Vincent Celier <celier@adacore.com>
3557 * snames.adb: New standard name Excluded_Source_List_File.
3559 * snames.ads: New standard name Excluded_Source_List_File.
3561 * prj-attr.adb: New project level attribute Excluded_Source_List_File.
3563 * prj-nmsc.adb: (Find_Excluded_Sources): New parameter Project.
3564 Get excluded sources from
3565 file indicated by attribute Excluded_Source_List_File, when present and
3566 neither Excluded_Source_Files nor Locally_Removed_Files are declared.
3568 2008-05-23 Robert Dewar <dewar@adacore.com>
3570 * exp_dist.adb: Minor reformatting
3572 2008-05-23 Ed Schonberg <schonberg@adacore.com>
3574 * sem_attr.adb (Resolve_Attribute, case 'address): If the prefix is a
3575 slice, convert it to an indexed component, which is equivalent, more
3576 efficient, and usable even if the slice itself is not addressable.
3578 2008-05-23 Olivier Hainque <hainque@adacore.com>
3580 * gnat_ugn.texi (Calling Conventions): Document that the Intrinsic
3581 convention also allows access to named compiler built-in subprograms
3582 such as the GCC __builtin family.
3584 2008-05-23 Vincent Celier <celier@adacore.com>
3586 * prj-nmsc.adb (Check_Naming_Schemes): Check a file for spec, body and
3587 sep. If there are several possibilities, choose the one with the
3590 2008-05-23 Vincent Celier <celier@adacore.com>
3592 * gnatlink.adb (Process_Args): Do not disable scanning of ALI file for
3593 back end switches when executable specified with --GCC= is same as
3594 default, even if there are additional options.
3597 Document when the back end switches from the ALI file are taken into
3598 account when gnatlink is invoked with --GCC=
3600 2008-05-23 Thomas Quinot <quinot@adacore.com>
3603 (copy_File): Do not open destination file if source file is unreadable.
3605 2008-05-23 Eric Botcazou <ebotcazou@adacore.com>
3607 * utils.c (handle_type_generic_attribute): Adjust to accept
3608 fixed arguments before an elipsis.
3610 2008-05-21 Thomas Quinot <quinot@adacore.com>
3612 * g-sothco.ads, g-sothco.adb: New files.
3614 2008-05-20 Thomas Quinot <quinot@adacore.com>
3616 * Makefile.rtl (GNAT.Sockets.Thin_Common): New unit.
3618 * g-sttsne-vxworks.adb: Add missing dependency on Sockets.Constants.
3619 Add missing "with" of Ada.Unchecked_Conversion
3621 * g-soccon-linux-ppc.ads, g-soccon-linux-64.ads, g-soccon-lynxos.ads,
3622 g-soccon-linux-x86.ads, g-soccon-hpux-ia64.ads,
3623 g-soccon-solaris-64.ads, g-soccon-tru64.ads, g-soccon-aix.ads,
3624 g-soccon-irix.ads, g-soccon-hpux.ads, g-soccon-solaris.ads,
3625 g-soccon-vms.ads, g-soccon-mingw.ads, g-soccon-vxworks.ads,
3626 g-socthi-vxworks.adb, g-soccon-freebsd.ads, g-soccon.ads:
3627 Move common code out of GNAT.Sockets.Thin implementations and into
3629 New constant SIZEOF_fd_set
3630 New flag Has_Sockaddr_Len
3631 New constants SIZEOF_sockaddr_in, SIZEOF_sockaddr_in6
3633 * g-stsifd-sockets.adb
3634 (Create): Remove call to Set_Length; use Set_Family to set the family
3635 and (on appropriate platforms) length fields in struct sockaddr.
3637 * g-socthi.adb, g-socthi.ads, g-socthi-vms.ads, g-socthi-vms.adb,
3638 g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vxworks.adb,
3639 g-soccon-darwin.ads, g-soccon-darwin.ads: New constant SIZEOF_fd_set
3640 Move common code out of GNAT.Sockets.Thin implementations and into
3643 * g-socket.ads, g-socket.adb:
3644 Move common code out of GNAT.Sockets.Thin implementations and into
3646 (Connect_Socket, Accept_Socket): Provide new versions of these two
3647 routines that operate with a user specified timeout.
3648 (Bind_Socket, Connect_Socket, Send_Socket): Remove calls to Set_Length,
3649 this is now handled automatically by Set_Family on platforms that
3653 Move common code out of GNAT.Sockets.Thin implementations and into
3655 (SIZEOF_sockaddr_in6): On platforms where IPv6 is not supported, define
3656 this constant to 0 (not -1) because we use it to initialize an
3657 unsigned_char value.
3658 Align values for numeric constants only.
3659 Handle the case of systems that do not support AF_INET6.
3660 New constant SIZEOF_fd_set
3661 New flag Has_Sockaddr_Len
3662 New constants SIZEOF_sockaddr_in, SIZEOF_sockaddr_in6
3664 * gsocket.h: New flag Has_Sockaddr_Len
3665 New constants SIZEOF_sockaddr_in, SIZEOF_sockaddr_in6
3667 2008-05-20 Santiago Uruena <uruena@adacore.com>
3669 * i-cobol.ads: Interfaces.COBOL should be preelaborate.
3671 2008-05-20 Arnaud Charlet <charlet@adacore.com>
3673 * s-linux-hppa.ads (atomic_lock_t): Put back proper alignment now that
3674 the underlying issue with malloc/free has been fixed. Remove associated
3677 Related to PR ada/24533
3679 2008-05-20 Robert Dewar <dewar@adacore.com>
3681 * ali.adb: Correct casing of ASCII.NUL
3683 * styleg-c.adb (Check_Identifier): Handle case of names in ASCII
3686 2008-05-20 Robert Dewar <dewar@adacore.com>
3687 Gary Dismukes <dismukes@adacore.com>
3689 * checks.adb (Apply_Arithmetic_Overflow_Check): Avoid intermediate
3690 overflow if result converted to wider integer type.
3691 (Apply_Type_Conversion_Checks): Don't emit checks on conversions to
3692 discriminated types when discriminant checks are suppressed.
3694 2008-05-20 Vincent Celier <celier@adacore.com>
3696 * cstand.adb (Print_Standard): Issue the correct Size clause for type
3697 Wide_Wide_Character.
3699 2008-05-20 Tristan Gingold <gingold@adacore.com>
3701 * decl.c: Do not emit a variable for a object that has an address
3702 representation clause whose value is known at compile time.
3703 When a variable has an address clause whose value is known at compile
3704 time, refer to this variable by using directly the address instead of
3705 dereferencing a pointer.
3707 2008-05-20 Robert Dewar <dewar@adacore.com>
3710 * einfo.ads, einfo.adb (Non_Binary_Modulus): Applies to all types and
3711 subtypes, always False for non-modular types.
3712 Shared_Var_Assign_Proc (node22) and Shared_Var_Read_Proc (node 15)
3713 entry nodes have been replaced by Shared_Var_Procs_Instance (node22)
3714 for Shared_Storage package.
3715 (Is_RACW_Stub_Type): New entity flag.
3718 (Expand_N_Op_Expon): Avoid incorrect optimization of a*(2**b) in the
3719 case where we have a modular type with a non-binary modules.
3720 Comments reformattings.
3722 * sem_intr.adb: Simplify code not that Non_Binary_Modulus applies to
3725 2008-05-20 Javier Miranda <miranda@adacore.com>
3728 (Build_Record_Aggr_Code): Fix wrong tests checking progenitors. Previous
3729 tests did not covered the case in which the type of the aggregate has
3730 no progenitors but some its parents has progenitors.
3732 2008-05-20 Gary Dismukes <dismukes@adacore.com>
3733 Hristian Kirtchev <kirtchev@adacore.com>
3736 (Expand_N_Object_Declaration): Correct the condition which triggers the
3737 generation of a call to Displace when initializing a class-wide object.
3738 (Build_Dcheck_Functions): Build discriminant-checking for null variants
3739 when Frontend_Layout_On_Target is true to ensure that they're available
3740 for calling when a record variant size function is built in Layout.
3742 2008-05-20 Ed Schonberg <schonberg@adacore.com>
3744 * exp_ch5.adb (Expand_Assign_Record): Within an initialization
3745 procedure for a derived type retrieve the discriminant values from the
3746 parent using the corresponding discriminant.
3747 (Expand_N_Assignment_Statement): Skip generation of implicit
3748 if-statement associated with controlled types if we are
3749 compiling with restriction No_Finalization.
3751 2008-05-20 Vincent Celier <celier@adacore.com>
3753 * prj.adb (Hash (Project_Id)): New function
3754 (Project_Empty): Add new component Interfaces_Defined
3756 * prj.ads (Source_Data): New component Object_Linked
3757 (Language_Config): New components Object_Generated and Objects_Linked
3758 (Hash (Project_Id)): New function
3759 (Source_Data): New Boolean components In_Interfaces and
3760 Declared_In_Interfaces.
3761 (Project_Data): New Boolean component Interfaces_Defined
3764 New project level attribute Object_Generated and Objects_Linked
3765 Add new project level attribute Interfaces
3767 * prj-dect.adb: Use functions Present and No throughout
3768 (Parse_Variable_Declaration): If a string type is specified as a simple
3769 name and is not found in the current project, look for it also in the
3770 ancestors of the project.
3773 Replace procedure Make with procedures Initialize, Process and Finalize
3774 to implement H414-023: process different directories with different
3776 Use functions Present and No throughout
3779 Replace procedure Make with procedures Initialize, Process and Finalize
3782 (Add_Source): Set component Object_Exists and Object_Linked accordnig to
3783 the language configuration.
3784 (Process_Project_Level_Array_Attributes): Process new attributes
3785 Object_Generated and Object_Linked.
3786 (Report_No_Sources): New Boolean parameter Continuation, defaulted to
3787 False, to indicate that the erreor/warning is a continuation.
3788 (Check): Call Report_No_Sources with Contnuation = True after the first
3790 (Error_Msg): Process successively contnuation character and warning
3792 (Find_Explicit_Sources): Check that all declared sources have been found
3793 (Check_File): Indicate in hash table Source_Names when a declared source
3795 (Check_File): Set Other_Part when found
3796 (Find_Explicit_Sources): In multi language mode, check if all exceptions
3797 to the naming scheme have been found. For Ada, report an error if an
3798 exception has not been found. Otherwise, disregard the exception.
3799 (Check_Interfaces): New procedure
3800 (Add_Source): When Other_Part is defined, set mutual pointers in spec
3802 (Check): In multi-language mode, call Check_Interfaces
3803 (Process_Sources_In_Multi_Language_Mode): Set In_Interfaces to False
3804 for an excluded source.
3805 (Remove_Source): A source replacing a source in the interfaces is also
3808 * prj-pars.adb: Use function Present
3810 * prj-part.adb: Use functions Present and No throughout
3811 (Parse_Single_Project): Set the parent project for child projects
3812 (Create_Virtual_Extending_Project): Register project with no qualifier
3813 (Parse_Single_Project): Allow an abstract project to be extend several
3814 times. Do not allow an abstract project to extend a non abstract
3817 * prj-pp.adb: Use functions Present and No throughout
3818 (Print): Take into account the full associative array attribute
3821 * prj-proc.adb: Use functions Present and No throughout
3822 (Expression): Call itself with the same From_Project_Node for the
3823 default value of an external reference.
3825 * prj-strt.adb: Use functions Present and No throughout
3826 (Parse_Variable_Reference): If a variable is specified as a simple name
3827 and is not found in the current project, look for it also in the
3828 ancestors of the project.
3830 * prj-tree.ads, prj-tree.adb (Present): New function
3832 Use functions Present and No throughout
3833 (Parent_Project_Of): New function
3834 (Set_Parent_Project_Of): New procedure
3836 * snames.ads, snames.adb:
3837 Add new standard names Object_Generated and Objects_Linked
3839 2008-05-20 Hristian Kirtchev <kirtchev@adacore.com>
3841 * exp_ch6.adb (Expand_Call): Add guard to ensure that both the parent
3842 and the derived type are of the same kind.
3843 (Expand_Call): Generate type conversions for actuals of
3844 record or array types when the parent and the derived types differ in
3845 size and/or packed status.
3847 2008-05-20 Javier Miranda <miranda@adacore.com>
3848 Ed Schonberg <schonberg@adacore.com>
3850 * exp_disp.adb (Make_DT, Make_Secondary_DT, Make_Tags): Avoid
3851 generating dispatch tables of locally defined tagged types statically.
3852 Remove implicit if-statement that is no longer required.
3853 (Expand_Dispatching_Call): If this is a call to an instance of the
3854 generic dispatching constructor, the type of the first argument may be
3855 a subtype of Tag, so always use the base type to recognize this case.
3857 2008-05-20 Thomas Quinot <quinot@adacore.com>
3860 (GARLIC_Support.Add_RACW_Read_Attribute): When a zero value is received,
3861 and the RACW is null-excluding, raise CONSTRAINT_ERROR instead of
3862 assigning NULL into the result, to avoid a spurious warning.
3863 (Add_RACW_Features, case Same_Scope): Add assertion that designated type
3865 (Add_Stub_Type): Set entity flag Is_RACW_Stub_Type on generated stub
3867 (Build_From_Any_Function, Build_To_Any_Function,
3868 Build_TypeCode_Function): For a type that has user-specified stream
3869 attributes, use an opaque sequence of octets as the representation.
3871 2008-05-20 Kevin Pouget <pouget@adacore.com>
3873 * exp_smem.ads, exp_smem.adb: Construction of access and assign
3874 routines has been replaced by an instantiation of
3875 System.Shared_Storage.Shared_Var_Procs generic package, while expanding
3876 shared variable declaration.
3877 Calls to access and assign routines have been replaced by calls to
3878 Read/Write routines of System.Shared_Storage.Shared_Var_Procs
3879 instantiated package.
3881 * rtsfind.ads: RE_Shared_Var_Procs entry has been added in RE_Unit_Table
3882 It identifies the new generic package added in s-shasto.
3884 * s-shasto.adb, s-shasto.ads: A new generic package has been added, it
3885 is instantiated for each shared passive variable. It provides
3886 supporting procedures called upon each read or write access by the
3890 For this runtime unit (always compiled in GNAT mode), we allow
3891 stream attributes references for limited types for the case where
3892 shared passive objects are implemented using stream attributes,
3893 which is the default in GNAT's persistent storage implementation.
3895 2008-05-20 Ed Schonberg <schonberg@adacore.com>
3898 (Freeze_Enumeration_Type): For a subtype that inherits a foreign
3899 convention from its base type, do not set the type to that of integer,
3900 because it may inherit a size clause.
3901 Warn on a size clause with a size different
3902 from that of Integer, if the type has convention C.
3904 2008-05-20 Vincent Celier <celier@adacore.com>
3907 (Scan_Args): Rewrite to take into account new switch --and to separate
3908 arguments into sections.
3909 (Gnatname): Call Prj.Makr.Initialize, then Prj.Makr.Process for each
3910 section, then Finalize.
3912 2008-05-20 Tristan Gingold <gingold@adacore.com>
3914 * init.c: Enable stack probing on ppc-linux.
3916 * tracebak.c: Add symbolic traceback for ppc-linux.
3918 * system-linux-ppc.ads: Enable stack probing on ppc-linux.
3920 2008-05-20 Arnaud Charlet <charlet@adacore.com>
3923 (common-tools): New rule, to avoid parallel build failure on gnat tools.
3924 Reenable parallel builds on this Makefile.
3926 * Make-lang.in: Update dependencies.
3928 2008-05-20 Robert Dewar <dewar@adacore.com>
3930 * opt.ads (Treat_Restrictions_As_Warnings): New switch
3932 * sem_prag.adb, par-prag.adb, restrict.ads: Implement flag
3933 Treat_Restrictions_As_Warnings.
3935 * switch-c.adb: Recognize new switch -gnatr
3937 * usage.adb: Add line for -gnatr
3939 2008-05-20 Hristian Kirtchev <kirtchev@adacore.com>
3942 (P_Access_Definition): Change the error message when parsing "access
3943 all" in Ada 95 mode. The message no longer forces the user to recompile
3944 in 05 mode only to discover that anonymous access types are not allowed
3947 2008-05-20 Hristian Kirtchev <kirtchev@adacore.com>
3950 (P_Protected): Update the error message on missing "-gnat05" switch when
3951 using interfaces in conjunction with protected types. Remove the
3952 incorrect error message associated with the presence of "private" after
3955 2008-05-20 Ed Schonberg <schonberg@adacore.com>
3957 * sem_aggr.adb: Update comments.
3958 Improve previous change for PR ada/17985
3960 2008-05-20 Thomas Quinot <quinot@adacore.com>
3963 (Set_Categorization_From_Scope): Do not set In_Remote_Types unless in
3964 the visible part of the spec of a remote types unit.
3965 (Validate_Remote_Access_Object_Type_Declaration):
3966 New local subprogram Is_Valid_Remote_Object_Type, replaces
3967 Is_Recursively_Limited_Private.
3968 (Validate_RACW_Primitives): Enforce E.2.2(14) rules: the types of all
3969 non-controlling formals (and the return type, even though this is not
3970 explicit in the standard) must support external streaming.
3971 (Validate_RCI_Subprogram_Declaration): Enforce E.2.3(14) rules: same
3972 as above for of RAS types and RCI subprograms. (The return type is not
3974 Update comments related to RACWs designating limited interfaces per
3975 ARG ruling on AI05-060.
3977 * sem_util.ads, sem_util.adb
3978 (Is_Remote_Access_To_Class_Wide_Type): Only rely on Is_Remote_Types and
3979 Is_Remote_Call_Interface to identify RACW types in a stable and
3980 consistent way. We used to rely in this predicate on the privateness of
3981 the designated type and its ancestors, but depending on the currently
3982 visible private parts, this caused false negatives. We now uniformly
3983 rely on checks made at the point where the RACW type is declared.
3984 (Inspect_Deferred_Constant_Completion): Moved from Sem_Ch7.
3986 2008-05-20 Javier Miranda <miranda@adacore.com>
3987 Ed Schonberg <schonberg@adacore.com>
3988 Hristian Kirtchev <kirtchev@adacore.com>
3991 (Analyze_Object_Declaration): Fix over-conservative condition
3992 restricting use of predefined assignment with tagged types that have
3994 (Analyze_Object_Declaration): Relax the check regarding deferred
3995 constants declared in scopes other than packages since they can be
3996 completed with pragma Import.
3997 Add missing escaping of all-caps word 'CPP' in error messages.
3998 (Build_Discriminated_Subtype): Do not inherit representation clauses
3999 from parent type if subtype already carries them, because they are
4000 inherited earlier during derivation and already include those that may
4001 come from a partial view.
4003 * sem_ch9.adb, sem_ch5.adb, sem_ch6.adb (Analyze_Subprogram_Body):
4004 Check the declarations of a subprogram body for proper deferred
4005 constant completion.
4007 * sem_ch7.ads, sem_ch7.adb
4008 (Inspect_Deferred_Constant_Completion): Moved to sem_util.
4010 2008-05-20 Ed Schonberg <schonberg@adacore.com>
4011 Thomas Quinot <quinot@adacore.com>
4014 (Try_Indexed_Call): Handle properly a construct of the form F(S) where
4015 F is a parameterless function that returns an array, and S is a subtype
4017 (Analyze_Call): Insert dereference when the prefix is a parameterless
4018 function that returns an access to subprogram and the call has
4020 Reject a non-overloaded call whose name resolves to denote
4021 a primitive operation of the stub type generated to support a remote
4022 access-to-class-wide type.
4024 2008-05-20 Ed Schonberg <schonberg@adacore.com>
4027 (Note_Redundant_Use): Diagnose a redundant use within a subprogram body
4028 when there is a use clause for the same entity in the context.
4029 (Analyze_Subprogram_Renaming): A renaming_as_body is legal if it is
4030 created for a stream attribute of an abstract type or interface type.
4032 2008-05-20 Thomas Quinot <quinot@adacore.com>
4034 * sem_dist.ads, sem_dist.adb (Is_RACW_Stub_Type_Operation): New
4038 (Add_One_Interp): Ignore any interpretation that is a primitive
4039 operation of an RACW stub type (these primitives are only executed
4040 through dispatching, never through static calls).
4041 (Collect_Interps): When only one interpretation has been found, set N's
4042 Entity and Etype to that interpretation, otherwise Entity and Etype may
4043 still refer to an interpretation that was ignored by Add_One_Interp,
4044 in which case would end up with being marked as not overloaded but with
4045 an Entity attribute not pointing to its (unique) correct interpretation.
4047 2008-05-20 Ed Schonberg <schonberg@adacore.com>