[clang-tools-extra] 1d02dd2 - [clang-tidy] Fix warning in portability-simd-intrinsics
Piotr Zegar via cfe-commits
cfe-commits at lists.llvm.org
Fri Jan 27 10:52:49 PST 2023
Author: Piotr Zegar
Date: 2023-01-27T18:50:51Z
New Revision: 1d02dd241816e3d5865e7d395ee7310167198b09
URL: https://github.com/llvm/llvm-project/commit/1d02dd241816e3d5865e7d395ee7310167198b09
DIFF: https://github.com/llvm/llvm-project/commit/1d02dd241816e3d5865e7d395ee7310167198b09.diff
LOG: [clang-tidy] Fix warning in portability-simd-intrinsics
When portability-simd-intrinsics.Suggest were set to false,
produced warning were missing source location,
and due to that such warning coudn't be NOLINTed.
Added missing tests.
Fixes issues: https://github.com/llvm/llvm-project/issues/52831
Differential Revision: https://reviews.llvm.org/D142565
Added:
Modified:
clang-tools-extra/clang-tidy/portability/SIMDIntrinsicsCheck.cpp
clang-tools-extra/test/clang-tidy/checkers/portability/simd-intrinsics-ppc.cpp
clang-tools-extra/test/clang-tidy/checkers/portability/simd-intrinsics-x86.cpp
Removed:
################################################################################
diff --git a/clang-tools-extra/clang-tidy/portability/SIMDIntrinsicsCheck.cpp b/clang-tools-extra/clang-tidy/portability/SIMDIntrinsicsCheck.cpp
index 55ffe2d91cadb..68fd0a4ed5fa4 100644
--- a/clang-tools-extra/clang-tidy/portability/SIMDIntrinsicsCheck.cpp
+++ b/clang-tools-extra/clang-tidy/portability/SIMDIntrinsicsCheck.cpp
@@ -138,7 +138,7 @@ void SIMDIntrinsicsCheck::check(const MatchFinder::MatchResult &Result) {
<< SimdRegex.sub(SmallString<32>({Std, "::simd"}),
StdRegex.sub(Std, New));
} else {
- diag("'%0' is a non-portable %1 intrinsic function")
+ diag(Call->getExprLoc(), "'%0' is a non-portable %1 intrinsic function")
<< Old << llvm::Triple::getArchTypeName(Arch);
}
}
diff --git a/clang-tools-extra/test/clang-tidy/checkers/portability/simd-intrinsics-ppc.cpp b/clang-tools-extra/test/clang-tidy/checkers/portability/simd-intrinsics-ppc.cpp
index 942a305e8152e..547301518f575 100644
--- a/clang-tools-extra/test/clang-tidy/checkers/portability/simd-intrinsics-ppc.cpp
+++ b/clang-tools-extra/test/clang-tidy/checkers/portability/simd-intrinsics-ppc.cpp
@@ -1,4 +1,8 @@
-// RUN: %check_clang_tidy -std=c++11,c++14,c++17 %s portability-simd-intrinsics %t -- \
+// RUN: %check_clang_tidy -std=c++11-or-later %s portability-simd-intrinsics %t -- \
+// RUN: -config='{CheckOptions: [ \
+// RUN: {key: portability-simd-intrinsics.Suggest, value: false} \
+// RUN: ]}' -- -target ppc64le -maltivec
+// RUN: %check_clang_tidy -std=c++11,c++14,c++17 %s portability-simd-intrinsics -check-suffix=BEFORE-CXX20 %t -- \
// RUN: -config='{CheckOptions: [ \
// RUN: {key: portability-simd-intrinsics.Suggest, value: true} \
// RUN: ]}' -- -target ppc64le -maltivec
@@ -13,6 +17,7 @@ void PPC() {
vector int i0, i1;
vec_add(i0, i1);
- // CHECK-MESSAGES: :[[@LINE-1]]:3: warning: 'vec_add' can be replaced by operator+ on std::experimental::simd objects [portability-simd-intrinsics]
+ // CHECK-MESSAGES-BEFORE-CXX20: :[[@LINE-1]]:3: warning: 'vec_add' can be replaced by operator+ on std::experimental::simd objects [portability-simd-intrinsics]
// CHECK-MESSAGES-CXX20: :[[@LINE-2]]:3: warning: 'vec_add' can be replaced by operator+ on std::simd objects [portability-simd-intrinsics]
+ // CHECK-MESSAGES: :[[@LINE-3]]:3: warning: 'vec_add' is a non-portable powerpc64le intrinsic function [portability-simd-intrinsics]
}
diff --git a/clang-tools-extra/test/clang-tidy/checkers/portability/simd-intrinsics-x86.cpp b/clang-tools-extra/test/clang-tidy/checkers/portability/simd-intrinsics-x86.cpp
index 28b3fd120263e..3736161dfb495 100644
--- a/clang-tools-extra/test/clang-tidy/checkers/portability/simd-intrinsics-x86.cpp
+++ b/clang-tools-extra/test/clang-tidy/checkers/portability/simd-intrinsics-x86.cpp
@@ -1,4 +1,8 @@
-// RUN: %check_clang_tidy -std=c++11,c++14,c++17 %s portability-simd-intrinsics %t -- \
+// RUN: %check_clang_tidy -std=c++11-or-later %s portability-simd-intrinsics %t -- \
+// RUN: -config='{CheckOptions: [ \
+// RUN: {key: portability-simd-intrinsics.Suggest, value: false} \
+// RUN: ]}' -- -target x86_64
+// RUN: %check_clang_tidy -std=c++11,c++14,c++17 %s portability-simd-intrinsics -check-suffix=BEFORE-CXX20 %t -- \
// RUN: -config='{CheckOptions: [ \
// RUN: {key: portability-simd-intrinsics.Suggest, value: true} \
// RUN: ]}' -- -target x86_64
@@ -21,8 +25,9 @@ void X86() {
__m256 d0;
_mm_add_epi32(i0, i1);
- // CHECK-MESSAGES: :[[@LINE-1]]:3: warning: '_mm_add_epi32' can be replaced by operator+ on std::experimental::simd objects [portability-simd-intrinsics]
+ // CHECK-MESSAGES-BEFORE-CXX20: :[[@LINE-1]]:3: warning: '_mm_add_epi32' can be replaced by operator+ on std::experimental::simd objects [portability-simd-intrinsics]
// CHECK-MESSAGES-CXX20: :[[@LINE-2]]:3: warning: '_mm_add_epi32' can be replaced by operator+ on std::simd objects [portability-simd-intrinsics]
+ // CHECK-MESSAGES: :[[@LINE-3]]:3: warning: '_mm_add_epi32' is a non-portable x86_64 intrinsic function [portability-simd-intrinsics]
d0 = _mm256_load_pd(0);
_mm256_store_pd(0, d0);
More information about the cfe-commits
mailing list