[RFC] Deprecate "implicit int" for main() in C++
David Malcolm
dmalcolm@redhat.com
Wed Apr 25 16:45:00 GMT 2018
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?
More information about the Gcc
mailing list