http://llvm.org/bugs/show_bug.cgi?id=9395

John McCall <[email protected]> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |INVALID

--- Comment #16 from John McCall <[email protected]> 2011-12-05 15:48:18 CST 
---
The specified behavior of 'noreturn' is that the function is not allowed to
return.  The GCC manual is quite explicit about this, saying that the compiler
and optimizer can freely assume that the function does not return, etc.  This
is exactly what Clang is doing.  That you've found an example where GCC happens
to not produce code that crashes when you violate the rules does not mean that
your code is sound;  it's more akin to writing past the end of a local
variable, which is a bug that may or may not be exposed depending on a lot of
contextual and internal details that vary from compiler to compiler (and
version to version).  And much like that example, the right thing to do here is
to fix your code, in this case by removing 'noreturn' from the overridden
method.

-- 
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
_______________________________________________
LLVMbugs mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/llvmbugs

Reply via email to