631 void (*__child) (void)) __attribute__ ((__nothrow__ , __leaf__));
632
633int flag1 = 0, flag2 = 0;
634int x;
635void *thr1() {
636 flag1 = 1;
637 while (flag2 >= 3);
638 flag1 = 3;
639 if (flag2 == 1) {
640 flag1 = 2;
641 while (flag2 != 4);
642 }
643 flag1 = 4;
644 while (flag2 >= 2);
645 x = 0;
646 if (!(x<=0)) ERROR: goto ERROR;;
647 while (2 <= flag2 && flag2 <= 3);
648 flag1 = 0;
649}
650void *thr2() {
651 flag2 = 1;
652 while (flag1 >= 3);
653 flag2 = 3;
654 if (flag1 == 1) {
655 flag2 = 2;
656 while (flag1 != 4);
657 }
658 flag2 = 4;
659 while (flag1 >= 2);
660 x = 1;
661 if (!(x>=1)) ERROR: goto ERROR;;
662 while (2 <= flag1 && flag1 <= 3);
663 flag2 = 0;
664}
665int main() {
666 pthread_t t1, t2;
667 pthread_create(&t1, 0, thr1, 0);
668 pthread_create(&t2, 0, thr2, 0);
669 pthread_join(t1, 0);
670 pthread_join(t2, 0);
671 return 0;