From: Marek Polacek Date: Fri, 2 May 2014 18:09:42 +0000 (+0000) Subject: c-typeck.c (c_finish_return): Separate warning_at calls. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=19fc9faaaf98b3c45ede31da2e3cb970ef7b372a;p=gcc.git c-typeck.c (c_finish_return): Separate warning_at calls. c/ * c-typeck.c (c_finish_return): Separate warning_at calls. cp/ * typeck.c (maybe_warn_about_returning_address_of_local): Separate warning_at calls. From-SVN: r210012 --- diff --git a/gcc/c/ChangeLog b/gcc/c/ChangeLog index e3c13fec9d2..b32e4fd196d 100644 --- a/gcc/c/ChangeLog +++ b/gcc/c/ChangeLog @@ -1,3 +1,7 @@ +2014-05-02 Marek Polacek + + * c-typeck.c (c_finish_return): Separate warning_at calls. + 2014-05-02 Marek Polacek * c-tree.h (error_init): Remove declaration. diff --git a/gcc/c/c-typeck.c b/gcc/c/c-typeck.c index b95fd895d4f..f7ad91ed1c7 100644 --- a/gcc/c/c-typeck.c +++ b/gcc/c/c-typeck.c @@ -9273,10 +9273,14 @@ c_finish_return (location_t loc, tree retval, tree origtype) && !DECL_EXTERNAL (inner) && !TREE_STATIC (inner) && DECL_CONTEXT (inner) == current_function_decl) - warning_at (loc, - OPT_Wreturn_local_addr, "function returns address " - "of %s", TREE_CODE (inner) == LABEL_DECL - ? "label" : "local variable"); + { + if (TREE_CODE (inner) == LABEL_DECL) + warning_at (loc, OPT_Wreturn_local_addr, + "function returns address of label"); + else + warning_at (loc, OPT_Wreturn_local_addr, + "function returns address of local variable"); + } break; default: diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 4d16855390e..7729cb9d8c7 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +2014-05-02 Marek Polacek + + * typeck.c (maybe_warn_about_returning_address_of_local): Separate + warning_at calls. + 2014-05-01 Marek Polacek PR c/43395 diff --git a/gcc/cp/typeck.c b/gcc/cp/typeck.c index 8b7cb8df17a..7b28a9a5869 100644 --- a/gcc/cp/typeck.c +++ b/gcc/cp/typeck.c @@ -8309,10 +8309,12 @@ maybe_warn_about_returning_address_of_local (tree retval) if (TREE_CODE (valtype) == REFERENCE_TYPE) warning (OPT_Wreturn_local_addr, "reference to local variable %q+D returned", whats_returned); + else if (TREE_CODE (whats_returned) == LABEL_DECL) + warning (OPT_Wreturn_local_addr, "address of label %q+D returned", + whats_returned); else - warning (OPT_Wreturn_local_addr, "address of %s %q+D returned", - TREE_CODE (whats_returned) == LABEL_DECL - ? "label" : "local variable", whats_returned); + warning (OPT_Wreturn_local_addr, "address of local variable %q+D " + "returned", whats_returned); return; } }