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