• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // RUN: %clang_tsan -O1 %s -o %t && %run %t 2>&1 | FileCheck %s
2 
3 // Longjmp assembly has not been implemented for mips64 yet
4 // XFAIL: mips64
5 
6 #include <stdio.h>
7 #include <stdlib.h>
8 #include <setjmp.h>
9 
foo(jmp_buf env)10 int foo(jmp_buf env) {
11   longjmp(env, 42);
12 }
13 
main()14 int main() {
15   jmp_buf env;
16   if (setjmp(env) == 42) {
17     fprintf(stderr, "JUMPED\n");
18     return 0;
19   }
20   foo(env);
21   fprintf(stderr, "FAILED\n");
22   return 0;
23 }
24 
25 // CHECK-NOT: FAILED
26 // CHECK: JUMPED
27