Hi Michal,

AArch64 bots are broken as well, logs are available at:
http://lab.llvm.org:8011/builders/clang-cmake-aarch64-quick/builds/15717/steps/ninja%20check%201/logs/stdio

Cheers,
Yvan
On Mon, 15 Oct 2018 at 20:39, Ulrich Weigand via Phabricator via
cfe-commits <cfe-commits@lists.llvm.org> wrote:
>
> uweigand added a comment.
>
> In https://reviews.llvm.org/D52840#1265615, @mgorny wrote:
>
> > The first one seems to indicate that your `libclang.so` is broken in 
> > release mode (optimization error?). The second one is correct (some of the 
> > tests test for errors, and apparently don't silence the messages).
>
>
> Ok, thanks for the clarification on the second point.
>
> As to the first issue, it turned out to be more complicated.  The wrong value 
> results from this call in CursorVisitor::Visit
>
>   switch (Visitor(Cursor, Parent, ClientData)) {
>
> This is a callback routine passed in from the caller, which in the case of 
> the Python bindings means that an FFI closure is being called.
>
> Now, due to a historical quirk in the FFI ABI, return values of integral type 
> smaller than the register word size must be passed as the special "ffi_arg" 
> type when using FFI (either for calls or for closures).  It seems the Python 
> 2.7 code that interfaces with FFI does not correctly respect this.  As a 
> result, it seems that when the closure returns a 32-bit value, it is not 
> properly extended and the high bits of the return register contain garbage.
>
> But that violates our ABI, which requires extension to full register size.   
> And it seems the clang code, when built with optimization, does indeed rely 
> on that ABI guarantee.
>
> So there's a bug in Python (or depending on how you want to look at it, in 
> libffi -- that part of the interface has also long been under-documented 
> unfortunately), which hits on our platform.  I'll see if I can do anything 
> about that, but for now we'll probably want to disable those tests on SystemZ.
>
>
> Repository:
>   rC Clang
>
> https://reviews.llvm.org/D52840
>
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits@lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to