[LLVMdev] how to resolve llvm exception IR?
Jim Grosbach
grosbach at apple.com
Mon Apr 27 21:53:48 PDT 2009
On Apr 27, 2009, at 7:37 PM, zhengjian zhang wrote:
>
> 59 %3 = invoke
> %"struct.std::basic_ostream<char,std::char_traits<char> >"*
> @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc
> (%"struct.std::basic_ostream<char,std::char_traits<char>
>> "* @_ZSt4cout, i8* getelementptr ([10 x i8]* @.str, i32 0, i32 0))
> my question is at line 59 can throw an exception?
>
Yes. The 'invoke' instruction indicates a call which can return either
via the normal return sequence or by throwing an exception.
> my another problem : are there any different of above two llmv-ir
> on handle c++ exception ?
Different in what way? I'm not sure I understand your question. In
neither case will an exception thrown from the << operator be caught.
In the first case, the << operator is not in a try block, and in both
cases, only an exception of integer type is caught, while the <<
operator throws exceptions (when enabled) of type ios::exception.
Regards,
Jim
More information about the llvm-dev
mailing list