2011-05-20 Jason Merrill <jason@redhat.com>
+ PR c++/48945
+ * decl.c (revert_static_member_fn): Ignore const on constexpr fn.
+
PR c++/48780
* cvt.c (type_promotes_to): Don't promote scoped enums.
revert_static_member_fn (tree decl)
{
tree stype = static_fn_type (decl);
+ cp_cv_quals quals = type_memfn_quals (stype);
- if (type_memfn_quals (stype) != TYPE_UNQUALIFIED)
+ if (quals != TYPE_UNQUALIFIED)
{
- error ("static member function %q#D declared with type qualifiers", decl);
+ if (quals == TYPE_QUAL_CONST && DECL_DECLARED_CONSTEXPR_P (decl))
+ /* The const was implicit, don't complain. */;
+ else
+ error ("static member function %q#D declared with type qualifiers",
+ decl);
stype = apply_memfn_quals (stype, TYPE_UNQUALIFIED);
}
TREE_TYPE (decl) = stype;
2011-05-20 Jason Merrill <jason@redhat.com>
+ * g++.dg/cpp0x/constexpr-static7.C: New.
+
* g++.dg/cpp0x/enum12.C: New.
* g++.dg/cpp0x/enum13.C: New.