aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJim Wilson <wilson@cygnus.com>1998-03-31 16:59:41 +0000
committerJim Wilson <wilson@gcc.gnu.org>1998-03-31 08:59:41 -0800
commitc8d86b9a3c933297b47d8ee8616e19fcd47d39d0 (patch)
treec3d1a8654d86e81a43a78078cf01b7ff9a43f148
parent8d052bc70c4265754427c106f325eb4150b048c9 (diff)
downloadgcc-c8d86b9a3c933297b47d8ee8616e19fcd47d39d0.zip
gcc-c8d86b9a3c933297b47d8ee8616e19fcd47d39d0.tar.gz
gcc-c8d86b9a3c933297b47d8ee8616e19fcd47d39d0.tar.bz2
Fix problem where different code gets generated with/without -Wreturn-type.
* toplev.c (rest_of__compilation): Call init_recog_no_volatile at end. From-SVN: r18918
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/toplev.c11
2 files changed, 15 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 89538bd..578fe72 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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):
diff --git a/gcc/toplev.c b/gcc/toplev.c
index 5fbf36d..18ed3324 100644
--- a/gcc/toplev.c
+++ b/gcc/toplev.c
@@ -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. */