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
77 lines
3.4 KiB
C++
77 lines
3.4 KiB
C++
// RUN: %check_clang_tidy %s readability-function-cognitive-complexity %t -- \
|
|
// RUN: -config='{CheckOptions: \
|
|
// RUN: {readability-function-cognitive-complexity.Threshold: 0, \
|
|
// RUN: readability-function-cognitive-complexity.DescribeBasicIncrements: "false"}}'
|
|
// RUN: %check_clang_tidy -check-suffix=THRESHOLD5 %s readability-function-cognitive-complexity %t -- \
|
|
// RUN: -config='{CheckOptions: \
|
|
// RUN: {readability-function-cognitive-complexity.Threshold: 5, \
|
|
// RUN: readability-function-cognitive-complexity.DescribeBasicIncrements: "false"}}'
|
|
// RUN: %check_clang_tidy -check-suffix=IGNORE-MACROS %s readability-function-cognitive-complexity %t -- \
|
|
// RUN: -config='{CheckOptions: \
|
|
// RUN: {readability-function-cognitive-complexity.Threshold: 0, \
|
|
// RUN: readability-function-cognitive-complexity.IgnoreMacros: "true", \
|
|
// RUN: readability-function-cognitive-complexity.DescribeBasicIncrements: "false"}}'
|
|
|
|
void func_of_complexity_4() {
|
|
// CHECK-NOTES: :[[@LINE-1]]:6: warning: function 'func_of_complexity_4' has cognitive complexity of 4 (threshold 0) [readability-function-cognitive-complexity]
|
|
// CHECK-NOTES-IGNORE-MACROS: :[[@LINE-2]]:6: warning: function 'func_of_complexity_4' has cognitive complexity of 4 (threshold 0) [readability-function-cognitive-complexity]
|
|
if (1) {
|
|
if (1) {
|
|
}
|
|
}
|
|
if (1) {
|
|
}
|
|
}
|
|
|
|
#define MacroOfComplexity10 \
|
|
if (1) { \
|
|
if (1) { \
|
|
if (1) { \
|
|
if (1) { \
|
|
} \
|
|
} \
|
|
} \
|
|
}
|
|
|
|
void function_with_macro() {
|
|
// CHECK-NOTES: :[[@LINE-1]]:6: warning: function 'function_with_macro' has cognitive complexity of 11 (threshold 0) [readability-function-cognitive-complexity]
|
|
// CHECK-NOTES-THRESHOLD5: :[[@LINE-2]]:6: warning: function 'function_with_macro' has cognitive complexity of 11 (threshold 5) [readability-function-cognitive-complexity]
|
|
// CHECK-NOTES-IGNORE-MACROS: :[[@LINE-3]]:6: warning: function 'function_with_macro' has cognitive complexity of 1 (threshold 0) [readability-function-cognitive-complexity]
|
|
|
|
MacroOfComplexity10;
|
|
|
|
if (1) {
|
|
}
|
|
}
|
|
|
|
#define noop \
|
|
{}
|
|
|
|
#define SomeMacro(x) \
|
|
if (1) { \
|
|
x; \
|
|
}
|
|
|
|
void func_macro_1() {
|
|
// CHECK-NOTES: :[[@LINE-1]]:6: warning: function 'func_macro_1' has cognitive complexity of 2 (threshold 0) [readability-function-cognitive-complexity]
|
|
// CHECK-NOTES-IGNORE-MACROS: :[[@LINE-2]]:6: warning: function 'func_macro_1' has cognitive complexity of 1 (threshold 0) [readability-function-cognitive-complexity]
|
|
|
|
if (1) {
|
|
}
|
|
SomeMacro(noop);
|
|
}
|
|
|
|
void func_macro_2() {
|
|
// CHECK-NOTES: :[[@LINE-1]]:6: warning: function 'func_macro_2' has cognitive complexity of 4 (threshold 0) [readability-function-cognitive-complexity]
|
|
// CHECK-NOTES-IGNORE-MACROS: :[[@LINE-2]]:6: warning: function 'func_macro_2' has cognitive complexity of 1 (threshold 0) [readability-function-cognitive-complexity]
|
|
|
|
if (1) {
|
|
}
|
|
// Note that if the IgnoreMacro option is set to 'true', currently also macro
|
|
// arguments are ignored. Optimally, macros should be treated like function
|
|
// calls, i.e. the arguments account to the complexity so that the overall
|
|
// complexity of this function is 2 (1 for the if statement above + 1 for
|
|
// the if statement in the argument).
|
|
SomeMacro(if (1) { noop; });
|
|
}
|