[PATCH] D148697: [clang-tidy] Add more checks for functions which should be noexcept

2023-06-21 Thread Shafik Yaghmour via Phabricator via cfe-commits
shafik added inline comments.



Comment at: clang-tools-extra/clang-tidy/utils/LexerUtils.cpp:273
+return Lexer::findLocationAfterToken(NoexceptLoc, tok::r_paren, SM,
+ LangOpts, true);
+

To conform with 
[burprone-argument-comment](https://clang.llvm.org/extra/clang-tidy/checks/bugprone/argument-comment.html).

Apologies for late review.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D148697/new/

https://reviews.llvm.org/D148697

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D148697: [clang-tidy] Add more checks for functions which should be noexcept

2023-06-14 Thread Christian Ulmann via Phabricator via cfe-commits
Dinistro added a comment.

Sorry for the noise. I didn't pull in between the different runs and was still 
on the broken version.
Thanks for fixing this issue :)


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D148697/new/

https://reviews.llvm.org/D148697

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D148697: [clang-tidy] Add more checks for functions which should be noexcept

2023-06-14 Thread Nemanja Ivanovic via Phabricator via cfe-commits
nemanjai added a comment.

In D148697#4422642 , @PiotrZSL wrote:

> In D148697#4422629 , @nemanjai 
> wrote:
>
>> It was also causing PPC bots to break. I fixed it in 
>> https://reviews.llvm.org/rGffd7a200fdfbd01ef296101647d2f2da91ddfd41
>
> O, thank you. Thats explain a lot. Because when I look into cmake, 
> clangTidyPerformanceModule were already there because you already added it.

Yeah, sorry. I saw that Phabricator automatically added the mention into the 
Diffusion link but I forgot that it won't add it to the Differential and that I 
need to add it manually.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D148697/new/

https://reviews.llvm.org/D148697

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D148697: [clang-tidy] Add more checks for functions which should be noexcept

2023-06-14 Thread Piotr Zegar via Phabricator via cfe-commits
PiotrZSL added a comment.

In D148697#4422629 , @nemanjai wrote:

> It was also causing PPC bots to break. I fixed it in 
> https://reviews.llvm.org/rGffd7a200fdfbd01ef296101647d2f2da91ddfd41

O, thank you. Thats explain a lot. Because when I look into cmake, 
clangTidyPerformanceModule were already there because you already added it.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D148697/new/

https://reviews.llvm.org/D148697

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D148697: [clang-tidy] Add more checks for functions which should be noexcept

2023-06-14 Thread Nemanja Ivanovic via Phabricator via cfe-commits
nemanjai added a comment.

In D148697#4421739 , @Dinistro wrote:

> In D148697#4421643 , @PiotrZSL 
> wrote:
>
>> @Dinistro It compiles & links with clang 16 also (shared libs). So I'm 
>> unable to reproduce.
>
> I used the following command to build:
>
>   cmake -S/home/christianu/repos/llvm-project/llvm 
> -B/home/christianu/repos/llvm-project/build-clang-tidy -GNinja 
> -DLLVM_ENABLE_LLD=ON -DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra" 
> -DLLVM_TARGETS_TO_BUILD=X86 -DLLVM_ENABLE_ASSERTIONS=ON 
> -DBUILD_SHARED_LIBS=ON -DLLVM_INCLUDE_UTILS=ON -DLLVM_INSTALL_UTILS=ON 
> -DLLVM_BUILD_EXAMPLES=OFF -DLLVM_CCACHE_BUILD=ON -DLLVM_OPTIMIZED_TABLEGEN=ON 
> -DCMAKE_BUILD_TYPE=Debug -DCMAKE_C_COMPILER=clang 
> -DCMAKE_CXX_COMPILER=clang++ -DLLVM_ENABLE_RUNTIMES=openmp

It was also causing PPC bots to break. I fixed it in 
https://reviews.llvm.org/rGffd7a200fdfbd01ef296101647d2f2da91ddfd41


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D148697/new/

https://reviews.llvm.org/D148697

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D148697: [clang-tidy] Add more checks for functions which should be noexcept

2023-06-14 Thread Piotr Zegar via Phabricator via cfe-commits
PiotrZSL added a comment.

In D148697#4421739 , @Dinistro wrote:

> In D148697#4421643 , @PiotrZSL 
> wrote:
>
>> @Dinistro It compiles & links with clang 16 also (shared libs). So I'm 
>> unable to reproduce.
>
> I used the following command to build:
>
>   cmake -S/home/christianu/repos/llvm-project/llvm 
> -B/home/christianu/repos/llvm-project/build-clang-tidy -GNinja 
> -DLLVM_ENABLE_LLD=ON -DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra" 
> -DLLVM_TARGETS_TO_BUILD=X86 -DLLVM_ENABLE_ASSERTIONS=ON 
> -DBUILD_SHARED_LIBS=ON -DLLVM_INCLUDE_UTILS=ON -DLLVM_INSTALL_UTILS=ON 
> -DLLVM_BUILD_EXAMPLES=OFF -DLLVM_CCACHE_BUILD=ON -DLLVM_OPTIMIZED_TABLEGEN=ON 
> -DCMAKE_BUILD_TYPE=Debug -DCMAKE_C_COMPILER=clang 
> -DCMAKE_CXX_COMPILER=clang++ -DLLVM_ENABLE_RUNTIMES=openmp

Still no issue on my side. Try cleaning up ccache and directory. Also by 
looking into code, everything looks fine, dependencies are correctly set.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D148697/new/

https://reviews.llvm.org/D148697

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D148697: [clang-tidy] Add more checks for functions which should be noexcept

2023-06-14 Thread Christian Ulmann via Phabricator via cfe-commits
Dinistro added a comment.

