------- Comment #1 from pinskia at gcc dot gnu dot org 2008-11-03 20:07 ------- Confirmed, a regression from GCC 4.1.1. Here is a self contained example :): class foo { public: template <typename T> operator T (); };
template <typename T> inline foo::operator T () { return (T)0; } struct bar { unsigned int _bar : 24; }; int main() { foo a; unsigned int b = a; bar c; c._bar = a; return 1; } -- pinskia at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |pinskia at gcc dot gnu dot | |org Severity|normal |critical Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 Keywords| |assemble-failure Known to fail| |4.3.0 4.4.0 Known to work| |4.1.1 Last reconfirmed|0000-00-00 00:00:00 |2008-11-03 20:07:32 date| | Summary|g++ instantiate same |[4.2/4.3/4.4 Regression] g++ |operator twice due to |instantiate same operator |bitfield in -O0 mode, |twice due to bitfield in -O0 |causing symbol already |mode, causing symbol already |defined assembler error |defined assembler error Target Milestone|--- |4.2.5 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38007