iains added a comment.

the first failure is like this:

  x-h.h:
  struct A {
    friend int operator+(const A &lhs, const A &rhs) {
      return 0;
    }
  };
  
  X.cpp:
  module;
  #include "x-h.h"
  export module X;
  
  export using ::A;

This does not mark *anything* in the GMF (x-h.h) as 'used', and so everything 
there is unreachable (and hence the fails).
I.e `export using ::A;` neither marks A as used or referenced.
I am not sure if we are supposed to special-case this - since 
`https://eel.is/c++draft/module#global.frag-3.6` explicitly says "In this 
determination, it is unspecified .. whether `using-declaration, ...  is 
replaced by the declarations they name prior to this determination,`
so .. not about how to proceed with this one at present;


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D126694

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

Reply via email to