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

Reply via email to