landingpad catch types not making it to Dwarf tables

I am having some trouble getting my catch clauses to appear as expected
in the dwarf exception tables. I have an instruction like this:
  %0 = landingpad i64 personality i32 (i32, i32, i64, i8*, i8*)*
@leaf_exception_personality
          catch i8* inttoptr (i64 987 to i8*)
          catch i8* inttoptr (i64 2453 to i8*)

In my exception handler I walk through the records. I always get the
correct count, but I type_table information isn't communicated: both of
these records give me a type_offset of 1 (to use the ExceptionDemo's
name of that field).

I have cross-referenced this walking code with that demo, the gcc
sources, and the third party (where it originated) and this aspect seems
to be correct. Also, if I mark it as cleanup it'll get a 0 offset as
expected (or no record if there are no catch clauses).

The resulting table entry is also always 0 (null), but at least if the
offset would change I'd be happy enough to continue debugging.

It looks like you have to use a const global variable for the type
clauses, otherwise they end up all pointing to a value of zero.

Hi edA-qa mort-ora-y,

I am having some trouble getting my catch clauses to appear as expected
in the dwarf exception tables. I have an instruction like this:
   %0 = landingpad i64 personality i32 (i32, i32, i64, i8*, i8*)*
@leaf_exception_personality
           catch i8* inttoptr (i64 987 to i8*)
           catch i8* inttoptr (i64 2453 to i8*)

when developing with LLVM you should really build LLVM with assertions
enabled (--enable-assertions). Then you will catch problems much earlier.

Ciao, Duncan.