Carlos O'Donell wrote:
Is any of you able to give some comments on pr27650
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27650
In particular I am interested in an opinion of Danny's fix.
http://gcc.gnu.org/ml/gcc-patches/2006-05/msg01504.html
I definately don't know enough about attributes and dllimport to
comment. The fix works, but is it correct?
I think the idea of the patch is correct: virtual functions shouldn't be
marked dllimport because you need their addresses to be constants so
that they can go in virtual tables.
However, I think that the winnt.c change (which has already been checked
in) shouldn't be necessary. It only makes sense if we set
DECL_DLLIMPORT_P at one point, and then set it back to zero, indicating
that we don't want to allow the function to be dllimport'ed. But, in
that case, I don't think dllimport should still be on the
DECL_ATTRIBUTES list. So, it seems like a band-aid.
The cp/decl2.c change also seems less than ideal. The key invariant is
that virtual functions can't be dllimport'd. So, I think we should mark
them that way when they're declared, perhaps in grokfndecl or in
cp_finish_decl.
It could be that I'm missing something, though; Danny might want to
debate my conclusions.
--
Mark Mitchell
CodeSourcery
[EMAIL PROTECTED]
(650) 331-3385 x713