summaryrefslogtreecommitdiff
path: root/gcc/ada/aspects.adb
diff options
context:
space:
mode:
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2011-08-05 13:56:17 +0000
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2011-08-05 13:56:17 +0000
commit0319323f59608bd67c8afa517c871ca6bab314b2 (patch)
tree05cbd8c8c3fd685d5701db0a6d80712885cae65e /gcc/ada/aspects.adb
parentb57530b845013e9b6b2670a1e2bd39757cd4cd3d (diff)
downloadgcc-0319323f59608bd67c8afa517c871ca6bab314b2.tar.gz
2011-08-05 Arnaud Charlet <charlet@adacore.com>
* make.adb (Linking_Phase): No longer need to set source search path before calling gnatlink in CodePeer mode. * gnatlink.adb (Gnatlink): No longer pass -gnat83/95/05/12 switch to gcc in CodePeer mode, since the binder generated file no longer has a 'with Main'. * switch.ads, switch.adb (Is_Language_Switch): Removed. * switch-c.adb: Update comment. 2011-08-05 Thomas Quinot <quinot@adacore.com> * exp_strm.adb, bindgen.adb, s-ficobl.ads: Minor reformatting. 2011-08-05 Nicolas Roche <roche@adacore.com> * gnat_ugn.texi: Fix minor syntax error issue. 2011-08-05 Vincent Celier <celier@adacore.com> * gnatcmd.adb (Get_Closure): Do not crash when it is not possible to delete or close the file when the call to gnatmake returns a non successful return code. 2011-08-05 Ed Schonberg <schonberg@adacore.com> * exp_ch4.adb (Expand_N_Type_Conversion): When expanding a predicate check, indicate that the copy of the original node does not come from source, to prevent an infinite recursion of the expansion. 2011-08-05 Johannes Kanig <kanig@adacore.com> * debug.adb: document switch -gnatd.G for gnat2why, which deactivates VC generation for subprogram bodies. 2011-08-05 Yannick Moy <moy@adacore.com> * einfo.ads: Typo. * sem_ch3.adb (Signed_Integer_Type_Declaration): in ALFA mode, define the base type with the smallest allowed base type. 2011-08-05 Sergey Rybin <rybin@adacore.com> * tree_gen.adb, tree_in.adb, aspects.adb: Fix tree read-write for aspects. 2011-08-05 Ed Schonberg <schonberg@adacore.com> * sem_ch12.ads: minor comment updates. 2011-08-05 Ed Schonberg <schonberg@adacore.com> * sem_ch12.adb (Analyze_Formal_Package_Declaration): in an instantiation and a formal package the compiler generates a package renaming declaration so that the generic name within the declaration is interpreted as a renaming of the instance. At the end of a formal package declaration, this renaming must become invisible. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177437 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada/aspects.adb')
-rwxr-xr-xgcc/ada/aspects.adb27
1 files changed, 26 insertions, 1 deletions
diff --git a/gcc/ada/aspects.adb b/gcc/ada/aspects.adb
index 82649db56ab..7bb9724fb5c 100755
--- a/gcc/ada/aspects.adb
+++ b/gcc/ada/aspects.adb
@@ -38,6 +38,17 @@ with GNAT.HTable; use GNAT.HTable;
package body Aspects is
+ procedure Set_Aspect_Specifications_No_Check (N : Node_Id; L : List_Id);
+ -- Same as Set_Aspect_Specifications, but does not contain the assertion
+ -- that checks that N does not already have aspect specifications. This
+ -- subprogram is supposed to be used as a part of Tree_Read. When reading
+ -- the tree we first read nodes with their basic properties (as
+ -- Atree.Tree_Read), this includes reading the Has_Aspects flag for each
+ -- node, then we reed all the list tables and only after that we call
+ -- Tree_Read for Aspects. That is, when reading the tree, the list of
+ -- aspects is attached to the node that already has Has_Aspects flag set
+ -- ON
+
------------------------------------------
-- Hash Table for Aspect Specifications --
------------------------------------------
@@ -261,6 +272,20 @@ package body Aspects is
Aspect_Specifications_Hash_Table.Set (N, L);
end Set_Aspect_Specifications;
+ ----------------------------------------
+ -- Set_Aspect_Specifications_No_Check --
+ ----------------------------------------
+
+ procedure Set_Aspect_Specifications_No_Check (N : Node_Id; L : List_Id) is
+ begin
+ pragma Assert (Permits_Aspect_Specifications (N));
+ pragma Assert (L /= No_List);
+
+ Set_Has_Aspects (N);
+ Set_Parent (L, N);
+ Aspect_Specifications_Hash_Table.Set (N, L);
+ end Set_Aspect_Specifications_No_Check;
+
---------------
-- Tree_Read --
---------------
@@ -273,7 +298,7 @@ package body Aspects is
Tree_Read_Int (Int (Node));
Tree_Read_Int (Int (List));
exit when List = No_List;
- Set_Aspect_Specifications (Node, List);
+ Set_Aspect_Specifications_No_Check (Node, List);
end loop;
end Tree_Read;