]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR fortran/9972 (Failure of g77.f-torture/execute/980520-1.f)
authorSteven Bosscher <stevenb@suse.de>
Sun, 11 Jan 2004 23:05:49 +0000 (23:05 +0000)
committerSteven Bosscher <steven@gcc.gnu.org>
Sun, 11 Jan 2004 23:05:49 +0000 (23:05 +0000)
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

gcc/ChangeLog
gcc/testsuite/g77.f-torture/execute/980520-1.x [deleted file]
gcc/toplev.c

index 07b0bca6d32b069bbef459570082529ed7e3a644..030417dd8bea2402eb754c71c0cb0ea7a7e495eb 100644 (file)
@@ -1,3 +1,8 @@
+2004-01-11  Steven Bosscher  <stevenb@suse.de>
+
+       * toplev.c (rest_of_handle_inline): Also consider functions
+       for deferral if the language is GNU F77.
+
 2004-01-11  Zack Weinberg  <zack@codesourcery.com>
 
        * c-decl.c (diagnose_arglist_conflict): Add missing space to
diff --git a/gcc/testsuite/g77.f-torture/execute/980520-1.x b/gcc/testsuite/g77.f-torture/execute/980520-1.x
deleted file mode 100644 (file)
index 595de5e..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-set torture_eval_before_compile {
-
-    set compiler_conditional_xfail_data {
-       "PR fortran/9972" \
-       { "*-*-*" } \
-       { "-O0" } \
-       { "" }
-       }
-}
-
-return 0
index 478193951e3cc7484f1c0a294504a218c50ef304..3ac7d7373935646e3a1d8719fd505b36ce34ac07 100644 (file)
@@ -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)