eandrews 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));
----------------
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


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