This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Bug in Mingw32 C++ compiler (platform: Windows NT 4) related to calling conventions
- To: <gcc-bugs at gcc dot gnu dot org>
- Subject: Bug in Mingw32 C++ compiler (platform: Windows NT 4) related to calling conventions
- From: "Lennert Ploeger" <lennert at nki dot nl>
- Date: Thu, 3 Aug 2000 13:08:27 +0200
- Cc: "Lennert Ploeger" <lennert at nki dot nl>
GCC version: gcc version 2.95.2 19991024 (release)
system: Window NT 4 (SP6)
Command line: gcc -v --save-temps CallConvBug.cpp -o CallConvBug
Command output:
Reading specs from
E:\lang\mingw295\bin\..\lib\gcc-lib\i386-mingw32\2.95.2\specs
gcc version 2.95.2 19991024 (release)
E:\lang\mingw295\bin\..\lib\gcc-lib\i386-mingw32\2.95.2\cpp.exe -lang-c++ -v
-i
prefix
E:\lang\mingw295\bin\..\lib/gcc-lib/i386-mingw32\2.95.2\ -D__GNUC__=2 -D_
_GNUG__=2 -D__GNUC_MINOR__=95 -D__cplusplus -Di386 -D_WIN32 -DWIN32 -D__WIN3
2__
-D__MINGW32__=0.2 -DWINNT -D_X86_=1 -D__STDC__=1 -D__stdcall=__attribute__((
__st
dcall__)) -D_stdcall=__attribute__((__stdcall__)) -D__cdecl=__attribute__((_
_cde
cl__)) -D__declspec(x)=__attribute__((x)) -D__i386__ -D_WIN32 -D__WIN32__ -D
__WI
N32__ -D__MINGW32__=0.2 -D__WINNT__ -D_X86_=1 -D__STDC__=1 -D__stdcall=__att
ribu
te__((__stdcall__)) -D___stdcall__=__attribute__((__stdcall__)) -D__cdecl=__
attr
ibute__((__cdecl__)) -D__declspec(x)=__attribute__((x)) -D__i386 -D__WIN32 -
D__W
INNT -D___stdcall=__attribute__((__stdcall__)) -Asystem(winnt) -Acpu(i386) -
Amac
hine(i386) -D__EXCEPTIONS -remap -Acpu(i386) -Amachine(i386) -Di386 -D__i386
-D_
_i386__ CallConvBug.cpp CallConvBug.ii
GNU CPP version 2.95.2 19991024 (release) (80386, BSD syntax)
#include "..." search starts here:
#include <...> search starts here:
E:\lang\mingw295\bin\..\lib\gcc-lib\i386-mingw32\2.95.2\..\..\..\..\include\
g++
-3
E:\lang\mingw295\bin\..\lib\gcc-lib\i386-mingw32\2.95.2\..\..\..\..\include
E:\lang\mingw295\bin\..\lib\gcc-lib\i386-mingw32\2.95.2\..\..\..\..\i386-min
gw3
2\include
E:\lang\mingw295\bin\..\lib\gcc-lib\i386-mingw32\2.95.2\include
End of search list.
The following default directories have been omitted from the search path:
/usr/local/i386-mingw32/include
End of omitted list.
E:\lang\mingw295\bin\..\lib\gcc-lib\i386-mingw32\2.95.2\cc1plus.exe
CallConvBug
.ii -quiet -dumpbase CallConvBug.cc -version -o CallConvBug.s
GNU C++ version 2.95.2 19991024 (release) (i386-mingw32) compiled by GNU C
versi
on 2.95.2 19991024 (release).
CallConvBug.cpp: In function `int main()':
CallConvBug.cpp:20: no matching function for call to `avsquirt::avsquirt
(void (
&)())'
CallConvBug.cpp:10: candidates are: avsquirt::avsquirt(void (*)())
The problem is that the compiler mixes up the calling conventions for
function types with the same prototype. Attached is the zipped preprocessor
output, as requested.
Bye,
Lennert.
CallConvBug.zip