Fix problem where different code gets generated with/without -Wreturn-type.
authorJim Wilson <wilson@cygnus.com>
Tue, 31 Mar 1998 16:59:41 +0000 (16:59 +0000)
committerJim Wilson <wilson@gcc.gnu.org>
Tue, 31 Mar 1998 16:59:41 +0000 (08:59 -0800)
* toplev.c (rest_of__compilation): Call init_recog_no_volatile at end.

From-SVN: r18918

gcc/ChangeLog
gcc/toplev.c

index 89538bd..578fe72 100644 (file)
@@ -1,3 +1,7 @@
+Tue Mar 31 16:57:33 1998  Jim Wilson  <wilson@cygnus.com>
+
+       * toplev.c (rest_of__compilation): Call init_recog_no_volatile at end.
+
 Mon Mar 30 13:11:05 1998  Stan Cox  <scox@cygnus.com>
 
        * libgcc2.c: (__main, __do_global_dtors, __do_global_ctors):
index 5fbf36d..18ed332 100644 (file)
@@ -3643,6 +3643,17 @@ rest_of_compilation (decl)
 
   init_temp_slots ();
 
+  /* Make sure volatile mem refs aren't considered valid operands for
+     arithmetic insns.  We must call this here if this is a nested inline
+     function, since the above code leaves us in the init_recog state
+     (from final.c), and the function context push/pop code does not
+     save/restore volatile_ok.
+
+     ??? Maybe it isn't necessary for expand_start_function to call this
+     anymore if we do it here?  */
+
+  init_recog_no_volatile ();
+
   /* The parsing time is all the time spent in yyparse
      *except* what is spent in this function.  */