MinGW: Define __stdcall&co when -fms-extensions is disabled

Reid Kleckner rnk at google.com
Mon Apr 21 15:36:45 PDT 2014


I think this is bad Twine usage.  Does r206804 fix your problem?


On Mon, Apr 21, 2014 at 3:19 PM, G M <gmisocpp at gmail.com> wrote:

> Hi Reid
>
> It seems that after applying patch 206791 with the above title, I get the
> errors shown below, where I think I didn't get them before that patch.
> I don't know if the patch is incorrect or insufficient or just exposes
> issues elsewhere now but it seems to effect my mingw/gcc 4,8.2 environment
> on Windows (which I'm using with/to build clang++) builds, so I thought I'd
> draw your attention to the error messages in case that helps.
>
> clang is up to date and built from trunk as of right now.
>
> Thanks
>
> c:\test>clang++ -nostdinc++ -I/libcxx/include mm.cpp
> In file included from mm.cpp:1:
> In file included from /libcxx/include\cstdio:100:
> c:\mingw\bin\..\lib\clang\3.5.0\../../../x86_64-w64-mingw32/include\stdio.h:84:17:
> error: expected ';' after top level
>       declarator
>   _CRTIMP FILE *__cdecl __iob_func(void);
>                 ^
> <built-in>:161:24: note: expanded from here
> #define __cdecl cdecl__))
>                        ^
> In file included from mm.cpp:1:
> In file included from /libcxx/include\cstdio:100:
> c:\mingw\bin\..\lib\clang\3.5.0\../../../x86_64-w64-mingw32/include\stdio.h:141:7:
> error: redefinition of 'cdecl__' with a
>       different type: 'int' vs 'FILE *' (aka '_iobuf *')
>   int __cdecl __mingw_sscanf(const char * __restrict__ _Src,const char *
> __restrict__ _Format,...);
>       ^
> <built-in>:161:17: note: expanded from here
> #define __cdecl cdecl__))
>                 ^
> c:\mingw\bin\..\lib\clang\3.5.0\../../../x86_64-w64-mingw32/include\stdio.h:84:17:
> note: previous definition is here
>   _CRTIMP FILE *__cdecl __iob_func(void);
>                 ^
> <built-in>:161:17: note: expanded from here
> #define __cdecl cdecl__))
>                 ^
> In file included from mm.cpp:1:
> In file included from /libcxx/include\cstdio:100:
> c:\mingw\bin\..\lib\clang\3.5.0\../../../x86_64-w64-mingw32/include\stdio.h:141:7:
> error: expected ';' after top level
>       declarator
>   int __cdecl __mingw_sscanf(const char * __restrict__ _Src,const char *
> __restrict__ _Format,...);
>       ^
> <built-in>:161:24: note: expanded from here
> #define __cdecl cdecl__))
>                        ^
> In file included from mm.cpp:1:
> In file included from /libcxx/include\cstdio:100:
> c:\mingw\bin\..\lib\clang\3.5.0\../../../x86_64-w64-mingw32/include\stdio.h:144:7:
> error: redefinition of 'cdecl__' with a
>       different type: 'int' vs 'FILE *' (aka '_iobuf *')
>   int __cdecl __mingw_vsscanf (const char * __restrict__ _Str,const char *
> __restrict__ Format,va_list argp);
>       ^
> <built-in>:161:17: note: expanded from here
> #define __cdecl cdecl__))
>                 ^
> c:\mingw\bin\..\lib\clang\3.5.0\../../../x86_64-w64-mingw32/include\stdio.h:84:17:
> note: previous definition is here
>   _CRTIMP FILE *__cdecl __iob_func(void);
>                 ^
> <built-in>:161:17: note: expanded from here
> #define __cdecl cdecl__))
>                 ^
> In file included from mm.cpp:1:
> In file included from /libcxx/include\cstdio:100:
> c:\mingw\bin\..\lib\clang\3.5.0\../../../x86_64-w64-mingw32/include\stdio.h:144:7:
> error: expected ';' after top level
>       declarator
>   int __cdecl __mingw_vsscanf (const char * __restrict__ _Str,const char *
> __restrict__ Format,va_list argp);
>       ^
> <built-in>:161:24: note: expanded from here
> #define __cdecl cdecl__))
>                        ^
> In file included from mm.cpp:1:
> In file included from /libcxx/include\cstdio:100:
> c:\mingw\bin\..\lib\clang\3.5.0\../../../x86_64-w64-mingw32/include\stdio.h:147:7:
> error: redefinition of 'cdecl__' with a
>       different type: 'int' vs 'FILE *' (aka '_iobuf *')
>   int __cdecl __mingw_scanf(const char * __restrict__ _Format,...);
>       ^
> <built-in>:161:17: note: expanded from here
> #define __cdecl cdecl__))
>                 ^
> c:\mingw\bin\..\lib\clang\3.5.0\../../../x86_64-w64-mingw32/include\stdio.h:84:17:
> note: previous definition is here
>   _CRTIMP FILE *__cdecl __iob_func(void);
>                 ^
> <built-in>:161:17: note: expanded from here
> #define __cdecl cdecl__))
>                 ^
> In file included from mm.cpp:1:
> In file included from /libcxx/include\cstdio:100:
> c:\mingw\bin\..\lib\clang\3.5.0\../../../x86_64-w64-mingw32/include\stdio.h:147:7:
> error: expected ';' after top level
>       declarator
>   int __cdecl __mingw_scanf(const char * __restrict__ _Format,...);
>       ^
> <built-in>:161:24: note: expanded from here
> #define __cdecl cdecl__))
>                        ^
> In file included from mm.cpp:1:
> In file included from /libcxx/include\cstdio:100:
> c:\mingw\bin\..\lib\clang\3.5.0\../../../x86_64-w64-mingw32/include\stdio.h:150:7:
> error: redefinition of 'cdecl__' with a
>       different type: 'int' vs 'FILE *' (aka '_iobuf *')
>   int __cdecl __mingw_vscanf(const char * __restrict__ Format, va_list
> argp);
>       ^
> <built-in>:161:17: note: expanded from here
> #define __cdecl cdecl__))
>                 ^
> c:\mingw\bin\..\lib\clang\3.5.0\../../../x86_64-w64-mingw32/include\stdio.h:84:17:
> note: previous definition is here
>   _CRTIMP FILE *__cdecl __iob_func(void);
>                 ^
> <built-in>:161:17: note: expanded from here
> #define __cdecl cdecl__))
>                 ^
> In file included from mm.cpp:1:
> In file included from /libcxx/include\cstdio:100:
> c:\mingw\bin\..\lib\clang\3.5.0\../../../x86_64-w64-mingw32/include\stdio.h:150:7:
> error: expected ';' after top level
>       declarator
>   int __cdecl __mingw_vscanf(const char * __restrict__ Format, va_list
> argp);
>       ^
> <built-in>:161:24: note: expanded from here
> #define __cdecl cdecl__))
>                        ^
> In file included from mm.cpp:1:
> In file included from /libcxx/include\cstdio:100:
> c:\mingw\bin\..\lib\clang\3.5.0\../../../x86_64-w64-mingw32/include\stdio.h:153:7:
> error: redefinition of 'cdecl__' with a
>       different type: 'int' vs 'FILE *' (aka '_iobuf *')
>   int __cdecl __mingw_fscanf(FILE * __restrict__ _File,const char *
> __restrict__ _Format,...);
>       ^
> <built-in>:161:17: note: expanded from here
> #define __cdecl cdecl__))
>                 ^
> c:\mingw\bin\..\lib\clang\3.5.0\../../../x86_64-w64-mingw32/include\stdio.h:84:17:
> note: previous definition is here
>   _CRTIMP FILE *__cdecl __iob_func(void);
>                 ^
> <built-in>:161:17: note: expanded from here
> #define __cdecl cdecl__))
>                 ^
> In file included from mm.cpp:1:
> In file included from /libcxx/include\cstdio:100:
> c:\mingw\bin\..\lib\clang\3.5.0\../../../x86_64-w64-mingw32/include\stdio.h:153:7:
> error: expected ';' after top level
>       declarator
>   int __cdecl __mingw_fscanf(FILE * __restrict__ _File,const char *
> __restrict__ _Format,...);
>       ^
> <built-in>:161:24: note: expanded from here
> #define __cdecl cdecl__))
>                        ^
> In file included from mm.cpp:1:
> In file included from /libcxx/include\cstdio:100:
> c:\mingw\bin\..\lib\clang\3.5.0\../../../x86_64-w64-mingw32/include\stdio.h:156:7:
> error: redefinition of 'cdecl__' with a
>       different type: 'int' vs 'FILE *' (aka '_iobuf *')
>   int __cdecl __mingw_vfscanf (FILE * __restrict__ fp, const char *
> __restrict__ Format,va_list argp);
>       ^
> <built-in>:161:17: note: expanded from here
> #define __cdecl cdecl__))
>                 ^
> c:\mingw\bin\..\lib\clang\3.5.0\../../../x86_64-w64-mingw32/include\stdio.h:84:17:
> note: previous definition is here
>   _CRTIMP FILE *__cdecl __iob_func(void);
>                 ^
> <built-in>:161:17: note: expanded from here
> #define __cdecl cdecl__))
>                 ^
> In file included from mm.cpp:1:
> In file included from /libcxx/include\cstdio:100:
> c:\mingw\bin\..\lib\clang\3.5.0\../../../x86_64-w64-mingw32/include\stdio.h:156:7:
> error: expected ';' after top level
>       declarator
>   int __cdecl __mingw_vfscanf (FILE * __restrict__ fp, const char *
> __restrict__ Format,va_list argp);
>       ^
> <built-in>:161:24: note: expanded from here
> #define __cdecl cdecl__))
>                        ^
> In file included from mm.cpp:1:
> In file included from /libcxx/include\cstdio:100:
> c:\mingw\bin\..\lib\clang\3.5.0\../../../x86_64-w64-mingw32/include\stdio.h:160:7:
> error: redefinition of 'cdecl__' with a
>       different type: 'int' vs 'FILE *' (aka '_iobuf *')
>   int __cdecl __mingw_vsnprintf(char * __restrict__ _DstBuf,size_t
> _MaxCount,const char * __restrict__ _Format,
>       ^
> <built-in>:161:17: note: expanded from here
> #define __cdecl cdecl__))
>                 ^
> c:\mingw\bin\..\lib\clang\3.5.0\../../../x86_64-w64-mingw32/include\stdio.h:84:17:
> note: previous definition is here
>   _CRTIMP FILE *__cdecl __iob_func(void);
>                 ^
> <built-in>:161:17: note: expanded from here
> #define __cdecl cdecl__))
>                 ^
> In file included from mm.cpp:1:
> In file included from /libcxx/include\cstdio:100:
> c:\mingw\bin\..\lib\clang\3.5.0\../../../x86_64-w64-mingw32/include\stdio.h:160:7:
> error: expected ';' after top level
>       declarator
>   int __cdecl __mingw_vsnprintf(char * __restrict__ _DstBuf,size_t
> _MaxCount,const char * __restrict__ _Format,
>       ^
> <built-in>:161:24: note: expanded from here
> #define __cdecl cdecl__))
>                        ^
> In file included from mm.cpp:1:
> In file included from /libcxx/include\cstdio:100:
> c:\mingw\bin\..\lib\clang\3.5.0\../../../x86_64-w64-mingw32/include\stdio.h:164:7:
> error: redefinition of 'cdecl__' with a
>       different type: 'int' vs 'FILE *' (aka '_iobuf *')
>   int __cdecl __mingw_snprintf(char * __restrict__ s, size_t n, const char
> * __restrict__  format, ...);
>       ^
> <built-in>:161:17: note: expanded from here
> #define __cdecl cdecl__))
>                 ^
> c:\mingw\bin\..\lib\clang\3.5.0\../../../x86_64-w64-mingw32/include\stdio.h:84:17:
> note: previous definition is here
>   _CRTIMP FILE *__cdecl __iob_func(void);
>                 ^
> <built-in>:161:17: note: expanded from here
> #define __cdecl cdecl__))
>                 ^
> In file included from mm.cpp:1:
> In file included from /libcxx/include\cstdio:100:
> c:\mingw\bin\..\lib\clang\3.5.0\../../../x86_64-w64-mingw32/include\stdio.h:164:7:
> error: expected ';' after top level
>       declarator
>   int __cdecl __mingw_snprintf(char * __restrict__ s, size_t n, const char
> * __restrict__  format, ...);
>       ^
> <built-in>:161:24: note: expanded from here
> #define __cdecl cdecl__))
>                        ^
> In file included from mm.cpp:1:
> In file included from /libcxx/include\cstdio:100:
> c:\mingw\bin\..\lib\clang\3.5.0\../../../x86_64-w64-mingw32/include\stdio.h:167:7:
> error: redefinition of 'cdecl__' with a
>       different type: 'int' vs 'FILE *' (aka '_iobuf *')
>   int __cdecl __mingw_printf(const char * __restrict__ , ... )
> __MINGW_NOTHROW;
>       ^
> <built-in>:161:17: note: expanded from here
> #define __cdecl cdecl__))
>                 ^
> c:\mingw\bin\..\lib\clang\3.5.0\../../../x86_64-w64-mingw32/include\stdio.h:84:17:
> note: previous definition is here
>   _CRTIMP FILE *__cdecl __iob_func(void);
>                 ^
> <built-in>:161:17: note: expanded from here
> #define __cdecl cdecl__))
>                 ^
> In file included from mm.cpp:1:
> In file included from /libcxx/include\cstdio:100:
> c:\mingw\bin\..\lib\clang\3.5.0\../../../x86_64-w64-mingw32/include\stdio.h:167:7:
> error: expected ';' after top level
>       declarator
>   int __cdecl __mingw_printf(const char * __restrict__ , ... )
> __MINGW_NOTHROW;
>       ^
> <built-in>:161:24: note: expanded from here
> #define __cdecl cdecl__))
>                        ^
> fatal error: too many errors emitted, stopping now [-ferror-limit=]
> 20 errors generated.
> c:\test>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20140421/85ed6b4e/attachment.html>


More information about the cfe-commits mailing list