In D148697#4421643 , @PiotrZSL wrote:

> @Dinistro It compiles & links with clang 16 also (shared libs). So I'm unable 
> to reproduce.

I used the following command to build:

  cmake -S/home/christianu/repos/llvm-project/llvm 
-B/home/christianu/repos/llvm-project/build-clang-tidy -GNinja 
-DLLVM_ENABLE_LLD=ON -DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra" 
-DLLVM_TARGETS_TO_BUILD=X86 -DLLVM_ENABLE_ASSERTIONS=ON -DBUILD_SHARED_LIBS=ON 
-DLLVM_INCLUDE_UTILS=ON -DLLVM_INSTALL_UTILS=ON -DLLVM_BUILD_EXAMPLES=OFF 
-DLLVM_CCACHE_BUILD=ON -DLLVM_OPTIMIZED_TABLEGEN=ON -DCMAKE_BUILD_TYPE=Debug 
-DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ 
-DLLVM_ENABLE_RUNTIMES=openmp


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D148697/new/

https://reviews.llvm.org/D148697

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D148697: [clang-tidy] Add more checks for functions which should be noexcept

2023-06-14 Thread Christian Ulmann via Phabricator via cfe-commits
Dinistro added a comment.

In D148697#4421420 , @PiotrZSL wrote:

> In D148697#4421339 , @Dinistro 
> wrote:
>
>> In D148697#4421268 , @PiotrZSL 
>> wrote:
>>
>>> In D148697#4420359 , @Dinistro 
>>> wrote:
>>>
 I'm getting a linking error by some of the files changed in this revision.
>>>
>>> You shouldn't because this library got dependency on 
>>> clangTidyPerformanceModule.
>>> Is this a blocker for you, or you can live with this for 1 day ? Until I 
>>> verify this.
>>
>> I don't necessarily need to build clang-tidy, so it's fine for now.
>
> I did a clean build with shared libraries enabled, everything is working.
> I do not get those issues. Try a clean-build. I will try to check build with 
> clang-16.

I tried with a clean build, and I get the exact same issues. Might be caused by 
the lld and clang-16 combination, not sure.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D148697/new/

https://reviews.llvm.org/D148697

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D148697: [clang-tidy] Add more checks for functions which should be noexcept

2023-06-14 Thread Piotr Zegar via Phabricator via cfe-commits
PiotrZSL added a comment.

@Dinistro It compiles & links with clang 16 also (shared libs). So I'm unable 
to reproduce.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D148697/new/

https://reviews.llvm.org/D148697

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D148697: [clang-tidy] Add more checks for functions which should be noexcept

2023-06-14 Thread Piotr Zegar via Phabricator via cfe-commits
PiotrZSL added a comment.

In D148697#4421339 , @Dinistro wrote:

> In D148697#4421268 , @PiotrZSL 
> wrote:
>
>> In D148697#4420359 , @Dinistro 
>> wrote:
>>
>>> I'm getting a linking error by some of the files changed in this revision.
>>
>> You shouldn't because this library got dependency on 
>> clangTidyPerformanceModule.
>> Is this a blocker for you, or you can live with this for 1 day ? Until I 
>> verify this.
>
> I don't necessarily need to build clang-tidy, so it's fine for now.

I did a clean build with shared libraries enabled, everything is working.
I do not get those issues. Try a clean-build. I will try to check build with 
clang-16.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D148697/new/

https://reviews.llvm.org/D148697

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D148697: [clang-tidy] Add more checks for functions which should be noexcept

2023-06-14 Thread Christian Ulmann via Phabricator via cfe-commits
Dinistro added a comment.

In D148697#4421268 , @PiotrZSL wrote:

> In D148697#4420359 , @Dinistro 
> wrote:
>
>> I'm getting a linking error by some of the files changed in this revision.
>
> You shouldn't because this library got dependency on 
> clangTidyPerformanceModule.
> Is this a blocker for you, or you can live with this for 1 day ? Until I 
> verify this.

I don't necessarily need to build clang-tidy, so it's fine for now.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D148697/new/

https://reviews.llvm.org/D148697

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D148697: [clang-tidy] Add more checks for functions which should be noexcept

2023-06-14 Thread Piotr Zegar via Phabricator via cfe-commits
PiotrZSL added a comment.

In D148697#4420359 , @Dinistro wrote:

> I'm getting a linking error by some of the files changed in this revision.

You shouldn't because this library got dependency on clangTidyPerformanceModule.
Is this a blocker for you, or you can live with this for 1 day ? Until I verify 
this.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D148697/new/

https://reviews.llvm.org/D148697

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D148697: [clang-tidy] Add more checks for functions which should be noexcept

2023-06-14 Thread Christian Ulmann via Phabricator via cfe-commits
Dinistro added a comment.

I'm getting a linking error by some of the files changed in this revision.

  ld.lld: error: undefined symbol: vtable for 
clang::tidy::performance::NoexceptDestructorCheck
  >>> referenced by NoexceptDestructorCheck.h:26 
(/home/christianu/repos/llvm-project/clang-tools-extra/clang-tidy/cppcoreguidelines/../performance/NoexceptDestructorCheck.h:26)
  >>>   
