This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

C++ PATCH for c++/57728 (explicit instantiation and defaulted functions)


The testcase in 57728 demonstrates that we have been treating
functions explicitly defaulted in the class body inconsistently with
explicit instantiation: an extern instantiation causes them not to be
generated, but a normal explicit instantiation doesn't cause them to
be emitted, leading to link errors.

After discussing this issue with other vendors (who had the same bug),
we have decided to treat these functions like implicitly declared
members, so explicit instantiation consistently doesn't affect them.

The second patch addresses a FIXME I noticed while looking at this:
there's no reason for us to be calling a trivial default constructor
in the first place.

Tested x86_64-pc-linux-gnu, applying to trunk.

Attachment: 57728.diff
Description: Text document

Attachment: trivial-df.diff
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]