Commit eaed2a2c by Arnaud Charlet

[multiple changes]

2015-03-24  Gary Dismukes  <dismukes@adacore.com>

	* sem_ch3.adb: Minor typo fix (missing paren).

2015-03-24  Robert Dewar  <dewar@adacore.com>

	* sinfo.ads: Update comment.

2015-03-24  Robert Dewar  <dewar@adacore.com>

	* exp_attr.adb: Add entry for typ'Deref.
	* sem_attr.adb (Deref): New GNAT attribute.
	* sem_attr.ads: Add entry for new GNAT attribute Deref.
	* snames.ads-tmpl: Add entries for new attribute Deref.

From-SVN: r221630
parent 5f6061af
2015-03-24 Gary Dismukes <dismukes@adacore.com>
* sem_ch3.adb: Minor typo fix (missing paren).
2015-03-24 Robert Dewar <dewar@adacore.com>
* sinfo.ads: Update comment.
2015-03-24 Robert Dewar <dewar@adacore.com>
* exp_attr.adb: Add entry for typ'Deref.
* sem_attr.adb (Deref): New GNAT attribute.
* sem_attr.ads: Add entry for new GNAT attribute Deref.
* snames.ads-tmpl: Add entries for new attribute Deref.
2015-03-24 Ed Schonberg <schonberg@adacore.com>
* sem_ch13.adb (Rep_Item_Too_Early): allow pragma Convention
......
......@@ -7103,6 +7103,7 @@ package body Exp_Attr is
when Attribute_Bit_Order |
Attribute_Code_Address |
Attribute_Definite |
Attribute_Deref |
Attribute_Null_Parameter |
Attribute_Passed_By_Reference |
Attribute_Pool_Address |
......
......@@ -3540,6 +3540,16 @@ package body Sem_Attr is
Check_Floating_Point_Type_0;
Set_Etype (N, Standard_Boolean);
-----------
-- Deref --
-----------
when Attribute_Deref =>
Check_Type;
Check_E1;
Resolve (E1, RTE (RE_Address));
Set_Etype (N, P_Type);
---------------------
-- Descriptor_Size --
---------------------
......@@ -9642,6 +9652,7 @@ package body Sem_Attr is
Attribute_Count |
Attribute_Default_Bit_Order |
Attribute_Default_Scalar_Storage_Order |
Attribute_Deref |
Attribute_Elaborated |
Attribute_Elab_Body |
Attribute_Elab_Spec |
......
......@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
-- Copyright (C) 1992-2014, Free Software Foundation, Inc. --
-- Copyright (C) 1992-2015, 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- --
......@@ -42,9 +42,9 @@ package Sem_Attr is
-- Implementation Dependent Attributes --
-----------------------------------------
-- This section describes the implementation dependent attributes
-- provided in GNAT, as well as constructing an array of flags
-- indicating which attributes these are.
-- This section describes the implementation dependent attributes provided
-- in GNAT, as well as constructing an array of flags indicating which
-- attributes these are.
Attribute_Impl_Def : Attribute_Class_Array := Attribute_Class_Array'(
......@@ -152,6 +152,17 @@ package Sem_Attr is
-- Default_Scalar_Storage_Order, or equal to Default_Bit_Order if
-- unspecified) as a System.Bit_Order value. This is a static attribute.
-----------
-- Deref --
-----------
Attribute_Deref => True,
-- typ'Deref (expr) is valid only if expr is of type System'Address.
-- The result is an object of type typ that is obtained by treating the
-- address as an access-to-typ value that points to the result. It is
-- basically equivalent to (atyp!expr).all where atyp is an access type
-- for the type.
---------------
-- Elab_Body --
---------------
......
......@@ -3161,7 +3161,7 @@ package body Sem_Ch3 is
and then No (Corresponding_Generic_Association (Parent (Obj_Id)))
-- Don't give this for internally generated entities (such as the
-- FIRST and LAST temporaries generated for bounds.
-- FIRST and LAST temporaries generated for bounds).
and then Comes_From_Source (Obj_Id)
then
......
......@@ -827,7 +827,9 @@ package Sinfo is
-- setting tag values, etc. N_Object_Declaration nodes also have this
-- flag defined. Here it is used to indicate that an initialization
-- expression is valid, even where it would normally not be allowed
-- (e.g. where the type involved is limited).
-- (e.g. where the type involved is limited). It is also used to stop
-- a Force_Evaluation call for an unchecked conversion, but this usage
-- is unclear and not documented ???
-- Associated_Node (Node4-Sem)
-- Present in nodes that can denote an entity: identifiers, character
......
......@@ -845,6 +845,7 @@ package Snames is
Name_Definite : constant Name_Id := N + $;
Name_Delta : constant Name_Id := N + $;
Name_Denorm : constant Name_Id := N + $;
Name_Deref : constant Name_Id := N + $; -- GNAT
Name_Descriptor_Size : constant Name_Id := N + $;
Name_Digits : constant Name_Id := N + $;
Name_Elaborated : constant Name_Id := N + $; -- GNAT
......@@ -1476,6 +1477,7 @@ package Snames is
Attribute_Definite,
Attribute_Delta,
Attribute_Denorm,
Attribute_Deref,
Attribute_Descriptor_Size,
Attribute_Digits,
Attribute_Elaborated,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment