riccibruno added inline comments.

================
Comment at: clang/include/clang/AST/DeclCXX.h:3843
   /// The declaration that this binding binds to part of.
+  // FIXME: Currently not set during deserialization of the BindingDecl;
+  // only set when the corresponding DecompositionDecl is visited.
----------------
rsmith wrote:
> !! This seems pretty bad; would it be hard to fix?
On further examination, I believe that`Decomp` is set but this is subtle, and 
it is likely that I am missing a case/wrong somehow.

The expression for the binding (`Binding`) will be deserialized when visiting 
the `BindingDecl`. This expression when non-null will always (as far as I can 
tell) contain a reference to the decomposition declaration so the decomposition 
will be deserialized, which will set `Decomp`.

The binding expression is null when the initializer is type-dependent. But 
then, since variable template decompositions are not allowed, the decomposition 
must occurs at block scope (`mayHaveDecompositionDeclarator`). This means that 
the `DecompositionDecl` will be read first.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D85613

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

Reply via email to