[LLVMdev] Switching to the new MingW ABI

Reid Kleckner rnk at google.com
Tue Dec 10 14:01:28 PST 2013


I'll look into this.  I think we should just print the unadjusted type if
we have an adjusted function type under a member pointer.  This should be
an easy type printer fix.


On Tue, Dec 10, 2013 at 11:58 AM, Hans Wennborg <hans at chromium.org> wrote:

> On Mon, Dec 9, 2013 at 5:18 PM, Rafael EspĂ­ndola
> <rafael.espindola at gmail.com> wrote:
> > Mingw switched abis with the release of gcc 4.7
> > (http://gcc.gnu.org/gcc-4.7/changes.html). The main change is that now
> > mingw (like msvc) given thiscall calling convention to methods by
> > default.
> >
> > I think the last bug blocking us to support the new abi has just been
> > fixed. The question now is how to switch.
>
> I'm still seeing some test failures. For example,
> CXX/class.access/p6.cpp fails if I apply your patch and run with
> -triple i686-pc-mingw32:
>
> $ "D:/src/llvm/build.release/bin/./clang.EXE" "-cc1" -triple
> i686-pc-mingw32 "-internal-isystem"
> "D:\src\llvm\build.release\bin\..\lib\clang\3.4\include"
> "-fsyntax-only" "-verify"
> "D:\src\llvm\tools\clang\test\CXX\class.access\p6.cpp"
> error: 'error' diagnostics expected but not seen:
>   File D:\src\llvm\tools\clang\test\CXX\class.access\p6.cpp Line 180:
> 'operator void *(class test8::A::*)(void) const' is a private member
> of 'test8::A'
> error: 'error' diagnostics seen but not expected:
>   File D:\src\llvm\tools\clang\test\CXX\class.access\p6.cpp Line 180:
> 'operator void *(class test8::A::*)(void) __attribute__((thiscall))
> const' is a private member of 'test8::A'
> 2 errors generated.
>
> There are a handful other tests failing in the same way.
>
> It would be nice if we could make the TypePrinter not print the
> calling convention if it's the default one for the ABI, but
> TypePrinter doesn't have a lot of context.. no Sema, no ASTContext :/
>
>  - Hans
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20131210/81cee12c/attachment.html>


More information about the llvm-dev mailing list