target/10440: [cygwin] incorrect assembler produced (as fails with "is already defined")

Giovanni Bajo giovannibajo@libero.it
Tue Apr 22 13:53:00 GMT 2003


http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&p
r=10440

Reduced snippet is:
--------------------------------
typedef struct
{
   int dummy;
} Foo;

__attribute__((dllimport)) Foo issue_error_1;
__attribute__((dllimport)) Foo issue_error_2;
__attribute__((dllimport)) Foo issue_error_3;
__attribute__((dllimport)) Foo f;

void func(void)
{
    other_func(f);
}

Foo f = {};
--------------------------------
/cygdrive/c/DOCUME~1/ADMINI~1/IMPOST~1/Temp/ccHvVfGR.s: Assembler messages:
/cygdrive/c/DOCUME~1/ADMINI~1/IMPOST~1/Temp/ccHvVfGR.s:21: Error: symbol
`_D' is already defined
/cygdrive/c/DOCUME~1/ADMINI~1/IMPOST~1/Temp/ccHvVfGR.s:22: Error: symbol
`_D' is already defined
/cygdrive/c/DOCUME~1/ADMINI~1/IMPOST~1/Temp/ccHvVfGR.s:23: Error: symbol
`_D' is already defined

Funny thing is that we get one error for each symbol we declare above (I
declared 3 and got three errors).

This bug is a regression of the 3.2 branch only. It's fixed on 3.3 and 3.4
with Mark's patch for pr/7910, but I read that the patch has been reverted.
I did not understand though if another patch has been prepared or not. GCC
3.3 build from a CVS snapshot of yesterday can compile it correctly.

Giovanni Bajo



More information about the Gcc-bugs mailing list