[LLVMdev] Switching to the new MingW ABI
Hans Wennborg
hans at chromium.org
Tue Dec 10 11:58:39 PST 2013
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
More information about the llvm-dev
mailing list