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 10int foo(sigjmp_buf env) { 11 printf("env=%p\n", env); 12 siglongjmp(env, 42); 13} 14 15int main() { 16 sigjmp_buf env; 17 printf("env=%p\n", env); 18 if (sigsetjmp(env, 1) == 42) { 19 printf("JUMPED\n"); 20 return 0; 21 } 22 foo(env); 23 printf("FAILED\n"); 24 return 0; 25} 26 27// CHECK-NOT: FAILED 28// CHECK: JUMPED 29