From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 127811 invoked by alias); 15 Nov 2017 12:35:31 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 127791 invoked by uid 89); 15 Nov 2017 12:35:30 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-26.7 required=5.0 tests=BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,KB_WAM_FROM_NAME_SINGLEWORD,SPF_PASS autolearn=ham version=3.3.2 spammy= X-HELO: mx2.suse.de Received: from mx2.suse.de (HELO mx2.suse.de) (195.135.220.15) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 15 Nov 2017 12:35:29 +0000 Received: from relay1.suse.de (charybdis-ext.suse.de [195.135.220.254]) by mx2.suse.de (Postfix) with ESMTP id A7037AB0C; Wed, 15 Nov 2017 12:35:26 +0000 (UTC) Subject: Re: [PATCH][RFC] Instrument function exit with __builtin_unreachable in C++. To: Jakub Jelinek Cc: Eric Botcazou , gcc-patches@gcc.gnu.org, Jason Merrill , Marek Polacek , Jonathan Wakely References: <31ddd79e-1152-9dd9-663b-acd8d1bcd4ab@suse.cz> <806d7d62-1de5-128e-67e6-4b740c70d3b4@suse.cz> <20171115080726.GP14653@tucnak> <1609793.XEM2eeOWNW@polaris> <6afecad7-1289-1665-6dba-cd4dd70644b2@suse.cz> <20171115100428.GR14653@tucnak> From: =?UTF-8?Q?Martin_Li=c5=a1ka?= Message-ID: <93cb655c-75c7-0039-d922-520fd5872d89@suse.cz> Date: Wed, 15 Nov 2017 12:46:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.4.0 MIME-Version: 1.0 In-Reply-To: <20171115100428.GR14653@tucnak> Content-Type: multipart/mixed; boundary="------------FBB999B50EC32A1927B23618" X-IsSubscribed: yes X-SW-Source: 2017-11/txt/msg01195.txt.bz2 This is a multi-part message in MIME format. --------------FBB999B50EC32A1927B23618 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Content-length: 893 On 11/15/2017 11:04 AM, Jakub Jelinek wrote: > On Wed, Nov 15, 2017 at 10:54:23AM +0100, Martin Liška wrote: >> gcc/c/ChangeLog: >> >> 2017-11-15 Martin Liska >> >> * c-decl.c (grokdeclarator): >> Compare warn_return_type for greater than zero. >> (start_function): Likewise. >> (finish_function): Likewise. >> * c-typeck.c (c_finish_return): Likewise. >> >> gcc/cp/ChangeLog: >> >> 2017-11-15 Martin Liska >> >> * decl.c (finish_function): >> Compare warn_return_type for greater than zero. >> * semantics.c (finish_return_stmt): Likewise. > > The c/cp changes aren't really needed, are they? Because > in that case you guarantee in the post options handling it is > 0 or 1. Yep, you're right! > > The rest looks good (except for Ada that Eric doesn't want to change). > > Jakub > Done that and I'm going to install the patch. Martin --------------FBB999B50EC32A1927B23618 Content-Type: text/x-patch; name="0001-Disable-Wreturn-type-by-default-in-all-languages-oth.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename*0="0001-Disable-Wreturn-type-by-default-in-all-languages-oth.pa"; filename*1="tch" Content-length: 3277 >From c0934d0be85d40762d4bafbf9991b167b711736e Mon Sep 17 00:00:00 2001 From: marxin Date: Wed, 15 Nov 2017 09:16:23 +0100 Subject: [PATCH] Disable -Wreturn-type by default in all languages other from C++. gcc/ChangeLog: 2017-11-15 Martin Liska * tree-cfg.c (pass_warn_function_return::execute): Compare warn_return_type for greater than zero. gcc/fortran/ChangeLog: 2017-11-15 Martin Liska * options.c (gfc_post_options): Do not set default value of warn_return_type. * trans-decl.c (gfc_trans_deferred_vars): Compare warn_return_type for greater than zero. (generate_local_decl): Likewise (gfc_generate_function_code): Likewise. --- gcc/fortran/options.c | 3 --- gcc/fortran/trans-decl.c | 8 ++++---- gcc/tree-cfg.c | 2 +- 3 files changed, 5 insertions(+), 8 deletions(-) diff --git a/gcc/fortran/options.c b/gcc/fortran/options.c index c584a19e559..0ee6b7808d9 100644 --- a/gcc/fortran/options.c +++ b/gcc/fortran/options.c @@ -435,9 +435,6 @@ gfc_post_options (const char **pfilename) gfc_fatal_error ("Maximum subrecord length cannot exceed %d", MAX_SUBRECORD_LENGTH); - if (warn_return_type == -1) - warn_return_type = 0; - gfc_cpp_post_options (); if (gfc_option.allow_std & GFC_STD_F2008) diff --git a/gcc/fortran/trans-decl.c b/gcc/fortran/trans-decl.c index 8efaae79ebc..60e7d8f79ee 100644 --- a/gcc/fortran/trans-decl.c +++ b/gcc/fortran/trans-decl.c @@ -4198,7 +4198,7 @@ gfc_trans_deferred_vars (gfc_symbol * proc_sym, gfc_wrapped_block * block) break; } /* TODO: move to the appropriate place in resolve.c. */ - if (warn_return_type && el == NULL) + if (warn_return_type > 0 && el == NULL) gfc_warning (OPT_Wreturn_type, "Return value of function %qs at %L not set", proc_sym->name, &proc_sym->declared_at); @@ -5619,7 +5619,7 @@ generate_local_decl (gfc_symbol * sym) else if (sym->attr.flavor == FL_PROCEDURE) { /* TODO: move to the appropriate place in resolve.c. */ - if (warn_return_type + if (warn_return_type > 0 && sym->attr.function && sym->result && sym != sym->result @@ -6494,11 +6494,11 @@ gfc_generate_function_code (gfc_namespace * ns) if (result == NULL_TREE || artificial_result_decl) { /* TODO: move to the appropriate place in resolve.c. */ - if (warn_return_type && sym == sym->result) + if (warn_return_type > 0 && sym == sym->result) gfc_warning (OPT_Wreturn_type, "Return value of function %qs at %L not set", sym->name, &sym->declared_at); - if (warn_return_type) + if (warn_return_type > 0) TREE_NO_WARNING(sym->backend_decl) = 1; } if (result != NULL_TREE) diff --git a/gcc/tree-cfg.c b/gcc/tree-cfg.c index 9a2fa1d98ca..f08a0547f0f 100644 --- a/gcc/tree-cfg.c +++ b/gcc/tree-cfg.c @@ -9071,7 +9071,7 @@ pass_warn_function_return::execute (function *fun) /* If we see "return;" in some basic block, then we do reach the end without returning a value. */ - else if (warn_return_type + else if (warn_return_type > 0 && !TREE_NO_WARNING (fun->decl) && EDGE_COUNT (EXIT_BLOCK_PTR_FOR_FN (fun)->preds) > 0 && !VOID_TYPE_P (TREE_TYPE (TREE_TYPE (fun->decl)))) -- 2.14.3 --------------FBB999B50EC32A1927B23618--