diff options
author | Arnaud Charlet <charlet@gcc.gnu.org> | 2013-02-06 12:13:07 +0100 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2013-02-06 12:13:07 +0100 |
commit | 42ae387068be90759ead414855ecd14e933b0a4e (patch) | |
tree | 2d2c0a48d50ef471daf900e9946d67c3a8d2ec61 /gcc/ada/gcc-interface/gigi.h | |
parent | f403355afb84e58c73c83329b18bac3bc24f336c (diff) | |
download | gcc-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.h | 18 |
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 |