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

G M gmisocpp at gmail.com
Mon Apr 21 17:58:12 PDT 2014


Yes this fixes it. Thanks very much!


On Tue, Apr 22, 2014 at 10:36 AM, Reid Kleckner <rnk at google.com> wrote:

> 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/20140422/f567e111/attachment.html>


More information about the cfe-commits mailing list