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

Aaron Ballman via cfe-commits cfe-commits at lists.llvm.org
Tue Feb 27 11:15:11 PST 2024


================
@@ -16538,6 +16538,27 @@ void Sema::DiagnoseAlwaysNonNullPointer(Expr *E,
     }
   }
 
+  // Complain if we are converting a lambda expression to a boolean value
+  if (auto *MCallExpr = dyn_cast<CXXMemberCallExpr>(E)) {
+    if (MCallExpr->getObjectType()->isRecordType()) {
+      if (auto *MRecordDecl = MCallExpr->getRecordDecl()) {
----------------
AaronBallman wrote:

```suggestion
  if (const auto *MCallExpr = dyn_cast<CXXMemberCallExpr>(E)) {
    if (MCallExpr->getObjectType()->isRecordType()) {
      if (const auto *MRecordDecl = MCallExpr->getRecordDecl()) {
```
Aiming for better const correctness, but if this doesn't work, don't worry about making the changes.

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


More information about the cfe-commits mailing list