mirror of
https://github.com/llvm/llvm-project.git
synced 2025-05-03 18:36:05 +00:00

ipconstprop is going to get removed and checking opt with specific passes makes the tests more fragile. The tests retain the important checks that !callback metadata is created correctly.
37 lines
993 B
C
37 lines
993 B
C
// RUN: %clang_cc1 %s -S -emit-llvm -o - -disable-llvm-optzns | FileCheck %s
|
|
|
|
// CHECK: declare !callback ![[cid:[0-9]+]] {{.*}}i32 @pthread_create
|
|
// CHECK: ![[cid]] = !{![[cidb:[0-9]+]]}
|
|
// CHECK: ![[cidb]] = !{i64 2, i64 3, i1 false}
|
|
|
|
// Taken from test/Analysis/retain-release.m
|
|
//{
|
|
struct _opaque_pthread_t {};
|
|
struct _opaque_pthread_attr_t {};
|
|
typedef struct _opaque_pthread_t *__darwin_pthread_t;
|
|
typedef struct _opaque_pthread_attr_t __darwin_pthread_attr_t;
|
|
typedef __darwin_pthread_t pthread_t;
|
|
typedef __darwin_pthread_attr_t pthread_attr_t;
|
|
|
|
int pthread_create(pthread_t *, const pthread_attr_t *,
|
|
void *(*)(void *), void *);
|
|
//}
|
|
|
|
const int GlobalVar = 0;
|
|
|
|
static void *callee0(void *payload) {
|
|
return payload;
|
|
}
|
|
|
|
static void *callee1(void *payload) {
|
|
return payload;
|
|
}
|
|
|
|
void foo() {
|
|
pthread_t MyFirstThread;
|
|
pthread_create(&MyFirstThread, 0, callee0, 0);
|
|
|
|
pthread_t MySecondThread;
|
|
pthread_create(&MySecondThread, 0, callee1, (void *)&GlobalVar);
|
|
}
|