34 lines · c
1// RUN: %clang_cc1 -triple x86_64-apple-macosx10.14.0 -fsanitize=unsigned-integer-overflow %s -emit-llvm -o - | FileCheck %s2 3_Atomic(unsigned) atomic;4 5// CHECK-LABEL: define{{.*}} void @cmpd_assign6void cmpd_assign(void) {7 // CHECK: br label %[[LOOP_START:.*]]8 9 // CHECK: [[LOOP_START]]:10 // CHECK-NEXT: phi i32 {{.*}}, [ {{.*}}, %[[INCOMING_BLOCK:.*]] ]11 12 // CHECK: [[INCOMING_BLOCK]]:13 // CHECK-NEXT: cmpxchg14 // CHECK-NEXT: extractvalue15 // CHECK-NEXT: extractvalue16 // CHECK-NEXT: br i1 %8, label %{{.*}}, label %[[LOOP_START]]17 atomic += 1;18}19 20// CHECK-LABEL: define{{.*}} void @inc21void inc(void) {22 // CHECK: br label %[[LOOP_START:.*]]23 24 // CHECK: [[LOOP_START]]:25 // CHECK-NEXT: phi i32 {{.*}}, [ {{.*}}, %[[INCOMING_BLOCK:.*]] ]26 27 // CHECK: [[INCOMING_BLOCK]]:28 // CHECK-NEXT: cmpxchg29 // CHECK-NEXT: extractvalue30 // CHECK-NEXT: extractvalue31 // CHECK-NEXT: br i1 %8, label %{{.*}}, label %[[LOOP_START]]32 atomic++;33}34