[all-commits] [llvm/llvm-project] a68638: [C++20] [Modules] [Reduced BMI] Handling Deduction...

Chuanqi Xu via All-commits all-commits at lists.llvm.org
Mon Jun 3 00:00:17 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: a68638bf6a6a5cb60947753ccaf7d1de80f6c89e
      https://github.com/llvm/llvm-project/commit/a68638bf6a6a5cb60947753ccaf7d1de80f6c89e
  Author: Chuanqi Xu <yedeng.yd at linux.alibaba.com>
  Date:   2024-06-03 (Mon, 03 Jun 2024)

  Changed paths:
    M clang/lib/Serialization/ASTWriterDecl.cpp
    A clang/test/Modules/pr93859.cppm

  Log Message:
  -----------
  [C++20] [Modules] [Reduced BMI] Handling Deduction Guide in reduced BMI
carefully

Close https://github.com/llvm/llvm-project/issues/93859

The direct pattern of the issue is that, in a reduced BMI, we're going
to wrtie a class but we didn't write the deduction guide. Although we
handled deduction guide, but we tried to record the found deduction
guide from `noload_lookup` directly.

It is slightly problematic if the found deduction guide is from AST.
e.g.,

```
module;
export module m;
import xxx; // Also contains the class and the deduction guide
...
```

Then when we writes the class in the current file, we tried to record
the deduction guide, but `noload_lookup` returns the deduction guide
from the AST file then we didn't record the local deduction guide. Then
mismatch happens.

To mitiagte the problem, we tried to record the canonical declaration
for the decution guide.



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list