aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/gcc-interface/utils.c
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@gcc.gnu.org>2011-03-26 09:34:40 +0000
committerEric Botcazou <ebotcazou@gcc.gnu.org>2011-03-26 09:34:40 +0000
commit5daed84a544a8e2bd3017ad77975abd9831953b7 (patch)
tree26ba2a9b9f6a154eeaec3ba42d01da1e79061f7a /gcc/ada/gcc-interface/utils.c
parent530f4f437a8d592e8203a40a860f246c7e1cdfca (diff)
downloadgcc-5daed84a544a8e2bd3017ad77975abd9831953b7.zip
gcc-5daed84a544a8e2bd3017ad77975abd9831953b7.tar.gz
gcc-5daed84a544a8e2bd3017ad77975abd9831953b7.tar.bz2
inline.adb (Back_End_Cannot_Inline): Lift restriction on calls to subprograms without a previous spec declared in...
* inline.adb (Back_End_Cannot_Inline): Lift restriction on calls to subprograms without a previous spec declared in the same unit. * gcc-interface/trans.c (Compilation_Unit_to_gnu): Process inlined subprograms at the end of the unit instead of at the beginning. * gcc-interface/utils.c (create_subprog_decl): Check that the entity isn't public for the special handling of non-inline functions nested inside inline external functions. From-SVN: r171551
Diffstat (limited to 'gcc/ada/gcc-interface/utils.c')
-rw-r--r--gcc/ada/gcc-interface/utils.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/gcc/ada/gcc-interface/utils.c b/gcc/ada/gcc-interface/utils.c
index 181e22a..2cfd1ce 100644
--- a/gcc/ada/gcc-interface/utils.c
+++ b/gcc/ada/gcc-interface/utils.c
@@ -1790,6 +1790,7 @@ create_subprog_decl (tree subprog_name, tree asm_name,
We could inline the nested function as well but it's probably better
to err on the side of too little inlining. */
if (!inline_flag
+ && !public_flag
&& current_function_decl
&& DECL_DECLARED_INLINE_P (current_function_decl)
&& DECL_EXTERNAL (current_function_decl))