[PATCH] D136554: Implement CWG2631

Jordan Rupprecht via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu Dec 22 10:05:34 PST 2022


rupprecht added a comment.

Glad the test case made sense to you, it was convoluted to me :)

Still seeing one more error, and it's not modules-related so I might be able to get it reduced today. Generally, it looks like this:

  struct Inner {
    Foo& foo;
    const std::unique_ptr<...> x = blah(blah(
        &foo.bar()));
  };
  
  class Outer {
   private:
    Foo foo_;
    Inner inner{foo_};
  }

With the error being:

  error: 'Inner::foo' is not a member of class 'Outer'
        &foo.bar()));

I think this build failure is wrong? `foo` should be referring to the definition inside `Inner`, but clang seems to be expecting it to refer to something in `Outer`.

Is it expected that this patch will cause some previously "working" code to no longer build? At some point I expect to hand you a reduction that's actually a bug in the user code.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D136554



More information about the cfe-commits mailing list