This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/24421] New: #pragma interface and warning about undefined synthesized operator=
- From: "das at cs dot ucla dot edu" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 18 Oct 2005 05:34:49 -0000
- Subject: [Bug c++/24421] New: #pragma interface and warning about undefined synthesized operator=
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
The following, when compiled with g++ -c myfile.cpp, produces only this
warning:
myfile.cpp:4: warning: inline function 'A& A::operator=(const A&)' used but
never defined
The surprises to me are (1) that this warning is even emitted, and (2) that if
the compiler emits this warning, it does not emit a warning about class A's
default ctor and copy ctor, which are also used but not defined. The code:
#pragma interface
struct A
{
virtual ~A();
};
template<typename T>
void f(const T& z)
{
T x;
T y(x);
y = x;
}
int main()
{
f(A());
}
I discovered the problem when recompiling some CGICC headers. (This code is
simplified from those headers.) There was no warning when compiling the
headers under g++ 3.2.3, but there was under g++ 4.0.1 and 4.0.2.
--David
--
Summary: #pragma interface and warning about undefined
synthesized operator=
Product: gcc
Version: 4.0.2
Status: UNCONFIRMED
Severity: minor
Priority: P2
Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: das at cs dot ucla dot edu
GCC host triplet: sparc-sun-solaris2.8
GCC target triplet: sparc-sun-solaris2.8
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24421