ChuanqiXu9 wrote: > We saw some failures internally with this patch: > > * `"'absl::AnyInvocable<void () &&>' has different definitions in different > modules;".` > Probably related to the template arguments stability you mention. > * `"No type named 'MemberType' in 'some_object::Traits<MyImportantClass>'"`. > I suspect that's exposing some bug in modules that we were lucky to avoid > before. > * `'std::pointer_traits<const proto2::FieldDescriptor **>::pointer_to' from > module '<stl>/optional' is not present in definition of > 'std::pointer_traits<const proto2::FieldDescriptor **>' provided earlier` > Probably the same root cause as the previous item, but shows up as a > different error message (although it does point out that we might have some > diamond-dependency-style problem here). > * Code of the form > > ```c++ > auto* stream = new (arena_alloc(param.call->call())) Callback(); > param.context->Begin([stream](bool) { stream->Done(); }); > ``` > > produces really weird error (as if lambda captured something from the line > **prior to lambda**): > > ```shell > error: variable 'param' cannot be implicitly captured in a lambda with no > capture-default specified > 679 | auto* stream = new (arena_alloc(param.call->call())) > Callback(); > | ^ > note: while substituting into a lambda expression here > 680 | param.context->Begin([stream](bool) { stream->Done(); }); > ``` > > Looks unexpected. I suspect that it's a different issue (because of the way > we test these things, we also include some extra commits from head that could > have additional problems). However, I still wanted to mention it in case > people here think it might be related. > > * Crashes. They need more investigation. > > We will to provide reproducers as soon as possible, but please bear with us > for some time as module-related issues are very hard to minimize and share as > a small code example due to lack of infrastructure. They normally happen on > complicated build graphs with too many dependencies to easily reduce. > However, I am optimistic at least about the template arguments issue because > it seems to happen at `absl` layer, which has relatively few dependencies.
Thanks for the high-quality reports. Looking forward to the reduced case : ) https://github.com/llvm/llvm-project/pull/76774 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits