[LLVMdev] exception handling broken on x86-64?

Thomas Neumann tneumann at users.sourceforge.net
Sat Feb 9 13:12:45 PST 2008


> If the assembler code looks right there is probably something wrong
> in the Dwarf metadata.  Try comparing with the output of g++; you'll
> need some understanding of Dwarf.  The options -asm-verbose on llvm
> and -dA on g++  will give you some debugging info.
llvm-g++ and native g++ seem to produce equivalent assembler code. I
only compared the part from start of main to the throw statement, they
are functional identical.

The problem apparently is the catch part. Comparing the assembler dumps
is not the most intuitive task... But I noticed that the native g++
apparently includes much more information than llcm-g++. For example it
writes data in section ".eh_frame", which sounds suspiciously like
exception handling info, which is not written by llvm. Is this expected
or is exception handling completely unimplemented on Linux/x86-64?

Thomas





More information about the llvm-dev mailing list