import java.lang.foreign.*;
import java.lang.invoke.*;

public class Test{
  public static void main(String[] args) throws Throwable{
    var desc = FunctionDescriptor.of(ValueLayout.JAVA_INT,
                                     ValueLayout.JAVA_LONG,  // for invalid address
                                     ValueLayout.JAVA_LONG); // for invalid address
    var addrGettimeofday = Linker.nativeLinker()
                                 .defaultLookup()
                                 .findOrThrow("gettimeofday");
    var gettimeofday = Linker.nativeLinker()
                             .downcallHandle(addrGettimeofday, desc);

    gettimeofday.invoke(100L, 200L); // CRASH!
  }
}
