------- Comment #5 from dannysmith at users dot sourceforge dot net  2009-10-03 
21:47 -------
(In reply to comment #0)
> These new FAILs have been appearing on trunk since some time between 20090820
> and 20090903:
> 
> FAIL: g++.dg/ext/dllexport-MI1.C scan-assembler -export:_ZNK2D12vfEv
> FAIL: g++.dg/ext/dllexport-MI1.C scan-assembler -export:_ZNK2D22vfEv
> FAIL: g++.dg/ext/dllexport-MI1.C scan-assembler -export:_ZNK3MI12vfEv
> FAIL: g++.dg/ext/dllexport-MI1.C scan-assembler -export:_ZTV2D1,data
> FAIL: g++.dg/ext/dllexport-MI1.C scan-assembler -export:_ZN2D2C2ERKS_
> FAIL: g++.dg/ext/dllexport1.C scan-assembler  -export:_ZN3Bar10inline_barEi
> 
> (Refs: http://gcc.gnu.org/ml/gcc-testresults/2009-08/msg02276.html
>        http://gcc.gnu.org/ml/gcc-testresults/2009-09/msg00356.html )
> 
> They seem to represent serious breakage of dllexport with cygwin as the latest
> testrun with my libstdc-as-dll patch is showing even more fails on top of
> these, but didn't fail before they appeared, and a quick investigation shows
> that the executables generated during the testsuite fail to import anything
> from the libstdc DLL!
> 
> This could be either a target or a C++ problem since they both co-operate to
> manage the dllexport attribute.  I couldn't find any changes in that area of
> the backend in the relevant date range, so I've marked it C++ for now.  I'll
> attach preprocessed source for the testcase shortly.
> 

The problem appears to be that DECL_CONTEXT is no longer set for class members 
with link-once semantixcs (inline  methods, vtables).

Is that intended?  It breaks dllexport of these symbols when they inherit the
attribute of their of their containing type.

The breakage can be fixed in target backend i386/winnt-cxx.c 
i386_pe_adjust_class_at_definition, by propagating the dllexport attribute
there, rather than relying on DECL_CONTEXT later.

I am testing that patch now.

Danny


-- 


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

Reply via email to