aboutsummaryrefslogtreecommitdiff
path: root/gcc/toplev.c
diff options
context:
space:
mode:
authorSteven Bosscher <stevenb@suse.de>2004-01-11 23:05:49 +0000
committerSteven Bosscher <steven@gcc.gnu.org>2004-01-11 23:05:49 +0000
commit53efeb8d0b17b21daeefc77ac53ef2e9876921c6 (patch)
tree3f32a25a3339b44675d391be35196638125e0b72 /gcc/toplev.c
parentd4968a11164de7144bdded316a2126197661adf1 (diff)
downloadgcc-53efeb8d0b17b21daeefc77ac53ef2e9876921c6.zip
gcc-53efeb8d0b17b21daeefc77ac53ef2e9876921c6.tar.gz
gcc-53efeb8d0b17b21daeefc77ac53ef2e9876921c6.tar.bz2
re PR fortran/9972 (Failure of g77.f-torture/execute/980520-1.f)
PR fortran/9972 * toplev.c (rest_of_handle_inlining): Also consider functions for deferral if the language is GNU F77. testsuite: * 980520-1.x: Removed. From-SVN: r75692
Diffstat (limited to 'gcc/toplev.c')
-rw-r--r--gcc/toplev.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/gcc/toplev.c b/gcc/toplev.c
index 4781939..3ac7d73 100644
--- a/gcc/toplev.c
+++ b/gcc/toplev.c
@@ -2678,7 +2678,13 @@ rest_of_handle_inlining (tree decl)
if (inlinable
|| (DECL_INLINE (decl)
- && flag_inline_functions
+ /* Egad. This RTL deferral test conflicts with Fortran assumptions
+ for unreferenced symbols. See g77.f-torture/execute/980520-1.f.
+ But removing this line from the check breaks all languages that
+ use the call graph to output symbols. This hard-coded check is
+ the least invasive work-around. */
+ && (flag_inline_functions
+ || strcmp (lang_hooks.name, "GNU F77") == 0)
&& ((! TREE_PUBLIC (decl) && ! TREE_ADDRESSABLE (decl)
&& ! TREE_SYMBOL_REFERENCED (DECL_ASSEMBLER_NAME (decl))
&& ! flag_keep_inline_functions)