Compiling the following program:

#define STDCALL __attribute__((stdcall))

struct  B1 {
        int x;
        virtual int STDCALL bar(int x) = 0;
};

struct  B2 {
        int x;
        virtual int STDCALL foo(int x) = 0;
};

struct D: B1, B2 {
        int a;
        int STDCALL bar(int n);
        int STDCALL foo(int n);
};

int STDCALL
D::bar(int n) {
        return a + n;
}

int STDCALL
D::foo(int n) {
        return a + n;
}

with "gcc -x c++ gccbug5.c" on MinGW results in the following error message:

gccbug5.c:26: error: 'int *LTHUNK0(int)' aliased to undefined symbol
'_ZN1D3fooEi'


-- 
           Summary: Bad thunk alias to stdcall method
           Product: gcc
           Version: 4.2.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: rridge at csclub dot uwaterloo dot ca
 GCC build triplet: i386-pc-mingw32
  GCC host triplet: i386-pc-mingw32
GCC target triplet: i386-pc-mingw32


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27636

Reply via email to