diff mbox

PR55189 enable -Wreturn-type by default

Message ID 1876d2fd46c72ef1bf68f9f0b95fc782@ledru.info
State New
Headers show

Commit Message

Sylvestre Ledru Jan. 14, 2014, 5:49 p.m. UTC
On 2013-12-27 06:32, Yury Gribov wrote:
> Chung-Wu wrote:
>> But I notice your ChangeLog formatting is not correct.
>>
>> You can refer to other entries in ChangeLog to refine yours,
>> and then resubmit the patch for review. :)
>
> Or - use contrib/mklog to autogenerate template ChangeLog for you.
>
> -Y
>
Thanks!
Just a small question, I am modifing almost 800 tests. Should I do the 
same?

Thanks,
Here it is:

gcc/c-family/ChangeLog:

2014-01-14  Sylvestre Ledru  <sylvestre@debian.org>

     * c.opt: -Wreturn-type enabled by default
         Introduce back the option -Wmissing-return (enabled by -Wall)
         It was included by default with -Wreturn-type

gcc/fortran/ChangeLog:

2014-01-14  Sylvestre Ledru  <sylvestre@debian.org>

     * options.c: Introduce back the option -Wmissing-return support

gcc/ChangeLog:

2014-01-14  Sylvestre Ledru  <sylvestre@debian.org>

     * doc/invoke.texi: Update of the documentation (-Wreturn-type 
enabled
         by default and -WMissing-return back)
     * tree-cfg.c: Likewise

            break;
          }
diff mbox

Patch

Index: gcc/c-family/c.opt
===================================================================
--- gcc/c-family/c.opt    (révision 206218)
+++ gcc/c-family/c.opt    (copie de travail)
@@ -673,9 +673,13 @@ 
  Warn about returning a pointer/reference to a local or temporary 
variable.
   Wreturn-type
-C ObjC C++ ObjC++ Var(warn_return_type) Warning LangEnabledBy(C ObjC
C++ ObjC++,Wall)
+C ObjC C++ ObjC++ Var(warn_return_type) Init(1) Warning
  Warn whenever a function's return type defaults to \"int\" (C), or
about inconsistent return types (C++)
  +Wmissing-return
+C ObjC C++ ObjC++ Var(warn_missing_return) Warning LangEnabledBy(C 
ObjC
C++ ObjC++,Wall)
+Warn whenever control may reach end of non-void function
+
  Wselector
  ObjC ObjC++ Var(warn_selector) Warning
  Warn if a selector has multiple methods
Index: gcc/doc/invoke.texi
===================================================================
--- gcc/doc/invoke.texi    (révision 206218)
+++ gcc/doc/invoke.texi    (copie de travail)
@@ -261,7 +261,7 @@ 
  -Wparentheses  -Wpedantic-ms-format -Wno-pedantic-ms-format @gol
  -Wpointer-arith  -Wno-pointer-to-int-cast @gol
  -Wredundant-decls  -Wno-return-local-addr @gol
--Wreturn-type  -Wsequence-point  -Wshadow @gol
+-Wreturn-type -Wmissing-return  -Wsequence-point  -Wshadow @gol
  -Wsign-compare  -Wsign-conversion -Wfloat-conversion @gol
  -Wsizeof-pointer-memaccess @gol
  -Wstack-protector -Wstack-usage=@var{len} -Wstrict-aliasing @gol
@@ -3339,6 +3339,7 @@ 
  -Wpointer-sign  @gol
  -Wreorder   @gol
  -Wreturn-type  @gol
+-Wmissing-return  @gol
  -Wsequence-point  @gol
  -Wsign-compare @r{(only in C++)}  @gol
  -Wstrict-aliasing  @gol
@@ -3795,8 +3796,14 @@ 
  message, even when @option{-Wno-return-type} is specified.  The only
  exceptions are @samp{main} and functions defined in system headers.
  -This warning is enabled by @option{-Wall}.
+@item -Wmissing-return
+@opindex Wmissing-return
+@opindex Wno-missing-return
+Warn whenever falling off the end of the function body (I.e. without
+any return).
  +This warning is enabled by @option{-Wall} for C and C++.
+
  @item -Wswitch
  @opindex Wswitch
  @opindex Wno-switch
Index: gcc/fortran/options.c
===================================================================
--- gcc/fortran/options.c    (révision 206218)
+++ gcc/fortran/options.c    (copie de travail)
@@ -717,6 +717,10 @@ 
        warn_return_type = value;
        break;
  +    case OPT_Wmissing_return:
+      warn_missing_return = value;
+      break;
+
      case OPT_Wsurprising:
        gfc_option.warn_surprising = value;
        break;
Index: gcc/tree-cfg.c
===================================================================
--- gcc/tree-cfg.c    (révision 206218)
+++ gcc/tree-cfg.c    (copie de travail)
@@ -8098,7 +8098,7 @@ 
     /* 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_missing_return
         && !TREE_NO_WARNING (cfun->decl)
         && EDGE_COUNT (EXIT_BLOCK_PTR_FOR_FN (cfun)->preds) > 0
         && !VOID_TYPE_P (TREE_TYPE (TREE_TYPE (cfun->decl))))
@@ -8113,7 +8113,7 @@ 
            location = gimple_location (last);
            if (location == UNKNOWN_LOCATION)
            location = cfun->function_end_locus;
-          warning_at (location, OPT_Wreturn_type, "control reaches end
of non-void function");
+          warning_at (location, OPT_Wmissing_return, "control reaches
end of non-void function");
            TREE_NO_WARNING (cfun->decl) = 1;