aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/gcc-interface/gigi.h
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@adacore.com>2012-07-03 08:28:34 +0000
committerEric Botcazou <ebotcazou@gcc.gnu.org>2012-07-03 08:28:34 +0000
commit28dd005525dc1a166827d6fe818e01bed7f42e1b (patch)
tree9acc0912d99c8d1fbc910a6130e60a7c459eb40e /gcc/ada/gcc-interface/gigi.h
parentd4d05b5247b56a3658d1fc5136276468d4829623 (diff)
downloadgcc-28dd005525dc1a166827d6fe818e01bed7f42e1b.zip
gcc-28dd005525dc1a166827d6fe818e01bed7f42e1b.tar.gz
gcc-28dd005525dc1a166827d6fe818e01bed7f42e1b.tar.bz2
exp_disp.adb (Expand_Dispatching_Call): Propagate the convention on the designated subprogram type and also set...
* exp_disp.adb (Expand_Dispatching_Call): Propagate the convention on the designated subprogram type and also set Is_Dispatch_Table_Entity. (Expand_Interface_Thunk): Propagate the convention on the thunk. (Set_CPP_Constructors_Old): Set Is_Constructor and Convention_CPP on the internal view of the constructors. (Set_CPP_Constructors): Likewise. * sem_prag.adb (Analyze_Pragma) <Pragma_CPP_Constructor>: Set the convention on the function. * gcc-interface/gigi.h (is_cplusplus_method): Declare. * gcc-interface/decl.c (Has_Thiscall_Convention): New macro. (gnat_to_gnu_entity) <E_Subprogram_Type>: Test it to set the `thiscall' calling convention (get_minimal_subprog_decl): Likewise. (is_cplusplus_method): New predicate. * gcc-interface/trans.c (Attribute_to_gnu) <Attr_Access>: Issue an error on access to C++ constructor or member function. From-SVN: r189199
Diffstat (limited to 'gcc/ada/gcc-interface/gigi.h')
-rw-r--r--gcc/ada/gcc-interface/gigi.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/gcc/ada/gcc-interface/gigi.h b/gcc/ada/gcc-interface/gigi.h
index cfa52b0..6edead0 100644
--- a/gcc/ada/gcc-interface/gigi.h
+++ b/gcc/ada/gcc-interface/gigi.h
@@ -116,6 +116,10 @@ extern tree get_unpadded_type (Entity_Id gnat_entity);
alias is already present, in which case it is returned instead. */
extern tree get_minimal_subprog_decl (Entity_Id gnat_entity);
+/* Return whether the E_Subprogram_Type/E_Function/E_Procedure GNAT_ENTITY is
+ a C++ imported method or equivalent. */
+extern bool is_cplusplus_method (Entity_Id gnat_entity);
+
/* Create a record type that contains a SIZE bytes long field of TYPE with a
starting bit position so that it is aligned to ALIGN bits, and leaving at
least ROOM bytes free before the field. BASE_ALIGN is the alignment the