[Bug c++/49015] [C++0x] Non-defining constexpr function declarations require complete argument/return types
jason at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed May 18 17:38:00 GMT 2011
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49015
--- Comment #1 from Jason Merrill <jason at gcc dot gnu.org> 2011-05-18 17:19:19 UTC ---
Author: jason
Date: Wed May 18 17:19:15 2011
New Revision: 173869
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=173869
Log:
PR c++/48948
PR c++/49015
* class.c (finalize_literal_type_property): Do check
for constexpr member functions of non-literal class.
(finish_struct): Don't call check_deferred_constexpr_decls.
* cp-tree.h: Don't declare it.
(DECL_DEFERRED_CONSTEXPR_CHECK): Remove.
* decl.c (grok_special_member_properties): Don't check it
(grokfnedcl): Don't call validate_constexpr_fundecl.
(start_preparsed_function): Do call it.
* pt.c (tsubst_decl): Don't call it.
(instantiate_class_template_1): Don't call
check_deferred_constexpr_decls.
* semantics.c (literal_type_p): Check for any incompleteness.
(ensure_literal_type_for_constexpr_object): Likewise.
(is_valid_constexpr_fn): Revert deferral changes.
(validate_constexpr_fundecl): Likewise.
(register_constexpr_fundef): Likewise.
(check_deferred_constexpr_decls): Remove.
Added:
trunk/gcc/testsuite/g++.dg/cpp0x/constexpr-incomplete3.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/class.c
trunk/gcc/cp/cp-tree.h
trunk/gcc/cp/decl.c
trunk/gcc/cp/pt.c
trunk/gcc/cp/semantics.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/g++.dg/cpp0x/constexpr-incomplete2.C
trunk/gcc/testsuite/g++.dg/cpp0x/constexpr-memfn1.C
More information about the Gcc-bugs
mailing list