// RUN: %clang_cc1 -triple x86_64-apple-macosx10.14.0 -fsanitize=unsigned-integer-overflow %s -emit-llvm -o - | FileCheck %s _Atomic(unsigned) atomic; // CHECK-LABEL: define{{.*}} void @cmpd_assign void cmpd_assign(void) { // CHECK: br label %[[LOOP_START:.*]] // CHECK: [[LOOP_START]]: // CHECK-NEXT: phi i32 {{.*}}, [ {{.*}}, %[[INCOMING_BLOCK:.*]] ] // CHECK: [[INCOMING_BLOCK]]: // CHECK-NEXT: cmpxchg // CHECK-NEXT: extractvalue // CHECK-NEXT: extractvalue // CHECK-NEXT: br i1 %8, label %{{.*}}, label %[[LOOP_START]] atomic += 1; } // CHECK-LABEL: define{{.*}} void @inc void inc(void) { // CHECK: br label %[[LOOP_START:.*]] // CHECK: [[LOOP_START]]: // CHECK-NEXT: phi i32 {{.*}}, [ {{.*}}, %[[INCOMING_BLOCK:.*]] ] // CHECK: [[INCOMING_BLOCK]]: // CHECK-NEXT: cmpxchg // CHECK-NEXT: extractvalue // CHECK-NEXT: extractvalue // CHECK-NEXT: br i1 %8, label %{{.*}}, label %[[LOOP_START]] atomic++; }