On Wed, 2018-04-25 at 16:54 +0100, Jonathan Wakely wrote: > On 25/04/18 16:30 +0100, Andrew Haley wrote: > > On 04/25/2018 03:04 PM, Jonathan Wakely wrote: > > > On 25/04/18 14:59 +0100, Andrew Haley wrote: > > > > On 04/25/2018 02:56 PM, Jason Merrill wrote: > > > > > The warning by default seems sufficient to me. > > > > > > > > Yes. We've been bitten by this a few times, with mysterious > > > > crashes. > > > > I'm not sure it even makes sense only to be a warning, but I > > > > guess > > > > that's up to the C++ TC. > > > > > > It's not always possible for the compiler to prove that flowing > > > off > > > the end never happens, even if the program state ensures that it > > > can't > > > (e.g. by all callers enforcing the function's preconditions > > > correctly). So making it ill-formed is deemed too draconian > > > whenever > > > this gets discussed. > > > > Sure. Having said that, the cases that bit me were those where > > control > > always flowed off the end, i.e. the function contained no return > > statement. > > I forget the "return *this;" in assignment operators embarrassingly > often. So often I've even contemplated a proposal to define flowing > off the end of an assignment operator equivalent to "return *this;"
Could/should we offer a fix-it hint for such cases?