diff options
author | charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-08-14 08:37:26 +0000 |
---|---|---|
committer | charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-08-14 08:37:26 +0000 |
commit | a3e461ace7ab20bc18d25bc0d595dbc6913767df (patch) | |
tree | 7c3895b13822ab5f7e3c1e9da39c7366611502b5 /gcc/ada/exp_ch2.ads | |
parent | 2af58f67b743ad50326b0a93dde262515d2145b8 (diff) | |
download | gcc-a3e461ace7ab20bc18d25bc0d595dbc6913767df.tar.gz |
2007-08-14 Robert Dewar <dewar@adacore.com>
Gary Dismukes <dismukes@adacore.com>
Ed Schonberg <schonberg@adacore.com>
Thomas Quinot <quinot@adacore.com>
* a-stzsup.adb, nlists.adb, lib-util.adb, treepr.adb,
a-stwisu.adb, a-strsup.adb: Fix warnings for range
tests optimized out.
* exp_ch4.adb (Expand_N_In): Add warnings for range tests optimized out.
(Get_Allocator_Final_List): For the case of an anonymous access type
that has a specified Associated_Final_Chain, do not go up to the
enclosing scope.
(Expand_N_Type_Conversion): Test for the case of renamings of access
parameters when deciding whether to apply a run-time accessibility
check.
(Convert_Aggr_In_Allocator): Use Insert_Actions to place expanded
aggregate code before allocator, and ahead of declaration for
temporary, to prevent access before elaboration when the allocator is
an actual for an access parameter.
(Expand_N_Type_Conversion): On an access type conversion involving an
access parameter, do not apply an accessibility check when the
operand's original node was an attribute other than 'Access. We now
create access conversions for the expansion of 'Unchecked_Access and
'Unrestricted_Access in certain cases and clearly accessibility should
not be checked for those.
* exp_ch6.ads, exp_ch6.adb (Add_Call_By_Copy_Code): For an actual that
includes a type conversion of a packed component that has been expanded,
recover the original expression for the object, and use this expression
in the post-call assignment statement, so that the assignment is made
to the object and not to a back-end temporary.
(Freeze_Subprogram): In case of primitives of tagged types not defined
at the library level force generation of code to register the primitive
in the dispatch table. In addition some code reorganization has been
done to leave the implementation clear.
(Expand_Call): When expanding an inherited implicit conversion,
preserve the type of the inherited function after the intrinsic
operation has been expanded.
* exp_ch2.ads, exp_ch2.adb
(Expand_Entry_Parameter.In_Assignment_Context): An implicit dereference
of an entry formal appearing in an assignment statement does not assign
to the formal.
(Expand_Current_Value): Instead of calling a routine to determine
whether the prefix of an attribute reference should be optimized or
not, prevent the optimization of such prefixes all together.
* lib-xref.adb (Generate_Reference.Is_On_LHS): An indexed or selected
component whose prefix is known to be of an access type is an implicit
dereference and does not assign to the prefix.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127411 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada/exp_ch2.ads')
-rw-r--r-- | gcc/ada/exp_ch2.ads | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/gcc/ada/exp_ch2.ads b/gcc/ada/exp_ch2.ads index 87c9d9e8ed6..97b231984b3 100644 --- a/gcc/ada/exp_ch2.ads +++ b/gcc/ada/exp_ch2.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-1997 Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2007, Free Software Foundation, Inc. -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -37,9 +37,10 @@ package Exp_Ch2 is -- Given an expression N, determines if the expression is a reference -- to a formal (of a subprogram or entry), and if so returns the Id -- of the corresponding formal entity, otherwise returns Empty. The - -- reason that this is in Exp_Ch2 is that it has to deal with the - -- case where the reference is to an entry formal, and has been - -- expanded already. Since Exp_Ch2 is in charge of the expansion, it - -- is best suited to knowing how to detect this case. + -- reason that this is in Exp_Ch2 is that it has to deal with the case + -- where the reference is to an entry formal, and has been expanded + -- already. Since Exp_Ch2 is in charge of the expansion, it is best + -- suited to knowing how to detect this case. Also handles the case + -- of references to renamings of formals. end Exp_Ch2; |