[LLVMdev] isa and friends as an alternative to dynamic cast?

Jeff Cohen jeffc at jolt-lang.org
Sat Apr 23 20:29:03 PDT 2005


That requires RTTI.

Anyway, I verified exceptions really don't need RTTI in VC++ also.  
Furthermore, VC++ complains when dynamic_cast is used with RTTI disabled.

Reid Spencer wrote:

>My understanding is that EH works fine without RTTI. However, we use
>typeid in LLVM in a few limited spots like lib/VMCore/Pass.cpp
>
>Reid.
>
>On Sat, 2005-04-23 at 20:12 -0700, Jeff Cohen wrote:
>  
>
>>As far as I can tell, exceptions work just fine without RTTI when using 
>>gcc 3.4.2.  dynamic_cast, on the hand, crashes without RTTI (no 
>>compilation error or warning is generated).
>>
>>Jeff Cohen wrote:
>>
>>    
>>
>>>This may be the case with GCC, but VC++ allows exception handling to 
>>>be enabled while RTTI is disabled.  According to VC++ documentation, 
>>>RTTI is needed only to support dynamic_cast, the typeid operator, and 
>>>the type_info class.
>>>
>>>Chris Lattner wrote:
>>>
>>>      
>>>
>>>>On Thu, 21 Apr 2005, Jeff Cohen wrote:
>>>>
>>>>        
>>>>
>>>>>That's a good point.
>>>>>          
>>>>>
>>>>
>>>>I think there are some issues with doing this (e.g. EH doesn't work, 
>>>>so the very few places we use it would have to be modified), but 
>>>>other than that I fully support the idea.
>>>>
>>>>-Chris
>>>>        
>>>>
>>>_______________________________________________
>>>LLVM Developers mailing list
>>>LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
>>>http://mail.cs.uiuc.edu/mailman/listinfo/llvmdev
>>>
>>>
>>>      
>>>
>>_______________________________________________
>>LLVM Developers mailing list
>>LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
>>http://mail.cs.uiuc.edu/mailman/listinfo/llvmdev
>>    
>>




More information about the llvm-dev mailing list