This is the mail archive of the
gcc-cvs@gcc.gnu.org
mailing list for the GCC project.
r248797 - in /branches/c++-modules: ChangeLog.m...
- From: nathan at gcc dot gnu dot org
- To: gcc-cvs at gcc dot gnu dot org
- Date: Thu, 01 Jun 2017 17:40:46 -0000
- Subject: r248797 - in /branches/c++-modules: ChangeLog.m...
Author: nathan
Date: Thu Jun 1 17:40:46 2017
New Revision: 248797
URL: https://gcc.gnu.org/viewcvs?rev=248797&root=gcc&view=rev
Log:
Incomplete or empty classes.
gcc/cp/
* cp-tree.h (ovl_iterator::export_tail): New.
(TYPE_GET_PTRMEMFUNC_TYPE, TYPE_SET_PTRMEMFUNC_TYPE): Delete.
(TYPE_PTRMEMFUNC_TYPE): New.
(maybe_add_lang_type_raw): Add ptrmem_p arg.
(fit_ptrmem_type_decl): Declare.
(ovl_insert): Add export_tail.
* decl.c (build_ptrmemfunc_type): Use fit_ptrmem_type_decl,
adjust.
(xref_tag_1): Call decl_set_module.
* lex.c (maybe_add_lang_type_raw): Add ptrmem_p arg. Adjust.
(fit_ptrmem_type_decl): New.
(cxx_make_type): Adjust.
* module.c (name_string): New. Use it everywhere.
(cpm_reader::fill): Check ferror.
(cpms_out::tag_binding): Skip builtins. Write types.
(cpms_out::lang_type_bools, cpms_in::lang_type_bools): New.
* name-lookup.c (STAT_EXPORTS): New.
(name_lookup::process_module_binding): Use it.
(update_binding): Set it.
(newbinding_bookkeeping): New. Broken out of ...
(do_pushdecl): ... here. Call it.
(push_module_binding): And call it here. Set STAT_EXPORTS.
* rtti.c (create_pseudo_type_info): Mark as builtins.
(get_pseudo_ti_index): Likewise.
(emit_support_tinfos): Use regular lookup to find type. Set
builtins location.
* tree.c (ovl_insert): Add export_tail arg.
gcc/testsuite/
* g++.dg/modules/class-1_[abcd].C: New.
Added:
branches/c++-modules/gcc/testsuite/g++.dg/modules/class-1_a.C
branches/c++-modules/gcc/testsuite/g++.dg/modules/class-1_b.C
branches/c++-modules/gcc/testsuite/g++.dg/modules/class-1_c.C
branches/c++-modules/gcc/testsuite/g++.dg/modules/class-1_d.C
Modified:
branches/c++-modules/ChangeLog.modules
branches/c++-modules/gcc/cp/cp-tree.h
branches/c++-modules/gcc/cp/decl.c
branches/c++-modules/gcc/cp/lex.c
branches/c++-modules/gcc/cp/module.c
branches/c++-modules/gcc/cp/name-lookup.c
branches/c++-modules/gcc/cp/rtti.c
branches/c++-modules/gcc/cp/tree.c