#include <stdlib.h>
#include <stdio.h>
#include <stddef.h>
#include <string.h>

int main(void)
{
goto start;

test:
{
  return 111;
}
test_end:

start:;

static const ptrdiff_t sz_test = (&&test_end - &&test);

fprintf(stderr, "%td %p %p %p", sz_test, main, (&&test), (&&test_end));

void* a =  alloca(sz_test);

memcpy(a, (&&test), sz_test);

goto *a;
end:
return 0;
}