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

Reply via email to