vsavchenko added inline comments.

================
Comment at: clang/lib/StaticAnalyzer/Core/LoopUnrolling.cpp:185-186
+      return FD->getType()->isReferenceType();
+    } else {
+      assert(false && "Unknown captured variable");
+    }
----------------
AbbasSabra wrote:
> vsavchenko wrote:
> > But actually, it's a bit different with this one. I don't know exact 
> > details and rules how clang sema fills in the class for lambda.
> > According to [[ https://en.cppreference.com/w/cpp/language/lambda | 
> > cppreference ]]:
> > > For the entities that are captured by reference (with the default capture 
> > > [&] or when using the character &, e.g. [&a, &b, &c]), it is unspecified 
> > > if additional data members are declared in the closure type
> > 
> > It can be pretty much specified in clang, that's true, but it looks like in 
> > `DeadStoreChecker` we have a very similar situation and we do not assume 
> > that captured variable always have a corresponding field.
> Yes, I based this on the fact that DeadStoreChecker considers it possible, 
> but I have never faced a case where it does not have a corresponding field.
It still would be good to have some proof that it is indeed like this or simply 
fallback into returning true (which you already do when in doubt).


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D102273

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

Reply via email to