From bdbf03605c3dcfb997b2f1628d78234ff2c45bd8 Mon Sep 17 00:00:00 2001
From: law <law@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Thu, 27 Jul 2000 19:51:41 +0000
Subject: [PATCH] 	* c-decl.c (finish_function): Don't treat 'main'
 specially unless 	flag_hosted.  In C99 mode, return 0 from 'main' unless
 	DEFAULT_MAIN_RETURN is otherwise defined.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@35300 138bc75d-0d04-0410-961f-82ee72b054a4
---
 gcc/ChangeLog | 4 ++++
 gcc/c-decl.c  | 6 +++++-
 2 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 0cc077e72d6..6cc96ac547e 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -10,6 +10,10 @@
 
 2000-07-27  Joseph S. Myers  <jsm28@cam.ac.uk>
 
+	* c-decl.c (finish_function): Don't treat 'main' specially unless
+	flag_hosted.  In C99 mode, return 0 from 'main' unless
+	DEFAULT_MAIN_RETURN is otherwise defined.
+
 	* c-decl.c (store_parm_decls): In C99 mode, pedwarn for function
 	parameters defaulting to int in an old-style function definition.
 
diff --git a/gcc/c-decl.c b/gcc/c-decl.c
index 0b8621f750f..5f69e36136f 100644
--- a/gcc/c-decl.c
+++ b/gcc/c-decl.c
@@ -6589,7 +6589,8 @@ finish_function (nested)
       setjmp_protect_args ();
     }
 
-  if (! strcmp (IDENTIFIER_POINTER (DECL_NAME (fndecl)), "main"))
+  if (! strcmp (IDENTIFIER_POINTER (DECL_NAME (fndecl)), "main")
+      && flag_hosted)
     {
       if (TYPE_MAIN_VARIANT (TREE_TYPE (TREE_TYPE (fndecl)))
 	  != integer_type_node)
@@ -6604,6 +6605,9 @@ finish_function (nested)
 #ifdef DEFAULT_MAIN_RETURN
 	  /* Make it so that `main' always returns success by default.  */
 	  DEFAULT_MAIN_RETURN;
+#else
+	  if (flag_isoc99)
+	    c_expand_return (integer_zero_node);
 #endif
 	}
     }
-- 
GitLab