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).