1//===-- main.c --------------------------------------------------*- C++ -*-===//
2//
3//                     The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9#include <setjmp.h>
10#include <stdio.h>
11#include <time.h>
12
13jmp_buf j;
14
15void do_jump(void)
16{
17    // We can't let the compiler know this will always happen or it might make
18    // optimizations that break our test.
19    if (!clock())
20        longjmp(j, 1); // non-local goto
21}
22
23int main (void)
24{
25    if (setjmp(j) == 0)
26        do_jump();
27    else
28        return 0; // destination of longjmp
29
30    return 1;
31}
32