Revert "[Modules] Remove unnecessary check when generating name lookup table in ASTWr...
authorKrasimir Georgiev <krasimir@google.com>
Fri, 10 Mar 2023 13:08:36 +0000 (14:08 +0100)
committerKrasimir Georgiev <krasimir@google.com>
Fri, 10 Mar 2023 13:14:55 +0000 (14:14 +0100)
commit1e0709167f5edd330889f51bb203c458bdb5e359
tree147b1d0432319d7742623ea684ff86fbcd2fef33
parent4d96a6b7be08e63576af1b3c177a9a24795bae88
Revert "[Modules] Remove unnecessary check when generating name lookup table in ASTWriter"

This reverts commit db987b9589be1eb604fcb74c85b410469e31485f.

We're seeing failures in modules-enabled builds from within stdlib after
this commit. Errors look like:

In module '...stl_cc_library':
...optional:560:38: error: 'std::__optional_copy_assign_base<unsigned
long>::__optional_copy_assign_base' from module '...optional' is not
present in definition of 'std::__optional_copy_assign_base<unsigned
long>' in module '...optional'
    using __optional_move_base<_Tp>::__optional_move_base;

In module '...stl_cc_library':
...optional:771:11: error: no matching constructor for initialization of '__optional_move_assign_base<unsigned long>'
        : __base(in_place, _VSTD::forward<_Up>(__v)) {}
          ^      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
llvm-project/clang/include/clang/Basic/CodeGenOptions.h:448:57: note: in instantiation of function template specialization 'std::optional<unsigned long>::optional<int, 0>' requested here
  std::optional<uint64_t> DiagnosticsHotnessThreshold = 0;

I don't have a self-contained reproducer at this point. I'm hoping that
we may be able to share more information about these issues later, if
necessary.
clang/include/clang/Serialization/ASTWriter.h
clang/lib/Serialization/ASTWriter.cpp
clang/test/Modules/pr61065.cppm [deleted file]