v.g.vassilev added inline comments.
================ Comment at: clang/unittests/Interpreter/InterpreterTest.cpp:237-240 + std::string MangledName = MangleName(TmpltSpec); + typedef int (*TemplateSpecFn)(void *); + auto fn = (TemplateSpecFn)cantFail(Interp->getSymbolAddress(MangledName)); + EXPECT_EQ(42, fn(NewA)); ---------------- eandrews wrote: > v.g.vassilev wrote: > > erichkeane wrote: > > > aaron.ballman wrote: > > > > This test is broken for some of our internal build bots at Intel. I > > > > think something suspicious is going on here, but I'm not certain of the > > > > intent behind the test, so I'm not certain the best way to fix it. The > > > > behavior of the test is that on an x86 Windows machine, sometimes this > > > > particular test fails: > > > > ``` > > > > [ RUN ] IncrementalProcessing.InstantiateTemplate^M > > > > unknown file: error: SEH exception with code 0x3221225477 thrown in the > > > > test body.^M > > > > [ FAILED ] IncrementalProcessing.InstantiateTemplate (35 ms)^M > > > > ``` > > > > but it's not a consistent failure (seems to happen about one out of > > > > every three runs). > > > > > > > > `callme` is a templated member function of `B` but here we're trying to > > > > call it like it's a free function. That's... not good. We could either > > > > make `callme` a `static` member function so that it can be called in > > > > this manner, or we could try to come up with a magic incantation to > > > > call it as a PMF. > > > > > > > > Can you investigate, @v.g.vassilev? If it is going to take considerable > > > > time to resolve, it might be worth reverting temporarily. Thanks! > > > To be perhaps succinct, the problem is calling Pointer-to-member-function > > > as a free-function. The cast on line 239 is completely invalid, and > > > can't be done in C++ code itself without UB. > > > > > > We believe this shows up on x86 in particular since there is ALSO a > > > calling-convention mismatch here, but this cast to TemplateSpecFn seems > > > completely invalid to me. > > Thanks for the ping, @aaron.ballman. Does making the function static fixes > > it? If it does, please go ahead and commit the fix otherwise I can do it in > > 12 hours. > > > > If it does not fix it, could you share the bot logs or at least the cmake > > configure line and the platform? > Committed here - https://reviews.llvm.org/rG3ad0c6b75ea5 Thanks! CHANGES SINCE LAST ACTION https://reviews.llvm.org/D112663/new/ https://reviews.llvm.org/D112663 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits