From 9aee35bcc90faa9db3ea0111c0a80ebee7446cac Mon Sep 17 00:00:00 2001 From: Kamlesh Kumar Date: Mon, 11 May 2020 10:47:42 -0400 Subject: [PATCH] [Clang] Fix the incorrect return type of atomic_is_lock_free Fixing the return type of atomic_is_lock_free as per https://en.cppreference.com/w/c/atomic/atomic_is_lock_free Differential Revision: https://reviews.llvm.org/D79504 --- clang/include/clang/Basic/Builtins.def | 6 +++--- clang/test/CodeGen/atomic-ops.c | 10 +++++----- clang/test/CodeGen/big-atomic-ops.c | 10 +++++----- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/clang/include/clang/Basic/Builtins.def b/clang/include/clang/Basic/Builtins.def index 9613f312d52d..4f1a7f24c432 100644 --- a/clang/include/clang/Basic/Builtins.def +++ b/clang/include/clang/Basic/Builtins.def @@ -724,7 +724,7 @@ ATOMIC_BUILTIN(__c11_atomic_fetch_max, "v.", "t") ATOMIC_BUILTIN(__c11_atomic_fetch_min, "v.", "t") BUILTIN(__c11_atomic_thread_fence, "vi", "n") BUILTIN(__c11_atomic_signal_fence, "vi", "n") -BUILTIN(__c11_atomic_is_lock_free, "iz", "n") +BUILTIN(__c11_atomic_is_lock_free, "bz", "n") // GNU atomic builtins. ATOMIC_BUILTIN(__atomic_load, "v.", "t") @@ -753,8 +753,8 @@ BUILTIN(__atomic_test_and_set, "bvD*i", "n") BUILTIN(__atomic_clear, "vvD*i", "n") BUILTIN(__atomic_thread_fence, "vi", "n") BUILTIN(__atomic_signal_fence, "vi", "n") -BUILTIN(__atomic_always_lock_free, "izvCD*", "n") -BUILTIN(__atomic_is_lock_free, "izvCD*", "n") +BUILTIN(__atomic_always_lock_free, "bzvCD*", "n") +BUILTIN(__atomic_is_lock_free, "bzvCD*", "n") // OpenCL 2.0 atomic builtins. ATOMIC_BUILTIN(__opencl_atomic_init, "v.", "t") diff --git a/clang/test/CodeGen/atomic-ops.c b/clang/test/CodeGen/atomic-ops.c index 25ecb4328876..2cf5d2beb3a8 100644 --- a/clang/test/CodeGen/atomic-ops.c +++ b/clang/test/CodeGen/atomic-ops.c @@ -343,20 +343,20 @@ struct Incomplete; int lock_free(struct Incomplete *incomplete) { // CHECK-LABEL: @lock_free - // CHECK: call i32 @__atomic_is_lock_free(i32 3, i8* null) + // CHECK: call zeroext i1 @__atomic_is_lock_free(i32 3, i8* null) __c11_atomic_is_lock_free(3); - // CHECK: call i32 @__atomic_is_lock_free(i32 16, i8* {{.*}}@sixteen{{.*}}) + // CHECK: call zeroext i1 @__atomic_is_lock_free(i32 16, i8* {{.*}}@sixteen{{.*}}) __atomic_is_lock_free(16, &sixteen); - // CHECK: call i32 @__atomic_is_lock_free(i32 17, i8* {{.*}}@seventeen{{.*}}) + // CHECK: call zeroext i1 @__atomic_is_lock_free(i32 17, i8* {{.*}}@seventeen{{.*}}) __atomic_is_lock_free(17, &seventeen); - // CHECK: call i32 @__atomic_is_lock_free(i32 4, {{.*}}) + // CHECK: call zeroext i1 @__atomic_is_lock_free(i32 4, {{.*}}) __atomic_is_lock_free(4, incomplete); char cs[20]; - // CHECK: call i32 @__atomic_is_lock_free(i32 4, {{.*}}) + // CHECK: call zeroext i1 @__atomic_is_lock_free(i32 4, {{.*}}) __atomic_is_lock_free(4, cs+1); // CHECK-NOT: call diff --git a/clang/test/CodeGen/big-atomic-ops.c b/clang/test/CodeGen/big-atomic-ops.c index 6a7a7001f96d..b06302f73f96 100644 --- a/clang/test/CodeGen/big-atomic-ops.c +++ b/clang/test/CodeGen/big-atomic-ops.c @@ -198,20 +198,20 @@ struct Seventeen { int lock_free(struct Incomplete *incomplete) { // CHECK: @lock_free - // CHECK: call i32 @__atomic_is_lock_free(i64 3, i8* null) + // CHECK: call zeroext i1 @__atomic_is_lock_free(i64 3, i8* null) __c11_atomic_is_lock_free(3); - // CHECK: call i32 @__atomic_is_lock_free(i64 16, i8* {{.*}}@sixteen{{.*}}) + // CHECK: call zeroext i1 @__atomic_is_lock_free(i64 16, i8* {{.*}}@sixteen{{.*}}) __atomic_is_lock_free(16, &sixteen); - // CHECK: call i32 @__atomic_is_lock_free(i64 17, i8* {{.*}}@seventeen{{.*}}) + // CHECK: call zeroext i1 @__atomic_is_lock_free(i64 17, i8* {{.*}}@seventeen{{.*}}) __atomic_is_lock_free(17, &seventeen); - // CHECK: call i32 @__atomic_is_lock_free(i64 4, {{.*}}) + // CHECK: call zeroext i1 @__atomic_is_lock_free(i64 4, {{.*}}) __atomic_is_lock_free(4, incomplete); char cs[20]; - // CHECK: call i32 @__atomic_is_lock_free(i64 4, {{.*}}) + // CHECK: call zeroext i1 @__atomic_is_lock_free(i64 4, {{.*}}) __atomic_is_lock_free(4, cs+1); // CHECK-NOT: call