<div dir="ltr">The relevant piece of standardese seems to be 3.6.1.3 in the C++17 working draft (n4606) standard, which reads in part:<div><br></div><div>"The function main shall not be used within a program. The linkage (3.5) of main is implementation-defined. A
program that defines main as deleted or that declares main to be inline, static, or constexpr is ill-formed.
The main function shall not be declared with a linkage-specification (7.5). A program that declares a variable
main at global scope or that declares the name main with C language linkage (in any namespace) is ill-formed."</div><div><br></div><div>So the cases you suggest, by my reading, should not be UB but rather a compile error.</div><div><br></div><div>--Ben</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Nov 14, 2016 at 5:48 AM, David Chisnall via cfe-dev <span dir="ltr"><<a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On 14 Nov 2016, at 09:43, Eric Fiselier via cfe-dev <<a href="mailto:cfe-dev@lists.llvm.org">cfe-dev@lists.llvm.org</a>> wrote:<br>
><br>
><br>
><br>
> On Sat, Nov 12, 2016 at 11:09 AM, Mehdi Amini via cfe-dev <<a href="mailto:cfe-dev@lists.llvm.org">cfe-dev@lists.llvm.org</a>> wrote:<br>
> main is marked as “norecurse” in C++ and not in C:<br>
><br>
> I would be interested in seeing the standardese associated with each behavior.<br>
><br>
> /Eric<br>
<br>
</span>Indeed.  If I implement main in C++ and call it from C, or implement main in C and call it from C++, is it undefined behaviour in both cases?  This seems like a very odd inconsistency if I have to know the source language for both the caller and callee to determine whether something is UB.<br>
<br>
David<br>
<div class="HOEnZb"><div class="h5"><br>
______________________________<wbr>_________________<br>
cfe-dev mailing list<br>
<a href="mailto:cfe-dev@lists.llvm.org">cfe-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/cfe-dev</a><br>
</div></div></blockquote></div><br></div>