[ub] What does "The function main shall not be used within a program" mean?

Gabriel Dos Reis gdr at microsoft.com
Thu Jan 23 00:02:01 CET 2014



> On Jan 22, 2014, at 2:51 PM, "Ville Voutilainen" <ville.voutilainen at gmail.com> wrote:
> 
>>>> I don’t recall ever seeing an implementation not to allow safe recursion
>>>> of main. Often the C runtime
>>> gcc doesn't allow it if given -pedantic.
>> Clang trunk also doesn't allow it with -pedantic-errors. Both GCC and Clang
>> reject decltype(main()) too, in strictly-conforming mode. EDG rejects
>> odr-uses of main but accepts uses that are not odr-uses.
> 
> It seems that gcc still allows this lovely piece of shenanigans:
> 
> int main() {int y = sizeof(decltype(main)*);}
> 
> 
> Should this be a core issue? 

why isn't it a gcc bug instead?  Clearly it doesn't implement the rule consustently.

-- Gaby


More information about the ub mailing list