Hi, unforutnately the patch ICE on: int i; struct C { C(); }; C::C() { static void *labelref = &&label; goto *labelref; label: i = 1; }
int main() { C c; return (i != 1); } The problem is that decl_function_context of labelref is not C::C itself but an abstract function that is abstract origin of C::C. Jaosn, I suppose this is an artefact of constructor clonning? Function like this can not be clonned without duplicating label, is the decl_function_context really intended to be the abstract one? Honza