<div dir="ltr">Hi,<div><br></div><div>I'm getting the following assertion failure on the latest clang master:</div><div><br></div><div><div>  clang::CXXMethodDecl* clang::CXXRecordDecl::getLambdaStaticInvoker() const: Assertion `Invoker.size() == 1 && "More than one static invoker operator!"' failed.</div></div><div><br></div><div>I managed to narrow it down to the following test case which is basically a simplified version of <a href="https://github.com/llvm-mirror/clang/blob/master/test/Modules/merge-lambdas.cpp">https://github.com/llvm-mirror/clang/blob/master/test/Modules/merge-lambdas.cpp</a>:</div><div><br></div><div>$ clang++ -fmodules test.cpp</div><div><br></div><div>// BEGIN TEST CASE (test.cpp)</div><div><div>#pragma clang module build A</div><div>module A {}</div><div>#pragma clang module contents</div><div>#pragma clang module begin A</div><div>template<typename T> auto f() { return []{}; }</div><div>#pragma clang module end</div><div>#pragma clang module endbuild</div><div><br></div><div>#pragma clang module build B</div><div>module B {}</div><div>#pragma clang module contents</div><div>#pragma clang module begin B</div><div>#pragma clang module import A</div><div>inline auto x1() { return f<int>(); }</div><div>#pragma clang module end</div><div>#pragma clang module endbuild</div><div><br></div><div>#pragma clang module build C</div><div>module C {}</div><div>#pragma clang module contents</div><div>#pragma clang module begin C</div><div>#pragma clang module import A</div><div>inline auto y1() { return f<int>(); }</div><div>#pragma clang module end</div><div>#pragma clang module endbuild</div><div><br></div><div>#pragma clang module import B</div><div>#pragma clang module import C</div><div>using T = decltype(x1);</div><div>using T = decltype(y1);</div></div><div>// END TEST CASE</div><div><br></div><div>Should the assertion in question be relaxed or is there something missing in the merge to reconcile static invokers?</div><div><br></div><div>Cheers,</div><div>Victor</div></div>