OSDN Git Service

* exp_ch4.adb (Expand_N_Selected_Component): If the component is the
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 19 Nov 2004 10:57:20 +0000 (10:57 +0000)
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 19 Nov 2004 10:57:20 +0000 (10:57 +0000)
commitcb22648259a0fb6992dcd74e03e2e1a533544577
tree180c6c1639dfdeda66e9fb2b12980eae5f2ba409
parent25ba8eb38bbbc147d86796ff8db54c44252709f7
* exp_ch4.adb (Expand_N_Selected_Component): If the component is the
discriminant of a constrained subtype, analyze the copy of the
corresponding constraint, because in some cases it may be only
partially analyzed.
Removes long-lived ??? comments.

* exp_ch7.adb (Establish_Transient_Scope): Remove complex code that
handled controlled or secondary-stack expressions within the
iteration_scheme of a loop.

* sem_ch5.adb (Analyze_Iteration_Scheme): Build a block to evaluate
bounds that may contain functions calls, to prevent memory leaks when
the bound contains a call to a function that uses the secondary stack.
(Check_Complex_Bounds): Subsidiary of Analyze_Iteration_Scheme, to
generate temporaries for loop bounds that might contain function calls
that require secondary stack and/or finalization actions.

* sem_ch4.adb (Analyze_Indexed_Component_Form): If the prefix is a
selected component and the selector is overloadable (not just a
function) treat as function call, Analyze_Call will disambiguate if
necessary.
(Analyze_Selected_Component): Do not generate an actual subtype for the
selected component if expansion is disabled. The actual subtype is only
needed for constraint checks.
(Analyze_Allocator): If restriction No_Streams is set, then do
not permit objects to be declared of a stream type, or of a
composite type containing a stream.

* restrict.ads: Remove the a-stream entry from Unit_Array, since
No_Streams no longer prohibits with'ing this package.

* sem_ch3.adb (Build_Derived_Record_Type): If the parent type has
discriminants, but the parent base has unknown discriminants, there is
no discriminant constraint to inherit. Such a discrepancy can arise
when the actual for a formal type with unknown discriminants is a
similar private type whose full view has discriminants.
(Analyze_Object_Declaration): If restriction No_Streams is set, then
do not permit objects to be declared of a stream type, or of a
composite type containing a stream.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@90906 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ada/exp_ch4.adb
gcc/ada/exp_ch7.adb
gcc/ada/restrict.ads
gcc/ada/sem_ch3.adb
gcc/ada/sem_ch4.adb
gcc/ada/sem_ch5.adb