blob: 4e34213ea802b67a1cd01683a10a7739de8ab39c [file] [log] [blame]
2008-12-09 Jakub Jelinek <>
PR ada/38450
* gcc-interface/utils.c (finish_record_type): Use SET_TYPE_MODE.
* gcc-interface/decl.c (gnat_to_gnu_entity, make_aligning_type):
2008-12-05 Sebastian Pop <>
PR bootstrap/38262
* gcc-interface/ (gnat1): Add BACKENDLIBS, remove GMPLIBS.
2008-11-29 Eric Botcazou <>
PR ada/30827
* g-comver.adb (Ver_Len_Max): Fix inconsistency.
2008-11-27 Eric Botcazou <>
* gcc-interface/decl.c: Fix various nits.
2008-11-20 Eric Botcazou <>
* gcc-interface/utils.c (init_gigi_decls): Fix type mismatch.
2008-11-16 Eric Botcazou <>
PR ada/38127
* gcc-interface/decl.c (make_type_from_size) <INTEGER_TYPE>: Do not
special-case boolean types. Propagate the name.
* gcc-interface/targtyps.c: Tweak comment.
2008-11-15 Geert Bosch <>
* gcc-interface/trans.c (emit_check): Put back a final save_expr
to prevent exponential expansion during gimplification.
2008-11-15 Eric Botcazou <>
* gcc-interface/lang-specs.h: Expand -coverage and reorder switches.
2008-11-15 Eric Botcazou <>
* gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Force constants
initialized to a static constant to be statically allocated even if
they are of a padding type, provided the original type also has
constant size.
2008-11-15 Laurent Guerby <>
PR ada/37993
* gcc-interface/ Add multilib handling for x86_64
on darwin.
* New file.
2008-11-13 Olivier Hainque <>
* gcc-interface/decl.c (gnat_to_gnu_entity) <case E_Function>:
Turn Ada Pure on subprograms back into GCC CONST when eh constructs
are explicit to the middle-end. Tidy.
2008-11-09 Eric Botcazou <>
* gcc-interface/ada-tree.def (PLUS_NOMOD_EXPR): New tree code.
* gcc-interface/utils2.c (build_binary_op) <PREINCREMENT_EXPR>: Make
<PLUS_NOMOD_EXPR>: New case.
* gcc-interface/trans.c (Loop_Statement_to_gnu): Build increment-and-
assignment statement instead of using an increment operator.
2008-11-07 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
* New file.
* gcc-interface/ (mips-sgi-irix6*): Support O32 and N64
2008-11-07 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
PR ada/37681
* New file.
* gcc-interface/ (*86-solaris2*): Support x86_64 multilib.
2008-11-07 Bechir Zalila <>
Eric Botcazou <>
PR ada/34289
* (Enable_Switch_Storing): Declare.
* lib.adb: (Enable_Switch_Storing): New procedure.
* switch-c.adb (Scan_Front_End_Switches): Add support for -gnatea.
* make.adb: (Compile_Sources.Compile): Add -gnatea as first option.
(Display): Never display -gnatea
* gcc-interface/lang-specs.h: If -gnatea is present, pass -gnatez.
2008-11-07 Thomas Quinot <>
* gcc-interface/trans.c (Attribute_to_gnu, case Attr_Length): Check
for empty range in original base type, not converted result type.
2008-11-07 Geert Bosch <>
* gcc-interface/trans.c (build_binary_op_trapv): Convert arguments
and result for call to __gnat_mulv64.
2008-11-07 Eric Botcazou <>
* gcc-interface/trans.c: Fix formatting nits.
2008-11-07 Geert Bosch <>
* gcc-interface/trans.c (build_binary_op_trapv): Avoid emitting
overflow check for constant result.
2008-11-07 Geert Bosch <>
* gcc-interface/trans.c (build_binary_op_trapv): Use more efficient
overflow check for addition/subtraction if neither operand is constant.
2008-11-06 Eric Botcazou <>
* gcc-interface/ (SPARC/Solaris): Use a common set of
files for the target-dependent part of the runtime.
(SPARC/Linux): Likewise.
2008-11-06 Eric Botcazou <>
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Out_Parameter>: If not
optimizing, create a PARM_DECL pointing to the VAR_DECL for debugging
2008-11-06 Eric Botcazou <>
* gcc-interface/misc.c (gnat_printable_name): Always return a copy
in GC memory.
2008-11-06 Eric Botcazou <>
PR ada/19419
* gcc-interface/trans.c (gnat_to_gnu) <N_Assignment_Statement>:
Generate a call to memmove for an assignment between overlapping
array slices.
2008-11-02 Andreas Krebbel <>
PR target/37977
* gcc-interface/ Add multilib handling for
s390-linux and s390x-linux.
2008-10-24 Jakub Jelinek <>
* gcc-interface/ (check-ada-subtargets): Depend on
check-acats-subtargets and check-gnat-subtargets.
(check_acats_targets): New variable.
(check-acats-subtargets, check-acats%): New targets.
(check-acats): If -j is used and CHAPTERS is empty, run the testing
in multiple make goals, possibly parallel, and afterwards run to merge the sum and log files.
2008-10-17 Geert Bosch <>
* gcc-interface/trans.c (gnat_to_gnu) <N_Slice>: Simplify expansion
to use only a single check instead of three, and avoid unnecessary
(emit_check): Avoid useless COMPOUND_EXPRs and SAVE_EXPRs, sometimes
creating more opportunities for optimizations.
2008-10-13 Jakub Jelinek <>
PR middle-end/37601
* gcc-interface/utils.c (gnat_types_compatible_p): Handle
2008-10-07 Eric Botcazou <>
* gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Move code
dealing with volatileness to after code dealing with renaming.
2008-10-06 Eric Botcazou <>
* gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Minor tweaks.
* gcc-interface/trans.c (Pragma_to_gnu): Likewise.
2008-10-06 Eric Botcazou <>
* gcc-interface/utils.c (can_fold_for_view_convert_p): New predicate.
(unchecked_convert): Use it to disable problematic folding with
VIEW_CONVERT_EXPR in the general case. Always disable it for the
special VIEW_CONVERT_EXPR built for integral types and cope with
its addressability issues by preserving the first conversion.
2008-10-01 Andreas Schwab <>
* New file.
* gcc-interface/ Add multilib handling for
2008-09-26 Eric Botcazou <>
* decl.c (gnat_to_gnu_entity) <object>: Cap the alignment promotion
to that of ptr_mode instead of word_mode.
2008-09-26 Eric Botcazou <>
PR ada/5911
* gcc-interface/ (SPARC/Solaris): Add multilib support.
2008-09-25 Samuel Tardieu <>
PR ada/37641
* adaint.c (__gnat_set_non_writable): Use FILE_WRITE_EA
instead of deprecated FILE_WRITE_PROPERTIES.
2008-09-22 Olivier Hainque <>
* gcc-interface/decl.c (gnat_to_gnu_entity): Even when they
are never assigned, volatile entities are not constant for code
generation purposes.
2008-09-21 Laurent Guerby <>
PR ada/5911
* gcc-interface/ Add multilib handling for x86_64
and sparc.
* New file.
2008-09-20 Eric Botcazou <>
* Document new convention for the XVZ variable.
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Generate
debug info if necessary for the type padding the component type.
<E_Array_Subtype>: Likewise.
(maybe_pad_type): Emit the XVZ variable in units.
* gcc-interface/trans.c (Loop_Statement_to_gnu): Fix formatting nits.
(Subprogram_Body_to_gnu): Set the source line of the subprogram's node
on statements generated to initialize the parameter attributes cache.
Set the source line of the end label of the body on the special return
statement built for a procedure with copy-in copy-out parameters.
2008-09-20 Eric Botcazou <>
PR ada/37585
* gcc-interface/utils.c (create_subprog_decl): Disable inlining for
inlined external functions if they contain a nested function not
declared inline.
2008-09-18 Jan Hubicka <>
* gcc-interface/utils.c (create_subprog_decl): Use DECL_DECLARED_INLINE_P.
(end_subprog_body): Do not set DECL_INLINE.
2008-09-17 Pascal Rigaux <>
PR ada/21327
* gnat_ugn.texi: Use proper format in direntry.
2008-09-15 Eric Botcazou <>
* gcc-interface/trans.c (gigi): Declare the name of the compilation
unit as the first global name.
2008-09-14 Jan Hubicka <>
* gcc-interface/ (gnat1): Add CFLAGS.
2008-09-14 Ralf Wildenhues <>
* a-crbtgk.adb,, a-tasatt.adb,,
bindgen.adb, checks.adb,, exp_aggr.adb, exp_ch11.adb,
exp_ch3.adb, exp_ch4.adb, exp_ch6.adb, exp_ch7.adb, exp_ch9.adb,, exp_disp.adb, exp_dist.adb, exp_pakd.adb,
exp_util.adb,, g-comlin.adb,,
g-diopit.adb,, gcc-interface/decl.c,
gcc-interface/gigi.h, gcc-interface/trans.c,
lib-load.adb,, make.adb, mlib-prj.adb,,, par-ch10.adb, par-ch5.adb, par.adb,,
s-oscons-tmplt.c,,,,, s-taprop-vms.adb, sem.adb, sem_ch10.adb,
sem_ch11.adb, sem_ch12.adb, sem_ch13.adb, sem_ch3.adb,, sem_ch4.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb,
sem_elim.adb, sem_prag.adb, sem_util.adb,,
sem_warn.adb,, styleg.adb, Fix typos in
* Fix typos.
2008-09-10 Joel Sherrill <>
* gcc-interface/ Switch RTEMS to s-interr-hwint.adb.
* Add shared hardware interrupt adapter
layer. RTEMS binds to OS provided adapter routines so there are
no modifications to s-osinte-rtems.adb.
2008-09-09 Arnaud Charlet <>
Joel Sherrill <>
* gcc-interface/ Switch VxWorks to s-interr-hwint.adb.
* s-interr-vxworks.adb: Renamed to s-interr-hwint.adb
* s-interr-hwint.adb: New file.
*, s-osinte-vxworks.adb: Add new functions
needed by s-interr-hwint.adb.
* s-osinte-vxworks-kernel.adb: New file.
2008-09-05 Joel Sherrill <>
* s-stchop-rtems.adb: Add file missed in early commit. Already
referenced in gcc-interface/
2008-08-30 Thomas Quinot <>
* gcc-interface/ Allow s-oscons.{o,ali} to
be built even without a separate libada directory.
2008-08-22 Arnaud Charlet <>
* Fix typo in subprogram reference definition.
2008-08-22 Robert Dewar <>
* s-sopco3.adb, s-sopco4.adb, s-sopco5.adb, s-strops.adb: Minor code fix
to avoid warning.
* g-trasym.adb: Ditto
* s-utf_32.adb (Get_Category): Fix obvious typo
* s-wwdcha.adb: Minor code reorganization
Remove dead code
2008-08-22 Robert Dewar <>
* checks.adb (Determine_Range): Deal with values that might be invalid
* opt.adb, (Assume_No_Invalid_Values[_Config]): New
configuration switches.
* par-prag.adb: Dummy entry for pragma Assume_No_Invalid_Values
* sem_prag.adb: Implement pragma Assume_No_Default_Values
* snames.adb,, snames.h:
Add entries for pragma Assume_No_Invalid_Values
* switch-c.adb: Add processing for -gnatB switch
* usage.adb: Add entry for flag -gnatB (no bad invalid values)
2008-08-22 Javier Miranda <>
* exp_ch3.adb (Build_Init_Statements): Transfer to the body of the
init procedure all the expanded code associated with the spec of
task types and protected types.
2008-08-22 Gary Dismukes <>
* exp_aggr.adb (Static_Array_Aggregate): Call Analyze_And_Resolve on the
component expression copies rather than directly setting Etype and
2008-08-22 Gary Dismukes <>
* sem_util.adb (Has_Preelaborable_Initialization): Revise checking of
private types to allow for types derived from a private type with
preelaborable initialization, but return False for a private extension
(unless it has the pragma).
2008-08-22 Robert Dewar <>
* Minor code reorganization (put entries in alpha order)
2008-08-22 Pascal Obry <>
* initialize.c, adaint.c: Use Lock_Task and Unlock_Task for non-blocking
2008-08-22 Geert Bosch <>
* gcc-interface/trans.c: Define FP_ARITH_MAY_WIDEN
(convert_with_check): Only use longest_float_type if FP_ARITH_MAY_WIDEN is 0
2008-08-22 Doug Rupp <>
* bindgen.adb [VMS] (Gen_Adainit_Ada, Gen_Adainit_C): Import and call
* init.c
(__gnat_set_features): New function.
(__gnat_features_set): New tracking variable.
(__gl_no_malloc_64): New feature global variable
2008-08-22 Ed Schonberg <>
* sem_ch8.adb (Use_One_Type): Do not emit warning message about redundant
use_type_clause in an instance.
2008-08-22 Bob Duff <>
* Remove pragma Precondition, since it breaks some builds.
2008-08-22 Robert Dewar <>
* exp_ch6.adb: Minor reformatting
* exp_ch7.adb: Minor reformatting
* Put routines in proper alpha order
* exp_dist.adb: Minor reformatting
2008-08-22 Vincent Celier <>
* Minor comment update
2008-08-22 Robert Dewar <>
* sem_ch5.adb (One_Bound): Fix latent bug involving secondary stack
2008-08-22 Ed Schonberg <>
* exp_tss.adb:
(Base_Init_Proc): For a protected subtype, use the base type of the
corresponding record to locate the propoer initialization procedure.
2008-08-22 Robert Dewar <>
* checks.adb:
(In_Subrange_Of): New calling sequence
(Determine_Range): Prepare for new processing using base type
* exp_ch4.adb:
(Compile_Time_Compare): Use new calling sequence
* exp_ch5.adb:
(Compile_Time_Compare): Use new calling sequence
* sem_eval.adb:
(Compile_Time_Compare): New calling sequence allows dealing with
invalid values.
(In_Subrange_Of): Ditto
(Compile_Time_Compare): New calling sequence allows dealing with
invalid values.
(In_Subrange_Of): Ditto
2008-08-22 Pascal Obry <>
* adaint.c: Fix possible race condition on win32_wait().
2008-08-22 Bob Duff <>
* exp_ch5.adb, exp_ch7.adb,, exp_util.adb, freeze.adb,
exp_ch4.adb,, exp_ch6.adb, sem_ch6.adb, exp_aggr.adb,
exp_intr.adb, exp_ch3.adb: Rename:
Exp_Ch7.Controlled_Type => Needs_Finalization
Exp_Ch7.CW_Or_Controlled_Type => CW_Or_Has_Controlled_Part
Exp_Ch5.Expand_N_Extended_Return_Statement.Controlled_Type =>
(Has_Some_Controlled_Component): Fix bug in array case.
2008-08-22 Robert Dewar <>
* sem_ch8.adb: Minor reformatting
2008-08-22 Kevin Pouget <>
*, s-shasto.adb: Move Shared_Var_ROpen, Shared_Var_WOpen and
Shared_Var_Close procedure specifications from package spec to package body.
* Remove RE_Shared_Var_Close, RE_Shared_Var_ROpen,
RE_Shared_Var_WOpen entries.
* exp_dist.adb: Update RE_Any_Content_Ptr to RE_Any_Container_Ptr in
Build_To_Any_Call, Build_TypeCode_Call and Build_From_Any_Call procedures.
2008-08-22 Eric Botcazou <>
* init.c: adjust EH support code on Alpha/Tru64 as well.
* raise-gcc.c: Add back a couple of comments.
2008-08-22 Ed Schonberg <>
* exp_ch5.adb (Expand_Simple_Function_Return): If secondary stack is
involved and the return type is class-wide, use the type of the expression
for the generated access type. Suppress useless discriminant checks on the
2008-08-22 Bob Duff <>
* exp_ch7.adb: Minor comment fix
* Minor comment fix
2008-08-22 Thomas Quinot <>
* sem_ch8.adb: Minor reformatting
Minor code reorganization (introduce subprogram to factor duplicated
2008-08-22 Sergey Rybin <>
* gnat_ugn.texi: Change the description of gnatcheck default rule
2008-08-22 Eric Botcazou <>
* init.c (__gnat_adjust_context_for_raise): Delete for AIX, HP-UX,
Solaris, FreeBSD, VxWorks and PowerPC/Linux. For x86{-64}/Linux,
do not adjust the PC anymore.
(__gnat_error_handler): Do not call __gnat_adjust_context_for_raise
on AIX, HP-UX, Solaris, FreeBSD and VxWorks.
* raise-gcc.c (get_call_site_action_for): Use _Unwind_GetIPInfo
instead of _Unwind_GetIP.
2008-08-22 Gary Dismukes <>
* exp_aggr.adb (Static_Array_Aggregate): When a static array aggregate
with a range is transformed into a positional aggregate, any copied
component literals should be marked Is_Static_Expression.
* sem_eval.adb (Compile_Time_Known_Value): Don't treat null literals as
not being known at at compile time when Configurable_Run_Time_Mode is
2008-08-22 Robert Dewar <>
* exp_attr.adb:
(Expand_N_Attribute_Reference): No validity checking on OUT parameter of
Read or Input attribute.
2008-08-22 Ed Schonberg <>
* sem_ch8.adb (Use_One_Type): when checking which of two use_type
clauses in related units is redundant, if one of the units is a package
instantiation, use its instance_spec to determine which unit is the
ancestor of the other.
2008-08-22 Javier Miranda <>
* exp_attr.adb (Expand_N_Attribute_Reference): In case of access
attributes add missing support to handle designated types that come
from the limited view.
* exp_disp.adb (Expand_Interface_Conversion): Remove wrong assertion.
2008-08-22 Sergey Rybin <>
* Add entry for new gnatcheck -mNNN option
* gnat_ugn.texi: Add description for gnatcheck option '-m'
2008-08-22 Sergey Rybin <>
* gnat_ugn.texi: Update the gnatcheck subsection for metric rules
acoording to the latest changes in the metric rule interface
2008-08-22 Vincent Celier <>
* make.adb (Check.File_Not_A_Source_Of): New Boolean function
(Check): Check if the file names registered in the ALI file for the
spec, the body and each of the subunits are the ones expected.
2008-08-22 Robert Dewar <>
* g-catiio.adb: Code cleanup.
2008-08-20 Vincent Celier <>
* make.adb (Gnatmake): Remove extra space in version line
* ali.adb:
(Scan_ALI): Use Name_Find, not Name_Enter to get the name of a subunit,
as the name may already have been entered in the table by the Project
2008-08-20 Jose Ruiz <>
* errno.c (__get_errno, __set_errno for MaRTE): Transform then into
weak symbols so we use the version provided by MaRTE when available.
2008-08-20 Emmanuel Briot <>
*, g-catiio.adb:
(Value): Avoid an unnecessary system call to Clock in most cases.
This call is only needed when only the time is provided in the string,
and ignored in all other cases. This is more efficient.
2008-08-20 Eric Botcazou <>
* raise-gcc.c: Fix formatting nits.
2008-08-20 Robert Dewar <>
* sem_ch13.adb:
(Adjust_Record_For_Reverse_Bit_Order): Do not access First_Bit for
non-existing component clause.
* exp_ch5.adb: Minor reformatting
* g-comlin.adb: Minor reformatting
* make.adb: Minor reformatting
* prj-proc.adb: Minor reformatting
* Minor reformatting
2008-08-20 Vincent Celier <>
* make.adb (Gnatmake_Switch_Found): New Boolean global variable
(Switch_May_Be_Passed_To_The_Compiler): New Boolean global variable
(Add_Switches): New Boolean parameter Unknown_Switches_To_The_Compiler
defaulted to True. Fail when Unknown_Switches_To_The_Compiler is False
and a switch is not recognized by gnatmake.
(Gnatmake): Implement new scheme for gnatmake switches and global
compilation switches.
(Switches_Of): Try successively Switches (<file name>),
Switches ("Ada"), Switches (others) and Default_Switches ("Ada").
2008-08-20 Ed Schonberg <>
*, styleg-c.adb (Missing_Overriding): new procedure to
implement style check that overriding operations are explicitly marked
at such.
* (Missing_Overriding): new procedure that provides interface
to previous one.
*, stylesw.adb: New style switch -gnatyO, to enable check
that the declaration or body of overriding operations carries an
explicit overriding indicator.
* sem_ch8.adb
(Analyze_Subprogram_Renaming): if operation is overriding, check whether
explicit indicator should be present.
* sem_ch6.adb (Verify_Overriding_Indicator,
Check_Overriding_Indicator): If operation is overriding, check whether
declaration and/or body of subprogram should be present
2008-08-20 Vincent Celier <>
* prj-nmsc.adb (Check_Naming_Schemes): Accept source file names for
gprbuild when casing is MixedCase, whatever the casing of the letters
in the file name.
2008-08-20 Gary Dismukes <>
* exp_ch3.adb (Build_Array_Init_Proc): Clarify comment related to
creating dummy init proc.
(Requires_Init_Proc): Return False in the case No_Default_Initialization
is in force and the type does not have associated default
initialization. Move test of Is_Public (with tests of restrictions
No_Initialize_Scalars and No_Default_Initialization) to end, past tests
for default initialization.
2008-08-20 Jerome Lambourg <>
* g-comlin.adb (For_Each_Simple_Switch): Take care of switches not part
of any alias or prefix but having attached parameters (as \"-O2\").
2008-08-20 Robert Dewar <>
* s-fileio.adb: Minor reformatting
2008-08-20 Thomas Quinot <>
* exp_strm.adb (Build_Elementary_Input_Call,
Build_Elementary_Write_Call): Fix incorrect condition in circuitry that
selects the stream attribute routines for long float types.
2008-08-20 Vincent Celier <>
* prj-proc.adb (Process_Declarative_Items): Add Location for Array_Data
* (Array_Data): Add a component Location
2008-08-20 Ed Schonberg <>
* sem_prag.adb:
(Analyze_Pragma, case Obsolescent): Add entity information on the pragma
argument for ASIS and navigation use.
2008-08-20 Ed Schonberg <>
* Add comment.
2008-08-20 Bob Duff <>
* Minor comment fix.
2008-08-20 Bob Duff <>
* exp_ch4.adb (Expand_N_And_Then, Expand_N_Or_Else): Improve constant
folding. We were folding things like "False and then ...", but not
"X and then ..." where X is a constant whose value is known at compile
2008-08-20 Hristian Kirtchev <>
* exp_ch5.adb (Controlled_Type): New routine.
(Expand_N_Extended_Return_Statement): When generating a move of the
final list in extended return statements, check the type of the
function and in the case of double expanded return statements, the type
of the returned object.
(Expand_Simple_Function_Return): Perform an interface conversion when
the type of the returned object is an interface and the context is an
extended return statement.
2008-08-20 Ed Schonberg <>
* sem_util.adb (Set_Debug_Info_Needed): If the entity is a private type
and the full view is visible, set flag on full view as well.
2008-08-20 Thomas Quinot <>
* g-comlin.adb: Minor reformatting
Minor code reorganization.
* freeze.adb: Minor reformatting
2008-08-20 Vincent Celier <>
* prj-nmsc.adb (Check_File): An excluded Ada source file may be a
source of another project.
2008-08-20 Pascal Obry <>
* Minor reformatting.
2008-08-20 Arnaud Charlet <>
* Minor reformatting.
2008-08-20 Arnaud Charlet <>
* a-crbtgk.adb, repinfo.adb,,,,,, g-spipat.adb,, g-tasloc.adb, g-debpoo.adb,,,
mdll-utl.adb, g-string.adb,, par-sync.adb,,,,,
g-utf_32.adb, g-hesorg.adb,, s-parint.adb,,,, g-dirope.adb,
sinfo-cn.adb, par-labl.adb, a-ciorse.adb, g-calend.adb,, nlists.h, exp_imgv.adb,,,, g-table.adb, s-memory-mingw.adb,,,, initialize.c, g-regpat.adb,,,, g-regexp.adb,,, g-dyntab.adb,, par-ch12.adb, 9drpc.adb,, s-memory.adb, math_lib.adb,,,
s-regexp.adb, a-exexda.adb, i-cstrea-vms.adb, a-exexpr.adb,, s-imgrea.adb, namet.adb,,
s-inmaop-dummy.adb,, a-ngcefu.adb,,, s-auxdec.adb,, gnatxref.adb, memroot.adb,,,, errutil.adb,, par-util.adb,,,, par-endh.adb,,,
s-osprim-vms.adb,,,,,, namet.h,,,, par-tchk.adb,, memtrack.adb, s-fatgen.adb,
a-exexpr-gcc.adb, g-arrspl.adb, par-ch4.adb, g-cgideb.adb,,
g-altcon.adb,, gnatfind.adb, s-osinte-lynxos-3.adb,
a-exextr.adb,, a-calfor.adb, s-imgcha.adb, argv.c,, g-hesora.adb,, par-ch5.adb, g-md5.adb,,,,,,, a-ngcoar.adb,, a-ngelfu.adb,,
a-numaux-darwin.adb,,, g-os_lib.adb,,,,, a-strfix.adb, a-coorse.adb,,
a-chtgke.adb, s-imgint.adb,,, s-finimp.adb,
mingw32.h, g-heasor.adb, g-alleve.adb, a-ngrear.adb, s-mastop-irix.adb,
s-poosiz.adb, link.c: Fix copyright notice.
2008-08-20 Arnaud Charlet <>
* Update comments.
2008-08-20 Ed Schonberg <>
* sem_ch8.adb (Analyze_Subprogram_Renaming): Inherit Is_Imported flag.
2008-08-20 Gary Dismukes <>
* exp_ch11.adb:
(Expand_Exception_Handlers): Call Make_Exception_Handler instead of
Make_Implicit_Exception_Handler when rewriting an exception handler with
a choice parameter, and pass the handler's Sloc instead of that of the
handled sequence of statements. Make_Implicit_Exception_Handler sets the
Sloc to No_Location (unless debugging generated code), which we don't
want for the case of a user handler.
2008-08-20 Robert Dewar <>
* freeze.adb (Freeze_Record_Type): Improve msg for non-contiguous field
* sem_ch13.adb:
(Adjust_Record_For_Reverse_Bit_Order): Messages about layout are
now labeled as info msgs, not warnings.
* Clarify documentation of Make_Implicit_Exception_Handler
* usage.adb: Minor change to avoid overlong line for -gnatwz/Z
* a-textio.adb: Remove redundant test.
* a-witeio.adb: Minor code reorganization
Remove redundant test found working on another issue
* a-ztexio.adb: Minor code reorganization
Remove redundant test found working on another issue
2008-08-20 Thomas Quinot <>
* s-fileio.adb (Open) Use C helper function to determine whether a
given errno value corresponds to a "file not found" error.
* sysdep.c (__gnat_is_file_not_found_error): New C helper function.
2008-08-20 Jose Ruiz <>
* errno.c (__get_errno for MaRTE): Use the MaRTE function pthread_errno
to get access to the per-task errno variable.
(__set_errno for MaRTE): Do not redefine this function here since it is
already defined in MaRTE.
2008-08-20 Tristan Gingold <>
* gnat_ugn.texi: Gcov is not supported on static library on AIX.
2008-08-20 Robert Dewar <>
* freeze.adb: Minor reformatting
* g-comlin.adb: Minor reformatting
* g-socket.adb: Minor reformatting
* g-socthi-mingw.adb: Minor reformatting
* g-stheme.adb: Minor reformatting
2008-08-20 Ed Schonberg <>
* sem_aggr.adb, sem_type.adb,,,
exp_ch6.adb, exp_aggr.adb (Valid_Ancestor): Resolve
confusion between partial and full views of an ancestor of the context
type when the parent is a private extension declared in a parent unit,
and full views are available for the context type.
2008-08-18 Samuel Tardieu <>
Robert Dewar <>
PR ada/30827
* bindgen.adb (Gen_Output_File_Ada): Zero-terminate the
version string.
Move comment in the right place.
* g-comver.adb (Version): Look for a zero-termination in
addition to a closing parenthesis.
2008-08-18 Samuel Tardieu <>
* exp_ch13.adb, exp_disp.adb, sem_cat.adb, sem_ch10.adb,
* sem_ch12.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb,
* sem_prag.adb, sem_util.adb, sem_warn.adb: Use
Is_Package_Or_Generic_Package instead of hand-crafted tests.
2008-08-18 Samuel Tardieu <>
PR ada/15808
* sem_ch6.adb (Check_Private_Overriding): Check for generic packages
as well.
2008-08-17 Aaron W. LaFramboise <>
* adaint.c (_gnat_set_close_on_exec) [_WIN32]: Implement.
2008-08-16 Eric Botcazou <>
* gcc-interface/trans.c (call_to_gnu): Use the Sloc of the call
for back-copy statements in lieu of that of the actual.
2008-08-16 Eric Botcazou <>
PR ada/20548
* gcc-interface/decl.c (gnat_to_gnu_entity): Use DECL_SIZE_UNIT in the
setjmp test consistently. Adjust for new behavior of flag_stack_check.
* gcc-interface/utils2.c (build_call_alloc_dealloc): Remove redundant
test of flag_stack_check. Adjust for new behavior of flag_stack_check.
2008-08-13 Samuel Tardieu <>
PR ada/36777
*, sem_util.adb (Is_Protected_Self_Reference): New.
* sem_attr.adb (Check_Type): The current instance of a protected
object is not a type name.
(Analyze_Access_Attribute): Accept instances of protected objects.
(Analyze_Attribute, Attribute_Address clause): Ditto.
* exp_attr.adb (Expand_N_Attribute_Reference): Rewrite
the prefix as being the current instance if needed.
2008-08-12 Danny Smith <>
Remove duplicate s-win32.o. Add s-winext.o.
2008-08-12 Danny Smith <>
* g-stsifd-sockets.adb (Create): Replace Constants.SOCK_STREAM
* g-socthi-mingw.adb (C_Select) Replace Constants.MSG_OOB with
2008-08-11 Joel Sherrill <>
* s-oscons-tmplt.c: RTEMS defines AF_INET6 but does support it.
* gsocket.h, socket.c: Update to support RTEMS.
* gcc-interface/ Include CFLAGS_FOR_TARGET when cross.
2008-08-10 Samuel Tardieu <>
Robert Dewar <>
* exp_ch4.adb (Expand_N_Op_Expon): Force evaluation of
left argument even when right argument is 0.
(Expand_N_Op_Mod): Ditto when right argument is 1.
(Expand_N_Op_Multiply): Ditto when any argument is 0.
(Expand_N_Op_Rem): Ditto when right argument is 1.
2008-08-09 Manuel Lopez-Ibanez <>
* gcc-interface/misc.c (gnat_handle_option): Replace set_Wunused
by warn_unused.
2008-08-08 Ed Schonberg <>
* freeze.adb (Generate_Prim_Op_References): New procedure, abstracted
from Freeze_Entity. Used to generate cross-reference information for
types declared in generic packages.
2008-08-08 Thomas Quinot <>
* gcc-interface/ Reintroduce as a
compatibility shim.
2008-08-08 Thomas Quinot <>
* gsocket.h:
On Windows, include <errno.h> and redefine only selected errno values
from their <winsock2.h> definitions.
* Minor reformatting
*, Minor reformatting
* New file.
* g-stheme.adb, g-socthi-vms.adb, g-socthi-vxworks.adb,
g-socthi-mingw.adb, g-sttsne-vxworks.adb, g-socthi.adb,
g-stsifd-sockets.adb, g-socket.adb,,
g-sothco.adb, Add back GNAT.Sockets.Constants as a child
unit, to allow building software that depends on this internal unit
with both older and newer compilers.
2008-08-08 Robert Dewar <>
* s-strxdr.adb: Minor reformatting
2008-08-08 Bob Duff <>
* gnat_ugn.texi: The "Run-Time Checks" section said "arithmetic overflow
checking for integer operations (including division by zero)", which
is wrong -- divide by zero is not part of overflow checking.
Also added misc clarification about what check-suppression means.
* gnat_rm.texi: Clarify the meaning of pragma Suppress.
2008-08-08 Jerome Lambourg <>
* g-comlin.adb (Add_Switch): Handle addition of switches at the
begining of the command line.
(Append, Add): Renaming of Append to Add as this now allows addition
at the begining of the list.
* (Add_Switch): Handle addition of switches at the
begining of the command line.
2008-08-08 Thomas Quinot <>
(Name): Document application scope (only legacy PC serial ports on
Linux and Windows).
2008-08-08 Thomas Quinot <>
* gcc-interface/, gcc-interface/ Revert
previous change, not needed after all.
2008-08-08 Ed Schonberg <>
* exp_ch4.adb (Expand_Allocator_Expression): add check if null
exclusion indicator is present
2008-08-08 Robert Dewar <>
* g-comlin.adb: Minor code reorganization
Minor reformatting
* Minor reformatting
* s-fileio.adb: Minor reformatting
* sem_attr.adb: Minor code reorganization (use Nkind_In)
Minor reformatting
2008-08-06 Samuel Tardieu <>
* gcc-interface/ Use GCC_FOR_TARGET when dealing
with s-oscons-tmplt.i.
2008-08-06 Samuel Tardieu <>
* gcc-interface/ (OSCONS_CPPFLAGS): Remove.
2008-08-06 Ed Schonberg <>
* sem_ch3.adb (Analyze_Component_Declaration): Protect against misuse
of incomplete type.
* sem_ch8.adb (Analyze_Object_Renaming): Diagnose properly a renaming
of a formal parameter of an incomplete type. Improve error message for
other improper uses of incomplete types.
2008-08-06 Robert Dewar <>
* gnat_ugn.texi: Clarify -gnato documentation
2008-08-06 Thomas Quinot <>
* gcc-interface/,
g-socthi-vxworks.adb, g-socthi-mingw.adb, g-sttsne-vxworks.adb,
g-socthi.adb, g-socket.adb,,,,,,,,,,,,,,,,,,, gen-oscons.c,,,,
Remove GNAT.Sockets.Constants. This internal package is replaced by
2008-08-06 Thomas Quinot <>
* gcc-interface/, gcc-interface/
Remove obsolete targets referencing gen-soccon
When generating, use a file name that includes the
THREAD_KIND, to ensure that the (potentially different) version from a
previous build with a different threads flavour does not get reused.
2008-08-06 Thomas Quinot <>
* sem_res.adb: Minor reformatting
* s-fileio.adb (Open): When file open operation fails, raise Name_Error
only when the operating system reports a non-existing file or directory
(ENOENT), otherwise raise Name_Error.
* exp_ch11.adb: Minor reformatting
2008-08-06 Ed Schonberg <>
* sem_ch3.adb (Access_Subprogram_Declaration): If the return type is
incomplete, add the access_to_subprogram type to the list of private
dependents only if the incomplete type will be completed in the current
(Build_Discriminant_Constraints): If the type of the discriminant is
access_to_variable, reject a constraint that is access_to_constant.
2008-08-06 Thomas Quinot <>
* g-socket-dummy.adb,, g-sothco-dummy.adb,, g-socthi-dummy.adb,, New files.
* gcc-interface/, Makefile.rtl: Use placeholder sources
with pragma Unimplemented_Unit for sockets packages on Nucleus.
2008-08-06 Pascal Obry <>
* adaint.c: Another fix for ACL support on Windows.
2008-08-06 Javier Miranda <>
* exp_disp (Expand_Interface_Actuals): Adds missing support for
expansion of calls to subprograms using selected components.
2008-08-06 Ed Schonberg <>
* sem_res.adb (Resolve_Call): Use base type to determine whether a
dereference is needed because a subtype of an access_to_subprogram is
simply an access-subtype
2008-08-06 Jerome Lambourg <>
* g-comlin.adb (Set_Command_Line): Now that aliases can contain
parameters, always specify the expected separator.
2008-08-06 Thomas Quinot <>
* xnmake.adb: Use new XUtil package for platform independent text
2008-08-06 Vincent Celier <>
* gnat_ugn.texi: Document compiler switch -gnateG
2008-08-06 Quentin Ochem <>
* s-stausa.adb (Fill_Stack): Fixed pragma assert and top pattern mark
in the case of an empty pattern size.
(Compute_Result): Do not do any computation in the case of an empty
pattern size.
(Report_Result): Fixed computation of the overflow guard.
2008-08-06 Ed Schonberg <>
* g-awk.adb (Finalize): Do not use directly objects of the type in the
finalization routine to prevent elaboration order anomalies in new
finalization scheme.
2008-08-06 Ed Schonberg <>
* sem_ch3.adb (Find_Type_Name): protect against duplicate incomplete
declaration for the same type.
2008-08-06 Thomas Quinot <>
* sem.adb: Minor rewording (comment)
2008-08-06 Jerome Lambourg <>
* g-comlin.adb (Define_Switch, Get_Switches): New.
(Can_Have_Parameter, Require_Parameter, Actual_Switch): New, used when
ungrouping switches.
(For_Each_Simple_Switch): Allow more control over parameters handling.
This generic method now allows ungrouping of switches with parameters
and switches with more than one letter after the prefix.
(Set_Command_Line): Take care of switches that are prefixed with a
switch handling parameters without delimiter (-gnatya and -gnaty3 for
(Add_Switch, Remove_Switch): Handle parameters possibly present inside
a group, as in gnaty3aM80 (3 and 80 are parameters). Report status of
the operation.
(Start, Alias_Switches, Group_Switches): Take care of parameters
possibly present inside a group.
* (Define_Switch): New method used to define a list of
expected switches, that are necessary for correctly ungrouping switches
with more that one character after the prefix.
(Get_Switches): Method that builds a getopt string from the list of
switches as set previously by Define_Switch.
(Add_Switch, Remove_Switch): New versions of the methods, reporting the
status of the operation. Also allow the removal of switches with
parameters only.
(Command_Line_Configuration_Record): Maintain a list of expected
2008-08-06 Doug Rupp <>
* gcc-interface/decl.c (gnat_to_gnu_param): Force 32bit descriptor if
* gcc-interface/utils2.c (build_call_alloc_dealloc): Force 32bit malloc
if TARGET_MALLOC64 clear.
* gcc-interface/gigi.h (TARGET_ABI_OPEN_VMS): Move here from utils2.c
(TARGET_MALLC64): New macro. Default to clear.
2008-08-06 Doug Rupp <>
* gcc-interface/utils2.c (snames.h) Include
(TARGET_ABI_OPEN_VMS): Initialize.
(build_call_alloc_dealloc); [TARGET_ABI_OPEN_VMS] Allocate on 32bit heap
for Convention C.
2008-08-06 Ed Schonberg <>
* sem_ch3.adb (Process_Discriminants): diagnose redundant or improper
null exclusion in a discriminant declaration
* sem_ch8.adb (Analyze_Object_Renaming): diagnose null exclusion
indicators when type is not an access type.
* sem_ch12.adb (Formal_Object_Declaration): diagnose null exclusion
indicators when type is not an access type.
2008-08-06 Javier Miranda <>
* exp_disp (Expand_Interface_Conversion): Freeze the entity associated
with the target interface before expanding the code of the interface
2008-08-05 Ed Schonberg <>
* freeze.adb:
(Freeze_Entity): A deferred constant does not violate the restriction
* sem_ch3.adb (Process_Subtype): An allocator is a valid construct that
can carry a null exclusion indicator, and on which an error may be
posted if the indicator is redundant.
* sem_ch8.adb (Analyze_Object_Renaming): Verify that a null exclusion
does not apply to a subtype mark that already excludes null.
* sem_ch12.adb (Formal_Object_Declaration): Verify that a null
exclusion does not apply to a subtype mark that already excludes null.
2008-08-05 Thomas Quinot <>
* Makefile.rtl: Compile as part of the runtime library.
2008-08-05 Doug Rupp <>
* Translation for /POINTER_SIZE qualifier.
2008-08-05 Thomas Quinot <>
* gsocket.h: Make this file includable in a Nucleus environment, which
does not support sockets.
* socket.c: Remove Nucleus-specific hack.
2008-08-05 Pascal Obry <>
* adaint.c: Remove support for readable attribute on vxworks and nucleus
2008-08-05 Ed Schonberg <>
* sem_attr.adb:
(Analyze_Attribute, case 'Result): handle properly the case where some
operand of the expression in a post-condition generates a transient
* sem_ch5.adb (Analyze_Assignment_Statement): Apply conversion to
right-hand side when it is an anonymous access_to_subprogram, to force
static accessibility check when needed.
2008-08-05 Sergey Rybin <>
* gnat_ugn.texi: Changing the description of the gnatcheck metrics
rule according to the change in the rule option.
Add documentation for -gnatw.b/-gnatw.B
2008-08-05 Robert Dewar <>
* ug_words: Add entries for -gnatw.b/-gnatw.B
* Add entries for -gnatw.b/-gnatw.B
2008-08-05 Vincent Celier <>
* a-wtdeio.adb (Put (Current_Output)): Use Fore in the call to Put
* a-ztdeio.adb: Ditto.
2008-08-05 Pascal Obry <>
* adaint.c, adaint.h, s-os_lib.adb, Add support for the
readable attribute.
2008-08-05 Vincent Celier <>
* s-wchwts.adb:
(Wide_String_To_String): Returns a String with the same 'First as its
parameter S.
(Wide_Wide_String_To_String): Ditto
(Wide_String_To_String): Document that the lowest index of the returned
String is equal to S'First.
2008-08-05 Thomas Quinot <>
* xoscons.adb,, xutil.adb, s-oscons-tmplt.c: New files.
* gcc-interface/, gcc-interface/ Generate
2008-08-05 Robert Dewar <>
* (Warn_On_Biased_Representation): New flag
* sem_ch13.adb:
(Analyze_Attribute_Definition_Clause): Issue warning when biased
representation is required.
(Minimum_Size): Don't allow biasing if enum rep clause case
* sem_warn.adb:
(Set_Dot_Warning_Switch): Add handling of -gnatw.b/B switches
(Set_Warning_Switch): Include -gnatw.b in -gnatwa, -gnatw.B in gnatws
* usage.adb: Add lines for -gnatw.b/B switches
2008-08-05 Pascal Obry <>
* a-coinve.adb: Reorder the code to avoid uninitialized warning.
* adaint.c: In UNIX cases do not call __gnat_stat but stat directly.
2008-08-05 Thomas Quinot <>
* socket.c: Minor reformatting.
2008-08-05 Robert Dewar <>
* sem_ch3.adb: Minor reformatting
* prj-nmsc.adb: Minor reformatting
2008-08-05 Ed Schonberg <>
* sem_ch12.adb (Validate_Array_Type_Instance): Only apply complex
visibility check on the component type if the simple test fails.
2008-08-05 Jose Ruiz <>
* init.c (__gnat_install_handler for linux): If we are building the
Xenomai run time then we need to do two additional things: avoid
memory swapping and transform the Linux environment task into a native
Xenomai task.
* gcc-interface/ (LIBGNAT_TARGET_PAIRS for xenomai run
time): Use interface to Xenomai native skin and avoid linux-specific
way of setting CPU affinity.
(EH_MECHANISM for the xenomai run time): Use sjlj exception mechanism.
2008-08-05 Bob Duff <>
* Minor comment fix
2008-08-05 Thomas Quinot <>
* g-sercom.adb,, g-sercom-mingw.adb,
g-sercom-linux.adb (Data_Bits): Change literals B7 and B8 to CS7 and
2008-08-05 Robert Dewar <>
* mlib.adb: Minor code reorganization
Minor reformatting
* make.adb: Minor reformatting
* Minor reformatting
* s-os_lib.adb: Minor reformatting
* s-fileio.adb: Minor code reorganization
Minor reformatting
* Minor reformatting
2008-08-05 Bob Duff <>
* sem_ch3.adb (Analyze_Object_Declaration): Avoid type Any_Access in
unresolved initial value of "null", because it causes implicitly
generated "=" operators to be ambiguous, and because this type should
not be passed to gigi.
2008-08-05 Vincent Celier <>
* mlib.adb: Update comments.
* make.adb (Switches_Of): Check for Switches (others), before checking
for Default_Switches ("Ada").
(Gnatmake): Use Builder'Switches (others) in preference to
Builder'Default_Switches ("Ada") if there are several mains.
* prj-attr-pm.adb:
(Add_Attribute): Add component Others_Allowed in Attribute_Record
* prj-attr.adb:
Add markers to indicates that attributes Switches allow others as index
(Others_Allowed_For): New Boolean function, returning True for
attributes with the mark.
(Initialize): Recognize optional letter 'O' as the marker for
associative array attributes where others is allowed as the index.
(Others_Allowed_For): New Boolean function
(Attribute_Record): New Boolean component Others_Allowed
* prj-dect.adb:
(Parse_Attribute_Declaration): For associative array attribute where
others is allowed as the index, allow others as an index.
* prj-nmsc.adb:
(Process_Binder): Skip associative array attributes with index others
(Process_Compiler): Ditto
* prj-util.adb:
(Value_Of (Index, In_Array)): Make no attempt to put in lower case when
index is All_Other_Names.
(All_Other_Names): New constant
* prj-proc.adb:
(Process_Declarative_Items): Skip associative array attribute when index
is reserved word "others".
2008-08-05 Vasiliy Fofanov <>
* gen-oscons.c: Adapt for VMS where termios.h is not available.
2008-08-05 Thomas Quinot <>
* a-rttiev.adb: Minor reformatting (comments)
* gen-soccon.c: Rename to gen-oscons.c
* gen-oscons.c: New file. Now generate System.OS_Constants instead of
Add new constants for GNAT.Serial_Communications and System.File_IO.
2008-08-05 Javier Miranda <>
* sem_util.adb (Collect_Interfaces_Info): Minor reformating.
* exp_ch3.adb (Build_Offset_To_Top_Functions): Code cleanup: the
implementation of this routine has been simplified.
2008-08-05 Pascal Obry <>
* adaint.c, adaint.h, s-os_lib.adb, Fix the
Set_Read_Only Win32 implementation.
2008-08-05 Thomas Quinot <>
* exp_strm.adb: Minor reformatting (comments)
* sem_ch12.adb: Minor reformatting.
2008-08-05 Robert Dewar <>
* sem_ch3.adb: Minor reformatting
* checks.adb: Minor reformatting
2008-08-05 Thomas Quinot <>
* (New_External_Name): Update spec to reflect relaxed
restriction on Prefix.
2008-08-05 Jerome Lambourg <>
* g-comlin.adb (Sort_Sections, Group_Switches): New/Modified internal
methods needed to handle switch sections when building a command line.
(Define_Section, Add_Switch, Remove_Switch, Is_New_Section,
Current_Section): New public methods or methods modified to handle
building command lines with sections.
(Set_Command_Line): Take into account sections when analysing a switch
(Start): Sort the switches by sections before iterating the command line
* (Define_Section, Add_Switch, Remove_Switch,
Is_New_Section, Current_Section): New methods or methods modified to
handle building command lines with sections.
2008-08-05 Ed Schonberg <>
* exp_strm.adb (Build_Record_Or_Elementary_Input_Function): For access
discriminants, indicate that the corresponding object declaration has
no initialization, to prevent spurious warnings when the access type is
2008-08-05 Ed Schonberg <>
* sem_res.adb (Resolve_Call): If this is a call to the predefined
Abort_Task, warn if the call appears within a protected operation.
2008-08-04 Robert Dewar <>
* exp_ch4.adb (Expand_N_In): Suppress range warnings in instances
2008-08-04 Ed Schonberg <>
* sem_ch3.adb:
(Replace_Anonymous_Access_To_Protected_Subprogram): Handle properly an
anonymous access to protected subprogram that is the return type of the
specification of a subprogram body.
* sem_ch6.adb:
(Analyze_Subprogram_Body): if the return type is an anonymous access to
subprogram, freeze it now to prevent access anomalies in the back-end.
* exp_ch9.adb: Minor code cleanup.
Make sure that new declarations are inserted into the tree before
analysis (from code reading).
2008-08-04 Robert Dewar <>
* exp_ch5.adb:
(Expand_Simple_Function_Return): Check No_Secondary_Stack restriction
at point of return.
2008-08-04 Thomas Quinot <>
* sem_type.adb, sem_ch4.adb, sprint.adb, exp_ch3.adb: Minor reformatting
2008-08-04 Vasiliy Fofanov <>
* Fix value for MSG_WAITALL
2008-08-04 Javier Miranda <>
* sem_prag.adb (Process_Convention): Add missing support for
N_Private_Extension_Declaration nodes.
2008-08-04 Robert Dewar <>
* exp_ch4.adb: Minor reformatting
2008-08-04 Pascal Obry <>
* adaint.h: Add missing prototype.
* adaint.c: Refine support for Windows file attributes.
2008-08-04 Robert Dewar <>
* sem_res.adb:
(Valid_Conversion): Catch case of designated types having different
sizes, even though they statically match.
2008-08-04 Javier Miranda <>
* sem_eval.adb (Subtypes_Statically_Match): Remove superfluous patch
added in previous patch to handle access to subprograms.
2008-08-04 Robert Dewar <>
* freeze.adb:
(Freeze_Entity): Only check No_Default_Initialization restriction for
constructs that come from source
2008-08-04 Thomas Quinot <>
* exp_ch6.adb: Minor comment fix.
* sem_ch4.adb: Minor reformatting.
2008-08-04 Robert Dewar <>
* sem_res.adb: (Large_Storage_Type): Improve previous change.
2008-08-04 Pascal Obry <>
* adaint.c, s-os_lib.adb, Use Windows ACL to deal with
file attributes.
2008-08-04 Javier Miranda <>
* sem_ch3.adb (Access_Subprogram_Declaration): Adding missing support
for N_Formal_Object_Declaration nodes. Adding kludge required by
First_Formal to provide its functionality with access to functions.
(Replace_Anonymous_Access_To_Protected_Subprogram): Add missing support
for anonymous access types returned by functions.
* sem_ch5.adb (Analyze_Assignment): Code cleanup to avoid duplicate
conversion of null-excluding access types (required only once to force
the generation of the required runtime check).
* sem_type.adb (Covers): minor reformating
* checks.adb (Null_Exclusion_Static_Checks): Avoid reporting errors
with internally generated nodes. Avoid generating the error inside init
* sem_res.adb (Resolve_Membership_Test): Minor reformating.
(Resolve_Null): Generate the null-excluding check in case of assignment
to a null-excluding object.
(Valid_Conversion): Add missing support for anonymous access to
* sem_ch6.adb (Check_Return_Subtype_Indication): Add missing support for
anonymous access types whose designated type is an itype. This case
occurs with anonymous access to protected subprograms types.
(Analyze_Return_Type): Add missing support for anonymous access to
protected subprogram.
* sem_eval.adb (Subtypes_Statically_Match): In case of access to
subprograms addition of missing check on matching convention. Required
to properly handle access to protected subprogram types.
* exp_ch3 (Build_Assignment): Code cleanup removing duplicated check on
null excluding access types.
2008-08-04 Ed Schonberg <>
* sem_ch12.adb: Add comments
* sem_ch4.adb (Analyze_Allocator): If the designated type is a non-null
access type and the allocator is not initialized, warn rather than
reporting an error.
2008-08-04 Robert Dewar <>
* exp_ch4.adb: Minor reformatting
* exp_dist.adb: Minor reformatting
* g-comlin.adb: Minor reformatting
2008-08-04 Gary Dismukes <>
* exp_aggr.adb (Build_Record_Aggr_Code): Perform a conversion of the
target to the type of the aggregate in the case where the target object
is class-wide.
* exp_ch5.adb (Expand_Simple_Function_Return): When the function's
result type is class-wide and inherently limited, and the expression
has a specific type, create a return object of the specific type, for
more efficient handling of returns of build-in-place aggregates (avoids
conversions of the class-wide return object to the specific type on
component assignments).
* sem_ch6.adb (Check_Return_Subtype_Indication): Suppress the error
about a type mismatch for a class-wide function with a return object
having a specific type when the object declaration doesn't come from
source. Such an object can result from the expansion of a simple return.
2008-08-04 Vasiliy Fofanov <>
*, New files.
* gcc-interface/ Use 64bit-specific system files when
compiling for 64bit windows.
2008-08-04 Jerome Lambourg <>
* g-comlin.adb (Group_Switches): Preserve the switch order when
grouping and allow switch grouping of switches with more than one
character extension (e.g. gnatw.x).
(Args_From_Expanded): Remove this now obsolete method.
2008-08-04 Ed Schonberg <>
* exp_ch4.adb (Get_Allocator_Final_List): Freeze anonymous type for
chain at once, to ensure that type is properly decorated for back-end,
when allocator appears within a loop.
2008-08-04 Kevin Pouget <>
* snames.h, snames.adb,
Add Attr_To_Any, Attr_From_Any and Attr_TypeCode defines.
*, exp_dist.adb: Add Build_From_Any_Call,
Build_To_Any_Call and Build_TypeCode_Call procedures.
* exp_attr.adb, sem_attr.adb: Add corresponding cases.
* Add corresponding names.
* tbuild.adb: Update prefix restrictions to allow '_' character.
2008-08-04 Doug Rupp <>
* gigi.h (fill_vms_descriptor): Add third parameter gnat_actual
* trans.c (call_to_gnu): Call fill_vms_descriptor with new parameter.
* utils2.c (fill_vms_descriptor): Add third parameter for error sloc and
use it. Calculate pointer range overflow using 64bit types.
2008-08-04 Ed Schonberg <>
* sem_ch3.adb (Access_Definition): A formal object declaration is a
legal context for an anonymous access to subprogram.
* sem_ch4.adb (Analyze_One_Call): If the call can be interpreted as an
indirect call, report success to the caller to include possible
* sem_ch6.adb (Check_Return_Type_Indication): Apply proper conformance
check when the type
of the extended return is an anonymous access_to_subprogram type.
* sem_res.adb:
(Resolve_Call): Insert a dereference if the type of the subprogram is an
access_to_subprogram and the context requires its return type, and a
dereference has not been introduced previously.
2008-08-04 Arnaud Charlet <>
* usage.adb (Usage): Minor rewording of -gnatwz switch, to improve
gnatcheck support in GPS.
2008-08-04 Vincent Celier <>
* mlib.adb (Create_Sym_Links): Create relative symbolic links when
2008-08-04 Vincent Celier <>
* gprep.adb (Process_One_File): Call Prep.Preprocess with a Boolean
variable, but don't check the resulting value as it has no impact on
the processing.
(Generate_Processed_File): New Boolean flag, set to True in the compiler
when switch -gnateG is used.
* prep.adb:
(Preprocess): new Boolean out parameter Source_Modified. Set it to True
when the source is modified by the preprocessor and there is no
preprocessing errors.
* (Preprocess): new Boolean out parameter Source_Modified
* sinput-l.adb:
(Load_File): Output the result of preprocessing if the source text was
* switch-c.adb (Scan_Front_End_Switches): Recognize switch -gnateG
* switch-m.adb (Normalize_Compiler_Switches): Normalize switch -gnateG
* ug_words: Add VMS equivalent for -gnateG
Add VMS option /GENERATE_PROCESSED_SOURCE, equivalent to switch -gnateG
2008-08-04 Doug Rupp <>
* gcc-interface/utils2.c:
(fill_vms_descriptor): Raise CE if attempt made to pass 64bit pointer
in 32bit descriptor.
2008-08-04 Robert Dewar <>
* par-ch10.adb: Minor reformatting
* i-cobol.adb: Minor reformatting.
2008-08-04 Ed Schonberg <>
* sem_ch3.adb (Access_Definition): Create an itype reference for an
anonymous access return type of a regular function that is not a
compilation unit.
2008-08-04 Vincent Celier <>
* prj-attr.adb: New Builder attribute Global_Compilation_Switches
* snames.adb: New standard name Global_Compilation_Switches
* New standard name Global_Compilation_Switches
* make.adb: Correct spelling error in comment
2008-08-04 Arnaud Charlet <>
* sem_prag.adb (Check_Form_Of_Interface_Name): Fix handling for CLI
2008-08-04 Thomas Quinot <>
* sem_ch10.adb: Minor comment fix.
2008-08-04 Robert Dewar <>
* restrict.adb: Improved messages for restriction warnings
* Improved messages for restriction messages
* (Profile_Name): Add No_Profile
2008-08-04 Robert Dewar <>
* Correct bad definition of Max_Nonbinary_Modulus
2008-08-04 Robert Dewar <>
* freeze.adb (Freeze_Entity): Check for size clause for boolean warning
2008-08-04 Vincent Celier <>
* prj-proc.adb:
(Copy_Package_Declarations): When inheriting package Naming from a
project being extended, do not inherit source exception names.
2008-08-04 Ed Schonberg <>
* sem_prag.adb (Check_Precondition_Postcondition): When scanning the
list of declaration to find previous subprogram, do not go to the
original node of a generic unit.
2008-08-02 Eric Botcazou <>
* gcc-interface/utils2.c (build_binary_op) <PLUS_EXPR, MINUS_EXPR>:
New case. Convert BOOLEAN_TYPE operation to the default integer type.
2008-08-01 Eric Botcazou <>
* gcc-interface/ada-tree.h (DECL_PARM_ALT): Now DECL_PARM_ALT_TYPE.
* gcc-interface/decl.c (gnat_to_gnu_param): Fix formatting, simplify
and adjust for above renaming.
* gcc-interface/utils.c (convert_vms_descriptor): Likewise. Add new
gnu_expr_alt_type parameter. Convert the expression to it instead
of changing its type in place.
(build_function_stub): Adjust call to above function.
2008-08-01 Eric Botcazou <>
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Constant>: Remove dead
code. Do not get full definition of deferred constants with address
clause for a use. Do not ignore deferred constant definitions with
address clause. Ignore constant definitions already marked with the
error node.
<object>: Remove obsolete comment. For a deferred constant with
address clause, get the initializer from the full view.
* gcc-interface/trans.c (gnat_to_gnu) <N_Attribute_Definition_Clause>:
Rework and remove obsolete comment.
<N_Object_Declaration>: For a deferred constant with address clause,
mark the full view with the error node.
* gcc-interface/utils.c (convert_to_fat_pointer): Rework and fix
formatting nits.
2008-08-01 Hristian Kirtchev <>
* Add block IO versions of stream routines for Strings.
* bindgen.adb, gnat_rm.texi, gnat_ugn.texi,,
sem_prag.adb, snames.adb,, snames.h,
par-prag.adb: Undo previous stream related changes.
* Add new restriction No_Stream_Optimizations.
*, s-ststop.adb: Comment reformatting.
Define enumeration type to designate different IO mechanisms.
Enchance generic package Stream_Ops_Internal to include an
implementation of Input and Output.
* exp_attr.adb (Find_Stream_Subprogram): If restriction
No_Stream_Optimization is active, choose the default byte IO
implementations of stream attributes for Strings.
Otherwise use the corresponding block IO version.
2008-08-01 Olivier Hainque <>
* gcc-interface/decl.c (gnat_to_gnu_entity) <case E_Function>: Do not
turn Ada Pure into GCC const, now implicitely implying nothrow as well.
2008-08-01 Robert Dewar <>
* par-ch3.adb (P_Defining_Identifier): Avoid repeated attempt to
convert plain identifier into defining identifier.
2008-08-01 Robert Dewar <>
* sem_prag.adb (Check_Form_Of_Interface_Name): Refine and improve
* lib-xref.adb: Add error defense.
2008-08-01 Bob Duff <>
*,, Correct comment.
2008-08-01 Gary Dismukes <>
* exp_ch6.adb (Expand_Call): Adjustment to previous fix for passing
correct accessibility levels. In the "when others" case, retrieve the
access level of the Etype of Prev rather than Prev_Orig, because the
original exression has not always been analyzed.
2008-08-01 Robert Dewar <>
* prj-nmsc.adb: Minor reformatting
* sem_ch4.adb: Minor reformatting
Minor code reorganization
* Minor reformatting
* s-os_lib.adb: Minor reformatting
* par-prag.adb (Prag, case Wide_Character_Encoding): Deal with upper
half encodings
* Minor reformatting.
* sem_prag.adb (Analyze_Pragma): Put entries in alpha order
(Analyze_Pragma): Make sure all GNAT pragmas call GNAT_Pragma
* sem_res.adb:
(Resolve_Call): Check violation of No_Specific_Termination_Handlers
* sem_ch12.adb: Minor comment reformatting
* par-ch3.adb (P_Type_Declaration): Properly handle missing type
2008-08-01 Robert Dewar <>
* sem_ch6.adb (Process_PPCs): Don't copy spec PPC to body if not
generating code
2008-08-01 Ed Schonberg <>
* checks.adb (Apply_Float_Conversion_Check): If the expression to be
converted is a real literal and the target type has static bounds,
perform the conversion exactly to prevent floating-point anomalies on
some targets.
2008-08-01 Vincent Celier <>
* prj-attr.adb: New attribute Compiler'Name_Syntax (<lang>)
* prj-nmsc.adb (Process_Compiler): Recognize attribute Name_Syntax
* prj.adb (Object_Exist_For): Use Object_Generated, not
Objects_Generated that is removed and was never modified anyway.
(Path_Syntax_Kind): New enumeration type
(Language_Config): New component Path_Syntax, defaulted to Host.
Components PIC_Option and Objects_Generated removed, as they are not
* snames.adb: New standard name Path_Syntax
* New standard name Path_Syntax
2008-08-01 Vincent Celier <>
* mlib-utl.adb:
(Adalib_Path): New variable to store the path of the adalib directory
when procedure Specify_Adalib_Dir is called.
(Lib_Directory): If Adalib_Path is not null, return its value
(Specify_Adalib_Dir): New procedure
* (Specify_Adalib_Dir): New procedure
2008-08-01 Ed Schonberg <>
* sem_prag.adb:
(Check_Precondition_Postcondition): If not generating code, analyze the
expression in a postcondition that appears in a subprogram body, so that
it is properly decorated for ASIS use.
2008-08-01 Gary Dismukes <>
* exp_ch6.adb (Expand_Call): Remove ugly special-case code that resets
Orig_Prev to Prev in the case where the actual is N_Function_Call or
N_Identifier. This was interfering with other cases that are rewritten
as N_Identifier, such as allocators, resulting in passing of the wrong
accessibility level, and based on testing this code is apparently no
longer needed at all.
2008-08-01 Ed Schonberg <>
* sem_ch4.adb (Analyze_One_Call): Handle complex overloading of a
procedure call whose prefix
is a parameterless function call that returns an access_to_procedure.
2008-08-01 Jose Ruiz <>
* adaint.c (__gnat_tmp_name): Refine the generation of temporary names
for RTX. Adding a suffix that is incremented at each iteration.
2008-08-01 Robert Dewar <>
* sem_ch6.adb (Analyze_Subprogram_Body): Remove special casing of
2008-08-01 Jerome Lambourg <>
* s-os_lib.adb (Normalize_Pathname): Take care of double-quotes in
paths, which are authorized by Windows but can lead to errors when used
2008-08-01 Ed Schonberg <>
* (Need_Subprogram_Instance_Body): new function, to create
a pending instantiation for the body of a subprogram that is to be
* sem_ch12.adb:
(Analyze_Subprogram_Instantiation): use Need_Subprogram_Instance_Body.
* sem_prag.adb (Make_Inline): If the pragma applies to an instance,
create a pending instance for its body, so that calls to the subprogram
can be inlined by the back-end.
2008-08-01 Jose Ruiz <>
* gnat_ugn.texi: Document the RTX run times (rts-rtx-rtss and
2008-08-01 Robert Dewar <>
* scng.adb (Error_Illegal_Wide_Character): Bump scan pointer
2008-08-01 Doug Rupp <>
* gnat_rm.texi: Document new mechanism Short_Descriptor.
* (Mechanism_Type): Modify range for new Short_Descriptor
mechanism values.
* sem_prag.adb (Set_Mechanism_Value): Enhance for Short_Descriptor
mechanism and Short_Descriptor mechanism values.
* snames.adb (preset_names): Add short_descriptor entry.
* Add Name_Short_Descriptor.
* types.h: Add new By_Short_Descriptor mechanism values.
* sem_mech.adb (Set_Mechanism_Value): Enhance for Short_Descriptor
mechanism and Short_Descriptor mechanism values.
* (Mechanism_Type): Add new By_Short_Descriptor mechanism
(Descriptor_Codes): Modify range for new mechanism values.
* treepr.adb (Print_Entity_Enfo): Handle new By_Short_Descriptor
mechanism values.
* gcc-interface/decl.c (gnat_to_gnu_entity): Handle By_Short_Descriptor.
(gnat_to_gnu_param): Handle By_Short_Descriptor.
* gcc-interface/gigi.h (build_vms_descriptor64): Remove prototype.
(build_vms_descriptor32): New prototype.
(fill_vms_descriptor): Remove unneeded gnat_actual parameter.
* gcc-interface/trans.c (call_to_gnu): Removed unneeded gnat_actual
argument in call fill_vms_descriptor.
* gcc-interface/utils.c (build_vms_descriptor32): Renamed from
build_vms_descriptor and enhanced to hande Short_Descriptor mechanism.
(build_vms_descriptor): Renamed from build_vms_descriptor64.
(convert_vms_descriptor32): New function.
(convert_vms_descriptor64): New function.
(convert_vms_descriptor): Rewrite to handle both 32bit and 64bit
* gcc-interface/utils2.c (fill_vms_descriptor): Revert previous changes,
no longer needed.
2008-08-01 Jose Ruiz <>
* adaint.c (__gnat_tmp_name): RTSS applications do not support tempnam
nor tmpnam, so we always use c:\WINDOWS\Temp\gnat-XXXXXX as temporary
2008-08-01 Jose Ruiz <>
* cstreams.c (__gnat_full_name): RTSS applications cannot ask for the
current directory so only fully qualified names are allowed.
2008-08-01 Robert Dewar <>
* gnat_ugn.texi:
Minor editing, remove uncomfortable use of semicolon
* s-ststop.adb: Add some ??? comments
* sem_ch10.adb: Minor reformatting
Minor comment fixes, some pragmas were not properly
categorized in the comments, documentation change only
* xref_lib.adb: Minor reformatting
* sinput.adb: Minor reformatting
* gnatchop.adb: Minor reformatting
* Minor reformatting.
* Minor documentation fix
* scng.adb: Minor reformatting
* prj-part.adb: Update comments
2008-08-01 Ed Schonberg <>
* exp_disp.adb (Expand_Interface_Conversion): If the target type is a
tagged synchronized type, use corresponding record type.
2008-08-01 Doug Rupp <>
* mlib-tgt-specific-vms-alpha.adb (Build_Dynamic_Library): Output a
dummy transfer address for debugging.
* mlib-tgt-specific-vms-ia64.adb (Build_Dynamic_Library): Likewise.
2008-07-31 Eric Botcazou <>
* gcc-interface/decl.c (gnat_to_gnu_entity): Fix formatting.
* gcc-interface/utils.c (create_field_decl): Avoid superfluous work.
2008-07-31 Pascal Obry <>
* prj-nmsc.adb: Keep Object and Exec directory casing.
2008-07-31 Jose Ruiz <>
Change the default stack size. It is important to set the commit part.
* s-taprop-rtx.adb
(Initialize): Get the clock resolution.
(RT_Resolution): Return the clock resolution that is indicated by the
* s-parame-vxworks.adb
Document that this body is used for RTX in RTSS (kernel) mode.
* gcc-interface/
(LIBGNAT_TARGET_PAIRS for the rtx_rtss run time): Use the
s-parame-vxworks.adb body in order to have reasonable stack sizes in
RTX RTSS kernel mode. Virtual memory is not used in that case, so we
cannot ask for too big values.
2008-07-31 Robert Dewar <>
* exp_aggr.adb: Minor reformatting
* makeutl.adb: Minor reformatting
* prj-env.adb: Minor reformatting
2008-07-31 Hristian Kirtchev <>
* exp_disp.adb (Prim_Op_Kind): Retrieve the full view when a private
tagged type is completed by a concurrent type.
2008-07-31 Gary Dismukes <>
* sem_aggr.adb:
(Resolve_Record_Aggregate): Bypass error that a type without
components must have a "null record" aggregate when compiling for Ada
2005, since it's legal to give an aggregate of form (others => <>)
for such a type.
2008-07-31 Javier Miranda <>
* sem_ch4.adb (Valid_First_Argument_Of): Complete its functionality to
handle synchronized types. Required to handle well the object.operation
notation applied to synchronized types.
2008-07-31 Quentin Ochem <>
* s-stausa.adb (Fill_Stack): Stack_Used_When_Filling is now stored
anymore - just used internally.
Added handling of very small tasks - when the theoretical size is
already full at the point of the call.
(Report_Result): Fixed result computation, Stack_Used_When_Filling does
not need to be added to the result.
2008-07-31 Hristian Kirtchev <>
* sem_ch6.adb (Disambiguate_Spec): Continue the disambiguation if the
corresponding spec is a primitive wrapper. Update comment.
2008-07-31 Hristian Kirtchev <>
* bindgen.adb Comment reformatting. Update the list of run-time globals.
(Gen_Adainit_Ada): Add the declaration, import and value set for
configuration flag Canonical_Streams.
(Gen_Adainit_C): Add the declaration and initial value of external
symbol __gl_canonical_streams.
* init.c: Update the list of global values computed by the binder.
* Add flag Canonical_Streams.
* par-prag.adb (Prag): Include Pragma_Canonical_Streams to the list of
semantically handled pragmas.
* sem_prag.adb: Add an entry into enumeration type Sig_Flags.
(Analyze_Pragma): Add case for pragma Canonical_Streams.
* snames.adb: Add character value for name Canonical_Streams.
Add Name_Canonical_Streams to the list of configuration pragmas.
Add Pragma_Canonical_Streams to enumeration type Pragma_Id.
* snames.h: Add a definition for Pragma_Canonical_Streams.
* s-ststop.adb:
Add a flag and import to seize the value of external symbol
__gl_canonical_streams. Update comment and initial value of constant
* gnat_rm.texi: Add section of pragma Canonical_Streams.
* gnat_ugn.texi:
Add pragma Canonical_Streams to the list of configuration pragmas.
2008-07-31 Ed Schonberg <>
* sem_ch10.adb (Build_Unit_Name): If the unit name in a with_clause
has the form A.B.C and B is a unit renaming, analyze its compilation
unit and add a with_clause on A.b to the context.
2008-07-31 Vincent Celier <>
* makeutl.adb (Executable_Prefix_Path): If Locate_Exec_On_Path fails,
return the empty string, instead of raising Constraint_Error.
2008-07-31 Gary Dismukes <>
* (Apply_Accessibility_Check): Add parameter Insert_Node.
* checks.adb (Apply_Accessibility_Check): Insert the check on
* exp_attr.adb:
(Expand_N_Attribute_Refernce, Attribute_Access): Pass attribute node
to new parameter Insert_Node on call to Apply_Accessibility_Check.
Necessary to distinguish the insertion node because the dereferenced
formal may come from a rename, but the check must be inserted in
front of the attribute.
* exp_ch4.adb:
(Expand_N_Allocator): Pass actual for new Insert_Node parameter on
call to Apply_Accessibility_Check.
(Expand_N_Type_Conversion): Pass actual for new Insert_Node parameter
on call to Apply_Accessibility_Check.
Minor reformatting
2008-07-31 Javier Miranda <>
* sem_type.adb (Has_Compatible_Type): Complete support for synchronized
types when the candidate type is a synchronized type.
* sem_res.adb (Resolve_Actuals): Reorganize code handling synchronized
types, and complete management of synchronized types adding missing
code to handle formal that is a synchronized type.
* sem_ch4.adb (Try_Primitive_Operation): Avoid testing attributes that
are not available and cause the compiler to blowup. Found compiling
test with switch -gnatc
* sem_ch6.adb (Check_Synchronized_Overriding): Remove local subprogram
Has_Correct_Formal_Mode plus code cleanup.
2008-07-31 Bob Duff <>
* sinput.adb (Skip_Line_Terminators): Fix handling of LF/CR -- it was
recognized as two end-of-lines, but it should be just one.
2008-07-31 Thomas Quinot <>
* exp_ch9.adb: Minor reformatting
* Fix several occurrences of incorrectly referring to
Name_Find as Find_Name.
2008-07-31 Ed Schonberg <>
* exp_aggr.adb (Aggr_Size_OK): If the aggregate has a single component
and the context is an object declaration with non-static bounds, treat
the aggregate as non-static.
2008-07-31 Vincent Celier <>
* prj-part.adb,, prj.adb,, prj-env.adb:
Move back spec of Parse_Single_Project to body, as it is not called
outside of package Prj.Part.
(Project_Data): Remove components Linker_Name, Linker_Path and
Minimum_Linker_Options as they are no longer set.
Remove function There_Are_Ada_Sources from package Prj and move code
in the only place it was used, in Prj.Env.Set_Ada_Paths.
2008-07-31 Arnaud Charlet <>
* Fix typo.
2008-07-31 Robert Dewar <>
* sem_ch12.adb: Minor reformatting
2008-07-31 Sergey Rybin <>
* gnat_ugn.texi: Change the description of the
Overly_Nested_Control_Structures: now the rule always requires a
positive parameter for '+R' option
2008-07-31 Thomas Quinot <>
* g-pehage.adb: Minor reformatting
2008-07-31 Pascal Obry <>
* Minor reformatting.
2008-07-31 Vincent Celier <>
* Minor comment fix
2008-07-31 Arnaud Charlet <>
* s-direio.adb (Reset): Replace pragma Unmodified by Warnings (Off),
so that we can compile this file successfully with -gnatc.
2008-07-31 Hristian Kirtchev <>
* exp_attr.adb (Find_Stream_Subprogram): Check the base type instead
of the type when looking for stream subprograms for type String,
Wide_String and Wide_Wide_String.
* s-ststop.adb: Change the initialization expression of constant
2008-07-31 Geert Bosch <>
* arit64.c:
New file implementing __gnat_mulv64 signed integer multiplication with
overflow checking
* fe.h (Backend_Overflow_Checks_On_Target): Define for use by Gigi
* gcc-interface/gigi.h:
(standard_types): Add ADT_mulv64_decl
(mulv64_decl): Define subprogram declaration for __gnat_mulv64
* gcc-interface/utils.c:
(init_gigi_decls): Add initialization of mulv64_decl
* gcc-interface/trans.c:
(build_unary_op_trapv): New function
(build_binary_op_trapv): New function
(gnat_to_gnu): Use the above functions instead of
* gcc-interface/
(LIBGNAT_SRCS): Add arit64.c
(LIBGNAT_OBJS): Add arit64.o
2008-07-31 Vincent Celier <>
* prj-nmsc.adb (Check_Library_Attributes): Check if Linker'Switches or
Linker'Default_Switches are declared. Warn if they are declared.
2008-07-31 Ed Schonberg <>
* exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration): Use
Insert_Actions to place the pointer declaration in the code, rather
than Insert_Before_And_Analyze, so that insertions of temporaries are
kept in the proper order when transient scopes are present.
2008-07-31 Robert Dewar <>
* einfo.adb (Spec_PPC): Now defined for generic subprograms
* (Spec_PPC): Now defined for generic subprograms
* sem_prag.adb (Check_Precondition_Postcondition): Handle generic
subprogram case
2008-07-31 Vincent Celier <>
* s-os_lib.adb: Minor comment fix
2008-07-31 Ed Schonberg <>
* sem_ch6.adb (Analyze_Generic_Subprogram_Body): After analysis,
transfer pre/postconditions from generic copy to original tree, so that
they will appear in each instance.
(Process_PPCs): Do not transform postconditions into a procedure in a
generic context, to prevent double expansion of check pragmas.
* sem_attr.adb: In an instance, the prefix of the 'result attribute
can be the renaming of the
current instance, so check validity of the name accordingly.
2008-07-31 Robert Dewar <>
* Minor reformatting
2008-07-31 Ed Schonberg <>
sem_attr.adb: 'Result can have an ambiguous prefix, and is resolved
from context. This attribute must be usable in Ada95 mode.
The attribute can appear in the body of a function marked
Inline_Always, but in this case the postocondition is not enforced.
sem_prag.adb (Check_Precondition_Postcondition): within the expansion
of an inlined call pre- and postconditions are legal
2008-07-31 Vincent Celier <>
* prj.adb,, clean.adb, prj-nmsc.adb: Remove declarations that
were for gprmake only
2008-07-31 Robert Dewar <>
* gnat_ugn.texi: Update -gnatN documentation.
* gnat_rm.texi: Add note about pre/postcondition
pragmas not checked in conjunction with front-end inlining.
2008-07-31 Robert Dewar <>
* g-pehage.adb, Minor reformatting
2008-07-31 Arnaud Charlet <>
*, Add comments.
2008-07-30 Aaron W. LaFramboise <>
[WINDOWS]: Add s-winext.o.
2008-07-30 Eric Botcazou <>
PR ada/36554
* back_end.adb (Call_Back_End): Pass Standard_Boolean to gigi.
* gcc-interface/gigi.h (gigi): Take new standard_boolean parameter.
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Enumeration_Subtype>:
Set precision to 1 for subtype of BOOLEAN_TYPE.
(set_rm_size): Set TYPE_RM_SIZE_NUM for BOOLEAN_TYPE.
(make_type_from_size): Deal with BOOLEAN_TYPE.
* gcc-interface/misc.c (gnat_print_type): Likewise.
* gcc-interface/trans.c (gigi): Take new standard_boolean parameter.
Set boolean_type_node as its translation in the table, as well
as boolean_false_node for False and boolean_true_node for True.
* gcc-interface/utils.c (gnat_init_decl_processing): Create custom
8-bit boolean_type_node and set its TYPE_RM_SIZE_NUM.
(create_param_decl): Deal with BOOLEAN_TYPE.
(build_vms_descriptor): Likewise.
(build_vms_descriptor64): Likewise.
(convert): Deal with BOOLEAN_TYPE like with ENUMERAL_TYPE.
2008-07-30 Robert Dewar <>
* exp_ch9.adb: Minor reformatting
* (Find_Prim_Op): Document that Program_Error is raised
if no primitive operation is found.
* exp_util.adb: (Find_Prim_Op): Add comments for previous change
* sem_ch8.adb: Minor reformatting
2008-07-30 Laurent Pautet <>
* g-pehage.adb:
Remove a limitation on the length of the words handled by the minimal
perfect hash function generator.
Detail the use of subprograms Insert, Initialize, Compute and Finalize.
Fix some typos.
2008-07-30 Robert Dewar <>
* gnatlink.adb: Minor reformatting
2008-07-30 Thomas Quinot <>
* rtsfind.adb (Check_RPC): Check version consistency even when not
generating RCI stubs. Provide more detailed error message in case of
2008-07-30 Ed Schonberg <>
* sem_ch8.adb (Analyze_Subprogram_Renaming): When renaming an attribute
as a actual in an instance, check for a missing attribute to prevent
program_error on an illegal program.
* exp_util.adb (Find_Prim_Op): Rather than Assert (False), raise program
error if primitive is not found, so that exception can be handled
elsewhere on illegal programs.
2008-07-30 Robert Dewar <>
* uintp.adb (UI_GCD): Fix potential overflow
2008-07-30 Hristian Kirtchev <>
* einfo.adb: Flag245 is now used.
(Is_Primitive_Wrapper, Set_Is_Primitive_Wrapper): Relax the assertion
check to include functions.
(Is_Private_Primitive, Set_Is_Private_Primitive): New subprograms.
(Wrapped_Entity, Set_Wrapped_Entity): Relax the assertion check to
include functions.
(Write_Entity_Flags): Move flag Is_Primitive, add Is_Private_Primitive
to the list of displayed flags.
* Update comment on the usage of Is_Primitive_Wrapper and
Wrapped_Entity. These two flags are now present in functions.
New flag Is_Private_Primitive.
(Is_Private_Primitive, Set_Is_Private_Primitive): New subprograms.
* exp_ch9.adb:
(Build_Wrapper_Bodies): New subprogram.
(Build_Wrapper_Body): The spec and body have been moved to in
Build_Wrapper_ Bodies. Code cleanup.
(Build_Wrapper_Spec): Moved to the spec of Exp_Ch9. Code cleanup.
Wrappers are now generated for primitives declared between the private
and full view of a concurrent type that implements an interface.
(Build_Wrapper_Specs): New subprogram.
(Expand_N_Protected_Body): Code reformatting. Replace the wrapper body
creation mechanism with a call to Build_Wrapper_Bodies.
(Expand_N_Protected_Type_Declaration): Code reformatting. Replace the
wrapper spec creation mechanism with a call to Build_Wrapper_Specs.
(Expand_N_Task_Body): Replace the wrapper body creation
mechanism with a call to Build_Wrapper_Bodies.
(Expand_N_Task_Type_Declaration): Replace the wrapper spec
creation mechanism with a call to Build_Wrapper_Specs.
(Is_Private_Primitive_Subprogram): New subprogram.
(Overriding_Possible): Code cleanup.
(Replicate_Entry_Formals): Renamed to Replicate_Formals, code cleanup.
* (Build_Wrapper_Spec): Moved from the body of Exp_Ch9.
* sem_ch3.adb: Add with and use clause for Exp_Ch9.
(Process_Full_View): Build wrapper specs for all primitives
that belong to a private view completed by a concurrent type
implementing an interface.
* sem_ch6.adb (Analyze_Subprogram_Body): When the current subprogram
is a primitive of a
concurrent type with a private view that implements an interface, try to
find the proper spec.
(Analyze_Subprogram_Declaration): Mark a subprogram as a private
primitive if the type of its first parameter is a non-generic tagged
private type.
(Analyze_Subprogram_Specification): Code reformatting.
(Disambiguate_Spec): New routine.
(Find_Corresponding_Spec): Add a flag to controll the output of errors.
(Is_Private_Concurrent_Primitive): New routine.
(Find_Corresponding_Spec): Add a formal to control the output of errors.
2008-07-30 Doug Rupp <>
* gigi.h (build_vms_descriptor64): New function prototype.
(fill_vms_descriptor): Modified function prototype.
* utils.c (build_vms_descriptor64): New function.
* utils2.c (fill_vms_descriptor): Fix handling on 32bit systems.
* trans.c (call_to_gnu): Call fill_vms_descriptor with new third
* decl.c (gnat_to_gnu_tree): For By_Descriptor mech, build both a
64bit and 32bit descriptor and save the 64bit version as an alternate
TREE_TYPE in the parameter.
(make_type_from_size) <RECORD_TYPE>: Use the appropriate mode for the
thin pointer.
* ada-tree.h (DECL_PARM_ALT, SET_DECL_PARM_ALT): New macros.
2008-07-30 Robert Dewar <>
* make.adb: Minor reformatting
* mlib-utl.adb: Minor reformatting
* Minor reformatting
2008-07-30 Jose Ruiz <>
* adaint.c
(__gnat_file_exists): Do not use __gnat_stat for RTX.
(__main for RTX in RTSS mode): Create this dummy procedure symbol to
avoid the use of this symbol from libgcc.a in RTX kernel mode.
* cio.c
(put_int, put_int_stderr, put_char, put_char_stderr): For RTX we call
the function RtPrintf for console output.
* argv.c Do not use the environ variable for RTX.
* gnatlink.adb (gnatlink): The part that handles the --RTS option has
been moved before the call to Osint.Add_Default_Search_Dirs in order
to take into account the flags in (RTX_RTSS_Kernel_Module)
from the appropriate run time.
(RTX_RTSS_Kernel_Module_On_Target): Add this flag that is set to True if
target is a RTSS module for RTX.
* targparm.adb (Targparm_Tags, RTX_Str, Targparm_Str): Add tag RTX for
(Get_Target_Parameters): Add processing of RTX_RTSS_Kernel_Module flag.
* gcc-interface/ (LIBGNAT_TARGET_PAIRS for RTX): Use gcc
exception handling mechanism for Windows and RTX in Win32 mode, but
not for RTX in kernel mode (RTSS).
(LIBGNAT_SRCS): Remove ada.h
2008-07-30 Paolo Bonzini <>
* gcc-interface/ (ALL_ADAFLAGS): Remove X_ADAFLAGS and
(ALL_ADA_CFLAGS): Remove, replace throughout with ADA_CFLAGS.
(ADA_CFLAGS): Substitute.
2008-07-30 Laurent Guerby <>
PR ada/5911
* gcc-interface/ (MULTISUBDIR, RTSDIR): New variables.
Pass MULTISUBDIR to recursive make. Use $(RTSDIR) instead of rts.
Replace stamp-gnatlib* by stamp-gnatlib*-rts.
* gcc-interface/ Replace stamp-gnatlib2
by stamp-gnatlib2-rts.
2008-07-30 Ralf Wildenhues <>
PR documentation/15479
* gnat-style.texi: Remove AdaCore copyright statement and GPL
statement for GNAT. Add @copying stanza, use it. Update to
GFDL 1.2. Do not list GFDL as Invariant Section, do not list
title as Front-Cover Text.
* gnat_rm.texi: Likewise.
* gnat_ugn.texi: Likewise.
2008-07-29 Jan Hubicka <>
* trans.c (process_inlined_subprograms): Remove tree_really_inline
2008-07-29 Arnaud Charlet <>
* gcc-interface: New directory.
* ada-tree.def, cuintp.c, gigi.h,, targtyps.c, ada.h,
utils.c, ada-tree.h, decl.c, lang.opt,, trans.c,, deftarg.c, lang-specs.h, misc.c, utils2.c: Moved
to gcc-interface subdirectory.
2008-07-29 Aaron W. LaFramboise <>
* (EXTRA_GNATRTL_NONTASKING_OBJS): Remove extra s-win32.o.
2008-07-28 Jan Hubicka <>
* misc.c (gnat_post_options): Do not set flag_no_inline.
2008-07-28 Richard Guenther <>
Merge from gimple-tuples-branch.
2008-07-22 Olivier Hainque <>
* gigi.h (end_subprog_body): New ELAB_P argument, saying if
this is called for an elab proc to be discarded if empty.
* utils.c (end_subprog_body): Honor ELAB_P.
(build_function_stub): Adjust call to end_subprog_body.
* trans.c (Subprogram_Body_to_gnu): Likewise.
(gigi): Reorganize processing of elab procs to prevent
gimplifying twice, using the new end_subprog_body argument.
2008-07-19 Richard Guenther <>
* (trans.o): Add tree-iterator.h dependency.
(utils.o): Likewise.
* trans.c: Include tree-iterator.h.
(gnat_gimplify_expr): Adjust prototype. Fix typo.
(gnat_gimplify_stmt): Use SET_EXPR_LOCATION.
(set_expr_location_from_node): Likewise.
(gigi): Tuplify.
* ada-tree.h (union lang_tree_node): Use TREE_CHAIN instead
* utils.c: Include tree-iterator.h.
* gigi.h (gnat_gimplify_expr): Adjust prototype.
2008-07-18 Aldy Hernandez <>
* trans.c: Include gimple.h instead of tree-gimple.h.
* utils.c: Same.
2008-07-14 Aldy Hernandez <>
* trans.c (gnat_gimplify_expr): Use gimplify_assign.
2008-07-25 Jan Hubicka <>
* utils.c (end_subprog_body): Remove inline trees check.
* misc.c (gnat_post_options): Do not set flag_inline_trees.
2008-07-25 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
* raise-gcc.c: Move tsystem.h before tm.h.
2008-07-20 Arnaud Charlet <>
* New file.
2008-07-19 Olivier Hainque <>
* targtyps.c (get_target_default_allocator_alignment): Use
2008-07-17 Olivier Hainque <>
* adaint.c (__MINGW32__ section): Include ctype.h and define
a fallback ISALPHA if IN_RTS.
(__gnat_is_absolute_path): Use ISALPHA instead of isalpha.
2008-07-17 Olivier Hainque <>
* utils.c (create_var_decl_1): Relax expectations on the PUBLIC_FLAG
argument, to apply to references in addition to definitions. Prevent
setting TREE_STATIC on externals.
(gnat_pushdecl): Always clear DECL_CONTEXT on public externals.
2008-07-14 Ralf Wildenhues <>
PR documentation/15479
* gnat_ugn.texi (@ovar): New macro, from autoconf.texi.
Replace backets around optional parameters with @ovar
where possible, use @r{[}, @r{]} otherwise.
Replace some @r, @i, and @emph with @var where appropriate.
2008-07-02 Eric Botcazou <>
* decl.c (make_type_from_size) <INTEGER_TYPE>: Fix typo and tidy up.
2008-06-27 Kaveh R. Ghazi <>
-Wc++-compat warnings.
* adaint.c (__gnat_locate_regular_file, __gnat_locate_exec,
__gnat_locate_exec_on_path): Likewise.
* decl.c (annotate_value): Likewise.
* misc.c (gnat_handle_option): Likewise.
* trans.c (gnat_to_gnu, extract_encoding, decode_name,
post_error_ne_tree): Likewise.
2008-06-27 Eric Botcazou <>
* utils.c (convert) <CONSTRUCTOR>: When converting it to a packable
version of its type, attempt to first convert its elements.
2008-06-26 Chris Proctor <>
* Fix *86 kfreebsd target specific pairs.
2008-06-25 Samuel Tardieu <>
* Use mlib-tgt-specific-linux.adb for sh4 as well.
2008-06-24 Eric Botcazou <>
* utils2.c (known_alignment): Derive the alignment from pointed-to
types only if it is otherwise unknown.
<MULT_EXPR>: Likewise.
<POINTER_PLUS_EXPR>: If the alignment of the offset is unknown, use
that of the base.
2008-06-20 John David Anglin <>
PR ada/36573
* (SA_ONSTACK): Define.
2008-06-15 Ralf Wildenhues <>
* gnat_rm.texi (Implementation Defined Characteristics)
(Standard Library Routines): Use @smallexample for indented
text. Drop Indentation outside examples.
* gnat_ugn.texi: Likewise.
2008-06-13 Olivier Hainque <>
if undefined.
(gnat_to_gnu_entity) <case E_Function/Procedure>: Request stack
realignment with force_align_arg_pointer attribute on foreign
2008-06-13 Olivier Hainque <>
* utils.c (rest_of_record_type_compilation): When computing
encodings for the components of a variable size type, early
strip conversions on the current position expression to make
sure it's shape is visible. Use remove_conversions for this
2008-06-12 Eric Botcazou <>
* decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: In the case of a
constrained subtype of a discriminated type, discard the fields that
are beyond its limits according to its size.
2008-06-10 Olivier Hainque <>
* utils.c (create_subprog_decl): If this is for the 'main' entry
point according to the asm name, redirect main_identifier_node.
2008-06-09 Eric Botcazou <>
* decl.c (components_to_record): Adjust the packedness for the
qualified union as well.
2008-06-09 Arnaud Charlet <>
* Use -gnatwns instead of -gnatws to make sytyle
checks non fatal.
2008-06-07 Samuel Tardieu <>
* sem_res.adb (Large_Storage_Type): A type is large if it
requires as many bits as Positive to store its values and its
bounds are known at compile time.
* sem_ch13.adb (Minimum_Size): Note that this function returns
0 if the size is not known at compile time.
2008-06-06 Nicolas Setton <>
Olivier Hainque <>
* ada-tree.h (DECL_PARALLEL_TYPE): New language specific
attribute, parallel descriptive type attached to another
type for debug info generation purposes.
* utils.c (add_parallel_type): New function, register
parallel type to be attached to a type.
(get_parallel_type): New function, fetch a registered
parallel type, if any.
(rest_of_record_type_compilation): Register the parallel
type we make for variable size records.
* gigi.h (add_parallel_type, get_parallel_type): Declare.
* decl.c (gnat_to_gnu_entity, maybe_pad_type): Register the
parallel debug types we make.
* trans.c (extract_encoding, decode_name): New functions.
(gigi): If the DWARF attribute extensions are available, setup
to use them.
* lang.opt: Register language specific processing request
for -gdwarf+.
* misc.c (gnat_dwarf_extensions): New global variable. How much
do we want of our DWARF extensions. 0 by default.
(gnat_handle_option) <OPT_gdwarf_>: Increment gnat_dwarf_extensions.
(gnat_post_options): Map gnat_dwarf_extensions to the
commonuse_gnu_debug_info_extensions for later processing.
2008-06-04 Samuel Tardieu <>
*, einfo.adb: Remove unused flag Function_Returns_With_DSP.
2008-06-03 Ralf Wildenhues <>
* (common_tools): Fix typos in $(exeext) extension.
* gnat_ugn.texi (Style Checking)
(Adding the Results of Compiler Checks to gnatcheck Output)
(Example of Binder Output File): Fix typos.
*,, exp_ch4.adb, exp_ch6.adb,, exp_dist.adb, exp_smem.adb,,,, s-stausa.adb,, sem_cat.adb, sem_ch12.adb, sem_ch3.adb,
sem_ch4.adb, sem_ch6.adb, sem_ch8.adb,,, utils.c: Fix typos in comments.
* sem_ch6.adb, Fix typos in strings.
2008-05-29 Thomas Quinot <>
* sem_eval.adb: Minor reformatting
2008-05-29 Ed Schonberg <>
* sem_ch6.adb (Analyze_Subprogram_Specification): if the return type
is abstract, do not apply abstractness check on subprogram if this is
a renaming declaration.
2008-05-29 Arnaud Charlet <>
PR ada/864
*, osint.adb (Program_Name): New parameter "Prog" to
allow recognition of program suffix in addition to prefix.
* gnatchop.adb (Locate_Executable): Add support for prefix.
* make.adb, gnatcmd.adb, gnatlink.adb, prj-makr.adb,
mlib-utl.adb: Adjust calls to Program_Name.
2008-05-29 Robert Dewar <>
* sem_ch3.adb: Minor reformatting
* sem_prag.adb: Minor reformatting
* sem_res.adb: Minor reformatting
* Minor reformatting
2008-05-29 Javier Miranda <>
* sem_util.adb:
(Abstract_Interface_List): Add missing support for full type-declaration
associated with synchronized types.
2008-05-29 Robert Dewar <>
* sem_eval.adb (Is_Same_Value): Take care of several more cases
2008-05-28 Ed Schonberg <>
* sem_ch5.adb (Analyze_Assignment): If the name is of a local anonymous
access type, wrap the expression in a conversion to force an
accessibility check.
* sem_aggr.adb (Aggegate_Constraint_Checks): Apply conversion to force
accessibility checks even when expansion is disabled in order to
generate messages in the presence of previous errors or in
semantics-only mode.
2008-05-28 Eric Botcazou <>
* (Always_Compatible_Rep): Set to False.
* (Always_Compatible_Rep): Set to False.
2008-05-28 Vincent Celier <>
PR ada/34446
* gnat_ugn.texi: Document restriction introduced on 2007-04-20 in
preprocessing expressions
2008-05-28 Vincent Celier <>
* sinput-p.adb (Source_File_Is_Subunit): Allow special character used
for preprocessing
* Minor comment update and reformatting
2008-05-28 Ed Schonberg <>
* sem_res.adb (Valid_Conversion): An anonymous access_to_subprogram
type has a deeper level than any master only when it is the type of an
access parameter.
2008-05-28 Javier Miranda <>
* sem_ch3.adb (Derive_Progenitor_Subprograms): Add documentation.
2008-05-28 Javier Miranda <>
* (Find_Overridden_Synchronized_Primitive): Removed.
* sem_util.adb (Find_Overridden_Synchronized_Primitive): Removed.
* sem_ch6.adb (Check_Synchronized_Overriding): Remove one formal.
Add code that was previously located in
Find_Overridden_Synchronized_Primitive because it is only used here.
2008-05-28 Sergey Rybin <>
* sem_prag.adb (Process_Extended_Import_Export_Subprogram_Pragma): Set
Entity field for formal_parameter_NAME in MECHANISM_ASSOCIATION.
2008-05-28 Robert Dewar <>
Add missing restrictions, and properly label all GNAT defined ones
Add entry for Ada_Real_Time.Timing_Events.Timing_Event
Add entry for Ada.Task_Termination.Set_Specific_Handler
Add entry for Ada.Task_Termination.Specific_Handler
Add missing restrictions and properly mark all gnat defined ones
* sem_ch3.adb:
(Analyze_Object_Declaration): Check No_Local_Timing_Events restriction
* sem_res.adb:
(Resolve_Call): Check violation of No_Specific_Termination_Handlers
* gnat_rm.texi: Add missing restrictions, and properly label all
GNAT defined ones
2008-05-28 Robert Dewar <>
* restrict.adb:
(Check_Restriction): violation of restriction No_Finalization is
treated as a serious error to stop expansion
2008-05-28 Robert Dewar <>
* exp_util.adb: Minor reformatting
* Minor reformatting.
2008-05-28 Arnaud Charlet <>
* Remove gprmake.
* gprmake.adb,, makegpr.adb: Removed.
2008-05-28 Ed Schonberg <>
* sem_ch3.adb (Diagnose_Interface): Cleanup error messages involving
improper progenitor names, and avoid cascaded errors.
2008-05-28 Robert Dewar <>
* gnat_rm.texi: Add note on Old giving warning when applied to constant
* sem_attr.adb (Analyze_Attribute, case Old): Give warning if prefix is
a constant
2008-05-28 Robert Dewar <>
* exp_fixd.adb (Build_Multiply): Correct one-off error in computing
2008-05-28 Robert Dewar <>
* exp_ch5.adb:
(Expand_Simple_Function_Return): Copy unaligned result into temporary
2008-05-28 Javier Miranda <>
* sem_ch3.adb (Derive_Progenitor_Primitives): Add missing support
for user-defined predefined primitives.
* sem_util.adb (Matches_Prefixed_View_Profile): Ditto.
(Find_Overridden_Synchronized_Primitive): Ditto.
* sem_ch6.adb (Check_Synchronized_Overriding): Ditto.
2008-05-27 Arnaud Charlet <>
* a-ststio.adb, s-direio.adb:
Further code clean up of previous change.
Update comments.
2008-05-27 Vincent Celier <>
* prj-nmsc.adb: Minor reformatting
2008-05-27 Bob Duff <>
* sem_ch3.adb (Build_Incomplete_Type_Declaration): In the case of an
untagged private type with a tagged full type, where the full type has
a self reference, create the corresponding class-wide type early, in
case the self reference is "access T'Class".
2008-05-27 Ed Schonberg <>
* exp_aggr.adb (Build_Array_Aggr_Code): If component type includes
tasks and context is an object declaration. create master entity before
2008-05-27 Robert Dewar <>
* mlib-prj.adb: Minor reformatting
* prj-part.adb: Minor reformatting
* Minor reformatting
* exp_ch3.adb: Minor reformatting.
* Minor reformatting
* sem_eval.adb: Minor reformatting
2008-05-27 Vincent Celier <>
* gnatcmd.adb:
<prefix>-gnat stack spawns gnatstack, not <prefix>-gnatstack
2008-05-27 Ed Schonberg <>
* exp_aggr.adb (Expand_Array_Aggregate): If the aggregate contains
tasks, create an activation chain now, before the expansion into
assignments and build-in-place calls that require the presence of an
activation chain.
(Backend_Processing_Possible): If the component type is inherently
limited, the aggregate must be expanded into individual built-in-place
* sem_ch6.adb (Build_Extra_Formals): Use underlying type of result to
determine whether an allocation extra parameter must be built, to
handle case of a private type whose full type is a discriminated type
with defaults.
2008-05-27 Bob Duff <>
* gnat_rm.texi:
Document the new behavior regarding trampolines.
2008-05-27 Arnaud Charlet <>
* a-direio.adb, a-sequio.adb: Replace address clause by
unrestricted_access, simpler and compatible with .NET.
2008-05-27 Vincent Celier <>
* prj-part.adb:
(Project_Path_Name_Of.Try_Path): Do not use Locate_Regular_File to find
a project file, so that symbolic links are not resolved.
2008-05-27 Arnaud Charlet <>
* a-ztexio.adb, a-textio.adb, a-witeio.adb, s-direio.adb:
Replace heavy address clause by 'Unrestricted_Access, cleaner and more
portable across GNAT targets, since this kind of address clause is not
supported by VM back-ends (.NET/JGNAT).
2008-05-27 Arnaud Charlet <>
* bindgen.adb: Update comments.
* s-tasinf-mingw.adb: Add "with" of System.OS_Interface
2008-05-27 Vincent Celier <>
* gnatcmd.adb, prj-proc.adb, make.adb, mlib-prj.adb, prj.adb,, makegpr.adb, makeutl.adb, clean.adb, prj-nmsc.adb,
mlib-tgt.adb, prj-env.adb,
(Path_Information): New record type
Use component of type Path_Information when there are two paths, one in
canonical format and one in display format.
Update the project manager to these new components.
2008-05-27 Robert Dewar <>
* makeutl.adb: Minor reformatting
* prj-nmsc.adb: Minor reformatting
* s-stausa.adb: Minor reformatting
* Minor reformatting
* sem_ch6.adb: Minor reformatting
2008-05-27 Thomas Quinot <>
* sem_res.adb: Minor comment fixes
2008-05-27 Thomas Quinot <>
* makeutl.adb: Minor code reorganization
* exp_aggr.adb: Add ??? comment
Fix typo
* exp_ch6.adb: Minor reformatting
2008-05-27 Quentin Ochem <>
* s-stausa.adb (Initialize): Updated result initialization, and
initialization of environment stack.
(Fill_Stack): Improved computation of the pattern zone, taking into
account already filled at the calling point.
(Get_Usage_Range): Now uses Min_Measure and Max_Measure instead of
Measure and Overflow_Guard.
(Report_Result): Fixed computation of the result using new fields of
* (Initialize_Analyzer): Replaced Size / Overflow_Guard
params by more explicit Stack_Size / Max_Pattern_Size params.
(Stack_Analyzer): Added distinct Stack_Size & Pattern_Size fields.
Added Stack_Used_When_Filling field.
(Task_Result): Replaced Measure / Overflow_Guard by more explicit
Min_Measure and Max_Measure fields.
* s-tassta.adb (Task_Wrapper): Updated call to Initialize_Analyzer.
2008-05-27 Vincent Celier <>
* prj-nmsc.adb:
(Check_File): Make sure that a unit that replaces the same unit in a
project being extended is properly processed.
2008-05-27 Ed Schonberg <>
* sem_ch3.adb:
(Get_Discr_Value): Remove obsolete code that failed to find the value
of a discriminant for an inherited task component appearing in a type
2008-05-27 Thomas Quinot <>
(System.File_IO.{Close, Delete, Reset}):
Change File parameter from "in out AFCB_Ptr" to "access AFCB_Ptr".
(Ada.*_IO.{Close, Delete, Reset, Set_Mode}):
Pass File parameter by reference.
2008-05-27 Vincent Celier <>
* prj-nmsc.adb:
(Process_Sources_In_Multi_Language_Mode): Check that there are not two
sources of the same project that have the same object file name.
(Find_Explicit_Sources): Always remove a source exception that was not
2008-05-27 Thomas Quinot <>
* sem_ch3.adb: Minor reformatting
2008-05-27 Ed Schonberg <>
* sem_ch6.adb:
(Is_Interface_Conformant): Handle properly a primitive operation that
overrides an interface function with a controlling access result.
(Type_Conformance): If Skip_Controlling_Formals is true, when matching
inherited and overriding operations, omit as well the conformance check
on result types, to prevent spurious errors.
2008-05-27 Vincent Celier <>
*, makeutl.adb:
(Set_Location): New procedure
(Get_Location): New function
(Update_Main): New procedure
2008-05-27 Vincent Celier <>
* prj-nmsc.adb:
(Check_Library): Allow standard project to be extended as a static
library project.
(Get_Mains): Do not inherit attribute Main in an extending library
2008-05-27 Eric Botcazou <>
* (Always_Compatible_Rep): Set to False.
* (Always_Compatible_Rep): Likewise.
* (Always_Compatible_Rep): Likewise.
* (Always_Compatible_Rep): Likewise.
* (Always_Compatible_Rep): Likewise.
* (Always_Compatible_Rep): Likewise.
* (Always_Compatible_Rep): Likewise.
* (Always_Compatible_Rep): Likewise.
* (Always_Compatible_Rep): Likewise.
* (Always_Compatible_Rep): Likewise.
2008-05-27 Ed Schonberg <>
* sem_attr.adb: add guard to previous patch.
2008-05-27 Ed Schonberg <>
* exp_disp.adb (Build_Dispatch_Tables): For a private type completed by
a synchronized tagged type, do not attempt to build dispatch table for
full view. The table is built for the corresponding record type, which
has its own declaration.
2008-05-27 Gary Dismukes <>
* sem_ch3.adb (Fixup_Bad_Constraint): Set the Etype on the bad subtype
to the known type entity E, rather than setting it to Any_Type. Fixes
possible blowup in function Base_Init_Proc, as called from Freeze_Entity
for objects whose type had an illegal constraint.
2008-05-27 Vincent Celier <>
* gnat_ugn.texi:
Add succinct documentation for attribute Excluded_Source_List_File
2008-05-27 Vincent Celier <>
* prj-attr.adb: Add new project level attribute Map_File_Option
* prj-nmsc.adb (Process_Linker): Process new attribute Map_File_Option
* Minor reformatting and comment update
(Project_Configuration): New component Map_File_Option
* snames.adb: New standard name Map_File_Option
* New standard name Map_File_Option
2008-05-27 Vincent Celier <>
* xsnames.adb: Remove unused variable Oname
2008-05-27 Doug Rupp <>
* exp_ch6.adb:
(Expand_N_Function_Call): Fix comments. Minor reformatting.
(Expand_Vax_Foreign_Return): Fix comments.
2008-05-27 Thomas Quinot <>
* exp_dist.adb: Minor reformating
2008-05-26 Gary Dismukes <>
* exp_ch3.adb (Expand_N_Object_Declaration): Remove checks for
No_Default_Initialization, which is now delayed until the freeze point
of the object. Add a comment about deferral of the check.
* freeze.adb (Freeze_Entity): The check for No_Default_Initialization
on objects is moved here.
2008-05-26 Eric Botcazou <>
* s-casi16.adb (Uhalf): Rewrite it as integer with small alignment.
(Compare_Array_S16): Adjust for above change.
* s-casi32.adb (Uword): Likewise.
(Compare_Array_S32): Likewise.
* s-casi64.adb (Uword): Likewise.
(Compare_Array_S64): Likewise.
* s-caun16.adb (Uhalf): Likewise.
(Compare_Array_U16): Likewise.
* s-caun32.adb (Uword): Likewise.
(Compare_Array_U32): Likewise.
* s-caun64.adb (Uword): Likewise.
(Compare_Array_U64): Likewise.
2008-05-26 Robert Dewar <>
* exp_ch6.adb: Add ??? comment for previous change
* exp_vfpt.adb: Minor reformatting
* Add ??? comment for last change
* sem_attr.adb: Add some ??? comments for previous change
* Add comments for previous change
2008-05-26 Doug Rupp <>
* s-vaflop-vms-alpha.adb:
Remove System.IO use clause, to prevent spurious ambiguities when
package is access through rtsfind.
2008-05-26 Sergey Rybin <>
* (ASIS_Version_Number): Update because of the changes
made in front-end
2008-05-26 Ed Schonberg <>
* sem_attr.adb:
(Resolve_Attribute, case 'address): S (A .. B)' address can be safely
converted to S (A)'address only if A .. B is known to be a non-null
2008-05-26 Doug Rupp <>
* s-vaflop.adb:
(Return_D, Return_F, Return_G): New functions.
(Return_D, Return_F, Return_G): New functions.
* exp_vfpt.adb:
(Expand_Vax_Foreign_Return): New procedure
(Expand_Vax_Foreign_Return): New procedure
(RE_Return_D, RE_Return_F, RE_Return_G): New RE_Ids
(RE_Return_D, RE_Return_F, RE_Return_G): New RE_Unit_Table elements
* exp_ch6.adb:
Import Exp_Vfpt
(Expand_N_Function_Call): Call Expand_Vax_Foreign_Return.
* s-vaflop-vms-alpha.adb:
(Return_D, Return_F, Return_G): New functions.
2008-05-26 Gary Dismukes <>
* exp_ch3.adb (Build_Array_Init_Proc): Only set Init_Proc to a dummy
init proc entity when there is actual default initialization associated
with the component type, to avoid spurious errors on objects of scalar
array types that are marked Is_Public when No_Default_Initialization
2008-05-26 Thomas Quinot <>
*, rtsfind.adb:
(RE_Get_RACW): New runtime library entity provided by PolyORB s-parint.
(Check_RPC): Support per-PCS-kind API versioning., exp_dist.adb:
(Build_Stub_Tag, Get_Stub_Elements): New utility subprograms.
(PolyORB_Support.Add_RACW_From_Any): Offload common code to new runtime
library function Get_RACW.
(PolyORB_Support.Add_RACW_To_Any): Offload common code to new runtime
library function Get_Reference.
(PolyORB_Support.Add_RACW_Read_Attribute): Use Get_RACW instead of going
through an intermediate Any.
(PolyORB_Support.Add_RACW_Write_Attribute): Use Get_Reference instead of
going through an intermediate Any.
* sem_dist.adb: Minor reformatting.
2008-05-26 Javier Miranda <>
* (Abstract_Interface_Alias): Renamed as Interface_Alias.
(Set_Abstract_Interface_Alias): Renamed as Set_Interface_Alias.
(Is_Internal): Adding documentation on internal entities that have
attribute Interface_Alias (old attribute Abstract_Interface_Alias)
* einfo.adb (Abstract_Interface_Alias): Renamed as Interface_Alias.
(Set_Abstract_Interface_Alias): Renamed as Set_Interface_Alias.
Added assertion to force entities with this attribute to have
attribute Is_Internal set to True.
(Next_Tag_Component): Simplify assertion using attribute Is_Tag.
* sem_ch3.adb (Derive_Interface_Subprograms): This subprogram has been
renamed as Derive_Progenitor_Subprograms. In addition, its code is
a new implementation.
(Add_Interface_Tag_Components): Remove special management of
synchronized interfaces.
(Analyze_Interface_Declaration): Minor reformating
(Build_Derived_Record_Type): Minor reformating
(Check_Abstract_Overriding): Avoid reporting error in case of abstract
predefined primitive inherited from interface type because the body of
internally generated predefined primitives of tagged types are generated
later by Freeze_Type
(Derive_Subprogram): Avoid generating an internal name if the parent
subprogram overrides an interface primitive.
(Derive_Subprograms): New implementation that keeps separate the
management of tagged types not implementing interfaces, from tagged
types that implement interfaces.
(Is_Progenitor): New implementation.
(Process_Full_View): Add documentation
(Record_Type_Declaration): Replace call to Derive_Interface_Subprograms
by call to Derive_Progenitor_Subprograms.
* (Is_Interface_Conformant): New subprogram.
(Check_Subtype_Conformant, Subtype_Conformant): Adding new argument
* sem_ch6.adb (Is_Interface_Conformant): New subprogram.
(Check_Conventions): New implementation. Remove local subprogram
Skip_Check. Remove formal Search_From of routine Check_Convention.
(Check_Subtype_Conformant, Subtype_Conformant): Adding new argument
(New_Overloaded_Entity): Enable addition of predefined dispatching
(Find_Primitive_Covering_Interface): New subprogram.
* sem_disp.adb (Check_Dispatching_Operation): Disable registering
the task body procedure as a primitive of the corresponding tagged
(Check_Operation_From_Private_Type): Avoid adding twice an entity
to the list of primitives.
(Find_Primitive_Covering_Interface): New subprogram.
(Override_Dispatching_Operation): Add documentation.
* sem_type.adb (Covers): Minor reformatings
* (Collect_Abstract_Interfaces): Renamed as
Rename formal.
(Has_Abstract_Interfaces): Renamed as Has_Interfaces.
(Implements_Interface): New subprogram.
(Is_Parent): Removed.
(Primitive_Names_Match): New subprogram.
(Remove_Homonym): Moved here from Derive_Interface_Subprograms.
(Ultimate_Alias): New subprogram.
* sem_util.adb (Collect_Abstract_Interfaces): Renamed as
Remove special management for synchronized types. Rename formal. Remove
internal subprograms Interface_Present_In_Parent and Add_Interface.
(Has_Abstract_Interfaces): Renamed as Has_Interfaces. Replace assertion
on non-record types by code to return false in such case.
(Implements_Interface): New subprogram.
(Is_Parent): Removed. No special management is now required for
synchronized types covering interfaces.
(Primitive_Names_Match): New subprogram.
(Remove_Homonym): Moved here from Derive_Interface_Subprograms.
(Ultimate_Alias): New subprogram.
* exp_ch3.adb (Add_Internal_Interface_Entities): New subprogram.
Add internal entities associated with secondary dispatch tables to
the list of tagged type primitives that are not interfaces.
(Freeze_Record_Type): Add new call to Add_Internal_Interface_Entities
(Make_Predefined_Primitive_Specs): Code reorganization to improve
the management of predefined equality operator. In addition, if
the type has an equality function corresponding with a primitive
defined in an interface type, the inherited equality is abstract
as well, and no body can be created for it.
* (Is_Predefined_Dispatching_Operation): Moved from
exp_util to exp_disp.
(Is_Predefined_Interface_Primitive): New subprogram. Returns True if
an entity corresponds with one of the predefined primitives required
to implement interfaces.
Update copyright notice.
* exp_disp.adb (Set_All_DT_Position): Add assertion. Exclude from the
final check on abstract subprograms all the primitives associated with
interface primitives because they must be visible in the public and
private part.
(Write_DT): Use Find_Dispatching_Type to locate the name of the
interface type. This allows the use of this routine, for debugging
purposes, when the tagged type is not fully decorated.
(Is_Predefined_Dispatching_Operation): Moved from exp_util to exp_disp.
Factorize code calling new subprogram Is_Predefined_Interface_Primitive.
(Is_Predefined_Interface_Primitive): New subprogram. Returns True if an
entity corresponds with one of the predefined primitives required to
implement interfaces.
* exp_util.adb (Find_Interface_ADT): New implementation
(Find_Interface): Removed.
* sprint.adb (Sprint_Node_Actual): Generate missing output for the
list of interfaces associated with nodes
N_Formal_Derived_Type_Definition and N_Private_Extension_Declaration.
2008-05-26 Thomas Quinot <>
* exp_ch5.adb (Make_Tag_Ctrl_Assignment): Add missing guard on
condition for assignment to temporary.
2008-05-26 Ed Schonberg <>
* exp_ch4.adb (Expand_Concatenate_Other): Add explicit constraint
checks on the upper bound if the index type is a modular type, to
prevent wrap-around computations when size is close to upper bound of
2008-05-26 Robert Dewar <>
* sem_ch3.adb: Minor reformatting
2008-05-26 Ed Schonberg <>
* sem_ch12.adb (Remove_Parent): Use specification of instance
to retrieve generic parent,
to handle properly the case where the instance is a child unit.
Add guard to handle properly wrapper packages.
Minor reformatting
2008-05-26 Thomas Quinot <>
* Minor reformatting
2008-05-26 Hristian Kirtchev <>
* exp_ch4.adb (Expand_N_Type_Conversion): Minor code reformatting.
Generate a tag check when the result subtype of a function, defined by
an access definition, designates a specific tagged type.
(Make_Tag_Check): New routine.
2008-05-26 Arnaud Charlet <>
* ceinfo.adb, csinfo.adb: Remove warnings. Update headers.
2008-05-26 Eric Botcazou <>
* gigi.h (gigi): Remove bogus ATTRIBUTE_UNUSED marker.
(builtin_decl_for): Likewise.
* trans.c (gigi): Likewise.
* utils.c (def_builtin_1): Fix formatting.
2008-05-26 Hristian Kirtchev <>
* exp_ch3.adb (Build_Init_Statements): Alphabetize local variables.
Create the statements which map a string name to protected or task
entry indix.
* exp_ch9.adb: Add with and use clause for Stringt.
Minor code reformatting.
(Build_Entry_Names): New routine.
(Make_Initialize_Protection, Make_Task_Create_Call): Generate a value
for flag Build_Entry_Names which controls the allocation of the data
structure for the string names of entries.
* (Build_Entry_Names): New subprogram.
* exp_util.adb (Entry_Names_OK): New function.
* (Entry_Names_OK): New function.
* Add RO_PE_Set_Entry_Name and RO_TS_Set_Entry_Name to
enumerations RE_Id and RE_Unit_Table.
* s-taskin.adb Add with and use clause for Ada.Unchecked_Deallocation.
(Free_Entry_Names_Array): New routine.
* Comment reformatting.
Add types String_Access, Entry_Names_Array, Entry_Names_Array_Access.
Add component Entry_Names to record Ada_Task_Control_Block.
(Free_Entry_Names_Array): New routine.
* s-tassta.adb (Create_Task): If flag Build_Entry_Names is set,
dynamically allocate an array
of string pointers. This structure holds string entry names.
(Free_Entry_Names): New routine.
(Free_Task, Vulnerable_Free_Task): Deallocate the entry names array.
(Set_Entry_Names): New routine.
(Create_Task): Add formal Build_Entry_Names. The flag is used to
control the allocation of the data structure which stores entry names.
(Set_Entry_Name): New routine.
* s-tpoben.adb:
Add with and use clause for Ada.Unchecked_Conversion.
(Finalize): Deallocate the entry names array.
(Free_Entry_Names): New routine.
(Initialize_Protection_Entries): When flag Build_Entry_Names is set,
create an array of string pointers to hold the entry names.
(Set_Entry_Name): New routine.
Add field Entry_Names to record Protection_Entries.
(Initialize_Protection_Entries): Add formal Build_Entry_Names.
(Set_Entry_Name): New routine.
2008-05-26 Vincent Celier <>
* prj-nmsc.adb:
(Process_Project_Level_Simple_Attributes): process attribute Library_GCC
(Project_Configuration): New component Shared_Lib_Driver
2008-05-26 Ed Schonberg <>
* inline.adb:
(Cleanup_Scopes): For a protected operation, transfer finalization list
to protected body subprogram, to force cleanup actions when needed.
2008-05-26 Robert Dewar <>
* sem_cat.adb: Minor reformatting
* gnatname.adb: Minor reformatting
* Minor reformatting
* Minor reformatting
* Minor comment fix (unit is now pure)
2008-05-26 Robert Dewar <>
* exp_ch2.adb:
(Expand_Current_Value): Properly type generated integer literal
2008-05-26 Sergey Rybin <>
* gnat_ugn.texi: Add description for the new gnatcheck rule -
2008-05-26 Pascal Obry <>
* sem_aggr.adb: Minor reformatting.
2008-05-26 Jose Ruiz <>
* s-osinte-aix.adb:
(To_Target_Priority): Setting the time slice value to 0 or greater sets
the scheduling policy to FIFO within priorities or round-robin
Hence, the priority must be set in this case to the one selected by the
2008-05-26 Ed Schonberg <>
* sem_ch12.adb:
(Remove_Parent): If the enclosing scope is an instance whose generic
parent is declared within some parent scope of the just completed
instance, make full views of the entities in that parent visible, when
2008-05-26 Kai Tietz <>
* mingw32.h (STD_MINGW): Set to true for target w64.
2008-05-25 Eric Botcazou <>
* trans.c (Attribute_to_gnu) <Code_Address>: Set TREE_NO_TRAMPOLINE
instead of TREE_STATIC on the ADDR_EXPR.
2008-05-24 Eric Botcazou <>
* trans.c (gnat_to_gnu): Do not set source location info on NOP_EXPRs.
(Sloc_to_locus): Do not overwrite known GCC locations when translating
GNAT standard locations.
2008-05-23 Eric Botcazou <>
* gigi.h (mark_visited): Declare.
* decl.c (gnat_to_gnu_entity): Use mark_visited instead of marking
only the topmost node of expressions.
(elaborate_expression_1): Look deeper for read-only variables.
* trans.c (add_decl_expr): Use mark_visited instead of marking by hand.
(mark_visited): Move logic to mark_visited_r. Invoke walk_tree.
(mark_visited_r): New function.
2008-05-23 Vincent Celier <>
* snames.adb: New standard name Excluded_Source_List_File.
* New standard name Excluded_Source_List_File.
* prj-attr.adb: New project level attribute Excluded_Source_List_File.
* prj-nmsc.adb: (Find_Excluded_Sources): New parameter Project.
Get excluded sources from
file indicated by attribute Excluded_Source_List_File, when present and
neither Excluded_Source_Files nor Locally_Removed_Files are declared.
2008-05-23 Robert Dewar <>
* exp_dist.adb: Minor reformatting
2008-05-23 Ed Schonberg <>
* sem_attr.adb (Resolve_Attribute, case 'address): If the prefix is a
slice, convert it to an indexed component, which is equivalent, more
efficient, and usable even if the slice itself is not addressable.
2008-05-23 Olivier Hainque <>
* gnat_ugn.texi (Calling Conventions): Document that the Intrinsic
convention also allows access to named compiler built-in subprograms
such as the GCC __builtin family.
2008-05-23 Vincent Celier <>
* prj-nmsc.adb (Check_Naming_Schemes): Check a file for spec, body and
sep. If there are several possibilities, choose the one with the
longer prefix.
2008-05-23 Vincent Celier <>
* gnatlink.adb (Process_Args): Do not disable scanning of ALI file for
back end switches when executable specified with --GCC= is same as
default, even if there are additional options.
* gnat_ugn.texi:
Document when the back end switches from the ALI file are taken into
account when gnatlink is invoked with --GCC=
2008-05-23 Thomas Quinot <>
* s-os_lib.adb:
(copy_File): Do not open destination file if source file is unreadable.
2008-05-23 Eric Botcazou <>
* utils.c (handle_type_generic_attribute): Adjust to accept
fixed arguments before an elipsis.
2008-05-21 Thomas Quinot <>
*, g-sothco.adb: New files.
2008-05-20 Thomas Quinot <>
* Makefile.rtl (GNAT.Sockets.Thin_Common): New unit.
* g-sttsne-vxworks.adb: Add missing dependency on Sockets.Constants.
Add missing "with" of Ada.Unchecked_Conversion
Move common code out of GNAT.Sockets.Thin implementations and into
New constant SIZEOF_fd_set
New flag Has_Sockaddr_Len
New constants SIZEOF_sockaddr_in, SIZEOF_sockaddr_in6
* g-stsifd-sockets.adb
(Create): Remove call to Set_Length; use Set_Family to set the family
and (on appropriate platforms) length fields in struct sockaddr.
* g-socthi.adb,,, g-socthi-vms.adb,
g-socthi-mingw.adb,, g-socthi-vxworks.adb,, New constant SIZEOF_fd_set
Move common code out of GNAT.Sockets.Thin implementations and into
*, g-socket.adb:
Move common code out of GNAT.Sockets.Thin implementations and into
(Connect_Socket, Accept_Socket): Provide new versions of these two
routines that operate with a user specified timeout.
(Bind_Socket, Connect_Socket, Send_Socket): Remove calls to Set_Length,
this is now handled automatically by Set_Family on platforms that
require it.
* gen-soccon.c:
Move common code out of GNAT.Sockets.Thin implementations and into
(SIZEOF_sockaddr_in6): On platforms where IPv6 is not supported, define
this constant to 0 (not -1) because we use it to initialize an
unsigned_char value.
Align values for numeric constants only.
Handle the case of systems that do not support AF_INET6.
New constant SIZEOF_fd_set
New flag Has_Sockaddr_Len
New constants SIZEOF_sockaddr_in, SIZEOF_sockaddr_in6
* gsocket.h: New flag Has_Sockaddr_Len
New constants SIZEOF_sockaddr_in, SIZEOF_sockaddr_in6
2008-05-20 Santiago Uruena <>
* Interfaces.COBOL should be preelaborate.
2008-05-20 Arnaud Charlet <>
* (atomic_lock_t): Put back proper alignment now that
the underlying issue with malloc/free has been fixed. Remove associated
Minor reformatting.
Related to PR ada/24533
2008-05-20 Robert Dewar <>
* ali.adb: Correct casing of ASCII.NUL
* styleg-c.adb (Check_Identifier): Handle case of names in ASCII
2008-05-20 Robert Dewar <>
Gary Dismukes <>
* checks.adb (Apply_Arithmetic_Overflow_Check): Avoid intermediate
overflow if result converted to wider integer type.
(Apply_Type_Conversion_Checks): Don't emit checks on conversions to
discriminated types when discriminant checks are suppressed.
2008-05-20 Vincent Celier <>
* cstand.adb (Print_Standard): Issue the correct Size clause for type
2008-05-20 Tristan Gingold <>
* decl.c: Do not emit a variable for a object that has an address
representation clause whose value is known at compile time.
When a variable has an address clause whose value is known at compile
time, refer to this variable by using directly the address instead of
dereferencing a pointer.
2008-05-20 Robert Dewar <>
PR ada/30740
*, einfo.adb (Non_Binary_Modulus): Applies to all types and
subtypes, always False for non-modular types.
Shared_Var_Assign_Proc (node22) and Shared_Var_Read_Proc (node 15)
entry nodes have been replaced by Shared_Var_Procs_Instance (node22)
for Shared_Storage package.
(Is_RACW_Stub_Type): New entity flag.
* exp_ch4.adb
(Expand_N_Op_Expon): Avoid incorrect optimization of a*(2**b) in the
case where we have a modular type with a non-binary modules.
Comments reformattings.
* sem_intr.adb: Simplify code not that Non_Binary_Modulus applies to
all types.
2008-05-20 Javier Miranda <>
* exp_aggr.adb
(Build_Record_Aggr_Code): Fix wrong tests checking progenitors. Previous
tests did not covered the case in which the type of the aggregate has
no progenitors but some its parents has progenitors.
2008-05-20 Gary Dismukes <>
Hristian Kirtchev <>
* exp_ch3.adb
(Expand_N_Object_Declaration): Correct the condition which triggers the
generation of a call to Displace when initializing a class-wide object.
(Build_Dcheck_Functions): Build discriminant-checking for null variants
when Frontend_Layout_On_Target is true to ensure that they're available
for calling when a record variant size function is built in Layout.
2008-05-20 Ed Schonberg <>
* exp_ch5.adb (Expand_Assign_Record): Within an initialization
procedure for a derived type retrieve the discriminant values from the
parent using the corresponding discriminant.
(Expand_N_Assignment_Statement): Skip generation of implicit
if-statement associated with controlled types if we are
compiling with restriction No_Finalization.
2008-05-20 Vincent Celier <>
* prj.adb (Hash (Project_Id)): New function
(Project_Empty): Add new component Interfaces_Defined
* (Source_Data): New component Object_Linked
(Language_Config): New components Object_Generated and Objects_Linked
(Hash (Project_Id)): New function
(Source_Data): New Boolean components In_Interfaces and
(Project_Data): New Boolean component Interfaces_Defined
* prj-attr.adb:
New project level attribute Object_Generated and Objects_Linked
Add new project level attribute Interfaces
* prj-dect.adb: Use functions Present and No throughout
(Parse_Variable_Declaration): If a string type is specified as a simple
name and is not found in the current project, look for it also in the
ancestors of the project.
* prj-makr.adb:
Replace procedure Make with procedures Initialize, Process and Finalize
to implement H414-023: process different directories with different
Use functions Present and No throughout
Replace procedure Make with procedures Initialize, Process and Finalize
* prj-nmsc.adb
(Add_Source): Set component Object_Exists and Object_Linked accordnig to
the language configuration.
(Process_Project_Level_Array_Attributes): Process new attributes
Object_Generated and Object_Linked.
(Report_No_Sources): New Boolean parameter Continuation, defaulted to
False, to indicate that the erreor/warning is a continuation.
(Check): Call Report_No_Sources with Contnuation = True after the first
(Error_Msg): Process successively contnuation character and warning
(Find_Explicit_Sources): Check that all declared sources have been found
(Check_File): Indicate in hash table Source_Names when a declared source
is found.
(Check_File): Set Other_Part when found
(Find_Explicit_Sources): In multi language mode, check if all exceptions
to the naming scheme have been found. For Ada, report an error if an
exception has not been found. Otherwise, disregard the exception.
(Check_Interfaces): New procedure
(Add_Source): When Other_Part is defined, set mutual pointers in spec
and body.
(Check): In multi-language mode, call Check_Interfaces
(Process_Sources_In_Multi_Language_Mode): Set In_Interfaces to False
for an excluded source.
(Remove_Source): A source replacing a source in the interfaces is also
in the interfaces.
* prj-pars.adb: Use function Present
* prj-part.adb: Use functions Present and No throughout
(Parse_Single_Project): Set the parent project for child projects
(Create_Virtual_Extending_Project): Register project with no qualifier
(Parse_Single_Project): Allow an abstract project to be extend several
times. Do not allow an abstract project to extend a non abstract
* prj-pp.adb: Use functions Present and No throughout
(Print): Take into account the full associative array attribute
* prj-proc.adb: Use functions Present and No throughout
(Expression): Call itself with the same From_Project_Node for the
default value of an external reference.
* prj-strt.adb: Use functions Present and No throughout
(Parse_Variable_Reference): If a variable is specified as a simple name
and is not found in the current project, look for it also in the
ancestors of the project.
*, prj-tree.adb (Present): New function
(No): New function
Use functions Present and No throughout
(Parent_Project_Of): New function
(Set_Parent_Project_Of): New procedure
*, snames.adb:
Add new standard names Object_Generated and Objects_Linked
2008-05-20 Hristian Kirtchev <>
* exp_ch6.adb (Expand_Call): Add guard to ensure that both the parent
and the derived type are of the same kind.
(Expand_Call): Generate type conversions for actuals of
record or array types when the parent and the derived types differ in
size and/or packed status.
2008-05-20 Javier Miranda <>
Ed Schonberg <>
* exp_disp.adb (Make_DT, Make_Secondary_DT, Make_Tags): Avoid
generating dispatch tables of locally defined tagged types statically.
Remove implicit if-statement that is no longer required.
(Expand_Dispatching_Call): If this is a call to an instance of the
generic dispatching constructor, the type of the first argument may be
a subtype of Tag, so always use the base type to recognize this case.
2008-05-20 Thomas Quinot <>
* exp_dist.adb
(GARLIC_Support.Add_RACW_Read_Attribute): When a zero value is received,
and the RACW is null-excluding, raise CONSTRAINT_ERROR instead of
assigning NULL into the result, to avoid a spurious warning.
(Add_RACW_Features, case Same_Scope): Add assertion that designated type
is not frozen.
(Add_Stub_Type): Set entity flag Is_RACW_Stub_Type on generated stub
(Build_From_Any_Function, Build_To_Any_Function,
Build_TypeCode_Function): For a type that has user-specified stream
attributes, use an opaque sequence of octets as the representation.
2008-05-20 Kevin Pouget <>
*, exp_smem.adb: Construction of access and assign
routines has been replaced by an instantiation of
System.Shared_Storage.Shared_Var_Procs generic package, while expanding
shared variable declaration.
Calls to access and assign routines have been replaced by calls to
Read/Write routines of System.Shared_Storage.Shared_Var_Procs
instantiated package.
* RE_Shared_Var_Procs entry has been added in RE_Unit_Table
It identifies the new generic package added in s-shasto.
* s-shasto.adb, A new generic package has been added, it
is instantiated for each shared passive variable. It provides
supporting procedures called upon each read or write access by the
expanded code.
* sem_attr.adb:
For this runtime unit (always compiled in GNAT mode), we allow
stream attributes references for limited types for the case where
shared passive objects are implemented using stream attributes,
which is the default in GNAT's persistent storage implementation.
2008-05-20 Ed Schonberg <>
* freeze.adb
(Freeze_Enumeration_Type): For a subtype that inherits a foreign
convention from its base type, do not set the type to that of integer,
because it may inherit a size clause.
Warn on a size clause with a size different
from that of Integer, if the type has convention C.
2008-05-20 Vincent Celier <>
* gnatname.adb
(Scan_Args): Rewrite to take into account new switch --and to separate
arguments into sections.
(Gnatname): Call Prj.Makr.Initialize, then Prj.Makr.Process for each
section, then Finalize.
2008-05-20 Tristan Gingold <>
* init.c: Enable stack probing on ppc-linux.
* tracebak.c: Add symbolic traceback for ppc-linux.
* Enable stack probing on ppc-linux.
2008-05-20 Arnaud Charlet <>
(common-tools): New rule, to avoid parallel build failure on gnat tools.
Reenable parallel builds on this Makefile.
* Update dependencies.
2008-05-20 Robert Dewar <>
* (Treat_Restrictions_As_Warnings): New switch
* sem_prag.adb, par-prag.adb, Implement flag
* switch-c.adb: Recognize new switch -gnatr
* usage.adb: Add line for -gnatr
2008-05-20 Hristian Kirtchev <>
* par-ch3.adb
(P_Access_Definition): Change the error message when parsing "access
all" in Ada 95 mode. The message no longer forces the user to recompile
in 05 mode only to discover that anonymous access types are not allowed
to have "all".
2008-05-20 Hristian Kirtchev <>
* par-ch9.adb
(P_Protected): Update the error message on missing "-gnat05" switch when
using interfaces in conjunction with protected types. Remove the
incorrect error message associated with the presence of "private" after
a "with".
2008-05-20 Ed Schonberg <>
* sem_aggr.adb: Update comments.
Improve previous change for PR ada/17985
2008-05-20 Thomas Quinot <>
* sem_cat.adb
(Set_Categorization_From_Scope): Do not set In_Remote_Types unless in
the visible part of the spec of a remote types unit.
New local subprogram Is_Valid_Remote_Object_Type, replaces
(Validate_RACW_Primitives): Enforce E.2.2(14) rules: the types of all
non-controlling formals (and the return type, even though this is not
explicit in the standard) must support external streaming.
(Validate_RCI_Subprogram_Declaration): Enforce E.2.3(14) rules: same
as above for of RAS types and RCI subprograms. (The return type is not
checked yet).
Update comments related to RACWs designating limited interfaces per
ARG ruling on AI05-060.
*, sem_util.adb
(Is_Remote_Access_To_Class_Wide_Type): Only rely on Is_Remote_Types and
Is_Remote_Call_Interface to identify RACW types in a stable and
consistent way. We used to rely in this predicate on the privateness of
the designated type and its ancestors, but depending on the currently
visible private parts, this caused false negatives. We now uniformly
rely on checks made at the point where the RACW type is declared.
(Inspect_Deferred_Constant_Completion): Moved from Sem_Ch7.
2008-05-20 Javier Miranda <>
Ed Schonberg <>
Hristian Kirtchev <>
* sem_ch3.adb
(Analyze_Object_Declaration): Fix over-conservative condition
restricting use of predefined assignment with tagged types that have
convention CPP.
(Analyze_Object_Declaration): Relax the check regarding deferred
constants declared in scopes other than packages since they can be
completed with pragma Import.
Add missing escaping of all-caps word 'CPP' in error messages.
(Build_Discriminated_Subtype): Do not inherit representation clauses
from parent type if subtype already carries them, because they are
inherited earlier during derivation and already include those that may
come from a partial view.
* sem_ch9.adb, sem_ch5.adb, sem_ch6.adb (Analyze_Subprogram_Body):
Check the declarations of a subprogram body for proper deferred
constant completion.
*, sem_ch7.adb
(Inspect_Deferred_Constant_Completion): Moved to sem_util.
2008-05-20 Ed Schonberg <>
Thomas Quinot <>
* sem_ch4.adb
(Try_Indexed_Call): Handle properly a construct of the form F(S) where
F is a parameterless function that returns an array, and S is a subtype
(Analyze_Call): Insert dereference when the prefix is a parameterless
function that returns an access to subprogram and the call has
Reject a non-overloaded call whose name resolves to denote
a primitive operation of the stub type generated to support a remote
access-to-class-wide type.
2008-05-20 Ed Schonberg <>
* sem_ch8.adb
(Note_Redundant_Use): Diagnose a redundant use within a subprogram body
when there is a use clause for the same entity in the context.
(Analyze_Subprogram_Renaming): A renaming_as_body is legal if it is
created for a stream attribute of an abstract type or interface type.
2008-05-20 Thomas Quinot <>
*, sem_dist.adb (Is_RACW_Stub_Type_Operation): New
* sem_type.adb
(Add_One_Interp): Ignore any interpretation that is a primitive
operation of an RACW stub type (these primitives are only executed
through dispatching, never through static calls).
(Collect_Interps): When only one interpretation has been found, set N's
Entity and Etype to that interpretation, otherwise Entity and Etype may
still refer to an interpretation that was ignored by Add_One_Interp,
in which case would end up with being marked as not overloaded but with
an Entity attribute not pointing to its (unique) correct interpretation.
2008-05-20 Ed Schonberg <>
* sem_eval.adb
(Eval_Slice): Warn when a slice whose discrete range is a subtype name
denotes the whole array of its prefix.
2008-05-20 Robert Dewar <>
* sem_res.adb (Resolve_Op_Not): Warn on double negation
2008-05-20 Ed Schonberg <>
* sprint.adb
(Print_Itype): Do not modify the sloc of the component type of a
(packed) array itype, because it is an unrelated type whose source
location is independent of the point of creation of the itype itself.
2008-05-20 Thomas Quinot <>
* uintp.adb, urealp.adb: Replace calls to Increment_Last + Set with
2008-05-20 Robert Dewar <>
Vincent Celier <>
* Add entry for -gnatr
Put GNAT SYNC section in proper alpha order
Add VMS qualifier /DISPLAY_PROGRESS equivalent to gnatmake switch -d
* gnat_ugn.texi: Add documentation for new gnatname switch --and
Update the style checks section
Add documentation of -gnatr
Add to the "Adding the Results of Compiler Checks to gnatcheck Output"
subsection the explanation how compiler checks should be disabled for
Update the list of Ada 95 reserved words used by in the project language
Add documentation for project qualifiers.
Document that abstract projects may be extended by different projects in
the same project tree.
Add documentation for gnatmake switch -d
* ug_words: Add -gnatyy VMS equivalence string.
Add entry for -gnatr
2008-05-20 Bob Duff <>
* a-rttiev.adb
(Set_Handler): Remove code from both of these that implements
RM-D.15(15/2), because it causes a race condition and potential
(Process_Queued_Events): Add comment explaining "exception when others
=> null". Add clarifying ".all", even though implicit .all is legal
2008-05-20 Arnaud Charlet <>
* Replace representation clause by pragma Pack. Gives
equivalent representation, but has the advantage of allowing
compilation of this file under 64 bits platforms.
* s-os_lib.adb (Normalize_Pathname): Mark Cur_Dir constant.
* (Alternate_Stack_Size): Add dummy declaration.
* adaint.c:
Don't define dummy implementation of convert_addresses on ppc-linux.
2008-05-20 Ed Schonberg <>
* exp_ch7.adb
(Expand_Ctrl_Function_Call): Do not attach result to finalization list
if expression is aggregate component.
2008-05-20 Robert Dewar <>
* g-byorma.adb, gnatlink.adb, prepcomp.adb,,
sem_ch12.adb: Update comments. Minor reformatting.
* exp_ch2.adb: Typo
* Fixed some typos in comments.
2008-05-20 Arnaud Charlet <>
* (Task_Address, Task_Address_Size): New
* Update to latest socket changes.
* a-caldel-vms.adb: Resync with a-caldel spec.
*,, inline.adb: Minor reformatting.
Update comments.
2008-05-17 Eric Botcazou <>
* trans.c (gnat_to_gnu) <N_Validate_Unchecked_Conversion>: Account
for dummy types pointed to by the converted pointer types.
2008-05-15 Eric Botcazou <>
* trans.c (add_decl_expr): At toplevel, mark the TYPE_ADA_SIZE field
of records and unions.
(gnat_to_gnu) <N_Validate_Unchecked_Conversion>: Fix formatting.
2008-05-14 Samuel Tardieu <>
Robert Dewar <>
* sem_attr.adb (Analyze_Attribute, Attribute_Old case): Add
restrictions to the prefix of 'Old.
*, sem_util.adb (In_Parameter_Specification): New.
* gnat_rm.texi ('Old): Note that 'Old cannot be applied to local
2008-05-13 Eric Botcazou <>
PR ada/24880
PR ada/26635
* utils.c (convert) <INTEGER_TYPE>: When converting an additive
expression to an integral type with lower precision, use NOP_EXPR
directly in a couple of special cases.
2008-05-12 Samuel Tardieu <>
Ed Schonberg <>
* sem_ch3.adb (Build_Derived_Record_Type): Accept statically matching
constraint expressions.
2008-05-12 Tomas Bily <>
* utils2.c (known_alignment, contains_save_expr_p)
(gnat_mark_addressable): Use CASE_CONVERT.
* decl.c (annotate_value): Likewise.
* trans.c (maybe_stabilize_reference): Likewise.
* utils2.c (build_binary_op): Use CONVERT_EXPR_P.
* utils.c (rest_of_record_type_compilation): Likewise.
* trans.c (protect_multiple_eval, Attribute_to_gnu)
(protect_multiple_eval): Likewise.
2008-05-08 Andreas Schwab <>
* utils.c (handle_pure_attribute, init_gigi_decls): Rename
2008-05-05 Eric Botcazou <>