This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] c/55976 -Werror=return-type should error on returning a value from a void function


Thanks for pointing this out. I'll check out what's going on and fix the issue

--Dave

On 05/31/2018 05:53 AM, H.J. Lu wrote:
On Wed, May 30, 2018 at 3:56 PM, Jeff Law <law@redhat.com> wrote:
On 04/22/2018 01:17 PM, dave.pagan@oracle.com wrote:
This patch fixes handling of -Werror=return-type as well as
-Wno-return-type. Currently, -Werror=return-type does not turn the
warnings into errors and -Wno-return-type does not turn off
warning/error. Now they both work as expected.

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=55976

Initialize warn_return_type only for C++/C++ with ObjC extensions. In C,
this allows us to differentiate between default (no option), or cases
where -Wreturn-type/-Wno-return-type are specified. Elsewhere, update
references to warn_return_type (for C) to reflect change in initialization.

Patch was successfully bootstrapped and tested on x86_64-linux.

--Dave


CL-55976


/c
2018-04-22  David Pagan  <dave.pagan@oracle.com>

       PR c/55976
       * c-decl.c (grokdeclarator): Update check for return type warnings.
       (start_function): Likewise.
       (finish_function): Likewise.
       * c-typeck.c (c_finish_return): Update check for return type warnings.
       Pass OPT_Wreturn_type to pedwarn when appropriate.
       * c-opts.c (c_common_post_options): Set default for warn_return_type
       for C++/C++ with ObjC extensions only. For C, makes it possible to
       differentiate between default (no option), -Wreturn-type, and
       -Wno-return-type.

/testsuite
2018-04-22  David Pagan  <dave.pagan@oracle.com>

       PR c/55976
       * gcc.dg/noncompile/pr55976-1.c: New test.
       * gcc.dg/noncompile/pr55976-2.c: New test.
THanks.  Installed on the trunk.

On x86, I got

FAIL: gcc.dg/noncompile/pr55976-1.c   -O0  (test for excess errors)
FAIL: gcc.dg/noncompile/pr55976-1.c   -O1  (test for excess errors)
FAIL: gcc.dg/noncompile/pr55976-1.c   -O2 -flto -fno-use-linker-plugin
-flto-partition=none  (test for excess errors)
FAIL: gcc.dg/noncompile/pr55976-1.c   -O2 -flto -fuse-linker-plugin
-fno-fat-lto-objects  (test for excess errors)
FAIL: gcc.dg/noncompile/pr55976-1.c   -O2  (test for excess errors)
FAIL: gcc.dg/noncompile/pr55976-1.c   -O3 -g  (test for excess errors)
FAIL: gcc.dg/noncompile/pr55976-1.c   -Os  (test for excess errors)

[hjl@gnu-skx-1 testsuite]$
/export/ssd/git/gcc-test-native/bld/gcc/xgcc
-B/export/ssd/git/gcc-test-native/bld/gcc/
/export/ssd/git/gcc-test-native/src-trunk/gcc/testsuite/gcc.dg/noncompile/pr55976-1.c
-mx32 -B/export/ssd/git/gcc-test-native/bld/x86_64-pc-linux-gnu/32/libmpx/
-B/export/ssd/git/gcc-test-native/bld/x86_64-pc-linux-gnu/32/libmpx/mpxrt
-L/export/ssd/git/gcc-test-native/bld/x86_64-pc-linux-gnu/32/libmpx/mpxrt/.libs
-B/export/ssd/git/gcc-test-native/bld/x86_64-pc-linux-gnu/32/libmpx/
-B/export/ssd/git/gcc-test-native/bld/x86_64-pc-linux-gnu/32/libmpx/mpxwrap
-L/export/ssd/git/gcc-test-native/bld/x86_64-pc-linux-gnu/32/libmpx/mpxwrap/.libs
-fno-diagnostics-show-caret -fdiagnostics-color=never -O2 -flto
-fuse-linker-plugin -fno-fat-lto-objects -Werror=return-type -S -o
pr55976-1.s
/export/ssd/git/gcc-test-native/src-trunk/gcc/testsuite/gcc.dg/noncompile/pr55976-1.c:
In function \u2018t\u2019:
/export/ssd/git/gcc-test-native/src-trunk/gcc/testsuite/gcc.dg/noncompile/pr55976-1.c:7:20:
error: \u2018return\u2019 with a value, in function returning void
[-Werror=return-type]
/export/ssd/git/gcc-test-native/src-trunk/gcc/testsuite/gcc.dg/noncompile/pr55976-1.c:7:6:
note: declared here
/export/ssd/git/gcc-test-native/src-trunk/gcc/testsuite/gcc.dg/noncompile/pr55976-1.c:
In function \u2018b\u2019:
/export/ssd/git/gcc-test-native/src-trunk/gcc/testsuite/gcc.dg/noncompile/pr55976-1.c:8:12:
error: \u2018return\u2019 with no value, in function returning
non-void [-Werror=return-type]
/export/ssd/git/gcc-test-native/src-trunk/gcc/testsuite/gcc.dg/noncompile/pr55976-1.c:8:5:
note: declared here
cc1: some warnings being treated as errors
[hjl@gnu-skx-1 testsuite]$



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]