[LLVMdev] LLVM built on VS C++ 2005

Jeff Cohen
Fri, 18 Feb 2005 03:36:14 -0000

GCC is smart enough to realize it doesn't return.  That's because the
declaration of abort() is decorated with __attribute__((__noreturn__)).

So is GCC smarter than VC++?  As it turns out, in VC++ the declaration
of abort() is decorated with __declspec(noreturn).

Whidbey is not stricter than 2003, it is merely buggier.  VC++ has
always complained about functions failing to return a value; this is not
new in Whidbey.  What is new is that it no longer pays attention to
__declspec(noreturn).

That is why it is difficult to justify supporting Whidbey.  This bug may
have been easy to work around.  The next one may not be so easy.
Remember, if Whidbey wasn't buggy and incomplete, you'd be paying around
$1000 for it instead of downloading it for free.

Neil Booth wrote:

>Aaron Gray wrote:-
>
>
>
>>Hi,
>>
>>I have built yesterdays CVS download of LLVM on Whidbey (Microsoft
Visual Studio 2005).
>>
>>LLVM built with trivial mods due to VS strictness compared to GCC.
Basically there are missing return statement/values where Abort() is called, I
replaced these with dummy constructors to get them to compile.
>>
>>
>
>Sounds like GCC is smart enough to realise it doesn't return?
>
>Neil.
>
>_______________________________________________
>LLVM Developers mailing list
>LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
>http://mail.cs.uiuc.edu/mailman/listinfo/llvmdev
>
>
>
>