tools/clang/tools/extra/clang-tidy/cppcoreguidelines/CMakeFiles/obj.clangTidyCppCoreGuidelinesModule.dir/CppCoreGuidelinesTidyModule.cpp.o:(std::enable_if>, void 
clang::tidy::ClangTidyCheckFactories::registerCheck(ll
  vm::StringRef)::'lambda'(llvm::StringRef, clang::tidy::ClangTidyContext*)&, 
llvm::StringRef, clang::tidy::ClangTidyContext*>, 
std::unique_ptr>>::type 
std::__invoke_r>, void 
clang::tidy::ClangTidyCheckFactories::registerCheck
  
(llvm::StringRef)::'lambda'(llvm::StringRef,
 clang::tidy::ClangTidyContext*)&, llvm::StringRef, 
clang::tidy::ClangTidyContext*>(void clang::tidy::C
  
langTidyCheckFactories::registerCheck(llvm::StringRef)::'lambda'(llvm::StringRef,
 clang::tidy::ClangTidyContext*)&, llvm::StringRef&&, clang::tidy:
  :ClangTidyContext*&&))
  >>> the vtable symbol may be undefined because the class is missing its key 
function (see https://lld.llvm.org/missingkeyfunction)
  
  ld.lld: error: undefined symbol: vtable for 
clang::tidy::performance::NoexceptMoveConstructorCheck
  >>> referenced by NoexceptMoveConstructorCheck.h:30 
(/home/christianu/repos/llvm-project/clang-tools-extra/clang-tidy/cppcoreguidelines/../performance/NoexceptMoveConstructorCheck.h:30)
  >>>   
tools/clang/tools/extra/clang-tidy/cppcoreguidelines/CMakeFiles/obj.clangTidyCppCoreGuidelinesModule.dir/CppCoreGuidelinesTidyModule.cpp.o:(std::enable_if>, void 
clang::tidy::ClangTidyCheckFactories::registerCheck(llvm::StringRef)::'lambda'(llvm::StringRef, 
clang::tidy::ClangTidyContext*)&, llvm::StringRef, 
clang::tidy::ClangTidyContext*>, std::unique_ptr>>::type 
std::__invoke_r>, void 
clang::tidy::ClangTidyCheckFactories::register
  
Check(llvm::StringRef)::'lambda'(llvm::StringRef,
 clang::tidy::ClangTidyContext*)&, llvm::StringRef, 
clang::tidy::ClangTidyContext*>(void clan
  
g::tidy::ClangTidyCheckFactories::registerCheck(llvm::StringRef)::'lambda'(llvm::StringRef,
 clang::tidy::ClangTidyContext*)&, llvm::StringRef&
  &, clang::tidy::ClangTidyContext*&&))
  >>> the vtable symbol may be undefined because the class is missing its key 
function (see https://lld.llvm.org/missingkeyfunction)
  
  ld.lld: error: undefined symbol: vtable for 
clang::tidy::performance::NoexceptSwapCheck
  >>> referenced by NoexceptSwapCheck.h:26 
(/home/christianu/repos/llvm-project/clang-tools-extra/clang-tidy/cppcoreguidelines/../performance/NoexceptSwapCheck.h:26)
  >>>   
tools/clang/tools/extra/clang-tidy/cppcoreguidelines/CMakeFiles/obj.clangTidyCppCoreGuidelinesModule.dir/CppCoreGuidelinesTidyModule.cpp.o:(std::enable_if>, void 
clang::tidy::ClangTidyCheckFactories::registerCheck(llvm::St
  ringRef)::'lambda'(llvm::StringRef, clang::tidy::ClangTidyContext*)&, 
llvm::StringRef, clang::tidy::ClangTidyContext*>, 
std::unique_ptr>>::type 
std::__invoke_r>, void 
clang::tidy::ClangTidyCheckFactories::registerCheck(llvm::StringRef)::'lambda'(llvm::StringRef,
 clang::tidy::ClangTidyContext*)&, llvm::StringRef, 
clang::tidy::ClangTidyContext*>(void clang::tidy::ClangTidyChec
  
kFactories::registerCheck(llvm::StringRef)::'lambda'(llvm::StringRef,
 clang::tidy::ClangTidyContext*)&, llvm::StringRef&&, 
clang::tidy::ClangTidyContext*
  &&))
  >>> the vtable symbol may be undefined because the class is missing its key 
function (see https://lld.llvm.org/missingkeyfunction)
  clang-16: error: linker command failed with exit code 1 (use -v to see 
invocation)

I'm building with shared libraries on.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D148697/new/

https://reviews.llvm.org/D148697

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D148697: [clang-tidy] Add more checks for functions which should be noexcept

2023-06-13 Thread Piotr Zegar via Phabricator via cfe-commits
This revision was landed with ongoing or failed builds.
This revision was automatically updated to reflect the committed changes.
Closed by commit rG474a2b9367ad: [clang-tidy] Add more checks for functions 
which should be noexcept (authored by AMS21, committed by PiotrZSL).

Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D148697/new/

https://reviews.llvm.org/D148697

Files:
  clang-tools-extra/clang-tidy/cppcoreguidelines/CppCoreGuidelinesTidyModule.cpp
  clang-tools-extra/clang-tidy/performance/CMakeLists.txt
  clang-tools-extra/clang-tidy/performance/NoexceptDestructorCheck.cpp
  clang-tools-extra/clang-tidy/performance/NoexceptDestructorCheck.h
  clang-tools-extra/clang-tidy/performance/NoexceptMoveConstructorCheck.cpp
  clang-tools-extra/clang-tidy/performance/NoexceptMoveConstructorCheck.h
  clang-tools-extra/clang-tidy/performance/NoexceptSwapCheck.cpp
  clang-tools-extra/clang-tidy/performance/NoexceptSwapCheck.h
  clang-tools-extra/clang-tidy/performance/PerformanceTidyModule.cpp
  clang-tools-extra/clang-tidy/utils/ExceptionSpecAnalyzer.cpp
  clang-tools-extra/clang-tidy/utils/LexerUtils.cpp
  clang-tools-extra/clang-tidy/utils/LexerUtils.h
  clang-tools-extra/docs/ReleaseNotes.rst
  
clang-tools-extra/docs/clang-tidy/checks/cppcoreguidelines/noexcept-destructor.rst
  
clang-tools-extra/docs/clang-tidy/checks/cppcoreguidelines/noexcept-move-operations.rst
  clang-tools-extra/docs/clang-tidy/checks/cppcoreguidelines/noexcept-swap.rst
  clang-tools-extra/docs/clang-tidy/checks/list.rst
  clang-tools-extra/docs/clang-tidy/checks/performance/noexcept-destructor.rst
  clang-tools-extra/docs/clang-tidy/checks/performance/noexcept-swap.rst
  clang-tools-extra/test/clang-tidy/checkers/performance/noexcept-destructor.cpp
  
clang-tools-extra/test/clang-tidy/checkers/performance/noexcept-move-constructor.cpp
  clang-tools-extra/test/clang-tidy/checkers/performance/noexcept-swap.cpp

Index: clang-tools-extra/test/clang-tidy/checkers/performance/noexcept-swap.cpp
===
--- /dev/null
+++ clang-tools-extra/test/clang-tidy/checkers/performance/noexcept-swap.cpp
@@ -0,0 +1,203 @@
+// RUN: %check_clang_tidy %s performance-noexcept-swap %t -- -- -fexceptions
+
+void throwing_function() noexcept(false);
+void noexcept_function() noexcept;
+
+template 
+struct TemplateNoexceptWithInt {
+  static void f() {}
+};
+
+template <>
+struct TemplateNoexceptWithInt {
+  static void f() noexcept {}
+};
+
+class A {
+  void swap(A &);
+  // CHECK-MESSAGES: :[[@LINE-1]]:8: warning: swap functions should be marked noexcept [performance-noexcept-swap]
+  // CHECK-FIXES: void swap(A &) noexcept ;
+};
+
+void swap(A &, A &);
+// CHECK-MESSAGES: :[[@LINE-1]]:6: warning: swap functions should be marked noexcept [performance-noexcept-swap]
+// CHECK-FIXES: void swap(A &, A &) noexcept ;
+
+struct B {
+  static constexpr bool kFalse = false;
+  void swap(B &) noexcept(kFalse);
+  // CHECK-MESSAGES: :[[@LINE-1]]:27: warning: noexcept specifier on swap function evaluates to 'false' [performance-noexcept-swap]
+};
+
+void swap(B &, B &) noexcept(B::kFalse);
+// CHECK-MESSAGES: :[[@LINE-1]]:30: warning: noexcept specifier on swap function evaluates to 'false' [performance-noexcept-swap]
+
+template 
+struct C {
+  void swap(C&);
+  // CHECK-MESSAGES: :[[@LINE-1]]:8: warning: swap functions should be marked noexcept [performance-noexcept-swap]
+  // CHECK-FIXES: void swap(C&) noexcept ;
+};
+
+template 
+void swap(C&, C&);
+// CHECK-MESSAGES: :[[@LINE-1]]:6: warning: swap functions should be marked noexcept [performance-noexcept-swap]
+// CHECK-FIXES: void swap(C&, C&) noexcept ;
+void swap(C&, C&);
+// CHECK-MESSAGES: :[[@LINE-1]]:6: warning: swap functions should be marked noexcept [performance-noexcept-swap]
+// CHECK-FIXES: void swap(C&, C&) noexcept ;
+
+template 
+struct D {
+  static constexpr bool kFalse = false;
+  void swap(D &) noexcept(kFalse);
+  // CHECK-MESSAGES: :[[@LINE-1]]:27: warning: noexcept specifier on swap function evaluates to 'false' [performance-noexcept-swap]
+};
+
+template 
+void swap(D &, D &) noexcept(D::kFalse);
+// CHECK-MESSAGES: :[[@LINE-1]]:36: warning: noexcept specifier on swap function evaluates to 'false' [performance-noexcept-swap]
+void swap(D &, D &) noexcept(D::kFalse);
+// CHECK-MESSAGES: :[[@LINE-1]]:40: warning: noexcept specifier on swap function evaluates to 'false' [performance-noexcept-swap]
+
+struct E {
+  void swap(E &) noexcept(noexcept(throwing_function()));
+  // CHECK-MESSAGES: :[[@LINE-1]]:27: warning: noexcept specifier on swap function evaluates to 'false' [performance-noexcept-swap]
+};
+
+void swap(E &, E &) noexcept(noexcept(throwing_function()));
+// CHECK-MESSAGES: :[[@LINE-1]]:30: warning: noexcept specifier on swap function evaluates to 'false' [performance-noexcept-swap]
+
+template 
+struct F {
+  void swap(F &) noexcept(noexcept(throwing_function()));
+  // 

[PATCH] D148697: [clang-tidy] Add more checks for functions which should be noexcept

2023-06-13 Thread André Schackier via Phabricator via cfe-commits
AMS21 added inline comments.



Comment at: clang-tools-extra/clang-tidy/performance/NoexceptSwapCheck.cpp:21
+  Finder->addMatcher(
+  functionDecl(unless(isImplicit()), unless(isDeleted()), hasName("swap"))
+  .bind("decl"),

PiotrZSL wrote:
> i dont think that swap functions can be deleted
All functions can be deleted. See 
[cppreference](https://en.cppreference.com/w/cpp/language/function#Deleted_functions)

```
void swap(int, int) = delete;
```

Should be valid C++ and not give a no-noexcept warning, so we need to exclude 
it.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D148697/new/

https://reviews.llvm.org/D148697

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D148697: [clang-tidy] Add more checks for functions which should be noexcept

2023-06-13 Thread André Schackier via Phabricator via cfe-commits
AMS21 updated this revision to Diff 531005.
AMS21 marked 3 inline comments as done.
AMS21 added a comment.

Implement the suggested changes


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D148697/new/

https://reviews.llvm.org/D148697

Files:
  clang-tools-extra/clang-tidy/cppcoreguidelines/CppCoreGuidelinesTidyModule.cpp
  clang-tools-extra/clang-tidy/performance/CMakeLists.txt
  clang-tools-extra/clang-tidy/performance/NoexceptDestructorCheck.cpp
  clang-tools-extra/clang-tidy/performance/NoexceptDestructorCheck.h
  clang-tools-extra/clang-tidy/performance/NoexceptMoveConstructorCheck.cpp
  clang-tools-extra/clang-tidy/performance/NoexceptMoveConstructorCheck.h
  clang-tools-extra/clang-tidy/performance/NoexceptSwapCheck.cpp
  clang-tools-extra/clang-tidy/performance/NoexceptSwapCheck.h
  clang-tools-extra/clang-tidy/performance/PerformanceTidyModule.cpp
  clang-tools-extra/clang-tidy/utils/ExceptionSpecAnalyzer.cpp
  clang-tools-extra/clang-tidy/utils/LexerUtils.cpp
  clang-tools-extra/clang-tidy/utils/LexerUtils.h
  clang-tools-extra/docs/ReleaseNotes.rst
  
clang-tools-extra/docs/clang-tidy/checks/cppcoreguidelines/noexcept-destructor.rst
  
clang-tools-extra/docs/clang-tidy/checks/cppcoreguidelines/noexcept-move-operations.rst
  clang-tools-extra/docs/clang-tidy/checks/cppcoreguidelines/noexcept-swap.rst
  clang-tools-extra/docs/clang-tidy/checks/list.rst
  clang-tools-extra/docs/clang-tidy/checks/performance/noexcept-destructor.rst
  clang-tools-extra/docs/clang-tidy/checks/performance/noexcept-swap.rst
  clang-tools-extra/test/clang-tidy/checkers/performance/noexcept-destructor.cpp
  
clang-tools-extra/test/clang-tidy/checkers/performance/noexcept-move-constructor.cpp
  clang-tools-extra/test/clang-tidy/checkers/performance/noexcept-swap.cpp

Index: clang-tools-extra/test/clang-tidy/checkers/performance/noexcept-swap.cpp
===
--- /dev/null
+++ clang-tools-extra/test/clang-tidy/checkers/performance/noexcept-swap.cpp
@@ -0,0 +1,203 @@
+// RUN: %check_clang_tidy %s performance-noexcept-swap %t -- -- -fexceptions
+
+void throwing_function() noexcept(false);
+void noexcept_function() noexcept;
+
+template 
+struct TemplateNoexceptWithInt {
+  static void f() {}
+};
+
+template <>
+struct TemplateNoexceptWithInt {
+  static void f() noexcept {}
+};
+
+class A {
+  void swap(A &);
+  // CHECK-MESSAGES: :[[@LINE-1]]:8: warning: swap functions should be marked noexcept [performance-noexcept-swap]
+  // CHECK-FIXES: void swap(A &) noexcept ;
+};
+
+void swap(A &, A &);
+// CHECK-MESSAGES: :[[@LINE-1]]:6: warning: swap functions should be marked noexcept [performance-noexcept-swap]
+// CHECK-FIXES: void swap(A &, A &) noexcept ;
+
+struct B {
+  static constexpr bool kFalse = false;
+  void swap(B &) noexcept(kFalse);
+  // CHECK-MESSAGES: :[[@LINE-1]]:27: warning: noexcept specifier on swap function evaluates to 'false' [performance-noexcept-swap]
+};
+
+void swap(B &, B &) noexcept(B::kFalse);
+// CHECK-MESSAGES: :[[@LINE-1]]:30: warning: noexcept specifier on swap function evaluates to 'false' [performance-noexcept-swap]
+
+template 
+struct C {
+  void swap(C&);
+  // CHECK-MESSAGES: :[[@LINE-1]]:8: warning: swap functions should be marked noexcept [performance-noexcept-swap]
+  // CHECK-FIXES: void swap(C&) noexcept ;
+};
+
+template 
+void swap(C&, C&);
+// CHECK-MESSAGES: :[[@LINE-1]]:6: warning: swap functions should be marked noexcept [performance-noexcept-swap]
+// CHECK-FIXES: void swap(C&, C&) noexcept ;
+void swap(C&, C&);
+// CHECK-MESSAGES: :[[@LINE-1]]:6: warning: swap functions should be marked noexcept [performance-noexcept-swap]
+// CHECK-FIXES: void swap(C&, C&) noexcept ;
+
+template 
+struct D {
+  static constexpr bool kFalse = false;
+  void swap(D &) noexcept(kFalse);
+  // CHECK-MESSAGES: :[[@LINE-1]]:27: warning: noexcept specifier on swap function evaluates to 'false' [performance-noexcept-swap]
+};
+
+template 
+void swap(D &, D &) noexcept(D::kFalse);
+// CHECK-MESSAGES: :[[@LINE-1]]:36: warning: noexcept specifier on swap function evaluates to 'false' [performance-noexcept-swap]
+void swap(D &, D &) noexcept(D::kFalse);
+// CHECK-MESSAGES: :[[@LINE-1]]:40: warning: noexcept specifier on swap function evaluates to 'false' [performance-noexcept-swap]
+
+struct E {
+  void swap(E &) noexcept(noexcept(throwing_function()));
+  // CHECK-MESSAGES: :[[@LINE-1]]:27: warning: noexcept specifier on swap function evaluates to 'false' [performance-noexcept-swap]
+};
+
+void swap(E &, E &) noexcept(noexcept(throwing_function()));
+// CHECK-MESSAGES: :[[@LINE-1]]:30: warning: noexcept specifier on swap function evaluates to 'false' [performance-noexcept-swap]
+
+template 
+struct F {
+  void swap(F &) noexcept(noexcept(throwing_function()));
+  // CHECK-MESSAGES: :[[@LINE-1]]:27: warning: noexcept specifier on swap function evaluates to 'false' [performance-noexcept-swap]
+};
+

[PATCH] D148697: [clang-tidy] Add more checks for functions which should be noexcept

2023-06-13 Thread Piotr Zegar via Phabricator via cfe-commits
PiotrZSL added inline comments.



Comment at: clang-tools-extra/docs/ReleaseNotes.rst:193
+- New alias :doc:`cppcoreguidelines-noexcept-destructor
+  ` to
+  :doc`performance-noexcept-destructor

you got spelling wrong in these, its clang-tidy, not tify



Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D148697/new/

https://reviews.llvm.org/D148697

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D148697: [clang-tidy] Add more checks for functions which should be noexcept

2023-06-13 Thread Piotr Zegar via Phabricator via cfe-commits
PiotrZSL accepted this revision.
PiotrZSL added a comment.

+-LGTM

Only one thing that could be still done here, is to extract some base class 
from those checks, and move common code there.
I will commit this tomorrow, so if you decide to change anything you can still 
do that, if not you can always do that in separate patch.




Comment at: 
clang-tools-extra/clang-tidy/performance/NoexceptDestructorCheck.cpp:19-23
+  Finder->addMatcher(functionDecl(unless(isImplicit()), unless(isDeleted()),
+  cxxDestructorDecl())
+ .bind("decl"),
+ this);
+}

start with `cxxDestructorDecl(unless(isImplicit())`, ..., no need for 
functionDecl.
Also here we may have some issues with template dependent code.



Comment at: 
clang-tools-extra/clang-tidy/performance/NoexceptMoveConstructorCheck.cpp:22
   Finder->addMatcher(
   cxxMethodDecl(unless(isImplicit()), unless(isDeleted()),
 anyOf(cxxConstructorDecl(isMoveConstructor()),

I think we could use TK_IgnoreUnlessSpelledInSource instead of all those 
isImplicit



Comment at: clang-tools-extra/clang-tidy/performance/NoexceptSwapCheck.cpp:21
+  Finder->addMatcher(
+  functionDecl(unless(isImplicit()), unless(isDeleted()), hasName("swap"))
+  .bind("decl"),

i dont think that swap functions can be deleted


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D148697/new/

https://reviews.llvm.org/D148697

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D148697: [clang-tidy] Add more checks for functions which should be noexcept

2023-06-13 Thread André Schackier via Phabricator via cfe-commits
AMS21 added a comment.

Patch is now open for 2+ weeks. If there are no more reviews, I would kindly 
ask for someone to push this on my behalf.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D148697/new/

https://reviews.llvm.org/D148697

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D148697: [clang-tidy] Add more checks for functions which should be noexcept

2023-05-28 Thread André Schackier via Phabricator via cfe-commits
AMS21 updated this revision to Diff 526327.
AMS21 added a comment.

Removed unrelated change


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D148697/new/

https://reviews.llvm.org/D148697

Files:
  clang-tools-extra/clang-tidy/cppcoreguidelines/CppCoreGuidelinesTidyModule.cpp
  clang-tools-extra/clang-tidy/performance/CMakeLists.txt
  clang-tools-extra/clang-tidy/performance/NoexceptDestructorCheck.cpp
  clang-tools-extra/clang-tidy/performance/NoexceptDestructorCheck.h
  clang-tools-extra/clang-tidy/performance/NoexceptMoveConstructorCheck.cpp
  clang-tools-extra/clang-tidy/performance/NoexceptMoveConstructorCheck.h
  clang-tools-extra/clang-tidy/performance/NoexceptSwapCheck.cpp
  clang-tools-extra/clang-tidy/performance/NoexceptSwapCheck.h
  clang-tools-extra/clang-tidy/performance/PerformanceTidyModule.cpp
  clang-tools-extra/clang-tidy/utils/ExceptionSpecAnalyzer.cpp
  clang-tools-extra/clang-tidy/utils/LexerUtils.cpp
  clang-tools-extra/clang-tidy/utils/LexerUtils.h
  clang-tools-extra/docs/ReleaseNotes.rst
  
clang-tools-extra/docs/clang-tidy/checks/cppcoreguidelines/noexcept-destructor.rst
  
clang-tools-extra/docs/clang-tidy/checks/cppcoreguidelines/noexcept-move-operations.rst
  clang-tools-extra/docs/clang-tidy/checks/cppcoreguidelines/noexcept-swap.rst
  clang-tools-extra/docs/clang-tidy/checks/list.rst
  clang-tools-extra/docs/clang-tidy/checks/performance/noexcept-destructor.rst
  clang-tools-extra/docs/clang-tidy/checks/performance/noexcept-swap.rst
  clang-tools-extra/test/clang-tidy/checkers/performance/noexcept-destructor.cpp
  
clang-tools-extra/test/clang-tidy/checkers/performance/noexcept-move-constructor.cpp
  clang-tools-extra/test/clang-tidy/checkers/performance/noexcept-swap.cpp

Index: clang-tools-extra/test/clang-tidy/checkers/performance/noexcept-swap.cpp
===
--- /dev/null
+++ clang-tools-extra/test/clang-tidy/checkers/performance/noexcept-swap.cpp
@@ -0,0 +1,203 @@
+// RUN: %check_clang_tidy %s performance-noexcept-swap %t -- -- -fexceptions
+
+void throwing_function() noexcept(false);
+void noexcept_function() noexcept;
+
+template 
+struct TemplateNoexceptWithInt {
+  static void f() {}
+};
+
+template <>
+struct TemplateNoexceptWithInt {
+  static void f() noexcept {}
+};
+
+class A {
+  void swap(A &);
+  // CHECK-MESSAGES: :[[@LINE-1]]:8: warning: swap functions should be marked noexcept [performance-noexcept-swap]
+  // CHECK-FIXES: void swap(A &) noexcept ;
+};
+
+void swap(A &, A &);
+// CHECK-MESSAGES: :[[@LINE-1]]:6: warning: swap functions should be marked noexcept [performance-noexcept-swap]
+// CHECK-FIXES: void swap(A &, A &) noexcept ;
+
+struct B {
+  static constexpr bool kFalse = false;
+  void swap(B &) noexcept(kFalse);
+  // CHECK-MESSAGES: :[[@LINE-1]]:27: warning: noexcept specifier on swap function evaluates to 'false' [performance-noexcept-swap]
+};
+
+void swap(B &, B &) noexcept(B::kFalse);
+// CHECK-MESSAGES: :[[@LINE-1]]:30: warning: noexcept specifier on swap function evaluates to 'false' [performance-noexcept-swap]
+
+template 
+struct C {
+  void swap(C&);
+  // CHECK-MESSAGES: :[[@LINE-1]]:8: warning: swap functions should be marked noexcept [performance-noexcept-swap]
+  // CHECK-FIXES: void swap(C&) noexcept ;
+};
+
+template 
+void swap(C&, C&);
+// CHECK-MESSAGES: :[[@LINE-1]]:6: warning: swap functions should be marked noexcept [performance-noexcept-swap]
+// CHECK-FIXES: void swap(C&, C&) noexcept ;
+void swap(C&, C&);
+// CHECK-MESSAGES: :[[@LINE-1]]:6: warning: swap functions should be marked noexcept [performance-noexcept-swap]
+// CHECK-FIXES: void swap(C&, C&) noexcept ;
+
+template 
+struct D {
+  static constexpr bool kFalse = false;
+  void swap(D &) noexcept(kFalse);
+  // CHECK-MESSAGES: :[[@LINE-1]]:27: warning: noexcept specifier on swap function evaluates to 'false' [performance-noexcept-swap]
+};
+
+template 
+void swap(D &, D &) noexcept(D::kFalse);
+// CHECK-MESSAGES: :[[@LINE-1]]:36: warning: noexcept specifier on swap function evaluates to 'false' [performance-noexcept-swap]
+void swap(D &, D &) noexcept(D::kFalse);
+// CHECK-MESSAGES: :[[@LINE-1]]:40: warning: noexcept specifier on swap function evaluates to 'false' [performance-noexcept-swap]
+
+struct E {
+  void swap(E &) noexcept(noexcept(throwing_function()));
+  // CHECK-MESSAGES: :[[@LINE-1]]:27: warning: noexcept specifier on swap function evaluates to 'false' [performance-noexcept-swap]
+};
+
+void swap(E &, E &) noexcept(noexcept(throwing_function()));
+// CHECK-MESSAGES: :[[@LINE-1]]:30: warning: noexcept specifier on swap function evaluates to 'false' [performance-noexcept-swap]
+
+template 
+struct F {
+  void swap(F &) noexcept(noexcept(throwing_function()));
+  // CHECK-MESSAGES: :[[@LINE-1]]:27: warning: noexcept specifier on swap function evaluates to 'false' [performance-noexcept-swap]
+};
+
+template 
+void swap(F &, F &) 

[PATCH] D148697: [clang-tidy] Add more checks for functions which should be noexcept

2023-05-28 Thread André Schackier via Phabricator via cfe-commits
AMS21 updated this revision to Diff 526326.
AMS21 marked 2 inline comments as done.
AMS21 added a comment.

Rename `cppcoreguidelines-noexcept-move-constructor` to 
`cppcoreguidelines-noexcept-move-operations`


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D148697/new/

https://reviews.llvm.org/D148697

Files:
  clang-tools-extra/clang-tidy/cppcoreguidelines/CppCoreGuidelinesTidyModule.cpp
  clang-tools-extra/clang-tidy/performance/CMakeLists.txt
  clang-tools-extra/clang-tidy/performance/NoexceptDestructorCheck.cpp
  clang-tools-extra/clang-tidy/performance/NoexceptDestructorCheck.h
  clang-tools-extra/clang-tidy/performance/NoexceptMoveConstructorCheck.cpp
  clang-tools-extra/clang-tidy/performance/NoexceptMoveConstructorCheck.h
  clang-tools-extra/clang-tidy/performance/NoexceptSwapCheck.cpp
  clang-tools-extra/clang-tidy/performance/NoexceptSwapCheck.h
  clang-tools-extra/clang-tidy/performance/PerformanceTidyModule.cpp
  clang-tools-extra/clang-tidy/utils/ExceptionSpecAnalyzer.cpp
  clang-tools-extra/clang-tidy/utils/LexerUtils.cpp
  clang-tools-extra/clang-tidy/utils/LexerUtils.h
  clang-tools-extra/docs/ReleaseNotes.rst
  
clang-tools-extra/docs/clang-tidy/checks/cppcoreguidelines/noexcept-destructor.rst
  
clang-tools-extra/docs/clang-tidy/checks/cppcoreguidelines/noexcept-move-operations.rst
  clang-tools-extra/docs/clang-tidy/checks/cppcoreguidelines/noexcept-swap.rst
  clang-tools-extra/docs/clang-tidy/checks/list.rst
  clang-tools-extra/docs/clang-tidy/checks/performance/noexcept-destructor.rst
  clang-tools-extra/docs/clang-tidy/checks/performance/noexcept-swap.rst
  clang-tools-extra/test/clang-tidy/checkers/performance/noexcept-destructor.cpp
  
clang-tools-extra/test/clang-tidy/checkers/performance/noexcept-move-constructor.cpp
  clang-tools-extra/test/clang-tidy/checkers/performance/noexcept-swap.cpp

Index: clang-tools-extra/test/clang-tidy/checkers/performance/noexcept-swap.cpp
===
--- /dev/null
+++ clang-tools-extra/test/clang-tidy/checkers/performance/noexcept-swap.cpp
@@ -0,0 +1,203 @@
+// RUN: %check_clang_tidy %s performance-noexcept-swap %t -- -- -fexceptions
+
+void throwing_function() noexcept(false);
+void noexcept_function() noexcept;
+
+template 
+struct TemplateNoexceptWithInt {
+  static void f() {}
+};
+
+template <>
+struct TemplateNoexceptWithInt {
+  static void f() noexcept {}
+};
+
+class A {
+  void swap(A &);
+  // CHECK-MESSAGES: :[[@LINE-1]]:8: warning: swap functions should be marked noexcept [performance-noexcept-swap]
+  // CHECK-FIXES: void swap(A &) noexcept ;
+};
+
+void swap(A &, A &);
+// CHECK-MESSAGES: :[[@LINE-1]]:6: warning: swap functions should be marked noexcept [performance-noexcept-swap]
+// CHECK-FIXES: void swap(A &, A &) noexcept ;
+
+struct B {
+  static constexpr bool kFalse = false;
+  void swap(B &) noexcept(kFalse);
+  // CHECK-MESSAGES: :[[@LINE-1]]:27: warning: noexcept specifier on swap function evaluates to 'false' [performance-noexcept-swap]
+};
+
+void swap(B &, B &) noexcept(B::kFalse);
+// CHECK-MESSAGES: :[[@LINE-1]]:30: warning: noexcept specifier on swap function evaluates to 'false' [performance-noexcept-swap]
+
+template 
+struct C {
+  void swap(C&);
+  // CHECK-MESSAGES: :[[@LINE-1]]:8: warning: swap functions should be marked noexcept [performance-noexcept-swap]
+  // CHECK-FIXES: void swap(C&) noexcept ;
+};
+
+template 
+void swap(C&, C&);
+// CHECK-MESSAGES: :[[@LINE-1]]:6: warning: swap functions should be marked noexcept [performance-noexcept-swap]
+// CHECK-FIXES: void swap(C&, C&) noexcept ;
+void swap(C&, C&);
+// CHECK-MESSAGES: :[[@LINE-1]]:6: warning: swap functions should be marked noexcept [performance-noexcept-swap]
+// CHECK-FIXES: void swap(C&, C&) noexcept ;
+
+template 
+struct D {
+  static constexpr bool kFalse = false;
+  void swap(D &) noexcept(kFalse);
+  // CHECK-MESSAGES: :[[@LINE-1]]:27: warning: noexcept specifier on swap function evaluates to 'false' [performance-noexcept-swap]
+};
+
+template 
+void swap(D &, D &) noexcept(D::kFalse);
+// CHECK-MESSAGES: :[[@LINE-1]]:36: warning: noexcept specifier on swap function evaluates to 'false' [performance-noexcept-swap]
+void swap(D &, D &) noexcept(D::kFalse);
+// CHECK-MESSAGES: :[[@LINE-1]]:40: warning: noexcept specifier on swap function evaluates to 'false' [performance-noexcept-swap]
+
+struct E {
+  void swap(E &) noexcept(noexcept(throwing_function()));
+  // CHECK-MESSAGES: :[[@LINE-1]]:27: warning: noexcept specifier on swap function evaluates to 'false' [performance-noexcept-swap]
+};
+
+void swap(E &, E &) noexcept(noexcept(throwing_function()));
+// CHECK-MESSAGES: :[[@LINE-1]]:30: warning: noexcept specifier on swap function evaluates to 'false' [performance-noexcept-swap]
+
+template 
+struct F {
+  void swap(F &) noexcept(noexcept(throwing_function()));
+  // CHECK-MESSAGES: :[[@LINE-1]]:27: warning: noexcept specifier on swap 

[PATCH] D148697: [clang-tidy] Add more checks for functions which should be noexcept

2023-05-28 Thread Piotr Zegar via Phabricator via cfe-commits
PiotrZSL accepted this revision.
PiotrZSL added a comment.
This revision is now accepted and ready to land.

On first glance, looks fine, but I didn't check it too deep.
Leave it open for 1-2 weeks. I will try to check it more deeply.

One thing that I see and do not like is duplication, maybe we could extract 
some "base check" from those 3 (in next step).




Comment at: 
clang-tools-extra/docs/clang-tidy/checks/cppcoreguidelines/noexcept-move-constructor.rst:5
+
+cppcoreguidelines-noexcept-move-constructor
+===

maybe then it should be called cppcoreguidelines-noexcept-move-operations



Comment at: clang-tools-extra/docs/clang-tidy/checks/list.rst:486
`cppcoreguidelines-non-private-member-variables-in-classes 
`_, 
`misc-non-private-member-variables-in-classes 
`_,
-   `cppcoreguidelines-use-default-member-init 
`_, 
`modernize-use-default-member-init `_,
+   `cppcoreguidelines-use-default-member-init 
`_, 
`modernize-use-default-member-init `_, 
"Yes"
`fuchsia-header-anon-namespaces `_, 
`google-build-namespaces `_,

this is out of scope of this change, verify this


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D148697/new/

https://reviews.llvm.org/D148697

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D148697: [clang-tidy] Add more checks for functions which should be noexcept

2023-05-28 Thread André Schackier via Phabricator via cfe-commits
AMS21 added a comment.

Bumping to ask for reviews


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D148697/new/

https://reviews.llvm.org/D148697

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits