mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-28 14:26:08 +00:00

A significant number of our tests in C accidentally use functions without prototypes. This patch converts the function signatures to have a prototype for the situations where the test is not specific to K&R C declarations. e.g., void func(); becomes void func(void); This is the eleventh batch of tests being updated (there are a significant number of other tests left to be updated).
34 lines
951 B
C
34 lines
951 B
C
// 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++;
|
|
}
|