aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/gcc-interface/gigi.h
diff options
context:
space:
mode:
authorArnaud Charlet <charlet@gcc.gnu.org>2013-02-06 12:13:07 +0100
committerArnaud Charlet <charlet@gcc.gnu.org>2013-02-06 12:13:07 +0100
commit42ae387068be90759ead414855ecd14e933b0a4e (patch)
tree2d2c0a48d50ef471daf900e9946d67c3a8d2ec61 /gcc/ada/gcc-interface/gigi.h
parentf403355afb84e58c73c83329b18bac3bc24f336c (diff)
downloadgcc-42ae387068be90759ead414855ecd14e933b0a4e.zip
gcc-42ae387068be90759ead414855ecd14e933b0a4e.tar.gz
gcc-42ae387068be90759ead414855ecd14e933b0a4e.tar.bz2
[multiple changes]
2013-02-06 Vincent Celier <celier@adacore.com> * prj-proc.adb (Process_Aggregated_Projects): Use a new project node tree for each project tree rooted at an aggregated project. 2013-02-06 Hristian Kirtchev <kirtchev@adacore.com> * sem_util.adb (Is_Interface_Conversion): New routine. (Object_Access_Level): Detect an interface conversion that has been rewritten into a different construct. Use the original form of the conversion to find the access level of the operand. 2013-02-06 Eric Botcazou <ebotcazou@adacore.com> * einfo.ads (Has_Pragma_No_Inline): New flag using Flag201. (Has_Pragma_No_Inline): Declare and mark as inline. (Set_Has_Pragma_No_Inline): Likewise. * einfo.adb (Has_Pragma_No_Inline): New function. (Set_Has_Pragma_No_Inline): New procedure. (Write_Entity_Flags): Handle Has_Pragma_No_Inline. * snames.ads-tmpl (Name_No_Inline): New pragma-related name. (Pragma_Id): Add Pragma_No_Inline value. * par-prag.adb (Prag): Handle Pragma_Inline. * sem_prag.adb (Inline_Status): New enumeration type. (Process_Inline): Change Active parameter to Inline_Status and add support for suppressed inlining. (Analyze_Pragma) <Pragma_Inline>: Adjust to above change. <Pragma_Inline_Always>: Likewise. <Pragma_No_Inline>: Implement new pragma No_Inline. (Sig_Flags): Add Pragma_No_Inline. * gnat_rm.texi (Implementation Defined Pragmas): Add No_Inline. * gnat_ugn.texi (Switches for gcc): Mention Pragma No_Inline. 2013-02-06 Pascal Obry <obry@adacore.com> * s-osprim-mingw.adb (Clock): Make sure we copy all data locally to avoid interleaved modifications that could happen from another task calling Get_Base_Data. (Get_Base_Data): Make it a critical section. Avoid updating if another task has already done it. From-SVN: r195801
Diffstat (limited to 'gcc/ada/gcc-interface/gigi.h')
-rw-r--r--gcc/ada/gcc-interface/gigi.h18
1 files changed, 15 insertions, 3 deletions
diff --git a/gcc/ada/gcc-interface/gigi.h b/gcc/ada/gcc-interface/gigi.h
index 6fc3f34..5dee7b56 100644
--- a/gcc/ada/gcc-interface/gigi.h
+++ b/gcc/ada/gcc-interface/gigi.h
@@ -430,6 +430,17 @@ enum exception_info_kind
exception_column
};
+/* Define the inline status of a subprogram. */
+enum inline_status_t
+{
+ /* Inlining is suppressed for the subprogram. */
+ is_suppressed,
+ /* No inlining is requested for the subprogram. */
+ is_disabled,
+ /* Inlining is requested for the subprogram. */
+ is_enabled
+};
+
extern GTY(()) tree gnat_std_decls[(int) ADT_LAST];
extern GTY(()) tree gnat_raise_decls[(int) LAST_REASON_CODE + 1];
extern GTY(()) tree gnat_raise_decls_ext[(int) LAST_REASON_CODE + 1];
@@ -718,13 +729,14 @@ extern tree create_label_decl (tree, Node_Id);
node), PARAM_DECL_LIST is the list of the subprogram arguments (a list of
PARM_DECL nodes chained through the DECL_CHAIN field).
- INLINE_FLAG, PUBLIC_FLAG, EXTERN_FLAG, ARTIFICIAL_FLAG and ATTR_LIST are
+ INLINE_STATUS, PUBLIC_FLAG, EXTERN_FLAG, ARTIFICIAL_FLAG and ATTR_LIST are
used to set the appropriate fields in the FUNCTION_DECL. GNAT_NODE is
used for the position of the decl. */
extern tree create_subprog_decl (tree subprog_name, tree asm_name,
tree subprog_type, tree param_decl_list,
- bool inline_flag, bool public_flag,
- bool extern_flag, bool artificial_flag,
+ enum inline_status_t inline_status,
+ bool public_flag, bool extern_flag,
+ bool artificial_flag,
struct attrib *attr_list, Node_Id gnat_node);
/* Set up the framework for generating code for SUBPROG_DECL, a subprogram