aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoseph Myers <jsm28@cam.ac.uk>2000-07-27 13:51:41 -0600
committerJeff Law <law@gcc.gnu.org>2000-07-27 13:51:41 -0600
commit98be7846ad96810018215b97a636fa7777a8478f (patch)
tree30aa08c7b5cf92c2a814de3b61e98151d8891475
parentc1445f3dec950ad12b0c9bb6570950134fbc61fa (diff)
downloadgcc-98be7846ad96810018215b97a636fa7777a8478f.zip
gcc-98be7846ad96810018215b97a636fa7777a8478f.tar.gz
gcc-98be7846ad96810018215b97a636fa7777a8478f.tar.bz2
c-decl.c (finish_function): Don't treat 'main' specially unless flag_hosted.
* 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. From-SVN: r35300
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/c-decl.c6
2 files changed, 9 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 0cc077e..6cc96ac 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 0b8621f..5f69e36 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
}
}