On Mon, Sep 5, 2011 at 12:07 PM, H.J. Lu <hjl.to...@gmail.com> wrote: > On Sun, Sep 4, 2011 at 9:29 PM, Jason Merrill <ja...@redhat.com> wrote: >> At the Bloomington C++ meeting we discussed some issues with the constexpr >> specification that the clang team encountered while trying to implement it. >> Among the issues was a problem that also came up recently for us as BZ >> 50248: if the constexpr-ness of a template instantiation depends on its >> body, we need to instantiate it in order to decide whether or not an >> implicitly-declared function that uses it is constexpr. The resolution of >> DR 1358 is that an instantiation of a constexpr template is constexpr even >> if it can never produce a constant expression. >> >> The second patch is related to DR 1360, where the clang team was complaining >> that deciding whether or not a class is literal requires the implicit >> declaration of the default constructor, which they would like to do lazily. >> We seem to have agreed that it can be avoided in the cases where doing such >> is useful, but while looking at this I noticed a bug in our handling of this >> stuff: the function synthesized_default_constructor_is_constexpr was only >> right for trivial constructors. So now I've renamed it accordingly, and >> force the implicit declaration for the non-trivial case. >> >> Tested x86_64-pc-linux-gnu, applying to trunk. >> > > This caused: > > http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50296 >
This also caused: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53202 -- H.J.