> While its true that this call is nononlocal, there are plenty of other > builtins that we expand with just emit_library_call (as opposed to > emit_libcall_block) that also need this sort of treatment.
I'm a little skeptical, although __sync_synchronize is probably not the only one indeed. I'll experiment. > Seems to me that this marking ought to be done in emit_library_call, > for at least most values of LCT_*. Otherwise you could get the same > ICE for e.g. memcpy. For a naked call to memcpy? I don't think so, this is a call so there will be an abnormal edge at the Tree level. The problem arises only when the abnormal edge is created during RTL expansion. > PS: ARM still uses sjlj exceptions for Ada? I thought with the obsolescence > of pre-eabi targets that we'd always use unwind tables now. Yes, that's the last one. Nobody has adapted (or submitted to the FSF) the #ifdef __ARM_EABI_UNWINDER__ / #endif adjustments present in libsupc++ or libjava. -- Eric Botcazou