aboutsummaryrefslogtreecommitdiff
path: root/gcc/c/c-objc-common.cc
diff options
context:
space:
mode:
authorMartin Liska <mliska@suse.cz>2022-10-26 12:59:00 +0200
committerMartin Liska <mliska@suse.cz>2022-10-26 12:59:00 +0200
commit62e475bad0d668c432bb97113cbf73fa281b8b55 (patch)
tree1c8993afe363ddbf4ae80795e47042df1e33d181 /gcc/c/c-objc-common.cc
parent5776a5ffab3b92d6ccac87ccf32c580ee2742d5a (diff)
parentd80b7744c6ae6f6d8ca1f56982a50d1888b8279f (diff)
downloadgcc-62e475bad0d668c432bb97113cbf73fa281b8b55.zip
gcc-62e475bad0d668c432bb97113cbf73fa281b8b55.tar.gz
gcc-62e475bad0d668c432bb97113cbf73fa281b8b55.tar.bz2
Merge branch 'master' into devel/sphinx
Diffstat (limited to 'gcc/c/c-objc-common.cc')
-rw-r--r--gcc/c/c-objc-common.cc9
1 files changed, 6 insertions, 3 deletions
diff --git a/gcc/c/c-objc-common.cc b/gcc/c/c-objc-common.cc
index 70e10a9..b468091 100644
--- a/gcc/c/c-objc-common.cc
+++ b/gcc/c/c-objc-common.cc
@@ -37,9 +37,12 @@ static bool c_tree_printer (pretty_printer *, text_info *, const char *,
bool
c_missing_noreturn_ok_p (tree decl)
{
- /* A missing noreturn is not ok for freestanding implementations and
- ok for the `main' function in hosted implementations. */
- return flag_hosted && MAIN_NAME_P (DECL_ASSEMBLER_NAME (decl));
+ /* A missing noreturn is ok for the `main' function. */
+ if (!MAIN_NAME_P (DECL_ASSEMBLER_NAME (decl)))
+ return false;
+
+ return flag_hosted
+ || TYPE_MAIN_VARIANT (TREE_TYPE (TREE_TYPE (decl))) == integer_type_node;
}
/* Called from check_global_declaration. */