Hi, that's right ! catch(all) has extra null arg, eh_select = tail call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32(i8* %eh_ptr, i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*), i8* null) ; <i32> [#uses=0] I have doubt that : the llvm-IR like above are all translated from catch(all) statement . zhangzw