[LLVMdev] how to reslove gcc_except_table?
zhengjian zhang
zhangzhengjian at gmail.com
Fri Mar 13 03:10:42 PDT 2009
Hi,
123 .byte 0x3
124 .byte 0x7d
where 0x3 means that the typeinfo is _ZTIi (int).
The 0x7d says that if the typeinfo doesn't match,
then the next action to consider is at offset -3
from here. In other words, it will continue with
2009/3/13 Duncan Sands <baldrick at free.fr>:
> Hi,
>
>> maybe this should not be here!
>
> does this have anything to do with LLVM?
>> int main()
>> {
>> try {
>> throw 34;
>> }
>> catch (int) {
>> }
>> catch (char) {
>> }
>> catch (bool) {
>> }
>> }
>
> The action is 0x5, this refers to
>
> 123 .byte 0x3
> 124 .byte 0x7d
>
> where 0x3 means that the typeinfo is _ZTIi (int).
> The 0x7d says that if the typeinfo doesn't match,
> then the next action to consider is at offset -3
> from here. In other words, it will continue with
>>
>
> 121 .byte 0x2
> 122 .byte 0x7d
>
> i.e. it will then try and match with _ZTIc. If this
> doesn't match then the next action to consider is
> offset -3 from here (0x7d), i.e. it will next examine
>
> 119 .byte 0x1 # Action record table
> 120 .byte 0x0
>
> i.e. it will try and match with _ZTIb. If this
> doesn't match then it is all over (0x0).
>
>> 116 .uleb128 0x0 # region 0 landing pad
>> 117 .uleb128 0x5 # action
>> 118 .LLSDACSE2:
>> 119 .byte 0x1 # Action record table
>> 120 .byte 0x0
>> 121 .byte 0x2
>> 122 .byte 0x7d
>> 123 .byte 0x3
>> 124 .byte 0x7d
>> 125 .align 4
>> 126 .long _ZTIi
>> 127 .long _ZTIc
>> 128 .long _ZTIb
>> 129 .LLSDATT2:
>>
>>
>> ok: my problem is the action(line 117) how to index to the action record table?
>> in Action record table , why there are the magic 0x7d?.
>
> Ciao,
>
> Duncan.
>
More information about the llvm-dev
mailing list