CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
140 lines
3.6 KiB
C
140 lines
3.6 KiB
C
// RUN: %check_clang_tidy -std=c23-or-later %s modernize-use-nullptr %t
|
|
|
|
#include <stddef.h>
|
|
|
|
void test_assignment() {
|
|
int *p1 = 0;
|
|
// CHECK-MESSAGES: :[[@LINE-1]]:13: warning: use nullptr [modernize-use-nullptr]
|
|
// CHECK-FIXES: int *p1 = nullptr;
|
|
p1 = 0;
|
|
// CHECK-MESSAGES: :[[@LINE-1]]:8: warning: use nullptr
|
|
// CHECK-FIXES: p1 = nullptr;
|
|
|
|
int *p2 = NULL;
|
|
// CHECK-MESSAGES: :[[@LINE-1]]:13: warning: use nullptr
|
|
// CHECK-FIXES: int *p2 = nullptr;
|
|
|
|
p2 = p1;
|
|
// CHECK-FIXES: p2 = p1;
|
|
|
|
const int null = 0;
|
|
int *p3 = &null;
|
|
|
|
p3 = NULL;
|
|
// CHECK-MESSAGES: :[[@LINE-1]]:8: warning: use nullptr
|
|
// CHECK-FIXES: p3 = nullptr;
|
|
|
|
int *p4 = p3;
|
|
|
|
int i1 = 0;
|
|
|
|
int i2 = NULL;
|
|
|
|
int i3 = null;
|
|
|
|
int *p5, *p6, *p7;
|
|
p5 = p6 = p7 = NULL;
|
|
// CHECK-MESSAGES: :[[@LINE-1]]:18: warning: use nullptr
|
|
// CHECK-FIXES: p5 = p6 = p7 = nullptr;
|
|
}
|
|
|
|
void test_function(int *p) {}
|
|
|
|
void test_function_no_ptr_param(int i) {}
|
|
|
|
void test_function_call() {
|
|
test_function(0);
|
|
// CHECK-MESSAGES: :[[@LINE-1]]:17: warning: use nullptr
|
|
// CHECK-FIXES: test_function(nullptr);
|
|
|
|
test_function(NULL);
|
|
// CHECK-MESSAGES: :[[@LINE-1]]:17: warning: use nullptr
|
|
// CHECK-FIXES: test_function(nullptr);
|
|
|
|
test_function_no_ptr_param(0);
|
|
}
|
|
|
|
char *test_function_return1() {
|
|
return 0;
|
|
// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: use nullptr
|
|
// CHECK-FIXES: return nullptr;
|
|
}
|
|
|
|
void *test_function_return2() {
|
|
return NULL;
|
|
// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: use nullptr
|
|
// CHECK-FIXES: return nullptr;
|
|
}
|
|
|
|
int test_function_return4() {
|
|
return 0;
|
|
}
|
|
|
|
int test_function_return5() {
|
|
return NULL;
|
|
}
|
|
|
|
int *test_function_return_cast1() {
|
|
return(int)0;
|
|
// CHECK-MESSAGES: :[[@LINE-1]]:9: warning: use nullptr
|
|
// CHECK-FIXES: return nullptr;
|
|
}
|
|
|
|
int *test_function_return_cast2() {
|
|
#define RET return
|
|
RET(int)0;
|
|
// CHECK-MESSAGES: :[[@LINE-1]]:6: warning: use nullptr
|
|
// CHECK-FIXES: RET nullptr;
|
|
#undef RET
|
|
}
|
|
|
|
// Test parentheses expressions resulting in a nullptr.
|
|
int *test_parentheses_expression1() {
|
|
return(0);
|
|
// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: use nullptr
|
|
// CHECK-FIXES: return(nullptr);
|
|
}
|
|
|
|
int *test_parentheses_expression2() {
|
|
return((int)(0.0f));
|
|
// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: use nullptr
|
|
// CHECK-FIXES: return(nullptr);
|
|
}
|
|
|
|
int *test_nested_parentheses_expression() {
|
|
return((((0))));
|
|
// CHECK-MESSAGES: :[[@LINE-1]]:13: warning: use nullptr
|
|
// CHECK-FIXES: return((((nullptr))));
|
|
}
|
|
|
|
void test_const_pointers() {
|
|
const int *const_p1 = 0;
|
|
// CHECK-MESSAGES: :[[@LINE-1]]:25: warning: use nullptr
|
|
// CHECK-FIXES: const int *const_p1 = nullptr;
|
|
const int *const_p2 = NULL;
|
|
// CHECK-MESSAGES: :[[@LINE-1]]:25: warning: use nullptr
|
|
// CHECK-FIXES: const int *const_p2 = nullptr;
|
|
const int *const_p3 = (int)0;
|
|
// CHECK-MESSAGES: :[[@LINE-1]]:25: warning: use nullptr
|
|
// CHECK-FIXES: const int *const_p3 = nullptr;
|
|
const int *const_p4 = (int)0.0f;
|
|
// CHECK-MESSAGES: :[[@LINE-1]]:25: warning: use nullptr
|
|
// CHECK-FIXES: const int *const_p4 = nullptr;
|
|
}
|
|
|
|
void test_nested_implicit_cast_expr() {
|
|
int func0(void*, void*);
|
|
int func1(int, void*, void*);
|
|
|
|
(double)func1(0, 0, 0);
|
|
// CHECK-MESSAGES: :[[@LINE-1]]:20: warning: use nullptr
|
|
// CHECK-MESSAGES: :[[@LINE-2]]:23: warning: use nullptr
|
|
// CHECK-FIXES: (double)func1(0, nullptr, nullptr);
|
|
(double)func1(func0(0, 0), 0, 0);
|
|
// CHECK-MESSAGES: :[[@LINE-1]]:23: warning: use nullptr
|
|
// CHECK-MESSAGES: :[[@LINE-2]]:26: warning: use nullptr
|
|
// CHECK-MESSAGES: :[[@LINE-3]]:30: warning: use nullptr
|
|
// CHECK-MESSAGES: :[[@LINE-4]]:33: warning: use nullptr
|
|
// CHECK-FIXES: (double)func1(func0(nullptr, nullptr), nullptr, nullptr);
|
|
}
|