blob: 8b372f5acda517a183e4a0f864cccaf7a29f9036 [file] [log] [blame]
2010-12-31 Eric Botcazou <>
* gcc-interface/decl.c (substitute_in_type): Do not deal with
* gcc-interface/utils.c (handle_vector_size_attribute): Do not deal
2010-12-22 Nathan Froyd <>
* gcc-interface/utils.c (handle_nonnull_attribute): Use prototype_p.
(handle_sentinel_attribute): Likewise.
2010-12-20 Ralf Wildenhues <>
PR bootstrap/47027
* Rewrap overlong comment line.
* projects.texi: Fix typos.
* gnat_rm.texi: Likewise.
* gnat_ugn.texi: Likewise.
* sem_util.adb: Fix typo in variable, typos in comments.
* a-btgbso.adb: Fix typos in comments.
* a-cbdlli.adb,, a-cdlili.adb, a-cobove.adb,
a-coinve.adb, a-convec.adb,, a-strunb-shared.adb,,, a-stwiun-shared.adb,, a-stzunb-shared.adb,,
a-suenco.adb, a-suenst.adb, a-suewst.adb, a-suezst.adb,,,, binde.adb, bindgen.adb, checks.adb,,,, errout.adb,,
exp_aggr.adb, exp_attr.adb, exp_cg.adb, exp_ch3.adb,
exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb,, exp_disp.adb,, freeze.adb,,,, g-mbdira.adb,,,,,,,,,, g-socket.adb,,,
gcc-interface/decl.c, gcc-interface/trans.c,
gcc-interface/utils2.c, gnat1drv.adb, init.c, inline.adb,
link.c, locales.c, make.adb, mingw32.h,, osint.adb,
par-ch12.adb, par-ch13.adb, par-ch3.adb, par-ch4.adb,
par-prag.adb, par.adb, par_sco.adb, prepcomp.adb,, prj-dect.adb, prj-env.adb,,
prj-nmsc.adb,,, prj.adb,,
s-auxdec-vms-alpha.adb,, s-oscons-tmplt.c,, s-osprim-mingw.adb, s-regexp.adb,
s-stusta.adb, s-taprop-mingw.adb, s-taprop-solaris.adb,
scn.adb,, sem.adb, sem_aggr.adb, sem_attr.adb,
sem_aux.adb,, sem_ch12.adb,,
sem_ch13.adb,, sem_ch3.adb, sem_ch4.adb,
sem_ch6.adb, sem_ch7.adb, sem_ch8.adb, sem_disp.adb,, sem_eval.adb, sem_intr.adb, sem_prag.adb,
sem_res.adb, sem_scil.adb,, sem_warn.adb,,, socket.c, styleg.adb,,
sysdep.c, tb-alvxw.c, xoscons.adb: Likewise.
2010-12-13 Eric Botcazou <>
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_General_Access_Type>:
Build a stub DECL for the dummy fat pointer type in the unconstrained
array case.
* gcc-interface/utils.c (update_pointer_to): Set the DECL_ORIGINAL_TYPE
for all the variants in the fat pointer case.
2010-12-13 Eric Botcazou <>
* gcc-interface/trans.c (can_be_lower_p): New predicate.
(Loop_Statement_to_gnu): Do not generate the entry condition if we know
that it will be true.
2010-12-03 Joseph Myers <>
* gcc-interface/lang.opt (k8): New option.
2010-12-03 Alexandre Oliva <>
* gnatvsn.adb (Gnat_Version_String): Don't overrun Ver_Len_Max.
* (Ver_Len_Max): Bump up to 256.
* g-comver.adb (Ver_Len_Max): Likewise.
2010-12-03 Laurynas Biveinis <>
* gcc-interface/decl.c (struct subst_pair_d): Remove GTY tag.
(variant_desc_d): Likewise.
2010-12-01 Joseph Myers <>
* gcc-interface/misc.c (flag_compare_debug, flag_stack_check):
Undefine as macros then define as variables.
(gnat_post_options): Set variables from global_options.
2010-11-27 Eric Botcazou <>
PR ada/46574
* gcc-interface/utils2.c (compare_elmt_bitpos): Fix typos.
2010-11-27 Eric Botcazou <>
PR ada/40777
* gcc-interface/targtyps.c (get_target_double_scalar_alignment): Guard
use of TARGET_64BIT macro.
2010-11-27 Eric Botcazou <>
* (sigset_t): Use unsigned_char subtype directly.
(unsigned_long_long_t): New modular type.
(pthread_cond_t): Add alignment clause.
2010-11-27 Eric Botcazou <>
* gnatvsn.adb (Version_String): Change type to C-like array of chars.
(Gnat_Version_String): Adjust to above change.
2010-11-18 Eric Botcazou <>
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Subprogram_Type>: Also
use return-by-invisible-reference if the return type is By_Reference.
Tidy up and skip the processing of the return type if it is void.
2010-11-17 Joseph Myers <>
* gcc-interface/misc.c (gnat_parse_file): Take no arguments.
2010-11-17 Eric Botcazou <>
* gcc-interface/trans.c (addressable_p): Rewrite obsolete paragraph in
head comment.
2010-11-12 Joseph Myers <>
* gcc-interface/ (ada/misc.o): Use $(OPTS_H).
* gcc-interface/misc.c (gnat_handle_option): Take location_t parameter.
2010-11-10 Eric Botcazou <>
* gcc-interface/trans.c (gigi): Don't set 'pure' flag on SJLJ routines.
* gcc-interface/utils2.c (compare_arrays): Add LOC parameter. Set it
directly on all the comparison expressions.
(build_binary_op): Pass input_location to compare_arrays.
2010-11-10 Eric Botcazou <>
* gcc-interface/trans.c (lvalue_required_p) <N_Type_Conversion>): Look
through it for elementary types as well.
<N_Unchecked_Type_Conversion>: Adjust to above change.
<N_Allocator>: Likewise.
(gnat_to_gnu): Do not attempt to rewrite boolean literals.
2010-11-10 Eric Botcazou <>
* gcc-interface/decl.c (gnat_to_gnu_entity): Do not set DECL_ARTIFICIAL
on the reused DECL node coming from a renamed object.
Set DECL_IGNORED_P on the DECL node built for renaming entities if they
don't need debug info.
2010-11-09 Eric Botcazou <>
* gcc-interface/utils.c (save_gnu_tree): Improve comments.
(get_gnu_tree): Likewise.
2010-11-09 Eric Botcazou <>
* gcc-interface/decl.c (finish_fat_pointer_type): New function.
(gnat_to_gnu_entity) <E_Array_Type>: Use it to build the fat pointer
<E_Access_Type>: Likewise.
2010-11-02 Eric Botcazou <>
* gcc-interface/gigi.h (add_stmt_force): Declare.
(add_stmt_with_node_force): Likewise.
* gcc-interface/trans.c (Attribute_to_gnu): Don't set TREE_SIDE_EFFECTS
on the SAVE_EXPR built for cached expressions of parameter attributes.
(Subprogram_Body_to_gnu): Force evaluation of the SAVE_EXPR built for
cached expressions of parameter attributes.
(add_stmt_force): New function.
(add_stmt_with_node_force): Likewise.
2010-10-27 Eric Botcazou <>
* gcc-interface/trans.c (gigi): Fix formatting issues.
(build_raise_check): Likewise.
(gnat_to_gnu): Likewise.
* gcc-interface/utils2.c (build_call_raise_range): Likewise.
(build_call_raise_column): Likewise.
2010-10-26 Robert Dewar <>
* exp_ch5.adb, exp_prag.adb, sem_ch3.adb, exp_atag.adb, layout.adb,
sem_dist.adb, exp_ch7.adb, exp_util.adb, exp_attr.adb, exp_ch9.adb,
sem_ch10.adb, checks.adb, sem_prag.adb, par-endh.adb, sem_ch12.adb,
exp_smem.adb, sem_attr.adb, exp_ch4.adb, exp_ch6.adb, exp_ch8.adb,
sem_ch6.adb, exp_disp.adb, exp_aggr.adb, exp_dist.adb, sem_ch13.adb,
par-ch3.adb, par-ch5.adb, exp_strm.adb, exp_ch3.adb: Minor reformatting
* Minor comment fix.
2010-10-26 Vincent Celier <>
* gnat_ugn.texi: Document option -s for gnatlink.
2010-10-26 Robert Dewar <>
* Move documentation on checksum stuff here from prj-nmsc
* prj-nmsc.adb (Process_Project_Level_Array_Attributes): Move
documentation on checksum versions to
2010-10-26 Vincent Celier <>
* (Checksum_Accumulate_Token_Checksum): New Boolean flag,
defaulted to True.
(Checksum_GNAT_6_3): New name of Old_Checksums
(Checksum_GNAT_5_03): New name of Old_Old_Checksums
* prj-nmsc.adb (Process_Project_Level_Array_Attributes): Adapt to new
names of Opt flags.
Set Checksum_Accumulate_Token_Checksum to False if GNAT version is 5.03
or before.
* scng.adb (Accumulate_Token_Checksum_GNAT_6_3): New name of procedure
(Accumulate_Token_Checksum_GNAT_5_03): New name of procedure
(Nlit): Call Accumulate_Token_Checksum only if
Opt.Checksum_Accumulate_Token_Checksum is True.
(Scan): Ditto
2010-10-26 Robert Dewar <>
* sem_ch13.adb (Build_Invariant_Procedure): New calling sequence.
(Build_Invariant_Procedure): Properly handle analysis of invariant
expression with proper end-of-visible-decls visibility.
* (Build_Invariant_Procedure): Changed calling sequence.
* sem_ch3.adb (Process_Full_View): Don't build invariant procedure
(too late).
(Analyze_Private_Extension_Declaration): Propagate invariant flags.
* sem_ch7.adb (Analyze_Package_Specification): Build invariant
2010-10-26 Vincent Celier <>
* (Old_Checksums, Old_Old_Checksums): New Boolean flags,
defaulted to False.
* prj-nmsc.adb (Process_Project_Level_Array_Attributes): When
processing attribute Toolchain_Version ("Ada"), set Opt.Old_Checksums
and Opt.Old_Old_Checksums depending on the GNAT version.
* scng.adb (Accumulate_Token_Checksum_Old): New procedure.
(Accumulate_Token_Checksum_Old_Old): New procedure.
(Scan): For keywords, when Opt.Old_Checksums is True, call one of the
alternative procedures Accumulate_Token_Checksum_Old or
Accumulate_Token_Checksum_Old_Old, instead of Accumulate_Token_Checksum.
2010-10-26 Richard Kenner <>
* gcc-interface/utils2.c (build_compound_expr): New function.
* gcc-interface/gigi.h (build_compound_expr): Declare it.
* gcc-interface/trans.c (Attribute_to_gnu, call_to_gnu): Use it.
(gnat_to_gnu, case N_Expression_With_Actions): Likewise.
2010-10-26 Javier Miranda <>
* sem_prag.adb (Process_Import_Or_Interface): Skip primitives of
interface types when processing all the entities in the homonym chain
that are declared in the same declarative part.
2010-10-26 Ed Schonberg <>
* sem_ch3.adb (Process_Range_In_Decl): If the range is part of a
quantified expression, the insertion point for range checks will be
arbitrarily far in the tree.
* sem_ch5.adb (One_Bound): Use Insert_Actions for the declaration of
the temporary that holds the value of the bounds.
* sem_res.adb (Resolve_Quantified_Expressions): Disable expansion of
condition until the full expression is expanded.
2010-10-26 Robert Dewar <>
* Comment fix.
* sem_cat.adb: Treat categorization errors as warnings in GNAT Mode.
* switch-c.adb: GNAT Mode does not set
2010-10-26 Ed Schonberg <>
* sem_ch8.adb (Analyze_Subprogram_Renaming): Improve warning when an
operator renames another one with a different name.
2010-10-26 Thomas Quinot <>
* exp_ch4.adb, exp_pakd.adb: Minor reformatting.
2010-10-26 Bob Duff <>
* namet.adb: Improve hash function.
2010-10-26 Thomas Quinot <>
* sem_disp.adb: Minor reformatting.
2010-10-26 Robert Dewar <>
* sem_ch3.adb, sem_ch4.adb, sem_disp.adb, switch-c.adb: Minor
* gnat_ugn.texi: Document -gnateP switch.
2010-10-26 Robert Dewar <>
* (Treat_Categorization_Errors_As_Warnings): New flag
* sem_cat.adb (Check_Categorization_Dependencies):
Use Check_Categorization_Dependencies
* switch-c.adb: GNAT Mode sets Treat_Categorization_Errors_As_Warnings
-gnateP sets Treat_Categorization_Errors_As_Warnings
* usage.adb: Add line for -gnateP switch
2010-10-26 Javier Miranda <>
* sem_ch3.adb (Add_Internal_Interface_Entities): Handle primitives
inherited from the parent that cover interface primitives.
(Derive_Progenitor_Subprograms): Handle primitives inherited from
the parent that cover interface primitives.
* sem_disp.adb (Find_Primitive_Covering_Interface): When searching in
the list of primitives of the type extend the test to include inherited
private primitives.
* (Is_Interface_Conformant): Add missing documentation.
* sem_ch7.adb (Declare_Inherited_Private_Subprograms): Add missing
barrier to the loop searching for explicit overriding primitives.
* sem_ch4.adb (Analyze_Indexed_Component_Form): Add missing barrier
before accessing attribute Entity.
2010-10-26 Bob Duff <>
* make.adb: Call Namet.Finalize, so we can get statistics.
2010-10-26 Geert Bosch <>
* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Use the subprogram_body
node to determine wether the subprogram is a rewritten parameterized
2010-10-26 Robert Dewar <>
* Minor code reorganization. Alphabetize Warning switches.
2010-10-26 Robert Dewar <>
* sem_res.adb, xsinfo.adb: Minor reformatting.
2010-10-26 Bob Duff <>
* namet.adb (Finalize): More cleanup of statistics printouts.
2010-10-26 Robert Dewar <>
* ceinfo.adb: Minor reformatting.
2010-10-26 Javier Miranda <>
* sem_ch6.adb (Check_Overriding_Indicator, New_Overloaded_Entity): When
setting attribute Overridden_Operation do not reference the entities
generated by Derive_Subprograms but their aliased entity (which
is the primitive inherited from the parent type).
2010-10-26 Bob Duff <>
* namet.adb, Minor cleanup.
2010-10-26 Arnaud Charlet <>
* gcc-interface/ Update dependencies.
2010-10-26 Robert Dewar <>
*, einfo.adb (Is_Base_Type): New function, use it where
* exp_ch6.adb, exp_dbug.adb, exp_disp.adb, freeze.adb, lib-xref.adb,
sem_aux.adb, sem_ch3.adb, sem_ch7.adb, sem_ch8.adb (Is_Base_Type): Use
this new abstraction where appropriate.
2010-10-26 Ed Schonberg <>
* sem_ch12.adb: Code clean up.
2010-10-26 Paul Hilfinger <>
* Document effect of 'pragma Unchecked_Union' on
debugging data.
2010-10-26 Ed Schonberg <>
* sem_util.adb (Note_Possible_Modification): If the target of an
assignment is the bound variable in an iterator, the domain of
iteration, i.e. array or container, is modified as well.
2010-10-26 Bob Duff <>
* Make the relevant make targets depend on
ceinfo.adb and csinfo.adb.
* csinfo.adb, ceinfo.adb: Make sure it raises an exception on failure,
so when called from xeinfo, the failure will be noticed.
* Update comments to reflect the fact that xsinfo runs csinfo
* xsinfo.adb, xeinfo.adb: Run ceinfo to check for errors. Close files.
2010-10-26 Ed Schonberg <>
* exp_ch4.adb: Set properly parent field of operands of concatenation.
2010-10-26 Ed Schonberg <>
* sem_res.adb (Check_Infinite_Recursion): A recursive call within a
conditional expression or a case expression should not generate an
infinite recursion warning.
2010-10-26 Javier Miranda <>
*, einfo.adb (Is_Overriding_Operation): Removed.
(Set_Is_Overriding_Operation): Removed.
* sem_ch3.adb (Check_Abstract_Overriding): Remove redundant call to
* exp_ch7.adb (Check_Visibly_Controlled): Remove redundant call to
* sem_ch7.adb (Declare_Inherited_Private_Subprograms): Remove redundant
call to Set_Is_Overriding_Operation.
* sem_util.adb (Collect_Primitive_Operations): Replace test on
Is_Overriding_Operation by test on the presence of attribute
(Original_Corresponding_Operation): Remove redundant call to attribute
* sem_ch6.adb (Analyze_Abstract_Subprogram_Declaration): Remove
redundant call to Is_Overriding_Operation.
(Verify_Overriding_Indicator): Replace several occurrences of test on
Is_Overriding_Operation by test on the presence of attribute
(Check_Convention): Replace test on Is_Overriding_Operation by test on
the presence of Overridden_Operation.
(Check_Overriding_Indicator): Add missing decoration of attribute
Overridden_Operation. Minor code cleanup.
(New_Overloaded_Entity): Replace occurrence of test on
Is_Overriding_Operation by test on the presence of attribute
Overridden_Operation. Remove redundant setting of attribute
Is_Overriding_Operation plus minor code reorganization.
Add missing decoration of attribute Overridden_Operation.
* sem_elim.adb (Set_Eliminated): Replace test on
Is_Overriding_Operation by test on the presence of Overridden_Operation.
* sem_ch8.adb (Analyze_Subprogram_Renaming): Replace test on
Is_Overriding_Operation by test on the presence of
Overridden_Operation. Remove a redundant test on attribute
* lib-xref.adb (Generate_Reference): Replace test on
Is_Overriding_Operation by test on the presence of Overridden_Operation.
(Output_References): Replace test on Is_Overriding_Operation by test on
the presence of Overridden_Operation.
* sem_disp.adb (Override_Dispatching_Operation): Replace test on
Is_Overriding_Operation by test on the presence of Overridden_Operation.
Add missing decoration of attribute Overridden_Operation.
2010-10-26 Robert Dewar <>
* sem_ch13.adb (Adjust_Record_For_Reverse_Bit_Order): Properly check
RM 13.4.1(10).
2010-10-26 Bob Duff <>
* sem_res.adb (Resolve_Actuals): In case of certain
internally-generated type conversions (created by OK_Convert_To, so the
Conversion_OK flag is set), avoid fetching the component type when it's
not really an array type, but a private type completed by an array type.
2010-10-26 Ed Schonberg <>
* sem_ch5.adb: Adjust format of error message.
2010-10-26 Robert Dewar <>
*, einfo.adb (OK_To_Reference): Removed, no longer used.
* exp_util.adb (Side_Effect_Free): Put in safety barrier in code to
detect renamings to avoid problems with invariants.
* sem_ch13.adb (Replace_Type_References_Generic): New procedure
(Build_Invariant_Procedure): Use Replace_Type_Reference_Generic
(Build_Predicate_Function): Use Replace_Type_Reference_Generic
* sem_res.adb, sem_ch8.adb, sem_ch4.adb (OK_To_Reference): Remove
references, flag is no longer set.
2010-10-26 Vincent Celier <>
* (Source_Data): New Boolean component Initialized, defaulted
to False, set to True when Source_Data is completely initialized.
* prj-env.adb: Minor comment fix.
2010-10-26 Robert Dewar <>
* sem_case.adb, sem_ch6.adb, sem_util.adb: Minor reformatting.
2010-10-26 Ed Schonberg <>
* sem_ch5.adb (Analyze_Iteration_Scheme): Diagnose attempt to use thew
form "for X in A" when A is an array object. This form is only intended
for containers.
* sem_eval.adb: Fix reference to non-existing field of type conversion
* sem_case.adb (Check_Choices): Improve error reporting for overlapping
choices in case statements.
2010-10-26 Gary Dismukes <>
* exp_disp.adb (Expand_Interface_Actuals): When expanding an actual for
a class-wide interface formal that involves applying a displacement
conversion to the actual, check for the case of calling a build-in-place
function and handle generation of the implicit BIP parameters (call
Add with and use of Exp_Ch6.
2010-10-26 Robert Dewar <>
* sem_prag.adb, Minor reformatting.
2010-10-26 Sergey Rybin <>
* Define VMS qualifier for gnatelim '--ignore' option
2010-10-26 Thomas Quinot <>
* sem_util.adb (Has_Preelaborable_Initialization.Check_Components):
For a discriminant, use Discriminant_Default_Value rather than
Expression (Declaration_Node (D)).
2010-10-26 Geert Bosch <>
* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Parameterized
expressions don't need a spec, even when style checks require
subprograms to have one.
2010-10-26 Arnaud Charlet <>
* Update comments.
2010-10-26 Matthew Heaney <>
* Makefile.rtl, impunit.adb: Add bounded hashed set and bounded hashed
map containers.
* Add declaration of generic package for bounded hash
table types.
*, a-chtgbo.adb,, a-chtgbk.adb,,
a-cbhase.adb,, a-cbhama.adb: New files.
2010-10-26 Ed Schonberg <>
* sem_warn.adb: Improve warning message on overlapping actuals.
2010-10-26 Thomas Quinot <>
* sem_ch4.adb, exp_dist.adb: Minor reformatting.
2010-10-26 Vincent Celier <>
* makeusg.adb (Makeusg): Add lines for switches -vl, -vm and -vh.
2010-10-26 Robert Dewar <>
* exp_ch3.adb (Expand_N_Object_Declaration): Move generation of
predicate check to analyzer, since too much rewriting occurs in the
* sem_ch13.adb (Build_Predicate_Function): Change calling sequence, and
change the order in which things are done to fix several errors in
dealing with qualification of the type name.
(Build_Static_Predicate): Built static predicate after full analysis
of the body. This is necessary to fix several problems.
* sem_ch3.adb (Analyze_Object_Declaration): Move predicate check here
from expander, since too much expansion occurs in the analyzer to leave
it that late.
(Analyze_Object_Declaration): Change parameter Include_Null to new name
Include_Implicit in Is_Partially_Initialized_Type call.
(Analyze_Subtype_Declaration): Make sure predicates are proapagated in
some strange cases of internal subtype generation.
*, sem_util.adb (Is_Partially_Initialized_Type): Change
Include_Null to Include_Implicit, now includes the case of
2010-10-26 Sergey Rybin <>
* gnat_rm.texi: Revise the documentation for pragma Eliminate.
2010-10-26 Matthew Heaney <>
* Makefile.rtl, impunit.adb: Added bounded list container.
*, a-cbdlli.adb: New file.
2010-10-25 Eric Botcazou <>
* gcc-interface/utils2.c: Include flags.h and remove prototypes.
(build_unary_op) <TRUTH_NOT_EXPR>: When not optimizing, fold the result
of the call to invert_truthvalue_loc.
* gcc-interface/ (utils2.o): Add $(FLAGS_H).
2010-10-25 Eric Botcazou <>
* gcc-interface/utils.c (update_pointer_to): Clear TYPE_POINTER_TO and
TYPE_REFERENCE_TO of the old type after redirecting its pointer and
reference types.
2010-10-25 Eric Botcazou <>
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Do not set
TREE_THIS_NOTRAP on the INDIRECT_REF node built for the template.
2010-10-25 Jose Ruiz <>
* gcc-interface/ (LIBGNAT_TARGET_PAIRS for powerpc-linux):
Reorganize target pairs so that it works on linux and ElinOS.
2010-10-25 Pascal Obry <>
* adaint.c (__gnat_file_time_name_attr): Use GetFileAttributesEx to get
the timestamp. A bit faster than opening/closing the file.
(__gnat_stat_to_attr): Remove kludge for Windows.
(__gnat_file_exists_attr): Likewise.
The timestamp is now retreived using GetFileAttributesEx as faster.
2010-10-25 Javier Miranda <>
* sem_ch3.adb (Derive_Interface_Subprogram): New subprogram.
(Derive_Subprograms): For abstract private types transfer to the full
view entities of uncovered interface primitives. Required because if
the interface primitives are left in the private part of the package
they will be decorated as hidden when the analysis of the enclosing
package completes (and hence the interface primitive is not visible
for dispatching calls).
2010-10-25 Matthew Heaney <>
* Makefile.rtl, impunit.adb: Added bounded set and bounded map
* Added declaration of generic package for bounded tree
*, a-rbtgbo.adb,, a-rbtgbk.adb,,
a-btgbso.adb,, a-cborse.adb,, a-cborma.adb:
2010-10-25 Thomas Quinot <>
* sem_util.adb: Minor reformatting.
* usage.adb: Fix usage line for -gnatwh.
2010-10-25 Thomas Quinot <>
* sem_ch12.adb (Analyze_Package_Instantiation): For an
instantiation in an RCI spec, omit package body if instantiation comes
from source, even as a nested
* exp_dist.adb (Add_Calling_Stubs_To_Declarations,
*_Support.Add_Receiving_Stubs_To_Declarations): Handle the case of
nested packages, package instantiations and subprogram instantiations.
2010-10-25 Robert Dewar <>
* exp_ch5.adb (Expand_Predicated_Loop): Remove code for loop through
non-static predicate, since we agree not to allow this.
(Expand_Predicated_Loop): Properlay handle false predicate (null
list in Static_Predicate field.
* sem_ch13.adb (Build_Static_Predicate): Extensive changes to clean up
handling of more general predicate forms.
2010-10-25 Robert Dewar <>
* sem_ch4.adb, sem_util.adb: Minor reformatting.
* sem_ch8.adb (Find_Selected_Component): Allow selection from instance
of type in predicate or invariant expression.
2010-10-25 Pascal Obry <>
* adaint.c (__gnat_stat_to_attr): Can set the timestamp on Windows now.
(f2t): New routine.
(__gnat_stat): Rewrite Win32 version.
2010-10-25 Robert Dewar <>
* sem_warn.adb,, exp_ch4.adb: Minor comment fix
* sem_case.adb: Comment clarification for loops through false
* sem_util.adb: Minor reformatting
(Check_Order_Dependence): Fix bad double blank in error message
2010-10-25 Ed Schonberg <>
* sem_ch4.adb (Analyze_Membership_Op): in Ada_2012 a membership
operation can have a single alternative that is a value of the type.
Rewrite operation as an equality test.
2010-10-25 Matthew Heaney <>
* Makefile.rtl, impunit.adb: Added a-cobove (bounded vector container)
to lists.
* Added declaration of Capacity_Error exception.
*, a-cobove.adb: New files.
2010-10-25 Thomas Quinot <>
* uname.adb: Revert previous change, no longer needed after change
in par-ch10.adb.
2010-10-25 Thomas Quinot <>
* Minor comment fix.
2010-10-25 Ed Schonberg <>
* sem_ch5.adb (Analyze_Assignment_Statement): Check dangerous order
* sem_ch6.adb (Analyze_Procedure_Call_Statement): Ditto.
* sem_res.adb (Analyze_Actuals): Add actual to list of actuals for
current construct, for subsequent order dependence checking.
(Resolve): Check order dependence on expressions that are not
* sem_util.adb (Check_Order_Dependence): Code cleanup, to correspond
to latest version of AI05-144-2.
* sem_warn.adb (Warn_On_Overlapping_Actuals): Code cleanup.
2010-10-25 Robert Dewar <>
* sem_ch13.adb (Build_Static_Predicate): Moved out of
(Build_Static_Predicate): Complet rewrite for more general predicates
2010-10-25 Richard Kenner <>
Eric Botcazou <>
* gcc-interface/decl.c (gnat_to_gnu_entity, case E_Function): Allow
In Out/Out parameters for functions.
* gcc-interface/trans.c (gnu_return_var_stack): New variable.
(create_init_temporary): New static function.
(Subprogram_Body_to_gnu): Handle In Out/Out parameters for functions.
(call_to_gnu): Likewise. Use create_init_temporary in order to create
temporaries for unaligned parameters and return value. If there is an
unaligned In Out or Out parameter passed by reference, push a binding
level if not already done. If a binding level has been pushed and the
call is returning a value, create the call statement.
(gnat_to_gnu) <N_Return_Statement>: Handle In Out/Out parameters for
2010-10-22 Ben Brosgol <>
* gnat_rm.texi: Add chapter on Ada 2012 support.
2010-10-22 Robert Dewar <>
* sem_ch12.adb: Minor reformatting.
2010-10-22 Thomas Quinot <>
* exp_dist.adb: Mark missing case of nested package when expanding
2010-10-22 Ed Schonberg <>
* par-ch10.adb: Discard incomplete with_clause.
2010-10-22 Robert Dewar <>
* checks.adb (Enable_Range_Check): Remove code suppressing range check
if static predicate present, not needed.
* exp_attr.adb (Expand_Pred_Succ): Check Suppress_Assignment_Checks flag
* exp_ch3.adb (Expand_N_Object_Declaration): Check
Suppress_Assignment_Checks flag.
* exp_ch4.adb (Expand_N_In): Make some corrections for proper handling
of ranges when predicates are present.
* exp_ch5.adb (Expand_Predicated_Loop): New procedure
(Expand_N_Assignment_Statement): Check Suppress_Assignment_Checks flag
(Expand_N_Loop_Statement): Handle loops over predicated types
* sem_case.adb (Analyze_Choices): Remove extra blank in error message.
* sem_ch13.adb (Build_Predicate_Function.Add_Call): Suppress info
message for inheritance if within a generic instance, not useful there!
(Build_Static_Predicate): Optimize test in predicate function
based on static ranges determined.
* sem_ch5.adb (Analyze_Iteration_Scheme): Error for loop through
subtype with non-static predicate.
*, sinfo.adb (Suppress_Assignment_Checks): New flag.
2010-10-22 Thomas Quinot <>
* uname.adb (Get_Unit_Name.Add_Node_Name): If encountering an error
node in the unit name, propagate Program_Error to guard against
cascaded errors.
2010-10-22 Javier Miranda <>
* sem_ch8.adb (Find_Selected_Component): Do not generate a subtype for
selected components of dispatch table wrappers.
2010-10-22 Ed Schonberg <>
* exp_ch9.adb (Make_Initialize_Protection): A protected type that
implements an interface must be treated as if it has entries, to
support dispatching select statements.
2010-10-22 Robert Dewar <>
* sem_aggr.adb, sem_ch3.adb: Minor reformatting.
2010-10-22 Javier Miranda <>
* sem_aggr.adb (Resolve_Array_Aggregate.Add): If the type of the
aggregate has a non standard representation the attributes 'Val and
'Pos expand into function calls and the resulting expression is
considered non-safe for reevaluation by the backend. Relocate it into
a constant temporary to indicate to the backend that it is side
effects free.
2010-10-22 Ed Schonberg <>
* sem_ch3.adb (Build_Concurrent_Derived_Type): Create declaration for
derived corresponding record type only when expansion is enabled.
2010-10-22 Robert Dewar <>
* sem_case.adb, sem_attr.adb (Bad_Predicated_Subtype_Use): Change order
of parameters.
* sem_ch13.adb (Build_Predicate_Function): Don't give inheritance
messages for generic actual subtypes.
* sem_ch9.adb, sem_res.adb, sem_util.adb,, sem_ch3.adb
(Bad_Predicated_Subtype_Use): Use this procedure.
2010-10-22 Robert Dewar <>
* sem_ch5.adb: Minor reformatting.
2010-10-22 Robert Dewar <>
* a-except-2005.adb (Rmsg_18): New message text.
* a-except.adb (Rmsg_18): New message text.
* atree.adb (List25): New function
(Set_List25): New procedure
* (List25): New function
(Set_List25): New procedure
* einfo.adb (Static_Predicate): Is now a list
(OK_To_Reference): Present in all entities
* (Static_Predicate): Is now a list
(OK_To_Reference): Applies to all entities
* exp_ch13.adb (Build_Predicate_Function): Moved to Sem_Ch13
* sem_attr.adb (Bad_Attribute_For_Predicate): Call
*, sem_case.adb: Major surgery to deal with predicated
subtype case.
* sem_ch13.adb (Build_Predicate_Function): Moved from Exp_Ch13 to
(Build_Static_Predicate): New procedure handles static predicates.
* sem_ch3.adb (Analyze_Subtype_Declaration): Delay freeze on subtype
with no constraint if ancestor subtype has predicates.
(Analyze_Variant_Part): New calling sequence for Analyze_Choices
* sem_ch4.adb (Junk_Operand): Don't complain about OK_To_Reference
(Analyze_Case_Expression): New calling sequence for Analyze_Choices
* sem_ch5.adb (Analyze_Case_Statement): New calling sequence for
*, sem_util.adb (Bad_Predicated_Subtype_Use): New procedure
* (PE_Bad_Predicated_Generic_Type): Replaces
* atree.h: Add definition of List25.
2010-10-22 Jerome Lambourg <>
* gnatlink.adb (Process_Binder_File): Remove CLI-specific code, now
moved to dotnet-ld.
(Gnatlink): Remove CLI-specific code, moved to dotnet-ld
* bindgen.adb (Gen_Object_Files_Options): Do not issue -L switches with
the .NET compiler, useless and unsupported.
2010-10-22 Robert Dewar <>
* (Get_Num_Lit_From_Pos): Fix errors in documentation,
this returns a Node_Id for a reference to the entity, not the entity
2010-10-22 Ed Schonberg <>
* sem_ch5.adb (Analyze_Iteration_Scheme): use Insert_Actions when
bounds require a temporary.
2010-10-22 Robert Dewar <>
* sem_ch4.adb: Minor reformatting.
* Minor comment fixes for Ada 2012 syntax.
2010-10-22 Robert Dewar <>
* par-ch5.adb: Minor reformatting.
* gcc-interface/ Update dependencies.
2010-10-22 Robert Dewar <>
* a-except.adb, a-except-2005.adb: Add new Rcheck entry.
* exp_ch13.adb (Add_Call): Make sure subtype is marked with
Has_Predicates set to True if it inherits predicates.
* sem_attr.adb: Handle 'First/'Last/'Range for predicated types
* (PE_Bad_Attribute_For_Predicate): New reason code
* types.h: Add new Rcheck entry.
*, einfo.adb (Static_Predicate): New field.
Minor code reorganization (file float routines in proper section)
Fix bad field name in comments.
2010-10-22 Robert Dewar <>
* sem_eval.adb (Subtypes_Statically_Compatible): Check null exclusion
2010-10-22 Vincent Celier <>
* prj-conf.adb (Get_Config_Switches): Detect if there is at least one
declaration of IDE'Compiler_Command for one of the language in the main
(Do_Autoconf): If there were at least one Compiler_Command declared and
no target, invoke gprconfig with --target=all instead of the normalized
host name.
2010-10-22 Robert Dewar <>
* par-ch4.adb: Update syntax in comments for Ada 2012.
* Update syntax in comments for Ada 2012
* par-ch3.adb (Check_Restricted_Expression): Remove "in Ada 2012 mode"
from msg.
2010-10-22 Gary Dismukes <>
* sem_ch3.adb (Check_Or_Process_Discriminants): In Ada 2012, allow
limited tagged types to have defaulted discriminants. Customize the
error message for the Ada 2012 case.
(Process_Discriminants): In Ada 2012, allow limited tagged types to have
defaulted discriminants. Customize the error message for the Ada 2012
* sem_ch6.adb (Create_Extra_Formals): Suppress creation of the extra
formal for out formals of discriminated types in the case where the
underlying type is a limited tagged type.
* exp_attr.adb (Expand_N_Attribute_Reference, case
Attribute_Constrained): Return True for 'Constrained when the
underlying type of the prefix is a limited tagged type.
2010-10-22 Thomas Quinot <>
* sem_ch3.adb (Complete_Private_Subtype): The full view of the subtype
may already have a rep item chain inherited from the full view of the
base type, so do not overwrite it when propagating rep items from the
partial view of the subtype.
* sem_ch3.adb: Minor code reorganization. Minor reformatting.
2010-10-22 Sergey Rybin <>
* gnat_ugn.texi (gnatmetric): Remove description of debug option.
2010-10-22 Tristan Gingold <>
* adaint.c (__gnat_number_of_cpus): Add implementation for VMS.
2010-10-22 Ed Schonberg <>
* par-ch5.adb: Set properly starting sloc of loop parameter.
2010-10-22 Ed Schonberg <>
* sem_util.adb (May_Be_Lvalue): An actual in a function call can be an
lvalue in Ada2012, if the function has in-out parameters.
2010-10-22 Robert Dewar <>
* cstand.adb, einfo.adb, exp_attr.adb, sem_prag.adb, sem_vfpt.adb,
sem_ch10.adb: Minor reformatting.
2010-10-22 Sergey Rybin <>
* gnat_ugn.texi: Remove most of the content of gnatcheck chapter.
2010-10-22 Ed Schonberg <>
* sem_attr.adb: Handle indexed P'old.
2010-10-22 Geert Bosch <>
* cstand.adb (Build_Float_Type): Set Float_Rep according to platform.
* (Float_Rep): New attribute.
(Float_Rep_Kind): Move from body. Add comments.
* einfo.adb (Float_Rep_Kind): Move to spec
(Float_Rep): Now a real field instead of local function.
(Set_Float_Rep): New procedure to set floating point representation
(Set_Vax_Float): Remove.
(Write_Entity_Flags): Remove Vax_Float flag.
(Write_Field10_Name): Add E_Floating_Point_Type case for Float_Rep.
* exp_attr.adb (Attribute_Valid): Use case statement for representation
specific processing.
* sem_ch3.adb (Build_Derived_Numeric_Type,
Floating_Point_Type_Declaration): Set Float_Rep instead of Vax_Float
*, sem_util.adb (Is_AAMP_Float): Remove.
* sem_vfpt.adb (Set_D_Float, Set_F_Float, Set_G_Float, Set_IEEE_Long,
Set_IEEE_Short): Set Float_Rep instead of Vax_Float attribute.
2010-10-22 Robert Dewar <>
* sprint.adb: Minor reformatting.
2010-10-22 Robert Dewar <>
* exp_ch3.adb (Expand_N_Object_Declaration): Do required predicate
* sem_ch3.adb (Complete_Private_Subtype): Propagate predicates to full
* sem_ch6.adb (Invariants_Or_Predicates_Present): New name for
(Process_PPCs): Handle predicates generating post conditions
* sem_util.adb (Is_Partially_Initialized_Type): Add
Include_Null parameter.
* (Is_Partially_Initialized_Type): Add
Include_Null parameter.
2010-10-22 Sergey Rybin <>
* gnat_ugn.texi (gnatelim): Add description for '--ignore' option
2010-10-22 Thomas Quinot <>
* sem_prag.adb (Check_First_Subtype): Specialize error messages for
case where argument is not a type.
2010-10-22 Robert Dewar <>
* exp_ch5.adb, par-ch4.adb, par-ch5.adb, sem_ch5.adb, Minor
2010-10-22 Arnaud Charlet <>
* a-locale.adb: Minor code clean up.
2010-10-22 Thomas Quinot <>
* exp_ch4.adb: Minor code reorganization and factoring.
2010-10-22 Thomas Quinot <>
* exp_ch5.adb, sem_ch5.adb,,, par-ch5.adb:
Minor reformatting.
2010-10-22 Geert Bosch <>
* Fix typo in comment.
2010-10-22 Ed Schonberg <>
* sem_ch6.adb: Enable in-out parameter for functions.
2010-10-22 Ed Schonberg <>
* sem_ch4.adb (Analyze_Quantified_Expression): Handle properly loop
iterators that are transformed into container iterators after analysis.
* exp_ch4.adb (Expand_N_Quantified_Expression): Handle properly both
iterator forms before rewriting as a loop.
2010-10-22 Brett Porter <>
* a-locale.adb,, locales.c: New files.
* Makefile.rtl: Add a-locale
* gcc-interface/ Add locales.c
2010-10-22 Robert Dewar <>
*, sem_util.adb,, sem_aux.adb
(Is_Generic_Formal): Moved from Sem_Util to Sem_Aux.
2010-10-22 Ed Schonberg <>
* exp_ch5.adb (Expand_Iterator_Loop): New subprogram, implements new
iterator forms over arrays and containers, in loops and quantified
* exp_util.adb (Insert_Actions): include N_Iterator_Specification.
* par-ch4.adb (P_Quantified_Expression): Handle iterator specifications.
* par-ch5.adb (P_Iterator_Specification): New subprogram. Modify
P_Iteration_Scheme to handle both loop forms.
* sem.adb: Handle N_Iterator_Specification.
* sem_ch5.adb, (Analyze_Iterator_Specification): New
* sinfo.adb, New node N_Iterator_Specification.
N_Iteration_Scheme can now include an Iterator_Specification. Ditto
for N_Quantified_Expression.
* Add names Cursor, Element, Element_Type, No_Element,
and Previous, to support iterators over predefined containers.
* sprint.adb: Handle N_Iterator_Specification.
2010-10-22 Thomas Quinot <>
* sem_prag.adb, sem_ch12.adb, sem_util.adb,
(Is_Generic_Formal): Move from body of Sem_Ch12 to Sem_Util.
(Check_Arg_Is_Local_Name): Fix check in the case of a pragma appearing
immediately after a library unit.
(Analyze_Pragma, case Preelaborable_Initialization): Pragma may apply to
a formal derived type.
2010-10-22 Geert Bosch <>
* gcc-interface/ Remove
* checks.adb: Use Machine_Mantissa_Value and Machine_Radix_Value instead
of Machine_Mantissa and Machine_Radix.
* cstand.adb (P_Float_Range): Directly print the Type_Low_Bound and
Type_High_Bound of the type, instead of choosing constants from Ttypef.
(Set_Float_Bounds): Compute the bounds based on Machine_Radix_Value,
Machine_Emax_Value and Machine_Mantissa_Value instead of special-casing
each type.
* (Machine_Emax_Value, Machine_Emin_Value,
Machine_Mantissa_Value, Machine_Radix_Value, Model_Emin_Value,
Model_Epsilon_Value, Model_Mantissa_Value, Model_Small_Value,
Safe_Emax_Value, Safe_First_Value, Safe_Last_Value): Add new
synthesized floating point attributes.
* einfo.adb (Float_Rep): Determine the kind of floating point
representation used for a given type.
(Machine_Emax_Value, Machine_Emin_Value, Machine_Mantissa_Value,
Machine_Radix_Value): Implement based on Float_Rep_Kind of a type and
the number of digits in the type.
(Model_Emin_Value, Model_Epsilon_Value, Model_Mantissa_Value,
Model_Small_Value, Safe_Emax_Value, Safe_First_Value, Safe_Last_Value):
Implement new synthesized floating point attributes based on the various
machine attributes.
* Remove Machine_Mantissa and Machine_Radix.
* eval_fat.adb (Machine_Mantissa, Machine_Radix): Remove. Use the
Machine_Mantissa_Value and Machine_Radix_Value functions instead.
* exp_vfpt.adb (VAXFF_Digits, VAXDF_Digits, VAXFG_Digits): Define local
constants, instead of using constants from Ttypef.
* gnat_rm.texi: Reword comments referencing Ttypef.
* Reword comment referencing Ttypef.
* sem_attr.adb (Float_Attribute_Universal_Integer,
Float_Attribute_Universal_Real): Remove.
(Attribute_Machine_Emax, Attribute_Machine_Emin,
Attribute_Machine_Mantissa, Attribute_Model_Epsilon,
Attribute_Model_Mantissa, Attribute_Model_Small, Attribute_Safe_Emax,
Attribute_Safe_First, Attribute_Safe_Last, Model_Small_Value): Use
attributes in Einfo instead of Float_Attribute_Universal_Real and
Float_Attribute_Universal_Integer and all explicit constants.
*, sem_util.adb (Real_Convert): Remove.
* sem_vfpt.adb (VAXDF_Digits, VAXFF_Digits, VAXGF_Digits, IEEEL_Digits,
IEEES_Digits): New local constants, in order to remove dependency on
* (Make_Float_Literal): New function.
* tbuild.adb (Make_Float_Literal): New function to create a new
N_Real_Literal, constructing it as simple as possible for best
output of constants in -gnatS.
* Remove.
2010-10-22 Robert Dewar <>
* checks.adb (Apply_Predicate_Check): Remove attempt at optimization
when subtype is the same, caused legitimate checks to be missed.
* exp_ch13.adb (Build_Predicate_Function): Use Nearest_Ancestor to get
inheritance from right entity.
* freeze.adb (Freeze_Entity): Use Nearest_Ancestor to freeze in the
derived type case if the ancestor type has predicates.
*, sem_aux.adb (Nearest_Ancestor): New function.
* sem_prag.adb (Check_Enabled): Minor code reorganization.
2010-10-22 Arnaud Charlet <>
* gcc-interface/utils.c, gcc-interface/gigi.h: Minor reformatting.
2010-10-22 Thomas Quinot <>
* (Declaration_Node): Clarify documentation, in particular
regarding what is returned for subprogram entities.
2010-10-22 Arnaud Charlet <>
* exp_attr.adb (Make_Range_Test): Generate a Range node instead of
explicit comparisons, generates simpler expanded code.
* a-except-2005.adb (Rcheck_06_Ext): New.
* gcc-interface/trans.c (gigi, gnat_to_gnu): Handle validity checks
like range checks.
* gcc-interface/ Update dependencies.
2010-10-22 Robert Dewar <>
* sem_ch3.adb (Array_Type_Declaration): Error for subtype wi predicate
for index type
(Constrain_Index): Error of subtype wi predicate in index constraint
* sem_ch9.adb (Analyze_Entry_Declaration): Error of subtype wi
predicate in entry family.
* sem_res.adb (Resolve_Slice): Error of type wi predicate in slice.
2010-10-22 Javier Miranda <>
*, sem_util.adb (Collect_Parents): New subprogram.
(Original_Corresponding_Operation): New subprogram.
(Visible_Ancestors): New subprogram.
* sem_ch6.adb (New_Overloaded_Entity): Handle new case of dispatching
operation that overrides a hidden inherited primitive.
* sem_disp.adb (Find_Hidden_Overridden_Primitive): New subprogram.
(Check_Dispatching_Operation): if the new dispatching operation
does not override a visible primtive then check if it overrides
some hidden inherited primitive.
2010-10-22 Ed Schonberg <>
* sem_ch10.adb (Analyze_With_Clause): If the parent_unit_name in a with
clause is a child unit that denotes a renaming, replace the
parent_unit_name with a reference to the renamed unit, because the
prefix is irrelevant to subsequent visibility..
2010-10-22 Robert Dewar <>
*, einfo.adb (Has_Predicates): Flag is now on all entities
(simplifies code).
* exp_ch13.adb (Build_Predicate_Function): Output info msgs for
* sem_ch13.adb (Analyze_Aspect_Specifications): Make sure we have a
freeze node for entities for which a predicate is specified.
(Analyze_Aspect_Specifications): Avoid duplicate calls
* sem_ch3.adb (Analyze_Full_Type_Declaration): Remove attempt to avoid
duplicate calls to Analye_Aspect_Specifications.
2010-10-22 Thomas Quinot <>
* a-exextr.adb,, freeze.adb: Minor reformatting.
2010-10-21 Robert Dewar <>
* sem_ch3.adb: Minor reformatting.
2010-10-21 Thomas Quinot <>
* (Next_Girder_Discriminant): Remove obsolete description for
removed routine.
2010-10-21 Nicolas Roche <>
* gnatmem.adb, memroot.adb,, gmem.c,
gcc-interface/ Remove gnatmem specific files.
2010-10-21 Thomas Quinot <>
* sem_res.adb, exp_ch13.adb: Minor reformatting.
2010-10-21 Thomas Quinot <>
* sem_ch3.adb (Check_Or_Process_Discriminant): Reject illegal attempt
to provide a tagged full view as the completion of an untagged partial
view if the partial view has a discriminant with default.
2010-10-21 Arnaud Charlet <>
* gcc-interface/ Update dependencies.
2010-10-21 Robert Dewar <>
*, checks.adb (Apply_Predicate_Check): New procedure
Minor code reorganization.
* einfo.adb (Has_Predicates): Fix assertion.
* exp_ch13.adb (Build_Predicate_Function): Move from Sem_Ch13 spec to
Exp_Ch13 body.
(Expand_N_Freeze_Entity): Call build predicate function.
* exp_ch4.adb (Expand_N_Type_Conversion): Add predicate check.
* exp_ch5.adb (Expand_N_Assignment_Statement): Add predicate check.
* exp_prag.adb (Expand_Pragma_Check): Use all lower case for name of
* freeze.adb (Freeze_Entity): Move building of predicate function to
* sem_ch13.adb (Build_Predicate_Function): Move from Sem_Ch13 to
* (Build_Predicate_Function): Move from Sem_Ch13 to
* sem_ch3.adb (Analyze_Declarations): Remove call to build predicate
* sem_res.adb (Resolve_Actuals): Apply predicate check.
2010-10-21 Robert Dewar <>
*, einfo.adb: Replace Predicate_Procedure by
* exp_ch4.adb (Expand_N_In): Handle predicates.
*, exp_util.adb (Make_Predicate_Call): New function.
(Make_Predicate_Check): New function.
* freeze.adb (Freee_Entity): Build predicate function if needed.
* sem_ch13.adb (Build_Predicate_Function): New procedure.
(Analyze_Aspect_Specifications): No third argument for Predicate pragma
built from Predicate aspect.
* (Build_Predicate_Function): New procedure.
* sem_ch3.adb: Add handling for predicates.
* sem_eval.adb (Eval_Membership_Op): Never static if predicate
functions around.
* sem_prag.adb (Analye_Pragma, case Predicate): Does not take a third
2010-10-21 Robert Dewar <>
*, einfo.adb: Add handling of predicates.
Rework handling of invariants.
* exp_ch3.adb, exp_ch4.adb, exp_util.adb, sem_ch6.adb: Minor changes to
handing of invariants.
* par-prag.adb: Add dummy entry for pragma Predicate
* sem_ch13.adb (Analyze_Aspect_Specifications): Add processing for
Predicate aspects.
* sem_prag.adb: Add implementation of pragma Predicate.
* Add entries for pragma Predicate.
2010-10-21 Robert Dewar <>
* elists.adb: Minor reformatting.
2010-10-21 Geert Bosch <>
* urealp.adb (UR_Write): Write hexadecimal constants with exponent 1 as
decimal constants, and write any others using the exponent notation.
Minor reformatting throughout
(Store_Ureal_Normalized): New function (minor code reorganization)
2010-10-21 Robert Dewar <>
*, xeinfo.adb: Minor reformatting.
* Minor comment fixes.
2010-10-21 Ed Schonberg <>
* sem_ch6.adb (Enter_Overloaded_Entity): Refine warning message about
hiding, to remove noise warnings about hiding predefined operators.
2010-10-21 Emmanuel Briot <>
* g-comlin.adb (Add_Switch): Fix handling of switches with no separator
when the parameter has length 1.
2010-10-21 Jose Ruiz <>
* sem_prag.adb (Set_Ravenscar_Profile): Enforce the restrictions of no
dependence on Ada.Execution_Time.Timers,
Ada.Execution_Time.Group_Budget, and
System.Multiprocessors.Dispatching_Domains which are part of the
Ravenscar Profile.
* impunit.adb (Non_Imp_File_Names_05): Add the file "a-etgrbu" to the
list of Ada 2005 files for package Ada.Execution_Time.Group_Budgets.
(Non_Imp_File_Names_12): Add the file "s-mudido" to the list of Ada 2012
files for package System.Mutiprocessors.Dispatching_Domains.
2010-10-21 Tristan Gingold <>
* ug_words, Define the VMS qualifier for -gnateE.
2010-10-21 Thomas Quinot <>
* (Process_Discriminants): Clarify cases where this is
called for a completion.
2010-10-21 Geert Bosch <>
* Expand image buffer to have enough room for 128-bit values
* (UR_Write): Write constants in base 16 in hexadecimal
notation; either as fixed point literal or in canonical radix 16
floating point form.
2010-10-21 Robert Dewar <>
*,, exp_ch3.adb, exp_attr.adb, exp_ch4.adb,, exp_ch7.adb, exp_ch9.adb, exp_disp.adb,,
exp_dist.adb, exp_util.adb, layout.adb, lib-xref.adb,,
prep.adb, prj-strt.adb, s-ststop.adb,,,
sem_aggr.adb, sem_attr.adb, sem_ch12.adb, sem_ch3.adb, sem_ch4.adb,, sem_ch5.adb, sem_res.adb, sem_util.adb, einfo.adb,, make.adb: Minor reformatting
2010-10-21 Vincent Celier <>
* Add new qualifiers /SRC_INFO= and
Correct qualifier /SRC_INFO= for GNAT MAKE
2010-10-21 Ed Schonberg <>
* exp_aggr.adb (Flatten): An association for a subtype may be an
expanded name.
(Safe_Left_Hand_Side): An unchecked conversion is part of a safe
left-hand side if the expression is.
(Is_Safe_Index): new predicate
* exp_ch3.adb (Expand_Freeze_Enumeration_Type): Indicate that the
generated Rep_To_Pos function is a Pure_Function.
2010-10-21 Robert Dewar <>
* gnat_rm.texi: Document Invariant pragma.
2010-10-21 Javier Miranda <>
* exp_ch5.adb: Update comment.
2010-10-21 Robert Dewar <>
* sem_ch13.adb (Build_Invariant_Procedure): Remove commented out code
for interfaces, since invariants are not allowed on interfaces in any
2010-10-21 Javier Miranda <>
* sem_attr.adb (Resolve_Attribute): After replacing the range attribute
node with a range expression ensure that its evaluation will not have
side effects.
* exp_ch5.adb (Expand_Assign_Array): Propagate the Parent to the
unchecked conversion node generated to handle assignment of private
types. Required to allow climbing the subtree if Insert_Action is
invoked later.
2010-10-21 Robert Dewar <>
* par-ch3.adb (P_Interface_Type_Definition): Allow for possibility of
aspect clause presence terminating the type definition.
2010-10-21 Robert Dewar <>
* exp_ch4.adb, exp_intr.adb, par-ch4.adb, scn.adb, sem_ch4.adb,
sem_res.adb, sem_util.adb,, a-except-2005.adb: Minor
* Add note on Name_Some (not a reserved keyword).
2010-10-21 Geert Bosch <>
* Further cleanup of Safe_XXX float attributes.
2010-10-19 Ed Schonberg <>
* exp_ch4.adb, (Expand_Quantified_Expression): New procedure
* exp_util.adb (Insert_Actions): Include Quantified_Expression.
* expander.adb: Call Expand_Qualified_Expression.
* par.adb: New procedure P_Quantified_Expression. Make
P_Loop_Parameter_Specification global for use in quantified expressions.
* par-ch3.adb (P_Subtype_Mark_Resync): Allow "some" as an identifier if
version < Ada2012.
* par-ch4.adb: New procedure P_Quantified_Expression.
* par-ch5.adb: P_Loop_Parameter_Specification is now global.
* scans.adb, Introduce token Some. For now leave as
* scn.adb (Scan_Reserved_Identifier): For earlier versions of Ada,
treat Some as a regular identifier.
* sem.adb: Call Analyze_Quantified_Expression.
* sem_ch4.adb, New procedure Analyze_Quantified_Expression.
* sem_ch5.adb, Analyze_Iteration_Scheme is public, for use
in quantified expressions.
* sem_res.adb: New procedure Resolve_Qualified_Expression.
* sinfo.adb, New node N_Quantified_Expression
* New name Some.
* sprint.adb: Output quantified_expression.
2010-10-19 Robert Dewar <>
* a-exexda.adb: Minor reformatting
Minor code reorganization.
2010-10-19 Robert Dewar <>
* sem_eval.adb: Minor reformatting.
2010-10-19 Tristan Gingold <>
* exp_ch4.adb (Expand_N_And_Op, Expand_N_Or_Op, Expand_N_Xor_Op): Call
Expand_Intrinsic_Call if the function is intrinsic.
* exp_intr_adb (Expand_Binary_Operator): Handle VMS case for logical
binary operator on the unsigned_quadword record.
* (Expand_Intrinsic_Call): Update comments.
2010-10-19 Geert Bosch <>
* gnat_rm.texi (pragma Float_Representation): Fix typo.
2010-10-19 Arnaud Charlet <>
* switch-c.adb (Scan_Front_End_Switches): Add handling of -gnateE.
* fe.h (Exception_Extra_Info): Declare.
* usage.adb (usage): Add -gnateE doc.
* checks.adb (Install_Null_Excluding_Check): Use better sloc.
* sem_util.adb (Insert_Explicit_Dereference): Ditto.
* gnat_ugn.texi: Document -gnateE switch.
* a-except.adb (Set_Exception_C_Msg): New parameter Column.
* a-except-2005.adb (Set_Exception_C_Msg): New parameter Column.
(Raise_Constraint_Error_Msg): Ditto.
(Image): New helper function.
(Rcheck_00_Ext, Rcheck_05_Ext, Rcheck_12_Ext): New procedure with more
detailed exception information.
Adjust calls to Set_Exception_C_Msg and Raise_Constraint_Error_Msg.
* a-exexda.adb (Set_Exception_C_Msg): New parameter Column.
* (Exception_Extra_Info): New flag.
* gcc-interface/utils.c (gnat_raise_decls_ext): New.
* gcc-interface/utils2.c (build_call_raise_range,
build_call_raise_column): New functions.
* gcc-interface/gigi.h (exception_info_kind, gnat_raise_decls_ext,
build_call_raise_range, build_call_raise_column): Declare.
gcc-interface/trans.c (build_raise_check): New function.
(gigi): Initialize gnat_raise_decls_ext.
(gnat_to_gnu): Add initial support for -gnateE switch.
* gcc-interface/ Update dependencies.
2010-10-19 Geert Bosch <>
* Change VAXDF_Last to be -VAXDF_First, as type is
2010-10-19 Robert Dewar <>
* atree.h (Field29): Fix incorrect definition.
* einfo.adb (Invariant_Procedure): New attribute
(Has_Invariants): New flag
(Has_Inheritable_Invariants): New flag
(OK_To_Reference): New flag
Minor code reorganization (use Next_Rep_Item function)
* (Invariant_Procedure): New attribute
(Has_Invariants): New flag
(Has_Inheritable_Invariants): New flag
(OK_To_Reference): New flag
* exp_ch3.adb (Expand_N_Object_Declaration): Add check for invariant
* exp_ch4.adb (Expand_N_Type_Conversion): Check invariant on type
conversion. Minor reformatting.
*, exp_util.adb (Make_Invariant_Call): New procedure.
* (List_Inherited_Aspects): New name for List_Inherited_Pre_Post
* par-prag.adb: Add dummy entry for pragma Invariant.
* sem_ch13.adb (Build_Invariant_Procedure): New procedure
(Analyze_Aspect_Specification): Add support for Invariant aspect
* (Build_Invariant_Procedure): New procedure
* sem_ch3.adb (Build_Derived_Type): Propagate invariant information
(Process_Full_View): Deal with invariants, building invariant procedure
Minor reformatting
* sem_ch6.adb (Process_PPCs): Add processing of invariants
* sem_ch7.adb (Analyze_Package_Specification): Build invariant
* sem_prag.adb: Implement pragma Invariant.
* sem_res.adb (Resolve_Entity_Name): Allow type reference if
OK_To_Reference set.
* sem_warn.adb (List_Inherited_Aspects): New name for
* Add entries for pragma Invariant.
* treepr.adb (Print_Entity_Information): Add handling of Field29.
* usage.adb: Warning .l/.L applies to invariant as well as pre/post.
2010-10-19 Javier Miranda <>
* par-ch4.adb: Update documentation of Ada 2012 syntax rules for
membership test.
2010-10-19 Bob Duff <>
* sem_attr.adb (Eval_Attribute): Implement Max_Alignment_For_Allocation
* exp_attr.adb (Expand_N_Attribute_Reference): Add
Attribute_Max_Alignment_For_Allocation to the case statement.
* (Name_Max_Alignment_For_Allocation,
Attribute_Max_Alignment_For_Allocation): New attribute name.
2010-10-19 Ed Schonberg <>
* sem_ch3.adb (OK_For_Limited_Init_In_05): a call to an access to
parameterless function appears syntactically as an explicit dereference.
2010-10-19 Thomas Quinot <>
* sem_ch8.adb, sem_ch12.adb,, sem_ch6.adb, sem_res.adb,, exp_disp.adb, exp_ch4.adb, exp_ch9.adb: Minor reformatting
2010-10-19 Thomas Quinot <>
* sem_util.adb (Collect_Primitive_Operations): A function with an
anonymous access result designating T is a primitive operation of T.
2010-10-19 Tristan Gingold <>
* init.c: On Alpha/VMS, only adjust PC for HPARITH.
2010-10-19 Tristan Gingold <>
* sem_attr.adb (Eval_Attribute): Handle Attribute_Ref, which can be
evaluated on VMS.
2010-10-19 Ed Schonberg <>
* sem_ch12.adb (Check_Generic_Child_Unit): Handle properly the case of
an instantiation of a renaming of the implicit generic child that
appears within an instance of its parent.
2010-10-19 Thomas Quinot <>
* exp_ch9.adb: Minor reformatting.
* einfo.adb,, atree.adb,, exp_dist.adb, atree.h:
(Referenced_Object): Remove unused entity attribute.
(Direct_Primitive_Operations): Move to Elist10, this is set for all
tagged types, including synchronous ones, so can't use field15 which is
used as Storage_Size_Variable for task types and Entry_Bodies_Array for
protected types.
(Add_RACW_Primitive_Declarations_And_Bodies): Remove bogus guard
against Concurrent_Types (we must handle the case of a RACW designating
a class-wide private synchronous type).
Use Direct_Primitive_Operations, not Primitive_Operations, since we
really want the former.
2010-10-19 Bob Duff <>
* sem_ch8.adb (Pop_Scope): Change "return;" to "raise Program_Error;".
2010-10-19 Javier Miranda <>
* exp_ch4.adb (Expand_Set_Membership.Make_Cond): Add missing support
for N_Range nodes.
2010-10-19 Thomas Quinot <>
*, Minor comment fixes.
2010-10-18 Bob Duff <>
*, sinfo.adb: Modify comment about adding fields to be more
correct, and to be in a more convenient order.
(Default_Storage_Pool): New field of N_Compilation_Unit_Aux, for
recording the Default_Storage_Pool for a parent library unit.
* (Etype): Document the case in which Etype can be Empty.
* sem_prag.adb (Pragma_Default_Storage_Pool): Analyze the new
Default_Storage_Pool pragma.
* (Save_Default_Storage_Pool): Save area for push/pop scopes.
* gnat_ugn.texi: Document Default_Storage_Pool as a new configuration
* freeze.adb (Freeze_Entity): When freezing an access type, take into
account any Default_Storage_Pool pragma that applies. We have to do
this at the freezing point, because up until that point, a Storage_Pool
or Storage_Size clause could occur, which should override the
* par-prag.adb: Add this pragma to the list of pragmas handled entirely
during semantics.
* sem_ch8.adb (Push_Scope, Pop_Scope): Save and restore the
Default_Storage_Pool information.
* (Default_Pool, Default_Pool_Config): New globals for recording
currently-applicable Default_Storage_Pool pragmas.
* opt.adb: Save/restore the globals as appropriate.
* (Name_Default_Storage_Pool,
Pragma_Default_Storage_Pool): New pragma name.
2010-10-18 Vincent Celier <>
* make.adb (Switches_Of): Put the spec and body suffix in canonical
2010-10-18 Ed Schonberg <>
* sem_ch13.adb (Analyze_Aspect_Specifications): If subprogram is at the
library level, the pre/postconditions must be treated as global
declarations, i.e. placed on the Aux_Decl nodes of the compilation unit.
* freeze.adb (Freeze_Expression): If the expression is at library level
there is no enclosing record to check.
2010-10-18 Javier Miranda <>
* (Find_Type_Name): Add documentation.
* sem_ch3.adb (Analyze_Full_Type_Declaration): Code cleanup because the
propagation of the class-wide entity is now done by routine
Find_Type_Name to factorize this code.
(Analyze_Private_Extension_Declaration): Handle private type that
completes an incomplete type.
(Tag_Mismatch): Add error message for tag mismatch in a private type
declaration that completes an incomplete type.
(Find_Type_Name): Handle completion of incomplete type by means of
a private declaration. Generate an error if a tagged incomplete type
is completed by an untagged private type.
* sem_ch7.adb (New_Private_Type): Handle private type that completes an
incomplete type.
* (Full_View): Add documentation.
2010-10-18 Ed Schonberg <>
* sem_ch12.adb (Analyze_Formal_Package_Declaration): If the package is
a renaming, generate a reference for it before analyzing the renamed
entity, to prevent spurious warnings.
2010-10-18 Jose Ruiz <>
* adaint.c (__gnat_pthread_setaffinity_np,
__gnat_pthread_attr_setaffinity_np): Remove wrappers, no longer needed.
* (pthread_setaffinity_np,
pthread_attr_setaffinity_np): Remove use of wrappers.
* s-taprop-linux.adb (Create_Task, Initialize): Restore check to verify
whether the affinity functionality is available in the OS.
* gcc-interface/utils.c: Set TREE_STATIC on functions only when there
are defined.
2010-10-18 Robert Dewar <>
*, einfo.adb: Minor reformatting.
* gnat_ugn.texi, ug_words: Add missing entries, fix typos.
2010-10-18 Emmanuel Briot <>
* g-comlin.adb (Is_In_Config): When the switch accepts either a space
or equal, we output an equal every time.
2010-10-18 Ed Schonberg <>
* sem_res.adb (Resolve_Entry_Call): Handle call to an entry family
member when pre/post conditions are present.
* exp_ch9.adb (Build_PPC_Wrapper): The PPC_Wrapper for an entry family
includes an index parameter, and the name of the enclosed entry call is
an indexed component.
2010-10-18 Robert Dewar <>
*, einfo.adb: Minor reformatting.
2010-10-18 Jose Ruiz <>
* adaint.c (__gnat_pthread_setaffinity_np,
__gnat_pthread_attr_setaffinity_np): Add these wrappers which check the
availability of the underlying OS functionality before calling.
* (pthread_setaffinity_np,
pthread_attr_setaffinity_np): Call a wrapper instead of the OS function
to perform a check of its availability.
* s-taprop-linux.adb (Create_Task): Remove the check to verify whether
the affinity functionality is available in the OS. Now done in a wrapper
* gcc-interface/ Remove vmshandler.asm, unused.
* gcc-interface/ Update dependencies.
2010-10-18 Robert Dewar <>
*, sinfo.adb: Change Has_Pragma_CPU to Flag14 (Flag10 is
standard field).
2010-10-18 Robert Dewar <>
* s-stausa.adb, s-taprop-linux.adb, s-taprop-mingw.adb,
Minor reformatting.
2010-10-18 Robert Dewar <>
* exp_strm.adb (Build_Elementary_Input_Call): Check
(Build_Elementary_Write_Call): Check No_Default_Stream_Attributes
* Add restriction No_Default_Stream_Attributes
Put restriction No_Allocators_After_Elaboration in alpha order
2010-10-18 Jose Ruiz <>
* exp_ch9.adb (Expand_N_Task_Type_Declaration): Add field corresponding
to the affinity when expanding the task declaration.
(Make_Task_Create_Call): Add the affinity parameter to the call to
create task.
* sem_prag.adb (Analyze_Pragma): Add the analysis for pragma CPU,
taking into account the case when it applies to a subprogram (only for
main and with static expression) or to a task.
* par_prag.adb:(Prag): Make pragma CPU a valid one.
* (Name_uCPU, Name_CPU): Add these new name identifiers
used by the expander for handling the affinity parameter when creating
a task.
(Pragma_Id): Add Pragma_CPU as a valid one.
* (RTU_Id): Make System_Multiprocessors accesible.
(RE_Id, RE_Unit_Table): Make the entities RE_CPU_Range and
RE_Unspecified_CPU visible.
*, sinfo.adb (Has_Pragma_CPU, Set_Has_Pragma_CPU): Add these
two subprograms to set/get the flag indicating whether there is a
pragma CPU which applies to the entity.
*, lib.adb (Unit_Record, Default_Main_CPU, Main_CPU,
Set_Main_CPU): Add the field Main_CPU to Unit_Record to store the value
of the affinity associated to the main subprogram (if any).
Default_Main_CPU is used when no affinity is set. Subprograms
Set_Main_CPU and Main_CPU are added to set/get the affinity of the main
*, ali.adb (ALIs_Record): Add field Main_CPU to contain the
value of the affinity of the main subprogram.
(Scan_ALI): Get the affinity of the main subprogram (encoded as C=XX in
the M line).
*, lib-writ.adb (M_Parameters): Encode the affinity of the
main subprogram in the M (main) line using C=XX.
* lib-load.adb (Create_Dummy_Package_Unit, Load_Main_Source,
Load_Unit): Add new field Main_CPU.
* bindgen.adb (Gen_Adainit_Ada, Gen_Adainit_C): Add the code to pass
the affinity of the main subprogram to the run time.
* (Common_ATCB): Add the field Base_CPU to store the
(Unspecified_CPU): Add this constant to identify the case when no
affinity is set for tasks.
* s-taskin.adb (Initialize_ATCB): Store the value coming from pragma
CPU in the common part of the ATCB.
(Initialize): Store the value coming from pragma CPU (for the
environment task) in the common part of the ATCB.
*, s-tassta.adb (Create_Task): Add the affinity specified
by pragma CPU to the ATCB.
*, s-tarest.adb (Create_Restricted_Task): Add the affinity
specified by pragma CPU to the ATCB.
* s-tporft.adb (Register_Foreign_Thread): Add the new affinity
parameter to the call to Initialize_ATCB.
* s-taprop-linux.adb (Create_Task): Change the attributes of the thread
to include the task affinity before creation. Additionally, the
affinity selected with Task_Info is also enforced changing the
attributes at task creation time, instead of changing it after creation.
(Initialize): Change the affinity of the environment task if required
by a pragma CPU.
* (pthread_setaffinity_np): Instead of using a
wrapper to check whether the function is available or not, use a weak
(pthread_attr_setaffinity_np): Add the import of this function which is
used to change the affinity in the attributes used to create a thread.
* adaint.c (__gnat_pthread_attr_setaffinity_np): Remove this wrapper.
It was used to check whether the pthread function was available or not,
but the use of a weak symbol handles this situation in a cleaner way.
* s-taprop-mingw.adb (Create_Task, Initialize): Change the affinity of
tasks (including the environment task) if required by a pragma CPU.
* s-taprop-solaris.adb (Enter_Task): Change the affinity of tasks
(including the environment task) if required by a pragma CPU.
* s-taprop-vxworks.adb (Create_Task, Initialize): Change the affinity
of tasks (including the environment task) if required by a pragma CPU.
* init.c (__gl_main_cpu): Make this value visible to the run time. It
will pass the affinity of the environment task.
2010-10-18 Javier Miranda <>
* einfo.adb (Direct_Primitive_Operations): Complete assertion.
2010-10-18 Vincent Celier <>
* (Source_Data): New Boolean flag In_The_Queue.
2010-10-18 Tristan Gingold <>
* Add the Top parameter to Initialize_Analyzer.
* s-stausa.adb: Use the top parameter. In Fill_Stack, use the
stack top if known.
* s-tassta.adb (Task_Wrapper): Call Initialize_Analyzer after Enter_Task
so that Pri_Stack_Info.Limit can be set and used.
2010-10-18 Robert Dewar <>
* Minor reformatting.
* sem_res.adb (Resolve_Allocator): Add test for violating
2010-10-18 Robert Dewar <>
* prj-nmsc.adb, prj.adb, sem_res.adb: Minor reformatting.
2010-10-18 Ed Schonberg <>
* sem_util.adb (Insert_Explicit_Dereference): If operand is a selected
component, we generate a reference to the ultimate prefix when it is an
entity name. We must place the reference on the identifier for that
prefix, and not on the operand itself, to prevent spurious extra
references in the ali file.
2010-10-18 Vincent Celier <>
* projects.texi: Add documentation for attribute Ignore_Source_Sub_Dirs
2010-10-18 Ed Schonberg <>
*, einfo.adb: New attribute PPC_Wrapper for entries and entry
families. Denotes a procedure that performs pre/postcondition checks
and then performs the entry call.
* sem_res.adb (Resolve_Entry_Call): If the entry has
pre/postconditions, replace call with a call to the PPC_Wrapper of the
* exp_ch9.adb (Build_PPC_Wrapper): new procedure.
(Expand_N_Entry_Declaration, Expand_N_Protected_Type_Declaration): call
Build_PPC_Wrapper for all entries in task and protected definitions.
2010-10-18 Tristan Gingold <>
* init.c: Add __gnat_set_stack_guard_page and __gnat_set_stack_limit.
Implement stack limitation on VMS.
Minor reformatting.
2010-10-18 Vincent Celier <>
* prj.adb (Is_Compilable): Do not modify Source.Compilable until the
source record has been initialized.
2010-10-18 Robert Dewar <>
* einfo.adb: Minor code reorganization (Primitive_Operations is a
synthesized attribute routine and was in the wrong place).
2010-10-18 Tristan Gingold <>
* init.c: Indentation, and minor changes to more closely follow GNU
style rules. Make more variable statics.
2010-10-18 Vincent Celier <>
* prj.adb (Is_Compilable): On first call for a source, cache value in
component Compilable.
* (Source_Data): New component Compilable, to cache the value
returned by function Is_Compilable.
2010-10-18 Vincent Celier <>
* prj-attr.adb: New project level attribute Ignore_Source_Sub_Dirs.
* prj-nmsc.adb (Expand_Subdirectory_Pattern): New string list parameter
(Recursive_Find_Dirs): Do not consider subdirectories listed in Ignore.
(Get_Directories): Call Find_Source_Dirs with the string list
indicated by attribute Ignore_Source_Sub_Dirs.
* New standard name Ignore_Source_Sub_Dirs.
2010-10-18 Javier Miranda <>
*, einfo.adb (Primitive_Operations): New synthesized
(Direct_Primitive_Operations): Renaming of old Primitive_Operations.
(Set_Direct_Primitive_Operations): Renaming of old
Set_Primitive_Operations. Update documentation
* sem_ch3.adb, exp_util.adb, sem_ch7.adb, sem_ch8.adb, exp_ch3.adb:
Replace occurrences of Set_Primitive_Operations by
* sem_cat.adb (Validate_RACW_Primitives): No action needed for tagged
concurrent types.
* exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): Do not
process primitives of concurrent types.
* lib-xref.adb (Generate_Prim_Op_References): Minor code cleanup.
2010-10-18 Eric Botcazou <>
* exp_ch6.adb (Expand_N_Subprogram_Declaration): Use Freeze_Before.
(Expand_Protected_Object_Reference): Likewise.
* sem_attr.adb (Resolve_Attribute): Likewise.
* sem_ch3.adb (Analyze_Subtype_Declaration): Likewise.
* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Likewise.
2010-10-18 Arnaud Charlet <>
* g-comlin.adb (Get_Switches): Prevent dereferencing null Config.
2010-10-18 Robert Dewar <>
*, aspects.adb: Add entries for aspects
* sem_ch13.adb (Analyze_Aspect_Specifications): Add processing for
handling aspects Read/Write/Input/Output.
2010-10-18 Robert Dewar <>
* sem_util.adb (Note_Possible_Modification): Do not give warning for
use of pragma Unmodified unless we are sure this is a modification.
2010-10-18 Tristan Gingold <>
* sysdep.c: Add __gnat_get_stack_bounds.
* s-taprop-mingw.adb Call __gnat_get_stack_bounds to set Pri_Stack_Info.
2010-10-18 Robert Dewar <>
* Fix bad name in header.
* sem_ch4.adb, sem_ch6.adb, sem_ch7.adb, sem_ch10.adb: Minor
* exp_aggr.adb: Fix typo in comment.
2010-10-18 Javier Miranda <>
* exp_util.adb (Side_Effect_Free): Code clean up.
2010-10-18 Ed Schonberg <>
* sem_ch8.adb (Is_Primitive_Operator_In_Use): Renamed from
Is_Primitive_Operator. When ending the scope of a use package scope, a
primitive operator remains in use if the base type has a current use
(type) clause.
2010-10-18 Javier Miranda <>
* (Is_Dynamic_Support): Add missing support for limited
private types whose full-view is a task type.
* sem_util.adb (Enclosing_Subprogram): Add missing support for limited
private types whose full-view is a task type.
* exp_ch7.adb (Find_Final_List): Minor code cleanup replacing code by
function Nearest_Dynamic_Scope which provides the needed functionality.
2010-10-18 Arnaud Charlet <>
* sem_prag.adb (Set_Exported): Do not generate error when exporting a
variable with an address clause in codepeer mode.
2010-10-18 Robert Dewar <>
* g-trasym-vms-ia64.adb: Minor reformatting.
2010-10-18 Thomas Quinot <>
* sem_type.adb (Covers): If either argument is Standard_Void_Type and
the other isn't, return False early.
2010-10-18 Ed Falis <>
*, s-vxext-rtp.adb: Adapt for missing APIs for RTPs in
VxWorks Cert.
2010-10-18 Robert Dewar <>
* Minor comment update.
2010-10-18 Robert Dewar <>
*, einfo.adb (Spec_PPC_List): Is now present in Entries
* sem_ch3.adb (Analyze_Declarations): Add processing for delaying
visibility analysis of precondition and postcondition pragmas (and
Pre/Post aspects).
* sem_ch6.adb (Process_PPCs): Add handling of inherited Pre'Class
* sem_ch7.adb (Analyze_Package_Specification): Remove special handling
of pre/post conditions (no longer needed).
* sem_disp.adb (Inherit_Subprograms): Deal with interface case.
* sem_prag.adb (Analyze_PPC_In_Decl_Part): Remove analysis of message
argument, since this is now done in the main processing for
pre/postcondition pragmas when they are first seen.
(Chain_PPC): Pre'Class and Post'Class now handled properly
(Chain_PPC): Handle Pre/Post aspects for entries
(Check_Precondition_Postcondition): Handle entry declaration case
(Check_Precondition_Postcondition): Handle delay of visibility analysis
(Check_Precondition_Postcondition): Preanalyze message argument if
2010-10-18 Robert Dewar <>
* g-trasym-vms-ia64.adb, prj-nmsc.adb, Minor reformatting.
2010-10-14 Eric Botcazou <>
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Set
TREE_THIS_NOTRAP on the INDIRECT_REF node built for the template.
* gcc-interface/trans.c (Identifier_to_gnu): Set TREE_THIS_NOTRAP on
the INDIRECT_REF node built for objects used by reference.
* gcc-interface/utils2.c (build_binary_op): Add short-circuit for
(gnat_stabilize_reference_1): Propagate the TREE_THIS_NOTRAP flag.
2010-10-13 Richard Henderson <>
* gcc-interface/misc.c (gnat_eh_personality): Update call to
* raise-gcc.c (PERSONALITY_FUNCTION): Change to match other languages;
2010-10-12 Vincent Celier <>
* prj-nmsc.adb (Add_Source): Put source in hash table Source_Files_HT
(Process_Exceptions_File_Based): Use hash table Source_Files_HT instead
of iterating through all sources of the project.
* prj.adb (Free): Reset hash table Source_Files_HT
(Reset): Reset hash table Source_Files_HT
* (Source_Data): New component Next_With_File_Name
(Source_Files_Htable): New hash table
(Project_Tree_Data): New component Source_Files_HT
2010-10-12 Tristan Gingold <>
* g-trasym-vms-ia64.adb: Use the documented API.
* gcc-interface/ Always set NO_REORDER_ADAFLAGS.
* gcc-interface/ Update dependencies.
2010-10-12 Thomas Quinot <>
*, exp_dist.adb, (Build_General_Calling_Stubs,
PolyORB case): Request is now a controlled type: we can declare the
request on the stack, and we do not need explicit cleanup actions
2010-10-12 Bob Duff <>
* (Profile_Info): This variable is now constant.
2010-10-12 Emmanuel Briot <>
* g-comlin.adb, (Define_Switch): Put back (unused)
parameter Separator for backward compatibility.
2010-10-12 Robert Dewar <>
* sem_ch9.adb, par-ch9.adb, impunit.adb: Minor reformatting.
2010-10-12 Vincent Celier <>
* debug.adb: Put detailed documentation for gnatmake switch -dm.
2010-10-12 Vincent Celier <>
* gnat1drv.adb: When the compiler is invoked for a spec that needs aw
body, do not generate an ALI file if neither -gnatc nor -gnatQ is used.
2010-10-12 Arnaud Charlet <>
* g-comlin.adb (Foreach_Switch): Make this procedure generic to avoid
using 'Access.
2010-10-12 Robert Dewar <>
* debug.adb: Add comment.
* gnatcmd.adb, sem_ch6.adb, switch-m.adb: Minor reformatting.
2010-10-12 Javier Miranda <>
* exp_util.adb (Side_Effect_Free): Return true for object renaming
declarations that were previously generated by Remove_Side_Effects.
2010-10-12 Emmanuel Briot <>
* xref_lib.adb (Get_Full_Type): Display "private variable" instead of
"???" when an entity is defined as "*" in the ALI file.
*, g-comlin.adb: Fix handling of null parameters.
Minor reformatting.
2010-10-12 Emmanuel Briot <>
* g-comlin.adb, (Display_Help, Getopt, Current_Section,
Set_Usage): New subprograms.
(Define_Switch): Change profile to add support for help messages and
long switches.
2010-10-12 Javier Miranda <>
* sem_ch6.adb (New_Overloaded_Entity): Add missing decoration of
attribute Overridden_Operation in predefined dispatching primitives.
2010-10-12 Emmanuel Briot <>
* g-comlin.adb, (Add_Switch): Raise an exception when a
command line configuration exists and we specify an invalid section.
2010-10-12 Robert Dewar <>
* sem_ch6.adb (Process_PPCs): Fix error in inheriting Pre'Class when no
exception messages are generated.
(Process_PPCs): Fix error in inheriting Pre'Class.
2010-10-12 Jose Ruiz <>
* gnatcmd.adb: Use response file for GNATstack.
(Check_Files): Pass the list of ci files for GNATstack using a response
file to avoid problems with command line length.
Factor out the code handling response file into a new procedure named
2010-10-12 Vincent Celier <>
* debug.adb: For gnatmake, document the meaning of -dm
* make.adb (Gnatmake): If -dm is used, indicate the maximum number of
simultaneous compilations.
* switch-m.adb (Scan_Make_Switches): Allow -j0, meaning as many
simultaneous compilations as the number of processors.
2010-10-12 Joseph Myers <>
* gcc-interface/ (ada/misc.o): Use $(OPTIONS_H)
instead of options.h.
2010-10-12 Robert Dewar <>
* gnat_rm.texi: Clarify that 'Old can be used in preconditions and
postcondition pragmas.
2010-10-12 Robert Dewar <>
*, erroutc.adb: The # insertion now handles from in place of
* exp_prag.adb (Expand_Pragma_Check): Suppress generated default
message if new switch Exception_Locations_Suppressed is set.
(Expand_Pragma_Check): Revised wording for default message for case
of precondition or postcondition.
*, namet.adb (Build_Location_String): New procedure.
* (List_Inherited_Pre_Post): New flag.
* sem_ch12.adb (Analyze_Generic_Subprogram_Declaration): Add call to
list inherited pre/post aspects.
* sem_ch13.adb (Analyze_Aspect_Specification): Improve generation of
messages for precondition/postcondition cases.
* sem_ch6.adb (Process_PPCs): General cleanup, and list inherited PPC's
if flag List_Inherited_Pre_Post is set True.
(Process_PPCs): Add initial handling for inherited preconditions
(List_Inherited_Pre_Post_Aspects): New procedure
* (List_Inherited_Pre_Post_Aspects): New procedure
* sem_disp.adb (Inherited_Subprograms): New function
* (Inherited_Subprograms): New function
* sem_prag.adb (Check_Duplicate_Pragma): Clean up handling of
(Check_Precondition_Postcondition): Check for inherited aspects
* sem_warn.adb: Process -gnatw.l/w.L setting List_Inherited_Pre_Post
*, sinfo.adb (Split_PPC): New flag.
*, sinput.adb (Build_Location_String): New function.
* usage.adb: Add line for -gnatw.l/-gnatw.L
2010-10-12 Javier Miranda <>
* exp_util.adb (Remove_Side_Effects): Remove wrong code.
2010-10-12 Arnaud Charlet <>
* xref_lib.adb: Add handling of j/J letters.
2010-10-12 Pascal Obry <>
* adaint.c (__gnat_number_of_cpus): Add implementation for Windows.
2010-10-12 Arnaud Charlet <>
* make.adb (Globalize): New procedure.
(Compile): Set Do_Codepeer_Globalize_Step when -gnatC is used.
(Gnatmake): Call Globalize when needed.
(Process_Restrictions_Or_Restriction_Warnings): Ignore Restrictions
pragmas in CodePeer mode.
(Adjust_Global_Switches): Set No_Initialize_Scalars in CodePeer mode,
to generate simpler and consistent code.
2010-10-12 Bob Duff <>
* exp_util.adb (Remove_Side_Effects): Disable previous change,
can cause side effects to be duplicated.
2010-10-12 Robert Dewar <>
* sem_ch6.adb (Process_PPCs): Handle inherited postconditions.
2010-10-12 Arnaud Charlet <>
* exp_disp.adb (Set_All_DT_Position): Disable emit error message on
abstract inherited private operation in CodePeer mode.
2010-10-12 Thomas Quinot <>
* Minor reformatting.
* (Port_Type): Better definition corresponding to the
actual standard range.
* exp_ch5.adb: Add comment.
* sem_aux.adb: Minor reformatting.
2010-10-12 Ed Schonberg <>
* sem_ch12.adb (Copy_Generic_Node): If node is a string literal, remove
string_literal_subtype so that a new one can be constructed in the
scope of the instance.
2010-10-12 Robert Dewar <>
* exp_ch9.adb (Has_Pragma_Priority): New name for Has_Priority_Pragma
* gnat_rm.texi (pragma Suppress_All): Document new placement rules
* par-prag.adb (P_Pragma, case Suppress_All): Set
Has_Pragma_Suppress_All flag.
* sem_prag.adb (Has_Pragma_Priority): New name for Has_Priority_Pragma
(Analyze_Pragma, case Suppress_All): Remove placement check
(Process_Compilation_Unit_Pragmas): Use Has_Pragma_Suppress_All flag
* (Process_Compilation_Unit_Pragmas): Update documentation
* sinfo.adb (Has_Pragma_Suppress_All): New flag
(Has_Pragma_Priority): New name for Has_Priority_Pragma
* (Has_Pragma_Suppress_All): New flag
(Has_Pragma_Priority): New name for Has_Priority_Pragma
2010-10-12 Arnaud Charlet <>
* Mark j/J as reserved for C++ classes.
2010-10-12 Jose Ruiz <>
*, a-exetim-posix.adb: New.
* gcc-interface/ (LIBGNAT_TARGET_PAIRS for linux): Use the
POSIX Realtime support to implement CPU clocks.
(EXTRA_GNATRTL_TASKING_OBJS for linux): Add the a-exetim.o object
to the tasking library.
(THREADSLIB): Make the POSIX.1b Realtime Extensions library (librt)
available for shared libraries.
* gcc-interface/ Update dependencies.
2010-10-12 Robert Dewar <>
* sem_ch13.adb (Analyze_Aspect_Specifications): For Pre/Post, break
apart expressions with AND THEN clauses into separate pragmas.
*, sinput.adab (Get_Logical_Line_Number_Img): New function.
2010-10-12 Robert Dewar <>
* par-ch13.adb (P_Aspect_Specifications): Fix handling of 'Class
* sem_ch13.adb (Analyze_Aspect_Specifications): Fix bad Sloc on aspects
* sem_prag.adb (Fix_Error): Only change pragma names for pragmas from
(Check_Optional_Identifier): Handle case of direct arguments
(Chain_PPC): Test for abstract case, giving appropriate messages
*, sinfo.adb (Class_Present): Allowed on N_Pragma node
2010-10-12 Robert Dewar <>
* par-endh.adb (Check_End): Don't swallow semicolon or aspects after
* sem_attr.adb (Eval_Attribute): Code clean up.
2010-10-12 Robert Dewar <>
* par-ch12.adb (P_Formal_Private_Type_Definition): Improve error
messages and recovery for case of out of order Abstract/Tagged/Private
* par-ch3.adb (P_Type_Declaration): Improve error messages and recovery
for case of out of order Abstract/Tagged/Private keywords.
2010-10-12 Ed Schonberg <>
* inline.adb (Analyze_Inlined_Bodies): Restrict previous change to case
where child unit is main unit of compilation.
2010-10-12 Robert Dewar <>
*, aspects.adb (Move_Aspects): New procedure.
*, atree.adb: (New_Copy): Does not copy aspect specifications
*, par-ch3.adb, par-ch6.adb, par-ch7.adb, par-ch9.adb,
par-endh.adb, par-ch13.adb, par-ch12.adb: Modify grammar to include
aspect specifications.
Recognize aspect specifications for all cases
* par.adb: Recognize aspect specifications for all cases
*, sem_ch12.adb (Copy_Generic_Node): Copies aspect
* sem_ch3.adb (Analyze_Subtype_Declaration): Improve patch to freeze
generic actual types (was missing some guards before).
* sem_ch9.adb (Analyze_Single_Protected_Declaration): Copy aspects to
generated object
(Analyze_Single_Task_Declaration): Copy aspects to generated object
2010-10-12 Eric Botcazou <>
* usage.adb (usage): Adjust line for -gnatn switch.
2010-10-12 Robert Dewar <>
* sem_attr.adb (Eval_Attribute): Only leave change active for aspect
spec case.
2010-10-12 Ed Schonberg <>
* sem_ch6.adb (Analyze_Subprogram_Declaration): If this is a
declaration of a null procedure resolve the types of the profile of the
generated null body now.
2010-10-11 Robert Dewar <>
* debug.adb: Remove d.A flag to delay address clause (not needed any
more). Add d.A flag to enable tree read/write of aspect spec hash table
* sem_ch13.adb (Analyze_Aspect_Specifications): Properly delay address
(Rep_Item_Too_Late): No need for special processing for delayed rep
items (and it caused difficulties in the address case).
* tree_gen.adb: Only write aspect spec hash table if -gnatd.A is set
* tree_in.adb: Only write aspect spec hash table if -gnatd.A is set
2010-10-11 Pat Rogers <>
* gnat_ugn.texi: Minor editing.
2010-10-11 Nathan Froyd <>
* gcc-interface/utils2.c (gnat_build_constructor): Use VEC_qsort.
2010-10-11 Robert Dewar <>
* (Get_First): New procedural version for Simple_HTable
(Get_Next): New procedural version for Simple_HTable
* s-htable.adb (Get_First): New procedural version for Simple_HTable
(Get_Next): New procedural version for Simple_HTable
* (Get_First): New procedural version for Simple_HTable
(Get_Next): New procedural version for Simple_HTable
2010-10-11 Ed Schonberg <>
* sem_aggr.adb (Propagate_Discriminants): To gather the components of a
variant part, use the association list of the subaggregate, which
already includes the values of the needed discriminants.
2010-10-11 Robert Dewar <>
*, aspects.adb: Changes to accomodate aspect delay
(Tree_Write): New procedure.
*, atree.adb: Flag3 is now Has_Aspects and applies to all
* atree.h: Flag3 is now Has_Aspects and applies to all nodes
* debug.adb: Add debug flag gnatd.A
* einfo.adb (Has_Delayed_Aspects): New flag
(Get_Rep_Item_For_Entity): New function
* (Has_Delayed_Aspects): New flag
(Get_Rep_Item_For_Entity): New function
* exp_ch13.adb (Expand_N_Freeze_Entity): Insert delayed aspects into
* exp_ch3.adb, exp_ch6.adb, exp_ch9.adb, exp_disp.adb: New calling
sequence for Freeze_Entity.
*, freeze.adb (Freeze_Entity): Takes node rather than source
ptr. All calls are changed to this new interface.
(Freeze_And_Append): Same change
(Freeze_Entity): Evaluate deferred aspects
* sem_attr.adb: New calling sequence for Freeze_Entity
(Eval_Attribute): Don't try to evaluate attributes of unfrozen types
when we are in spec expression preanalysis mode.
* sem_ch10.adb: New calling sequence for Freeze_Entity
* sem_ch11.adb: Simplify analysis of aspect specifications now that the
flag Has_Aspects applies to all nodes (no need to save aspects).
* sem_ch12.adb: Simplify analysis of aspect specifications now that the
flag Has_Aspects applies to all nodes (no need to save aspects).
* sem_ch13.adb (Analyze_Aspect_Specifications): Major rewrite to
accomodate delaying aspect evaluation to the freeze point.
(Duplicate_Clause): Simplify using Get_Rep_Item_For_Entity, and also
accomodate delayed aspects.
(Rep_Item_Too_Late): Deal with delayed aspects case
* (Rep_Item_Too_Late): Document handling of delayed
* sem_ch3.adb (Analyze_Subtype_Declaration): Make sure that generic
actual types are properly frozen (this is needed because of the new
check in Eval_Attribute that declines to evaluate attributes
for unfrozen types).
Simplify analysis of aspect specifications now that the flag
Has_Aspects applies to all nodes (no need to save aspects).
* (Preanalyze_Spec_Expression): Note use for delayed
* sem_ch5.adb: Simplify analysis of aspect specifications now that the
flag Has_Aspects applies to all nodes (no need to save aspects).
New calling sequence for Freeze_Entity.
* sem_ch9.adb, sem_ch7.adb, sem_ch6.adb: Simplify analysis of aspect
specifications now that the flag Has_Aspects applies to all nodes
(no need to save aspects).
New calling sequence for Freeze_Entity
* sem_prag.adb (Check_Duplicate_Pragma): Simplify using
(Get_Pragma_Arg): Moved to Sinfo
*, sinfo.adb (Aspect_Rep_Item_: New field
(Is_Delayed_Aspect): New flag
(Next_Rep_Item): Document use for aspects
(Get_Pragma_Arg): Moved here from Sem_Prag
* sprint.adb (Sprint_Aspect_Specifications): Now called after semicolon
is output and removes semicolon (simplifies interface).
(Sprint_Node_Actual): Simplify handling of aspects now that Has_Aspects
applies to any node.
* tree_gen.adb: Write contents of Aspect_Specifications hash table
* tree_in.adb: Read and initialize Aspect_Specifications hash table
* treepr.adb (Print_Node): Print Has_Aspects flag
(Print_Node): Print Aspect_Specifications in Has_Aspects set
* xtreeprs.adb: Remove obsolete references to Flag1,2,3
2010-10-11 Robert Dewar <>
*, aspects.adb: Major revision of this package for 2nd
stage of aspects implementation.
* gcc-interface/ Add entry for aspects.o
* gcc-interface/ Add aspects.o to GNATMAKE_OBJS
* par-ch13.adb (Aspect_Specifications_Present): New function
(P_Aspect_Specifications): New procedure
* par-ch3.adb (P_Type_Declaration): Handle aspect specifications
(P_Derived_Type_Def_Or_Private_Ext_Decl): Handle aspect specifications
(P_Identifier_Declarations): Handle aspect specifications
(P_Component_Items): Handle aspect specifications
(P_Subtype_Declaration): Handle aspect specifications
* par-ch6.adb (P_Subprogram): Handle aspect specifications
* par-ch9.adb (P_Entry_Declaration): Handle aspect specifications
* par.adb (Aspect_Specifications_Present): New function
(P_Aspect_Specifications): New procedure
* sem.adb (Analyze_Full_Type_Declaration): New name for
(Analyze_Formal_Package_Declaration): New name (add _Declaration)
(Analyze_Formal_Subprogram_Declaration): New name (add _Declaration)
(Analyze_Protected_Type_Declaration): New name (add _Declaration)
(Analyze_Single_Protected_Declaration): New name (add _Declaration)
(Analyze_Single_Task_Declaration): New name (add _Declaration)
(Analyze_Task_Type_Declaration): New name (add _Declaration)
* sem_cat.adb (Analyze_Full_Type_Declaration): New name for
* sem_ch11.adb (Analyze_Exception_Declaration): Analyze aspect
* sem_ch12.adb (Analyze_Formal_Object_Declaration): Handle aspect
(Analyze_Formal_Package_Declaration): New name (add _Declaration)
(Analyze_Formal_Package_Declaration): Handle aspect specifications
(Analyze_Formal_Subprogram_Declaration): New name (add _Declaration)
(Analyze_Formal_Subprogram_Declaration): Handle aspect specifications
(Analyze_Formal_Type_Declaration): Handle aspect specifications
(Analyze_Generic_Package_Declaration): Handle aspect specifications
(Analyze_Generic_Subprogram_Declaration): Handle aspect specifications
(Analyze_Package_Instantiation): Handle aspect specifications
(Analyze_Subprogram_Instantiation): Handle aspect specifications
* (Analyze_Formal_Package_Declaration): New name (add
(Analyze_Formal_Subprogram_Declaration): New name (add _Declaration)
* sem_ch13.adb (Analyze_Aspect_Specifications): New procedure
(Duplicate_Clause): New function, calls to this function are added to
processing for all aspects.
* (Analyze_Aspect_Specifications): New procedure
* sem_ch3.adb (Analyze_Full_Type_Declaration): New name for
* (Analyze_Full_Type_Declaration): New name for
* sem_ch6.adb (Analyze_Abstract_Subprogram_Declaration): Analyze aspect
(Analyze_Subprogram_Declaration): Analyze aspect specifications
* sem_ch7.adb (Analyze_Package_Declaration): Analyze aspect
(Analyze_Private_Type_Declaration): Analyze aspect specifications
* sem_ch9.adb (Analyze_Protected_Type_Declaration): Analyze aspect
(Analyze_Protected_Type_Declaration): New name (add _Declaration)
(Analyze_Single_Protected_Declaration): Analyze aspect specifications
(Analyze_Single_Protected_Declaration): New name (add _Declaration)
(Analyze_Single_Task_Declaration): Analyze aspect specifications
(Analyze_Single_Task_Declaration): New name (add _Declaration)
(Analyze_Task_Type_Declaration): Analyze aspect specifications
(Analyze_Task_Type_Declaration): New name (add _Declaration)
* (Analyze_Protected_Type_Declaration): New name (add
(Analyze_Single_Protected_Declaration): New name (add _Declaration)
(Analyze_Single_Task_Declaration): New name (add _Declaration)
(Analyze_Task_Type_Declaration): New name (add _Declaration)
* sem_prag.adb: Use Get_Pragma_Arg systematically so that we do not
have to generate unnecessary pragma argument associations (this matches
the doc).
Throughout do changes to accomodate aspect specifications, including
specializing messages, handling the case of not going through all
homonyms, and allowing for cancellation.
*, sinfo.adb: Clean up obsolete documentation for Flag1,2,3
(Aspect_Cancel): New flag
(From_Aspect_Specification): New flag
(First_Aspect): Removed flag
(Last_Aspect): Removed flag
* sprint.adb (Sprint_Aspect_Specifications): New procedure
(Sprint_Node_Actual): Add calls to Sprint_Aspect_Specifications
2010-10-11 Bob Duff <>
* sem_res.adb (Resolve_Actuals): Minor change to warning messages so
they match in Ada 95, 2005, and 2012 modes, in the case where the
language didn't change. Same thing for the run-time exception message.
2010-10-11 Javier Miranda <>
* debug.adb Document that switch -gnatd.p enables the CIL verifier.
2010-10-11 Robert Dewar <>
* s-htable.adb: Minor reformatting.
2010-10-11 Javier Miranda <>
* debug.adb: Update comment.
2010-10-11 Vincent Celier <>
* gnatcmd.adb (GNATCmd): Set Opt.Unchecked_Shared_Lib_Imports to True
unconditionally as for "gnat make" the projects are not processed in
the GNAT driver.
2010-10-11 Ed Schonberg <>
*, sem_ch10.adb (Load_Needed_Body): Add parameter to
suppress semantic analysis of the body when inlining, prior to
verifying that the body does not have a with_clause on a descendant
* inline.adb (Analyze_Inlined_Bodies): Do not inline a body if it has a
with_clause on a descendant.
(Scope_In_Main_Unit): Simplify.
2010-10-11 Robert Dewar <>
* exp_ch6.adb, freeze.adb: Minor reformatting.
2010-10-11 Vincent Celier <>
* gnatcmd.adb (GNATCmd): For all tools other than gnatmake, allow
shared library projects to import projects that are not shared library
2010-10-11 Javier Miranda <>
* debug.adb: Document that switch -gnatd.o generates the CIL listing.
2010-10-11 Arnaud Charlet <>
* sem_prag.adb (Process_Suppress_Unsuppress): Only ignore
Suppress/Unsuppress pragmas in codepeer mode on user code.
2010-10-11 Javier Miranda <>
* exp_ch6.adb (Expand_Call): For VM platforms, add missing expansion of
tag check in case of dispatching call through "=".
2010-10-11 Ed Schonberg <>
* sem_ch3.adb (Access_Subprogram_Declaration): In Ada2012 an incomplete
type is legal in the profile of any basic declaration.
* sem_ch6.adb (Analyze_Return_Type, Process_Formals): In Ada2012 an
incomplete type, including a limited view of a type, is legal in the
profile of any subprogram declaration.
If the type is tagged, its use is also legal in a body.
* sem_ch10.adb (Install_Limited_With_Clause): Do not process context
item if misplaced.
(Install_Limited_Withed_Unit): Refine legality checks when both the
limited and the non-limited view of a package are visible in the
context of a unit.
If this is not an error case, the limited view is ignored.
freeze.adb (Freeze_Entity): In Ada2012, an incomplete type is legal in
access to subprogram declarations
2010-10-11 Robert Dewar <>
* exp_ch6.adb: Code clean up.
* exp_util.adb: Minor reformatting.
2010-10-11 Arnaud Charlet <>
* sem_ch3.adb, exp_ch6.adb
Make_Build_In_Place_Call_In_Object_Declaration): Fix calls to
Add_Task_Actuals_To_Build_In_Place_Call in case of No_Task_Hierarchy
(Access_Definition): Add missing handling of No_Task_Hierarchy.
2010-10-11 Javier Miranda <>
* exp_util.adb (Remove_Side_Effects): No action needed for renamings of
class-wide expressions.
2010-10-11 Arnaud Charlet <>
* xr_tabls.adb, sem_res.adb: Minor reformatting
2010-10-11 Arnaud Charlet <>
* gnat_rm.texi, exp_attr.adb, sem_attr.adb,, (Analyze_Attribute, Expand_N_Attribute_Reference): Add
handling of Attribute_Ref. Add missing blanks in some error messages.
(Attribute_Ref, Name_Ref): Declare.
Document 'Ref attribute.
2010-10-11 Robert Dewar <>
* sem_attr.adb: Minor reformatting.
2010-10-11 Javier Miranda <>
* sem_ch8.adb (Attribute_Renaming): Add missing check to avoid loading
package System.Aux_Dec in VM platforms.
2010-10-11 Arnaud Charlet <>
* sem_prag.adb (Process_Suppress_Unsuppress): Ignore
Suppress/Unsuppress pragmas in codepeer mode.
(Analyze_Pragma [Pragma_Suppress_All]): Do not generate error message
in codepeer mode.
* Fix typo.
2010-10-11 Emmanuel Briot <>
* sinfo.adb: Use GNAT.HTable rather than System.HTable.
* prj-nmsc.adb: Minor reformatting.
2010-10-11 Thomas Quinot <>
* sem_attr.adb (Type_Key): Code simplification.
2010-10-11 Tristan Gingold <>
* gcc-interface/utils2.c (maybe_wrap_malloc): Fix crash when allocating
very large object on VMS.
2010-10-11 Javier Miranda <>
* sem_ch10.adb (Analyze_With_Clause): Add missing test to ensure
availability of attribute Instance_Spec.
2010-10-11 Arnaud Charlet <>
* gnat1drv.adb (Adjust_Global_Switches): Disable codepeer mode if
checking syntax only or in ASIS mode.
2010-10-11 Ed Schonberg <>
* sem_ch6.adb (Check_Delayed_Subprogram): Abstract subprograms may also
need a freeze node if some type in the profile has one.
* gcc-interface/trans.c (case N_Abstract_Subprogram_Declaration): If
entity has a freeze node, defer elaboration.
2010-10-11 Emmanuel Briot <>
* prj-nmsc.adb (Check_Aggregate_Project): Add support for finding all
aggregated projects.
2010-10-11 Ed Schonberg <>
* sem_res.adb (Resolve_Entry_Call): Generate 's' reference for entry
* sem_ch6.adb: Diagnose additional error condition.
2010-10-11 Bob Duff <>
* par.adb (Par): Clarify wording of certain error messages.
2010-10-11 Gary Dismukes <>
* sem_disp.adb (Check_Dispatching_Operation): Revise test for warning
about nondispatching subprograms to use In_Same_List (reducing use of
Parent links).
2010-10-11 Ed Schonberg <>
* xr_tabls.adb, sem_res.adb, lib-xref.adb, Use s for
reference in a static call.
2010-10-11 Steve Baird <>
* exp_attr.adb (Expand_N_Attribute_Reference, case Type_Key): Type_Key
attribute should always be transformed into a string literal in
* par-ch4.adb: Type_Key attribute's type is String; update value of
Is_Parameterless_Attribute constant to reflect this.
* sem_attr.adb (Analyze_Attribute): Recognize Type_Key attribute and
rewrite it as a string literal (attribute value is always known
* Add entries for Type_Key attribute.
2010-10-11 Ed Schonberg <>
* lib-xref.adb (Output_References): Common handling for objects and
formals of an anonymous access type.
2010-10-11 Eric Botcazou <>
* make.adb (Scan_Make_Arg): Also pass -O to both compiler and linker.
2010-10-11 Ed Schonberg <>
* sem_ch6.adb: Fix check for illegal equality declaration in Ada2012
2010-10-11 Gary Dismukes <>
* sem_disp.adb (Check_Dispatching_Operation): When testing for issuing
a warning about subprograms of a tagged type not being dispatching,
limit this to cases where the tagged type and the subprogram are
declared within the same declaration list.
2010-10-11 Jerome Lambourg <>
* projects.texi, prj-attr.adb: Add new attribute documentation_dir.
2010-10-11 Bob Duff <>
* par-ch9.adb, sem_aggr.adb, exp_ch5.adb, sem_ch3.adb, impunit.adb,, sem_ch5.adb, sem_type.adb, exp_imgv.adb, exp_util.adb,
switch-c.adb, exp_attr.adb, exp_ch9.adb, par-ch11.adb, usage.adb,
sem_ch9.adb, sem_ch10.adb, scng.adb, checks.adb, sem_prag.adb,
sem_ch12.adb, par-ch2.adb, freeze.adb, par-ch4.adb, sem_util.adb,
sem_res.adb, sem_attr.adb, par-ch6.adb, exp_ch4.adb, exp_ch6.adb,
sem_ch4.adb, exp_ch8.adb, par-ch10.adb, sem_ch6.adb, par-prag.adb,
exp_disp.adb, par-ch12.adb, sem_ch8.adb, snames.adb-tmpl,,
exp_aggr.adb, sem_cat.adb, sem_ch13.adb, par-ch3.adb, exp_strm.adb,
exp_cg.adb, lib-xref.adb, sem_disp.adb, exp_ch3.adb: Use Ada_2005
instead of Ada_05 (Ada_Version_Type).
2010-10-11 Bob Duff <>
* sem_aggr.adb, impunit.adb,, switch-c.adb, usage.adb,
sem_ch10.adb, sem_prag.adb, sem_ch12.adb, par-ch4.adb, par-ch6.adb,
par-ch8.adb, exp_ch4.adb, sem_ch4.adb, sem_ch6.adb, par-prag.adb,, par-ch3.adb, lib-xref.adb: Use Ada_2012 instead of Ada_12
2010-10-11 Javier Miranda <>
* exp_util.adb (Safe_Prefixed_Reference): If the prefix is an explicit
dereference then do not exclude dereferences of access-to-constant
types to handle them as constant view of variables (and hence remove
side effects when required).
* sem_res.adb (Resolve_Slice): Ensure that side effects in the bounds
are properly handled.
2010-10-11 Robert Dewar <>
* sem_prag.adb, sem_aggr.adb, sprint.adb: Minor reformatting.
2010-10-11 Javier Miranda <>
*, (Expand_N_Extended_Return_Statement): Moved
to exp_ch6.
(Expand_N_Simple_Return_Statement): Moved to exp_ch6.
* exp_ch5.adb, exp_ch6.adb (Expand_Non_Function_Return): Moved to
(Expand_Simple_Function_Return): Move to exp_ch6.
(Expand_N_Extended_Return_Statement): Moved to exp_ch6.
(Expand_N_Simple_Return_Statement): Moved to exp_ch6.
2010-10-11 Robert Dewar <>
* Add names for aspects.
*, aspects.adb: New.
* gcc-interface/ Update dependencies.
2010-10-11 Ed Schonberg <>
* exp_ch6.adb (Expand_Actuals): If an actual is the current instance of
a task type, it must be replaced with a reference to Self.
2010-10-11 Vincent Celier <>
* adaint.h: Add prototype for function __gnat_create_output_file_new.
2010-10-11 Javier Miranda <>
* sem_aggr.adb (Collect_Aggr_Bounds): Remove side effects of collected
aggregate bounds.
2010-10-11 Arnaud Charlet <>
* sem_prag.adb (Check_Interrupt_Or_Attach_Handler): Do not emit error
for AI05-0033 in CodePeer mode.
2010-10-11 Robert Dewar <>
* atree.h,, atree.adb (Flag3): New flag (replaces Unused_1)
* csinfo.adb: Aspect_Specifications is a new special field
* einfo.adb (Flag3): New unused flag
* exp_util.adb (Insert_Actions): Add processing for
* sem.adb: Add entry for N_Aspect_Specification.
*, sinfo.adb (N_Aspect_Specification): New node
(Has_Aspect_Specifications): New flag
(Permits_Aspect_Specifications): New function
(Aspect_Specifications): New function
(Set_Aspect_Specifications): New procedure
* sprint.adb (Sprint_Node): Put N_At_Clause in proper alpha order
(Sprint_Node): Add dummy entry for N_Aspect_Specification
* treepr.adb (Flag3): New flag to be listed
2010-10-11 Vincent Celier <>
* adaint.c: Minor reformatting.
2010-10-11 Robert Dewar <>
* sem_ch6.adb, Minor reformatting.
2010-10-11 Ed Schonberg <>
* sem_ch4.adb (Analyze_Selected_Component): If the selector is
invisible in an instantiation, and both the formal and the actual are
private extensions of the same type, look for the desired component in
the proper view of the parent type.
2010-10-11 Vincent Celier <>
* adaint.c (__gnat_number_of_cpus): Add implementation for Solaris,
AIX, Tru64, Darwin, IRIX and HP-UX.
2010-10-11 Robert Dewar <>
* a-textio.adb: Minor reformatting
2010-10-11 Robert Dewar <>
a-suesen.adb, a-suenst.adb,
a-suewse.adb, a-suewst.adb,,,,,
a-suezse.adb, a-suezst.adb: New name for string encoding packages.
* impunit.adb: New names for string encoding units
* Makefile.rtl: New names for string encoding units
* Minor code reorganization.
2010-10-11 Ed Schonberg <>
* exp_ch5.adb: Code clean up.
2010-10-11 Ed Schonberg <>
* sem_ch6.adb (Check_Limited_Return): Specialize warning on limited
returns when in a generic context.
(Analyze_Function_Return): ditto.
2010-10-11 Robert Dewar <>
* Fix header.
* sem_ch3.adb, s-multip.adb, a-tigeli.adb: Minor reformatting.
2010-10-11 Vincent Celier <>
* Makefile.rtl: Add s-multip.
* adaint.c: New function __gnat_number_of_cpus, implemented for Linux,
defaulting to 1 for other platforms.
* adaint.h: New function __gnat_number_of_cpus.
* impunit.adb (Non_Imp_File_Names_12): New file list for Ada 2012,
with a single component "s-multip".
* (Kind_Of_Unit): New enumerated value Ada_12_Unit for Ada
* (RTU_Id): New enumerated value System_Multiprocessors
*, s-multip.adb: New Ada 2012 package.
* sem_ch10.adb (Analyze_With_Clause): Check also Ada 2012 units.
2010-10-11 Javier Miranda <>
* a-textio.adb: Move new implementation of Get_Line to a subunit.
* a-tigeli.adb: New subunit containing the implementation of Get_Line.
2010-10-11 Ed Schonberg <>
* sem_aux.adb: Code clean up.
2010-10-11 Robert Dewar <>
* sem_ch3.adb, sem_aux.adb, sem_ch6.adb: Minor reformatting
2010-10-11 Robert Dewar <>
* einfo.adb, atree.h,, atree.adb: Define seven new flags
Flag248-Flag254. Define new field Field29.
2010-10-10 Olivier Hainque <>
Eric Botcazou <>
* gcc-interface/lang.opt (gdwarf+): Remove.
* gcc-interface/gigi.h (get_parallel_type): Likewise
* gcc-interface/misc.c (gnat_dwarf_extensions): Likewise.
(gnat_handle_option): Remove OPT_gdwarfplus case.
(gnat_post_options): Remove setting of use_gnu_debug_info_extensions
from gnat_dwarf_extensions.
* gcc-interface/trans.c (gigi): Remove -gdwarf+ initializations.
* gcc-interface/utils.c (get_parallel_type): Remove.
2010-10-10 Eric Botcazou <>
* gcc-interface/trans.c (gnat_to_gnu) <N_Not_In>: Use
invert_truthvalue_loc instead of invert_truthvalue.
* gcc-interface/utils2.c (build_binary_op) <NE_EXPR>: Likewise.
(build_unary_op) <TRUTH_NOT_EXPR>: Likewise.
2010-10-10 Eric Botcazou <>
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Subprogram_Type>: Add
assertion on the types of the parameters. Use KIND local variable.
<E_Incomplete_Type>: Likewise.
2010-10-10 Eric Botcazou <>
* gcc-interface/ada-tree.h (DECL_BY_DOUBLE_REF_P): New macro.
* gcc-interface/gigi.h (annotate_object): Add BY_DOUBLE_REF parameter.
* gcc-interface/decl.c (annotate_object): Likewise and handle it.
(gnat_to_gnu_entity): Adjust calls to annotate_object.
(gnat_to_gnu_param): If fat pointer types are passed by reference on
the target, pass them by explicit reference.
* gcc-interface/misc.c (default_pass_by_ref): Fix type of constant.
* gcc-interface/trans.c (Identifier_to_gnu): Do DECL_BY_DOUBLE_REF_P.
(Subprogram_Body_to_gnu): Adjust call to annotate_object.
(call_to_gnu): Handle DECL_BY_DOUBLE_REF_P.
* gcc-interface/utils.c (convert_vms_descriptor): Add BY_REF parameter
and handle it.
(build_function_stub): Iterate on the parameters of the subprogram in
lieu of on the argument types. Adjust call to convert_vms_descriptor.
2010-10-09 Eric Botcazou <>
* gcc-interface/misc.c: Delete prototypes.
(gnat_init_options): Use local variable.
(lang_hooks): Move to the end of the file.
2010-10-08 Joseph Myers <>
* gcc-interface/misc.c (gnat_init_options_struct): New. Split out
from gnat_init_options.
2010-10-08 Ed Schonberg <>
* sem_aux.adb: Cleanup Is_Immutably_Limited_Type.
2010-10-08 Robert Dewar <>
* exp_ch3.adb: Minor reformatting.
* exp_ch5.adb: Add comment.
2010-10-08 Robert Dewar <>
* sem_prag.adb (Check_Duplicate_Pragma): Check for entity match
* gcc-interface/ Update dependencies.
* Minor reformatting.
2010-10-08 Ed Schonberg <>
* exp_ch5.adb, sem_ch3.adb, exp_ch7.adb, exp_util.adb, sem_aux.adb,, exp_ch4.adb, exp_ch6.adb, sem_ch6.adb, exp_aggr.adb,
exp_ch3.adb: Change Is_Inherently_Limited_Type to
Is_Immutably_Limited_Type to accord with new RM terminology.
* sem_aux.adb (Is_Immutably_Limited_Type): A type that is a descendant
of a formal limited private type is not immutably limited in a generic
2010-10-08 Robert Dewar <>
* sem_prag.adb (Check_Duplicate_Pragma): New procedure
Add calls to this new procedure where appropriate
2010-10-08 Vincent Celier <>
* a-textio.adb (Get_Chunk): Code clean up.
2010-10-08 Robert Dewar <>
*, a-strfix.adb,, a-strsea.adb,,
a-strsup.adb,, a-strunb-shared.adb,,
a-strunb.adb,,, a-stwifi.adb,,
a-stwise.adb,, a-stwisu.adb,,
a-stwiun-shared.adb,, a-stwiun.adb,,, a-stzfix.adb,, a-stzsea.adb,,
a-stzsup.adb,, a-stzunb-shared.adb,,
a-stzunb.adb, (Find_Token): New version with From
2010-10-08 Robert Dewar <>
* sem_cat.adb (Check_Categorization_Dependencies): Remote types
packages can depend on preleborated packages.
2010-10-08 Robert Dewar <>
* sem_prag.adb (Check_Interrupt_Or_Attach_Handler): Pragmas
Interrupt_Handler and Attach_Handler not allowed in generics.
2010-10-08 Robert Dewar <>
* ali.adb: Set Allocator_In_Body if AB parameter present on M line
* (Allocator_In_Body): New flag
* bcheck.adb (Check_Consistent_Restrictions): Handle case of main
program violating No_Allocators_After_Elaboration restriction.
* gnatbind.adb (No_Restriction_List): Add entries for
No_Anonymous_Allocators, and No_Allocators_After_Elaboration.
* lib-load.adb: Initialize Has_Allocator flag
* lib-writ.adb: Initialize Has_Allocator flag
(M_Parameters): Set AB switch if Has_Allocator flag set
* Document AB flag on M line
* lib.adb (Has_Allocator): New function
(Set_Has_Allocator): New procedure
* (Has_Allocator): New function
(Set_Has_Allocator): New procedure
(Has_Allocator): New flag in Unit_Record
* sem_ch4.adb (Analyze_Allocator): Add processing for
2010-10-08 Geert Bosch <>
* a-textio.adb (Get_Line): Rewrite to use fgets instead of fgetc.
2010-10-08 Javier Miranda <>
* sem_prag.adb (Analyze_Pragma): Relax semantic rule of
Java_Constructors because in the JRE library we generate occurrences
in which the "this" parameter is not the first formal.
2010-10-08 Robert Dewar <>
* par-ch3.adb: Minor reformatting.
2010-10-08 Javier Miranda <>
* exp_disp.adb (Make_DT): Do not generate dispatch tables for CIL/Java
2010-10-08 Robert Dewar <>
* par-ch8.adb (P_Use_Type_Clause): Recognize ALL keyword in Ada 2012
* sinfo.adb (Use_Type_Clause): Add All_Present flag.
* (Use_Type_Clause): Add All_Present flag.
* Add entry for No_Allocators_After_Elaboration,
2010-10-08 Vincent Celier <>
* bindgen.adb (Gen_Restrictions_Ada): No new line after last
restriction, so that the last comma is always replaced with a left
2010-10-08 Javier Miranda <>
* sem_prag.adb (Analyze_Pragma): Add specific check on the type of the
first formal of delegates.
2010-10-08 Robert Dewar <>
* sem_aggr.adb: Minor reformatting.
2010-10-08 Robert Dewar <>
* exp_imgv.adb (Expand_Image_Attribute): Handle special calling
sequence for soft hyphen for Character'Image case.
* (Image_Character_05): New entry
* s-imgcha.adb (Image_Character_05): New procedurew
* (Image_Character_05): New procedure
* s-imgwch.adb (Image_Wide_Character): Deal with Ada 2005 soft hyphen
* s-valcha.adb (Value_Character): Recognize SOFT_HYPHEN for 16#AD#
* sem_attr.adb (Eval_Attribute, case Width): Handle soft_hyphen name
2010-10-08 Robert Dewar <>
* sem_attr.adb (Eval_Attribute, case Width): Avoid ludicrous long loop
for case of Wide_[Wide_]Character.
2010-10-08 Robert Dewar <>
* exp_ch3.adb: Minor reformating
Minor code reorganization.
2010-10-08 Javier Miranda <>
* sem_prag.adb (Analyze_Pragma): Add missing checks on wrong use of
pragmas CIL_Constructor and Java_Constructor.
* exp_ch3.adb (Expand_Freeze_Record_Type): Do not generate the
predefined primitives for CIL/Java tagged types.
2010-10-08 Robert Dewar <>
* sem_ch6.adb: Minor reformatting.
2010-10-08 Robert Dewar <>
* gnat1drv.adb: Add call to Validate_Independence.
* par-prag.adb: Add dummy entries for Independent,
* sem_ch13.adb (Validate_Independence): New procedure
(Initialize): Initialize address clause and independence check tables
* (Independence_Checks): New table
(Validate_Independence): New procedure
* sem_prag.adb: Add processing for pragma Independent[_Components]
* Add entries for pragma Independent[_Components]
2010-10-08 Ed Schonberg <>
* sem_aggr.adb (Propagate_Discriminants): When expanding an aggregate
component with box initialization, if the component is a variant record
use the values of the discriminants to select the proper variant for
further box initialization.
2010-10-08 Thomas Quinot <>
* xsnames.adb: Remove obsolete file.
* make.adb, sem_ch8.adb, Minor reformatting.
2010-10-08 Ed Schonberg <>
* exp_aggr.adb: Complete previous change.
2010-10-08 Ed Schonberg <>
* sem_ch6.adb (Check_Return_Subtype): The subtype indication in an
extended return must match statically the return subtype of the
enclosing function if the type is an elementary type or if it is
2010-10-08 Vincent Celier <>
* prj-nmsc.adb (Add_Source): Report all duplicate units and source file
names. Do not report the same duplicate unit several times.
* (Source_Data): New Boolean component Duplicate_Unit,
defaulted to False, to avoid reporting the same unit as duplicate
several times.
2010-10-08 Ed Schonberg <>
* sem_aggr.adb (Resolve_Array_Aggregate): If the expression in an
others choice is a literal, analyze it to enable later optimizations.
* exp_aggr.adb (Expand_Record_Aggregate): An aggregate with static size
and components can be handled by the backend even if it is of a limited
2010-10-08 Arnaud Charlet <>
* a-rttiev.adb (task Timer): Since this package may be elaborated
before System.Interrupt, we need to call Setup_Interrupt_Mask
explicitly to ensure that this task has the proper signal mask.
2010-10-08 Robert Dewar <>
* freeze.adb (Freeze_Entity): For array case, move some processing for
pragma Pack, Component_Size clause and atomic/volatile components here
instead of trying to do the job in Sem_Ch13 and Freeze.
* layout.adb: Use new Addressable function
* sem_ch13.adb (Analyze_Attribute_Representation_Clause, case
Component_Size): Move some handling to freeze point in
* sem_prag.adb (Analyze_pragma, case Pack): Move some handling to
freeze point in Freese.Freeze_Entity.
*, sem_util.adb (Addressable): New function.
2010-10-08 Robert Dewar <>
* sprint.adb: Minor reformatting.
2010-10-08 Javier Miranda <>
* exp_ch4.adb (Real_Range_Check): Declare temporary as constant.
2010-10-08 Robert Dewar <>
* sem_ch3.adb: Minor reformatting.
2010-10-08 Vincent Celier <>
* ali-util.adb (Get_File_Checksum): Make sure that external_as_list is
not a reserved word.
* prj-proc.adb (Expression): Process string list external references.
* prj-strt.adb (External_Reference): Parse external_as_list external
* (Expression_Kind_Of): Allowed for N_External_Value nodes
(Set_Expression_Kind_Of): Ditto
* prj.adb (Initialize): Set external_as_list as a reserved word
* projects.texi: Document new string external reference
* (Token_Type): New token Tok_External_As_List
* New standard name Name_External_As_List
2010-10-08 Thomas Quinot <>
* sem_prag.adb: Minor reformatting.
2010-10-08 Ed Schonberg <>
* sem_ch3.adb (Derived_Type_Declaration): In the private part of an
instance, it is legal to derive from a non-limited actual when the
formal type is untagged limited.
* sem_ch12.adb (Instantiate_Type): For a formal private type, use
analyzed formal as Generic_Parent_Type, to simplify later checks.
2010-10-08 Ed Schonberg <>
* sem_res.adb (Insert_Default): If default value is already a
raise_constraint_error do not rewrite it as new raise node, to prevent
infinite loops in the warning removal machinery.
2010-10-08 Robert Dewar <>
* sem_util.adb, sem_prag.adb: Minor reformatting
2010-10-08 Hristian Kirtchev <>
* gnat_rm.texi: Remove the section on pragma Implemented_By_Entry.
Add section on pragma Implemented.
2010-10-08 Ed Schonberg <>
* sem_ch3.adb (Derive_Subprogram): If an abstract extension has a
concrete parent with a concrete constructor, the inherited constructor
is abstract even if the derived type is a null extension.
2010-10-08 Thomas Quinot <>
* sem_ch4.adb: Minor reformatting.
2010-10-08 Hristian Kirtchev <>
* einfo.adb: Flag 232 (formerly Implemented_By_Entry) is now unused.
(Implemented_By_Entry): Removed.
(Set_Implemented_By_Entry): Removed.
(Write_Entity_Flags): Remove the output for Implemented_By_Entry.
* Remove Implemented_By_Entry and its usage in entities.
(Implemented_By_Entry): Removed along with its associated pragma.
(Set_Implemented_By_Entry): Removed along with its associated pragma.
* exp_ch9.adb: Alphabetize with and use clauses of Exp_Ch9.
(Build_Dispatching_Call_Equivalent): New routine.
(Build_Dispatching_Requeue): New routine.
(Build_Dispatching_Requeue_To_Any): New routine.
(Build_Normal_Requeue): New routine.
(Build_Skip_Statement): New routine.
(Expand_N_Requeue_Statement): Rewritten. The logic has been split into
several subroutines.
* par-prag.adb: Replace Pragma_Implemented_By_Entry by
* sem_ch3.adb (Check_Abstract_Overriding): Perform checks concerning
pragma Implemented.
(Check_Pragma_Implemented): New routines.
(Inherit_Pragma_Implemented): New routine.
* sem_ch9.adb (Analyze_Requeue): Update the predicate which detects a
dispatching requeue.
* sem_prag.adb: Update array Sig_Flags by removing Implemented_By_Entry
and adding Implemented.
(Ada_2012_Pragma): New routine.
(Analyze_Pragma, case Implemented): Perform all necessary checks
concerning pragma Implemented and register the pragma as a
representation item with the procedure_LOCAL_NAME.
(Analyze_Pragma, case Implemented_By_Entry): Removed.
* sem_util.adb (Implementation_Kind): New routine.
* (Implementation_Kind): New routine.
* Remove Name_Implemented_By_Entry and add
Name_Implemented. Remove pragma name Pragma_Implemented_By_Entry and
add Pragma_Implemented. Add special names By_Any, By_Entry and
2010-10-08 Javier Miranda <>
* exp_ch3.adb (Expand_Freeeze_Record_Type): Code cleanup: remove local
variable Has_Static_DT by invocation of function Building_Static_DT.
2010-10-08 Vincent Celier <>
* g-dirope.adb (Remove_Dir): Do not change the current directory when
doing a recursive remove of a subdirectory.
2010-10-08 Javier Miranda <>
* (Freeze_Subprogram): Factorize code.
* exp_disp.adb (Make_Secondary_DT): Factorize code.
(Make_DT): Factorize code.
2010-10-08 Robert Dewar <>
* sem_ch4.adb: Minor reformatting.
2010-10-08 Robert Dewar <>
* sem_ch6.adb (Check_Conformance): Check null exclusion match for full
2010-10-08 Thomas Quinot <>
* sem_ch12.adb (Instantiate_Object): Rename Formal_Id to Gen_Obj, for
consistency with Gen_T in Instantiate_Type.
Introduce constant A_Gen_Obj to avoid repeated queries for
Defining_Identifier (Analyzed_Formal).
2010-10-08 Vincent Celier <>
* prj-nmsc.adb: Minor comment fix.
2010-10-07 Robert Dewar <>
* sem_prag.adb, sem_ch13.adb: Implement AI05-0012-1/02.
* gcc-interface/ Update dependencies.
2010-10-07 Ed Schonberg <>
* (Instantiate_Object): For an in-out formal of a child
unit, if the type of the formal is declared in a parent unit and is not
a formal itself, the actual must be located from an enclosing parent
instance by normal visibility.
2010-10-07 Ed Schonberg <>
* sem_ch4.adb (Analyze_Allocator): In Ada 2012, a null_exclusion
indicator is illegal for an uninitialized allocator.
2010-10-07 Robert Dewar <>
* sem_prag.adb (Analyze_Attribute_Definition_Clause, case
Component_Size): Complete previous change.
2010-10-07 Vincent Celier <>
* scng.adb (Scan): Call Accumulate_Token_Checksum for Tok_Identifier,
even for keywords, to avoid having the checksum to depend on the Ada
2010-10-07 Gary Dismukes <>
* sem_aggr.adb, sem_ch12.adb, sem_ch6.adb, par-ch5.adb,
exp_ch3.adb: Minor reformatting.
2010-10-07 Robert Dewar <>
* sem_ch13.adb (Analyze_Attribute_Definition_Clause, case
Component_Size): It is now illegal to give an incorrect component size
clause in the case of aliased or atomic components.
* sem_prag.adb (Analyze_Pragma, case Pack): It is now illegal to give
an effective pragma Pack in the case of aliased or atomic components.
2010-10-07 Steve Baird <>
* exp_ch4.adb (Expand_N_Allocator): Do not bypass expansion
in the case of a violation of an active No_Task_Hierarchy restriction.
2010-10-07 Ed Schonberg <>
* sem_ch12.adb (Validate_Derived_Type_Instance): If a formal derived
type is non-limited, an actual for it cannot be limited.
2010-10-07 Robert Dewar <>
* (No_Pool_Assigned): Update documentation.
* sem_ch13.adb (Analyze_Attribute_Definition_Clause, case
Storage_Size): We only set No_Pool_Assigned if the expression is a
static constant and zero.
* sem_res.adb (Resolve_Allocator): Allocation from empty storage pool
should be an error not a warning.
2010-10-07 Ed Schonberg <>
* exp_aggr.adb (Expand_Array_Aggregate): Recognize additional cases
where an aggregate in an assignment can be built directly into the
target, and does not require the creation of a temporary that may
overflow the stack.
2010-10-07 Ed Schonberg <>
* sem_aggr.adb (Analyze_Record_Aggregate): In Ada2012, a choice list
in a record aggregate can correspond to several components of
anonymous access types, as long as the designated subtypes match.
2010-10-07 Robert Dewar <>
* gnat_rm.texi, exp_util.adb, sinfo.adb,, sem_ch12.adb,
sem.adb, gnat_ugn.texi,, par-ch6.adb,,
restrict.adb, sem_ch6.adb,, sprint.adb, Change
spelling parametrize(d) => parameterize(d).
2010-10-07 Robert Dewar <>
* sem_ch12.adb: Add comment.
* sem_ch6.adb: Minor reformatting.
2010-10-07 Robert Dewar <>
* par-ch3.adb, par-ch6.adb, par-ch7.adb, par-ch9.adb, par-ch10.adb: Add
Pexp to Pf_Rec constants
(P_Subprogram): Expression is always enclosed in parentheses
* par.adb (Pf_Rec): add Pexp flag for parametrized expression
* (N_Parametrized_Expression): Expression must be in parens
2010-10-07 Ed Schonberg <>
* sem_ch6.adb (Analyze_Subprogram_Specification): Implement Ada2012
checks on functions that return an abstract type or have a controlling
result whose designated type is an abstract type.
(Check_Private_Overriding): Implement Ada2012 checks on functions
declared in the private part, if an abstract type is involved.
* sem_ch12.adb (Analyze_Generic_Subprogram_Declaration): In Ada2012,
reject a generic function that returns an abstract type.
* exp_ch5.adb (Expand_Simple_Function_Return): in Ada2012, if a
function has a controlling access result, check that the tag of the
return value matches the designated type of the return expression.
2010-10-07 Robert Dewar <>
* par-ch6.adb: Fix error in handling of parametrized expressions.
* par-ch4.adb (P_Name): Allow qualified expression as name in Ada 2012
(P_Simple_Expression): Better message for qualified expression prefix
* s-crc32.adb: Minor reformatting.
* exp_intr.adb (Expand_Unc_Deallocation): Remove test for empty
storage pool (this test is moved to Sem_Intr).
* sem_intr.adb (Check_Intrinsic_Call): Add check for deallocation from
empty storage pool, moved here from Exp_Intr and made into error.
(Check_Intrinsic_Call): Remove assumption in generating not-null free
warning that the name of the instantiation is Free.
* sinput.adb (Tree_Read): Document use of illegal free call allowed in
GNAT mode.
* Remove storage size clauses from big types (since we may
need to do deallocations, which are now illegal for empty pools).
2010-10-07 Sergey Rybin <>
* gnat_ugn.texi: Add missing word.
2010-10-07 Robert Dewar <>
* exp_util.adb (Insert_Actions): Add handling of
* par-ch6.adb (P_Subprogram): Add parsing of parametrized expression
* sem.adb: Add entry for N_Parametrized_Expression
* sem_ch6.adb (Analyze_Parametrized_Expression): New procedure
* (Analyze_Parametrized_Expression): New procedure
*, sinfo.adb: Add N_Parametrized_Expression
* sprint.adb (Sprint_Node): Add handling for N_Parametrized_Expression
* par-ch4.adb: Minor reformatting.
2010-10-07 Robert Dewar <>
* scng.adb (Skip_Other_Format_Characters): New procedure
(Start_Of_Wide_Character): New procedure
(Scan): Use Start_Of_Wide_Character where appropriate
(Scan): Improve error message for other_format chars in identifier
(Scan): Allow other_format chars between tokens
2010-10-07 Javier Miranda <>
* exp_util.adb (Safe_Prefixed_Reference): When removing side effects,
Add missing support for explicit dereferences.
2010-10-07 Robert Dewar <>
* par-ch10.adb, par-ch3.adb, par.adb: Minor reformatting.
2010-10-07 Robert Dewar <>
* exp_disp.adb, exp_dist.adb,, exp_util.adb,
exp_ch11.adb: Rename Full_Qualified_Name to Fully_Qualified_Name_String
* sem_util.adb, (Full_Qualified_Name): Moved to
2010-10-07 Robert Dewar <>
* Add entry for Ada.Real_Time.Timing_Events.Set_Handler
* sem_res.adb (Resolve_Call): A call to
Ada.Real_Time.Timing_Events.Set_Handler violates restriction
No_Relative_Delay (AI-0211).
2010-10-07 Ed Schonberg <>
* sem_ch10.adb: Small change in error message.
2010-10-07 Robert Dewar <>
* Minor reformatting.
2010-10-07 Robert Dewar <>
* gnatcmd.adb, make.adb, prj-nmsc.adb, sem_elab.adb: Minor reformatting
2010-10-07 Arnaud Charlet <>
* exp_ch11.adb (Expand_N_Exception_Declaration): Update comments.
2010-10-07 Robert Dewar <>
* sem_res.adb: Minor reformatting
2010-10-07 Olivier Ramonat <>
* gnat_ugn.texi: Minor editing.
* Document that scripts rely on specific formats in
2010-10-07 Robert Dewar <>
*, a-wichun.adb (To_Lower_Case): New function
(To_Upper_Case): Fix to be inverse of To_Lower_Case
*, a-zchuni.adb (To_Lower_Case): New function
(To_Upper_Case): Fix to be inverse of To_Lower_Case
2010-10-07 Robert Dewar <>
* a-wichha.adb,, a-zchhan.adb, New file.
* impunit.adb: Add entries for a-wichha/a-zchhan
* Makefile.rtl: Add entries for a-wichha/a-zchhan
2010-10-07 Vincent Celier <>
* make.adb (Check): Call Check_Source_Info_In_ALI with Project_Tree
* makeutl.adb (Check_Source_Info_In_ALI): If there is at least one
replaced source, check that none of the replaced sources are in the
* (Check_Source_Info_In_ALI): New parameter Tree
* prj-nmsc.adb (Remove_Source): New parameter Tree. If the source is
replaced with a source with a different file name, put it in the hash
table Replaced_Sources.
(Add_Source): Call Remove_Source with Data.Tree. If there is at least
one replaced source, check if it has the same file name as the current
source; if it has, remove it from the hash table Replaced_Sources.
* prj.adb (Reset): Reset hash table Tree.Replaced_Sources
* (Replaced_Source_HTable): New hash table
(Project_Tree_Data): New components Replaced_Sources and
2010-10-07 Ed Schonberg <>
* sem_elab.adb (Check_A_Call): After inserting elaboration check, set
proper flag to prevent a double elaboration check on the same call.
* exp_util.adb (Insert_Actions): If the enclosing node is an
Expression_With_Actions and it has been analyzed already, find
insertion point further up in the tree.
2010-10-07 Hristian Kirtchev <>
* sem_ch13.adb (Analyze_Record_Representation_Clause): Alphabetize all
local variables. Remove the general restriction which prohibits the
application of record rep clauses to Unchecked_Union types. Add Ada
2012 check to detect improper naming of an Unchecked_Union
discriminant in record rep clause.
* sem_prag.adb: Add with and use clause for Exp_Ch7.
(Analyze_Pragma): Unchecked_Union case: Propagate the Unchecked_Union
type to all invocations of Check_Component and Check_Variant.
(Check_Component): Add formal parameters UU_Typ and In_Variant_Part.
Rewritten. Add Ada 2012 check to detect improper use of formal
private types and private extensions as component types of an
Unchecked_Union declared inside a generic body.
(Check_Variant): Add formal parameter UU_Typ. Propagate the
Unchecked_Union type to all calls of Check_Component. Signal that the
current component comes from the variant part of an Unchecked_Union
(Inside_Generic_Body): New routine.
2010-10-07 Ed Schonberg <>
* exp_ch4.adb (Expand_Composite_Equality): When looking for a primitive
equality operation for a record component, verify that both formals
have the same type, and the result type is boolean.
2010-10-07 Vincent Celier <>
* gnatcmd.adb (Check_Files): When looking for the .ci file for a
binder generated file, look for both b~xxx and b__xxx as gprbuild
always uses b__ as the prefix of such files.
2010-10-07 Thomas Quinot <>
* sem_res.adb: Minor reformatting.
2010-10-07 Arnaud Charlet <>
* debug.adb: Update -gnatd.J documentation.
2010-10-07 Robert Dewar <>
* gnat_rm.texi: Document handling of invalid values
*, s-utf_32.adb (UTF_To_Lower_Case): Fix implementation
to match new spec.
(UTF_To_Upper_Case): New function.
2010-10-07 Robert Dewar <>
* sem_attr.adb: Minor reformatting.
*, einfo.adb (Is_Ada_2012_Only): New flag
* itypes.adb (Create_Null_Excluding_Itype): Set Is_Ada_2012_Only flag
* lib-xref.adb (Generate_Reference): Warn on use of Ada 2012 entity in
non-Ada 2012 mode.
* (Warn_On_Ada_2012_Compatibility): New flag
* sem_ch3.adb (Analye_Subtype_Declaration): Inherit Is_Ada_2012_Only
* sem_ch7.adb (Preserve_Full_Attributes): Preserve Is_Ada_2012_Only
* sem_prag.adb (Analyze_Pragma, case Ada_12/Ada_2012): Allow form with
* sem_type.adb (Disambiguate): Deal with Is_Ada_2012_Only.
* sem_warn.adb (Warn_On_Ada_2012_Compatibility): New flag, treated
same as 2005 flag.
2010-10-07 Javier Miranda <>
* Use new support for pragma Ada_2012 with function
2010-10-07 Ed Schonberg <>
* par-ch5.adb (P_Sequence_Of_Statements): In Ada2012 a label can end a
sequence of statements.
2010-10-07 Vincent Celier <>
* gnatcmd.adb (Check_Files): Only add a .ci files if it exists
2010-10-07 Javier Miranda <>
*, a-tags.adb (Type_Is_Abstract): New subprogram.
* (RE_Type_Is_Abstract): New entity.
* exp_disp.adb (Make_DT): Initialize TSD component Type_Is_Abstract.
2010-10-07 Arnaud Charlet <>
* sem_ch12.adb (Mark_Context): Removed, no longer needed.
(Analyze_Package_Instantiation): No longer analyze systematically a
generic body in CodePeer mode.
* freeze.adb, sem_attr.adb: Update comments.
2010-10-05 Robert Dewar <>
* par-ch5.adb (Test_Statement_Required): Allow all pragmas in Ada 2012
2010-10-05 Pascal Obry <>
* gnat_rm.texi: Fix typo.
2010-10-05 Arnaud Charlet <>
* gnat_ugn.texi: Add note about identifiers with same name and
2010-10-05 Robert Dewar <>
* sem_ch4.adb: Minor reformatting.
* Minor comment update.
2010-10-05 Javier Miranda <>
* sem_ch3.adb (Add_Internal_Interface_Entities): Removing code that is
no longer required after change in New_Overloaded_Entity.
* sem_ch6.adb (New_Overloaded_Entity): Code reorganization to isolate
the fragment of code that handles derivations of interface primitives.
Add missing dependence on global variable Inside_Freezing_Actions to
ensure the correct management of internal interface entities.
* sem_ch13.adb (Analyze_Freeze_Entity): Add missing increase/decrease
of the global variable Inside_Freezing_Actions to ensure that internal
interface entities are well handled by New_Overloaded_Entity.
* sem_disp.adb (Find_Primitive_Covering_Interface): Add documentation
and complete the algorithm to catch hidden primitives derived of
private type that covers the interface.
* (Find_Primitive_Covering_Interface): Add missing
2010-10-05 Robert Dewar <>
* prj-util.adb,,, s-vxwext-rtp.adb, sem_ch4.adb,
sem_ch7.adb, sem_res.adb, sem_type.adb: Minor reformatting.
Minor code reorganization (use Nkind_In).
2010-10-05 Ed Schonberg <>
* sem_ch10.adb (Analyze_Task_Body_Stub): Diagnose duplicate stub for
2010-10-05 Vincent Celier <>
* gnatbind.adb: If the main library file is not for a suitable main
program, change the error message.
2010-10-05 Vincent Celier <>
* Minor spelling error fixes in comments.
* gnat_rm.texi: Add three entries in "Implementation Defined
Characteristics" for the interpretations of the Form parameters in
2010-10-05 Robert Dewar <>
* exp_ch3.adb, exp_ch5.adb, exp_disp.adb, exp_dist.adb, gnatlink.adb,
makeutl.adb, par-ch6.adb, prj-dect.adb, prj-env.adb,,
prj-ext.adb, prj-nmsc.adb, prj-part.adb, Minor code
Minor reformatting.
2010-10-05 Ed Schonberg <>
* sem_res.adb (Check_Parameterless_Call): If the prefix of 'Address is
an explicit dereference of an access to function, the prefix is not
interpreted as a parameterless call.
2010-10-05 Ed Schonberg <>
* exp_attr.adb: For 'Read and 'Write, use full view of base type if
2010-10-05 Vincent Celier <>
* make.adb (Switches_Of): Allow wild cards in index of attributes
* prj-util.adb (Value_Of): When Allow_Wildcards is True, use the index
of the associative array as a glob regular expression.
* (Value_Of (Index, In_Array)): New Boolean parameter
Allow_Wildcards, defaulted to False.
(Value_Of (Name, Attribute_Or_Array_Name)): Ditto
* projects.texi: Document that attribute Switches (<file name>) may
use wild cards in the index.
2010-10-05 Robert Dewar <>
* a-direct.adb,, back_end.adb, checks.adb,
einfo.adb: Minor reformatting.
* debug.adb: Remove obsolete documentation for d.Z flag.
2010-10-05 Vincent Celier <>
* Add VMS qualifier /SRC_INFO= corresponding to gnatmake
switch --create-info-file=.
* gnat_ugn.texi: Add documentation for new gnatmake switch
2010-10-05 Ed Schonberg <>
* sem_ch3.adb: Do not elaborate type definition if syntax error.
2010-10-05 Javier Miranda <>
* sprint.adb (Sprint_Node_Actual): Improve output of subprogram bodies
to generate the full-qualified names of its corresponding spec.
This facilitates locating the corresponing body when reading
the DG output.
2010-10-05 Thomas Quinot <>
* exp_dist.adb (Make_Helper_Function_Name): For a tagged type, use
canonical name without serial number only if the helper is becoming a
primitive of the type.
2010-10-05 Javier Miranda <>
* exp_disp.adb (Make_DT): Minor code reorganization.
2010-10-05 Ed Schonberg <>
* par-ch6.adb: improve recovery with extra paren in function spec.
2010-10-05 Quentin Ochem <>
* Project_Path is now aliased.
2010-10-05 Thomas Quinot <>
* checks.adb: Minor reformatting.
2010-10-05 Eric Botcazou <>
* mlib-tgt-specific-mingw.adb (No_Argument_List): Delete.
(Shared_Libgcc): New aliased variable.
(Shared_Libgcc_Switch): New constant.
(Build_Dynamic_Library): Pass Shared_Libgcc_Switch to the compiler
* gcc-interface/ (gnatlib-shared-win32): Pass -shared-libgcc
to the compiler.
* gcc-interface/ Update dependencies.
2010-10-05 Vincent Celier <>
* prj-part.adb (Parse_Simple_Project): When checking if a child project
imports its parent project, also look in projects being extended by
imported projects.
2010-10-05 Eric Botcazou <>
* gnat_ugn.texi: Adjust instructions in G.10 Building DLLs with GNAT.
2010-10-05 Javier Miranda <>
* exp_cg.adb (Slot_Number): Add support to handle aliased entities.
(Generate_CG_Output): Switch -gnatd.Z is no longer needed to
activate this output.
2010-10-05 Arnaud Charlet <>
* back_end.adb (Call_Back_End): Generate an error message when scil
generation is enabled, and no scil back-end (by default) is available.
2010-10-05 Javier Miranda <>
* debug.adb: Update documentation since -gnatd.Z is no longer required
to generate the call-graph information.
2010-10-05 Javier Miranda <>
* exp_ch5.adb (Expand_Simple_Function_Return): Rewrite expansion of a
runtime access check by an equivalent expansion that causes
no problems in the VM backend. The original expansion was
not good for the VM backends because when Tagged_Type_Expansion
is disabled the attribute Access_Disp_Table is not available.
2010-10-05 Ed Schonberg <>
* sem_type.adb (Covers): In a dispatching context, T1 covers T2 if T2
is class-wide and T1 is its specific type.
2010-10-05 Ed Schonberg <>
* einfo.adb: Add guard to Is_String_Type to prevent cascaded errors.
2010-10-05 Vincent Celier <>
* Minor spelling error correction.
2010-10-05 Arnaud Charlet <>
* switch-c.adb, gnat1drv.adb (Scan_Front_End_Switches): Disable
warnings when -gnatC is specified here so that warnings can be
re-enabled explicitly.
(Adjust_Global_Switches): No longer suppress warnings.
2010-10-05 Vincent Celier <>
* makeutl.adb: Minor reformatting.
2010-10-05 Ed Schonberg <>
* sem_ch4.adb: add guard in Analyze_One_Call to prevent crash when a
non-discrete type appears as an actual in a call.
2010-10-05 Vincent Celier <>
* make.adb (Scan_Make_Arg): Take into account new switch
* makeusg.adb: Add line for new switch --source-info=file.
* (Source_Info_Option): New constant String for new builder
* prj-conf.adb: Put subprograms in alphabetical order
(Process_Project_And_Apply_Config): Read/write an eventual source info
file, if necessary.
* prj-nmsc.adb (Look_For_Sources.Get_Sources_From_Source_Info): New
(Look_For_Sources): If a source info file was successfully read, get
the source data from the data read from the source info file.
* prj-util.adb (Source_Info_Table): New table
(Source_Info_Project_HTable): New hash table
(Create): New procedure
(Put (File), Put_Line): New procedures
(Write_Source_Info_File): New procedure
(Read_Source_Info_File): New procedure
(Initialize): New procedure
(Source_Info_Of): New procedure
(Next): New procedure
(Close): When file is an out file, fail if the buffer cannot be written
or if the file cannot be close successfully.
(Get_Line): Fail if file is an out file
* (Create): New procedure
(Put (File), Put_Line): New procedures
(Write_Source_Info_File): New procedure
(Read_Source_Info_File): New procedure
(Source_Info_Data): New record type
(Source_Info_Iterator): New private type
(Initialize): New procedure
(Source_Info_Of): New procedure
(Next): New procedure
* (Project_Tree_Data): New components Source_Info_File_Name and
2010-10-05 Ed Schonberg <>
* exp_ch4.adb: Fix typo.
2010-10-05 Thomas Quinot <>
* lib-writ.adb: Minor reformatting.
2010-10-05 Javier Miranda <>
* sem_ch3.adb (Access_Definition): Remove useless code.
2010-10-05 Emmanuel Briot <>
* prj-env.adb, (Set_Path): New subprogram.
(Deep_Copy): Removed, not used.
2010-10-05 Javier Miranda <>
* sem_ch3.adb (Add_Internal_Interface_Entities): Code reorganization:
move code that searches in the list of primitives of a tagged type for
the entity that will be overridden by user-defined routines.
* sem_disp.adb (Find_Primitive_Covering_Interface): Move here code
previously located in routine Add_Internal_Interface_Entities.
* (Find_Primitive_Covering_Interface): Update docs.
* sem_ch6.adb (New_Overloaded_Entity): Add missing check on
availability of attribute Alias.
2010-10-05 Ed Falis <>
* s-taprop-vxworks.adb, s-osinte-vxworks.adb,,,, s-vxwext-rtp.adb,
Move definition of intContext to System.OS_Interface.
Add necessary variants in System.VxWorks.Extensions.
2010-10-05 Doug Rupp <>
* s-asthan-vms-alpha.adb: On VMS, a task using
pragma AST_Entry exhibits a memory leak when the task terminates
because the vector allocated for the AST interface is not freed. Fixed
by making the vector a controlled type.
2010-10-05 Emmanuel Briot <>
* prj-nmsc.adb (Expand_Subdirectory_Pattern): Check that the prefix in
a "**" pattern properly exists, and report an error otherwise.
2010-10-05 Emmanuel Briot <>
* Use GNAT.OS_Lib rather than System.OS_Lib.
2010-10-05 Emmanuel Briot <>
* prj-nmsc.adb, prj-err.adb (Expand_Subdirectory_Pattern): New
Extract some code from Get_Directories, to share with the handling
of aggregate projects (for the Project_Files attributes)
2010-10-05 Emmanuel Briot <>
* gnatcmd.adb, prj-proc.adb, prj-part.adb, prj-ext.adb,,
switch-m.adb, clean.adb, prj-nmsc.adb,, prj-env.adb,, prj-tree.adb, (Project_Search_Path): New
2010-10-05 Eric Botcazou <>
* exp_ch5.adb (Make_Field_Expr): Revert previous change (removed).
2010-10-05 Emmanuel Briot <>
* prj-dect.adb, prj-nmsc.adb, prj-attr.adb,
(Aggregate projects): added support for parsing aggregate projects.
In particular, check the presence and value of the new attributes
related to aggregate projects, ie Project_Files, Project_Path
and External.
(Check_Attribute_Allowed, Check_Package_Allowed,
Rename_Obsolescent_Attributes): new subprogram, extracting code
from existing subprogram to keep their sizes smaller.
(Check_Aggregate_Project, Check_Abstract_Project,
Check_Missing_Sources): new subprograms
(Check): remove comments that duplicated either the name of the
following subprogram call, or the comment on that subprogram.
* prj-part.adb (Check_Extending_All_Imports): New subprogram, extracted
from Parse_Single_Project.
(Check_Aggregate_Imports): new subprogram.
2010-10-05 Vincent Celier <>
* make.adb (Check): When compiling with -gnatc, recompile if the ALI
file has not been generated for the current source, for example if it
has been generated for the spec, but we are compiling the body.
2010-10-05 Bob Duff <>
* xgnatugn.adb: Remove unused procedure.
2010-10-04 Vincent Celier <>
* a-direct.adb (Copy_File): Interpret the Form parameter and call
System.OS_Lib.Copy_File to do the work accordingly. Raise Use_Error if
the Form parameter contains an incorrect value for field preserve= or
* (Create_Directory, Create_Path): Indicate that the Form
parameter is ignored.
(Copy_File): Indicate the interpretation of the Form parameter.
2010-10-04 Vincent Celier <>
* make.adb (Gnatmake): When there are no foreign languages declared and
a main in attribute Main of the main project does not exist or is a
source of another project, fail immediately before attempting
2010-10-04 Javier Miranda <>
* (Convert_Tag_To_Interface): New function which must be
used to convert a node referencing a tag to a class-wide interface
* exp_disp.adb (Convert_Tag_To_Interface): New function.
(Expand_Interface_Conversion): Replace invocation of
Unchecked_Conversion by new function Convert_Tag_To_Interface.
(Write_DT): Add support for null primitives.
* exp_ch3.adb (Expand_N_Object_Declaration): For tagged type objects,
cleanup code that handles interface conversions and avoid unchecked
conversion of referenced tag components.
* exp_ch5.adb (Expand_N_Assignment_Statement): Code cleanup. Avoid
unrequired conversions when generating a dispatching call to _assign.
* sprint.adb (Write_Itype): Fix wrong output of not null access itypes.
2010-10-04 Ed Schonberg <>
* exp_ch4.adb (Expand_N_Op_Not): Handle properly both operands when the
parent is a binary boolean operation and the operand is an unpacked
(Build_Boolean_Array_Proc_Call): If the operands are both negations,
the operands of the rewritten node are the operands of the negations,
not the negations themselves.
2010-10-04 Robert Dewar <>
* sem_ch13.adb (Set_Biased): New procedure, now used throughout, adds
name of entity to biased warning msg.
(Analyze_Enumeration_Representation_Clause): Remove attempt to use
biased rep (wrong and never worked anyway).
2010-10-04 Arnaud Charlet <>
* sem_elab.adb: Minor reformatting.
2010-10-04 Ed Schonberg <>
* exp_ch4.adb (Expand_N_Null): Handle properly the case of a subtype of
an access_to_protected subprogram type, and convert null value into
corresponding aggregate.
2010-10-04 Eric Botcazou <>
* gnat_ugn.texi: Clarify first point of 7.1.5 about pragma Inline.
2010-10-04 Eric Botcazou <>
* make.adb (Scan_Make_Arg): Pass -Oxxx switches to the linker as well.
* gnatlink.adb (Gnatlink): Filter out -Oxxx switches for CLI, RTX and
2010-10-04 Eric Botcazou <>
* sem_ch4.adb (Analyze_Indexed_Component_Form): Remove redundant test
for N_Operator_Symbol.
(Indicate_Name_And_Type): Likewise.
* sem_ch8.adb (Analyze_Subprogram_Renaming): Likewise.
* sem_res.adb (Resolve): Likewise.
* sem_type.adb (Add_One_Interp): Likewise.
(Disambiguate): Likewise.
2010-10-04 Vincent Celier <>
* osint.adb (Read_Library_Info_From_Full): If object timestamp is less
than ALI file timestamp, return null.
2010-10-04 Vincent Celier <>
* prj-makr.adb (Finalize): Invoke Pretty_Print with Max_Length of 79.
* prj-pp.adb (Pretty_Print): New parameter Max_Line_Length, that
replaces global constant with the same name. When a line is too long,
indent properly the next continuation line.
* (Pretty_Print): New parameter Max_Line_Length with a range
from 50 to 255, defaulted to 255, to indicate the maximum length of
lines in the project file.
2010-10-04 Eric Botcazou <>
* sem_ch7.adb (Analyze_Package_Body_Helper) <Has_Referencer>: New
Check_Subprogram_Ref function and Check_Subprogram_Refs instantiation
of Traverse_Func on it to look for subprogram references in a body.
Call Check_Subprogram_Refs on the body of inlined subprograms at the
outer level and keep clearing the Is_Public flag of subprograms as long
as it returns OK. Do not look at anything else than subprograms once
an inlined subprogram has been seen.
2010-10-04 Javier Miranda <>
* exp_cg.adb (Expand_N_Assignment_Statement): Restore tag check when
the target object is an interface.
* sem_disp.adb (Propagate_Tag): If the controlling argument is an
interface type then we generate an implicit conversion to force
displacement of the pointer to the object to reference the secondary
dispatch table associated with the interface.
2010-10-04 Robert Dewar <>
* sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Set
Enumeration_Rep_Expr to point to the literal, not the identifier.
(Analyze_Enumeration_Representation_Clause): Improve error message for
size too small for enum rep value
(Analyze_Enumeration_Representation_Clause): Fix size test to use
proper size (RM_Size, not Esize).
2010-10-04 Robert Dewar <>
* s-taprop-vxworks.adb, sem_res.adb: Minor reformatting.
2010-10-04 Javier Miranda <>
* exp_cg.adb (Write_Call_Info): Code clean up.
2010-10-04 Arnaud Charlet <>
* s-taprop-mingw.adb (Create_Task): Initialize Thread_Id field to 0.
2010-10-04 Robert Dewar <>
* exp_cg.adb: Minor code reorganization
Minor reformatting.
* exp_ch5.adb, prj-nmsc.adb: Minor reformatting.
2010-10-04 Bob Duff <>
* sem_res.adb (Resolve_Type_Conversion): If a type conversion is needed
to make a qualified expression into a name (syntax-wise), then do not
consider it redundant.
2010-10-04 Thomas Quinot <>
* Fix typo.
2010-10-04 Javier Miranda <>
* exp_cg.adb (Is_Predefined_Dispatching_Operation): Handle suffix in
TSS names.
(Write_Call_Info): Add missing support for renamed primitives.
2010-10-04 Thomas Quinot <>
* exp_ch5.adb (Make_Field_Expr): New subprogram, to factor duplicated
code between Make_Component_List_Assign and Make_Field_Assign.
2010-10-04 Vincent Celier <>
* prj-nmsc.adb (Get_Directories): For non extending projects that
declare that they have no sources, do not create a non existing object
or exec directory if builder switch -p is used.
2010-10-04 Sergey Rybin <>
* gnat_ugn.texi (gnatcheck): Change the description of the report file
2010-10-04 Ed Falis <>
* s-taprop-vxworks.adb (Is_Task_Context): Import VxWorks intContext to
determine whether Set_True is called from a task or an ISR.
(Set_True): test for being in a task context before trying to
dereference Defer_Abort or Undefer_Abort.
2010-10-04 Robert Dewar <>
* sem_res.adb, sinput-l.adb: Minor reformatting.
2010-10-04 Hristian Kirtchev <>
* exp_ch5.adb (Expand_N_Assignment_Statement): Do not generate a tag
check when the target object is an interface since the expression of
the right hand side must only cover the interface.
2010-10-04 Vincent Celier <>
* frontend.adb: Set Lib.Parsing_Main_Extended_Source to True before
loading the main source, so that if it is preprocessed and -gnateG is
used, the preprocessed file is written.
* (Analysing_Subunit_Of_Main): New global variable to indicate
if a subunit is from the main unit when it is loaded.
* sem_ch10.adb (Analyze_Proper_Body): Set Lib.Analysing_Subunit_Of_Main
to True before loading a subunit.
* sem_ch12.adb (Copy_Generic_Node): Set Lib.Analysing_Subunit_Of_Main
to True when the main is a generic unit before loading one of its
* sinput-l.adb (Load_File): If -gnateG is used, write the preprocessed
file only for the main unit (spec, body and subunits).
2010-10-04 Vincent Celier <>
* sinput-l.adb (Load_File): Do not fail when switch -gnateG is
specified and the processed file cannot be written. Just issue a
warning and continue.
2010-10-04 Thomas Quinot <>
* sem_res.adb: Minor reformatting.
2010-10-04 Ed Schonberg <>
* sem_ch8.adb (Analyze_Subprogram_Renaming): If the renamed operation
is an overridden inherited operation, the desired operation is the
overriding one, which is the alias of the visible one.
2010-10-04 Ed Schonberg <>
* sem_ch6.adb (Find_Corresponding_Spec): Check that the wrapper body is
present before deleting from the tree, when an inherited function with
a controlling result that returns a null extension is overridden by a
later declaration or body.
2010-10-04 Gary Dismukes <>
* checks.adb: Update comment.
2010-09-30 Joseph Myers <>
* gcc-interface/misc.c (optimize, optimize_size): Undefine as macros
and define as variables.
(gnat_post_options): Set optimize and optimize_size variables.
2010-09-29 Joel Sherrill <>
* g-socket.adb: Move pragma to disable warnings in case multiple errnos
are not defined by target.
2010-09-29 Eric Botcazou <>
* gcc-interface/utils.c (handle_leaf_attribute): Fix long line.
2010-09-28 Richard Henderson <>
* gcc-interface/misc.c (gnat_eh_personality): Use
2010-09-28 Jan Hubicka <>
* gcc-interface/utils.c (handle_leaf_attribute): New function.
(gnat_internal_attribute_tables): Add leaf.
2010-09-22 Joseph Myers <>
* gcc-interface/lang.opt (-all-warnings, -include-barrier,
-include-directory, -include-directory=, -no-standard-includes,
-no-standard-libraries): New.
2010-09-20 Eric Botcazou <>
* gcc-interface/decl.c (gnat_to_gnu_entity): Replace calls to
build_array_type with calls to build_nonshared_array_type.
(substitute_in_type): Likewise.
* gcc-interface/misc.c (LANG_HOOKS_HASH_TYPES): Delete.
(gnat_post_options): Add 'static' keyword.
(gnat_type_hash_eq): New static function.
* gcc-interface/utils.c (fntype_same_flags_p): New function.
(create_subprog_type): Call it.
(create_index_type): Call build_nonshared_range_type and tidy up.
(create_range_type): Likewise.
* gcc-interface/gigi.h (fntype_same_flags_p): Declare.
2010-09-19 Eric Botcazou <>
* gcc-interface/trans.c (gnat_pushdecl): Do not do anything special