[clang] [Clang][Sema]: Diagnose lambda to bool implicit casts (PR #83152)

Shafik Yaghmour via cfe-commits cfe-commits at lists.llvm.org
Wed Feb 28 18:17:46 PST 2024


================
@@ -16538,6 +16538,17 @@ void Sema::DiagnoseAlwaysNonNullPointer(Expr *E,
     }
   }
 
+  // Complain if we are converting a lambda expression to a boolean value
+  if (const auto *MCallExpr = dyn_cast<CXXMemberCallExpr>(E)) {
+    if (const auto *MRecordDecl = MCallExpr->getRecordDecl();
+        MRecordDecl && MRecordDecl->isLambda()) {
+      Diag(E->getExprLoc(), diag::warn_impcast_pointer_to_bool)
+          << /*LambdaPointerConversionOperatorType*/ 3
----------------
shafik wrote:

nitpick just to be consistent w/ [bugprone-argument-comment](https://clang.llvm.org/extra/clang-tidy/checks/bugprone/argument-comment.html), although I don't think it actually catches these cases.

https://github.com/llvm/llvm-project/pull/83152


More information about the cfe-commits mailing list