ChuanqiXu added a comment.

In D129748#3666511 <https://reviews.llvm.org/D129748#3666511>, @tahonermann 
wrote:

> I can imagine several ways in which things may be going wrong. Perhaps 
> (de)serialization is switching to a canonical declaration when it should not 
> be (e.g., reading/writing a definition when only a declaration should be). 
> Perhaps, for implicitly instantiated declarations (at least for ones for 
> which `__preferred_name__` is attached), separate non-defining and defining 
> declarations should be (de)serialized (in the dumps above, there appears to 
> only be a single address associated with the `basic_string_view<char>` 
> specialization). Perhaps `ClassTemplateSpecializationDecl` should be 
> (de)serialized such that a (valid) non-defining declaration is created before 
> attempting to load anything else that might lead to recursion to the same 
> declaration (the intent being that an early return when recursion is detected 
> still yields a valid incomplete declaration).

I feel like the problem may come in the process of instantiation. For example, 
if we add the attribute for  `CXXRecordDecl` at `0x7913a18` in this specific 
case, it would be fine. Although it **may** be OK to address the problem in 
serialization/deserialization side too, I just feel like it might not be worhy 
now..


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

https://reviews.llvm.org/D129748

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

Reply via email to