//===-- main.c --------------------------------------------------*- C++ -*-===//
//
//                     The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
#include <setjmp.h>
#include <stdio.h>
#include <time.h>

jmp_buf j;

void do_jump(void)
{
    // We can't let the compiler know this will always happen or it might make
    // optimizations that break our test.
    if (!clock())
        longjmp(j, 1); // non-local goto
}

int main (void)
{
    if (setjmp(j) == 0)
        do_jump();
    else
        return 0; // destination of longjmp

    return 1;
}
