[LLVMdev] Troubles with llvm.gcroot and exception handling

Duncan Sands
Wed, 02 Dec 2009 08:40:49 -0000

Hi Paul,

> 22:40|melis at juggle2:~/projects/llvm_gc> llc root.ll
> 22:40|melis at juggle2:~/projects/llvm_gc> gcc -o r root.s
> /usr/lib/gcc/i686-pc-linux-gnu/4.3.4/../../../../i686-pc-linux-gnu/bin/ld:
> error in /tmp/ccGhPZDb.o(.eh_frame); no .eh_frame_hdr table will be
created.

the assembler you pasted assembles for me on x86-32 linux.

> I'm actually puzzled that exception handling code is generated, and
more
> so that it is caused by the llvm.gcroot call. If I comment that one out
> all no exception handling stuff is created:

The EscapeEnumerator code in ShadowStackGC.cpp adds cleanup code using
invoke and unwind - might be related to this?

Ciao,

Duncan.