[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