[llvm-commits] [llvm-gcc-4.2] r57022 - /llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp

Evan Cheng evan.cheng at apple.com
Fri Oct 3 13:37:51 PDT 2008


/// EmitEXC_PTR_EXPR - Handle EXC_PTR_EXPR.
Value *TreeToLLVM::EmitEXC_PTR_EXPR(tree exp) {
   CreateExceptionValues();
   // Load exception address.
   return Builder.CreateLoad(ExceptionValue, "eh_value");
}


So, if the node is a EXEC_PTR_EXPR it's processing this special Value  
ExceptionValue. Therefore, we should pick up the type of  
ExceptionValue rather than type of arg.

This feels like a hack. But I don't enough to do anything about that.

Evan

On Oct 3, 2008, at 12:51 PM, Duncan Sands wrote:

> Hi Evan,
>
>> Fix a bug in EmitCallOf which shows up only with assertion turned on.
>> When it's processing a call argument that corresponds to eh_value or
>> eh_select, grab the type of special variables ExceptionValue or
>> ExceptionSelectorValue instead or it won't match the expected type.
>
> can you please explain.  It sounds like TREE_TYPE(TREE_VALUE(arg))  
> does
> not contain the correct type for TREE_VALUE(arg).  If so, isn't that  
> the
> bug?
>
> Thanks,
>
> Duncan.




More information about the llvm-commits mailing list