This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Bug in Mingw32 C++ compiler (platform: Windows NT 4) related to calling conventions


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]