OSDN Git Service

2007-04-20 Hristian Kirtchev <kirtchev@adacore.com>
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 6 Jun 2007 10:24:07 +0000 (10:24 +0000)
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 6 Jun 2007 10:24:07 +0000 (10:24 +0000)
commit83aa52b6a15120732c92e994b9cdf8f028a93b31
treef74f8dfa25caf5f5c947cc68976eec95de808602
parentdec977bb3efaa65bf256e459c6b3d2ea56f155de
2007-04-20  Hristian Kirtchev  <kirtchev@adacore.com>
    Javier Miranda  <miranda@adacore.com>
    Robert Dewar  <dewar@adacore.com>

* exp_attr.adb (Expand_N_Attribute_Reference): Case Callable and
Terminated: Add unchecked type conversion from System.Address to
System.Tasking.Task_Id when calling the predefined primitive
_disp_get_task_id.
Disable new Ada 05 accessibility check for JVM.NET targets, which
cannot be implemented in a practical way.
(Expand_N_Attribute_Reference: case Attribute_Tag): The use of 'Tag in
the sources always references the tag of the actual object. Therefore,
if 'Tag is applied in the sources to class-wide interface objects we
generate code that displaces "this" to reference the base of the object.
(Expand_N_Attribute_Reference, case Size): Return specified size if
known to front end.
(Expand_N_Attribute_Reference): The expansion of the 'Address attribute
has code that displaces the pointer of the object to manage interface
types. However this code must not be executed when the prefix is a
subprogram. This bug caused the wrong expansion of the internally
generated assignment that fills the dispatch table when the primitive
is a function returning a class-wide interface type.
(Expand_N_Attribute_Reference:Attribute_Valid): Remove incorrect call to
Set_Attribute_Name for Name_Unaligned_Valid.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@125393 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ada/exp_attr.adb