diff mbox series

[COMMITED] ada: Add C declarations for Storage Model support

Message ID 20221006092943.261301-1-poulhies@adacore.com
State New
Headers show
Series [COMMITED] ada: Add C declarations for Storage Model support | expand

Commit Message

Marc Poulhiès Oct. 6, 2022, 9:29 a.m. UTC
Add needed C declarations for Storage Model support in gigi.

gcc/ada/

	* fe.h (Has_Storage_Model_Type_Aspect)
	(Has_Designated_Storage_Model_Aspect, Storage_Model_Object)
	(Storage_Model_Copy_From, Storage_Model_Copy_To): Add
	declarations.
	* sem_util.ads: Add WARNING markers for functions for which a new
	C declaration has been added in fe.h

Tested on x86_64-pc-linux-gnu, committed on master.

---
 gcc/ada/fe.h         | 10 ++++++++++
 gcc/ada/sem_util.ads | 10 ++++++++++
 2 files changed, 20 insertions(+)
diff mbox series

Patch

diff --git a/gcc/ada/fe.h b/gcc/ada/fe.h
index 02cf105d5e1..79a1b58836e 100644
--- a/gcc/ada/fe.h
+++ b/gcc/ada/fe.h
@@ -304,17 +304,27 @@  extern Boolean Compile_Time_Known_Value	(Node_Id);
 
 #define Defining_Entity			sem_util__defining_entity
 #define First_Actual			sem_util__first_actual
+#define Has_Storage_Model_Type_Aspect	sem_util__storage_model_support__has_storage_model_type_aspect
+#define Has_Designated_Storage_Model_Aspect sem_util__storage_model_support__has_designated_storage_model_aspect
 #define Is_Expression_Function		sem_util__is_expression_function
 #define Is_Variable_Size_Record 	sem_util__is_variable_size_record
 #define Needs_Secondary_Stack		sem_util__needs_secondary_stack
 #define Next_Actual			sem_util__next_actual
+#define Storage_Model_Object 		sem_util__storage_model_support__storage_model_object
+#define Storage_Model_Copy_From 	sem_util__storage_model_support__storage_model_copy_from
+#define Storage_Model_Copy_To 		sem_util__storage_model_support__storage_model_copy_to
 
 extern Entity_Id Defining_Entity		(Node_Id);
 extern Node_Id First_Actual			(Node_Id);
+extern Boolean Has_Storage_Model_Type_Aspect	(Entity_Id);
+extern Boolean Has_Designated_Storage_Model_Aspect (Entity_Id);
 extern Boolean Is_Expression_Function		(Entity_Id);
 extern Boolean Is_Variable_Size_Record 		(Entity_Id);
 extern Boolean Needs_Secondary_Stack		(Entity_Id);
 extern Node_Id Next_Actual			(Node_Id);
+extern Entity_Id Storage_Model_Object		(Entity_Id);
+extern Entity_Id Storage_Model_Copy_From	(Entity_Id);
+extern Entity_Id Storage_Model_Copy_To 		(Entity_Id);
 
 /* sinfo: */
 
diff --git a/gcc/ada/sem_util.ads b/gcc/ada/sem_util.ads
index 132c2b8cddf..c23d358e2fb 100644
--- a/gcc/ada/sem_util.ads
+++ b/gcc/ada/sem_util.ads
@@ -3655,10 +3655,14 @@  package Sem_Util is
       function Has_Storage_Model_Type_Aspect (Typ : Entity_Id) return Boolean;
       --  Returns True iff Typ specifies aspect Storage_Model_Type
 
+      --  WARNING: There is a matching C declaration of this subprogram in fe.h
+
       function Has_Designated_Storage_Model_Aspect
         (Typ : Entity_Id) return Boolean;
       --  Returns True iff Typ specifies aspect Designated_Storage_Model
 
+      --  WARNING: There is a matching C declaration of this subprogram in fe.h
+
       function Storage_Model_Object (Typ : Entity_Id) return Entity_Id;
       --  Given an access type Typ with aspect Designated_Storage_Model,
       --  returns the storage-model object associated with that type.
@@ -3666,6 +3670,8 @@  package Sem_Util is
       --  other functions declared in this interface to retrieve operations
       --  associated with Storage_Model_Type aspect of the object's type.
 
+      --  WARNING: There is a matching C declaration of this subprogram in fe.h
+
       function Storage_Model_Type (Obj : Entity_Id) return Entity_Id;
       --  Given an object Obj of a type specifying aspect Storage_Model_Type,
       --  returns that type.
@@ -3715,12 +3721,16 @@  package Sem_Util is
       --  type, returns the procedure specified for the Copy_From choice in
       --  that aspect; returns Empty if the procedure isn't specified.
 
+      --  WARNING: There is a matching C declaration of this subprogram in fe.h
+
       function Storage_Model_Copy_To
         (SM_Obj_Or_Type : Entity_Id) return Entity_Id;
       --  Given a type with aspect Storage_Model_Type or an object of such a
       --  type, returns the procedure specified for the Copy_To choice in that
       --  aspect; returns Empty if the procedure isn't specified.
 
+      --  WARNING: There is a matching C declaration of this subprogram in fe.h
+
       function Storage_Model_Storage_Size
         (SM_Obj_Or_Type : Entity_Id) return Entity_Id;
       --  Given a type with aspect Storage_Model_Type or an object of such a