From 7a247605d892747ccc9216ffc047c73bd688ac36 Mon Sep 17 00:00:00 2001 From: Martin Sebor Date: Mon, 18 Feb 2019 17:44:11 +0000 Subject: [PATCH] invoke.texi (-Wreturn-type): Correct and expand. gcc/ChangeLog: * doc/invoke.texi (-Wreturn-type): Correct and expand. From-SVN: r268991 --- gcc/ChangeLog | 4 ++++ gcc/doc/invoke.texi | 13 ++++++++----- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 3caa28a8cca..5a1afdd0d8b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2019-02-18 Martin Sebor + + * doc/invoke.texi (-Wreturn-type): Correct and expand. + 2019-02-18 Martin Sebor PR middle-end/89294 diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index ab5cb930855..a1b7a5f4fcd 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -5262,13 +5262,16 @@ without a value). For C only, warn about a @code{return} statement with an expression in a function whose return type is @code{void}, unless the expression type is also @code{void}. As a GNU extension, the latter case is accepted -without a warning unless @option{-Wpedantic} is used. +without a warning unless @option{-Wpedantic} is used. Attempting +to use the return value of a non-@code{void} function other than @code{main} +that flows off the end by reaching the closing curly brace that terminates +the function is undefined. -For C++, a function without return type always produces a diagnostic -message, even when @option{-Wno-return-type} is specified. The only -exceptions are @code{main} and functions defined in system headers. +Unlike in C, in C++, flowing off the end of a non-@code{void} function other +than @code{main} results in undefined behavior even when the value of +the function is not used. -This warning is enabled by default for C++ and is enabled by @option{-Wall}. +This warning is enabled by default in C++ and by @option{-Wall} otherwise. @item -Wshift-count-negative @opindex Wshift-count-negative -- 2.30.2