aboutsummaryrefslogtreecommitdiff
path: root/gcc/c-decl.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/c-decl.c')
-rw-r--r--gcc/c-decl.c6
1 files changed, 5 insertions, 1 deletions
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
}
}