HerrCai0907 added inline comments.

================
Comment at: clang/lib/Sema/SemaInit.cpp:4433
+        // where H is the initializer list.
+        Sequence.AddQualificationConversionStep(cv1T1, VK_XValue);
+      }
----------------
erichkeane wrote:
> Is `VK_XValue` correct here?  The standards quote says it is a PRValue?
The original text of standards in https://eel.is/c++draft/dcl.init.list is 
> List-initialization of an object or reference of type T is defined as follows:

> 3.10 Otherwise, if T is a reference type, a prvalue is generated. The prvalue 
> initializes its result object by copy-list-initialization from the 
> initializer list. The prvalue is then used to direct-initialize the 
> reference. The type of the prvalue is the type referenced by T, unless T is 
> “reference to array of unknown bound of U”, in which case the type of the 
> prvalue is the type of x in the declaration U x[] H, where H is the 
> initializer list.

My understand is that a PRValue is generated by XValue initialization list.

By the way, I have try to use VK_PRValue, it cause the assert failed:
can't implicitly cast glvalue to prvalue with this cast kind: NoOp 


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D151515

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

Reply via email to