[gcc/devel/c++-modules] More FIXME resolution
Nathan Sidwell
nathan@gcc.gnu.org
Mon Oct 26 17:28:18 GMT 2020
https://gcc.gnu.org/g:cb8c13729cf3dd83d77388b7600ff63833357fc4
commit cb8c13729cf3dd83d77388b7600ff63833357fc4
Author: Nathan Sidwell <nathan@acm.org>
Date: Mon Oct 26 10:26:14 2020 -0700
More FIXME resolution
gcc/cp/
* module.cc (trees_{in,out}::tree_list): Address more Fixmes,
either by obsoleting them, or coding around their confusion.
Diff:
---
ChangeLog.modules | 4 ++++
gcc/cp/module.cc | 13 ++++---------
2 files changed, 8 insertions(+), 9 deletions(-)
diff --git a/ChangeLog.modules b/ChangeLog.modules
index 26093780a8f..6e62ea6cf6a 100644
--- a/ChangeLog.modules
+++ b/ChangeLog.modules
@@ -1,5 +1,9 @@
2020-10-26 Nathan Sidwell <nathan@acm.org>
+ gcc/cp/
+ * module.cc (trees_{in,out}::tree_list): Address more Fixmes,
+ either by obsoleting them, or coding around their confusion.
+
libcody/
Rebase on upstream, robustify enable-checking.
diff --git a/gcc/cp/module.cc b/gcc/cp/module.cc
index 24073d70190..9d2c7cb3059 100644
--- a/gcc/cp/module.cc
+++ b/gcc/cp/module.cc
@@ -7577,9 +7577,6 @@ trees_out::decl_value (tree decl, depset *dep)
&& dump ("Writing %s:%d %C:%N%S", merge_kind_name[mk], tag,
TREE_CODE (decl), decl, decl);
- // FIXME: If mergeable, mark function parms etc as mergeable too
- // Don't I already do this now?
-
tree inner = decl;
int inner_tag = 0;
if (TREE_CODE (decl) == TEMPLATE_DECL)
@@ -7676,7 +7673,6 @@ trees_out::decl_value (tree decl, depset *dep)
merge_kind_name[mk], TREE_CODE (decl), decl);
if (inner && TREE_CODE (inner) == FUNCTION_DECL)
- // FIXME: Stream in the type here as that's where the default args are?
fn_parms_fini (inner);
if (!is_key_order ())
@@ -7929,6 +7925,7 @@ trees_in::decl_value ()
parm_tag = fn_parms_init (inner);
tree existing = key_mergeable (tag, mk, decl, inner, type, container, is_mod);
+ tree existing_inner = existing;
if (existing)
{
if (existing == error_mark_node)
@@ -7950,8 +7947,8 @@ trees_in::decl_value ()
back_refs[~tag] = existing;
if (inner_tag != 0)
{
- existing = DECL_TEMPLATE_RESULT (existing);
- back_refs[~inner_tag] = existing;
+ existing_inner = DECL_TEMPLATE_RESULT (existing);
+ back_refs[~inner_tag] = existing_inner;
}
if (type_tag != 0)
@@ -7964,9 +7961,7 @@ trees_in::decl_value ()
}
if (parm_tag)
- // FIXME: Is this comment 100% accurate?
- /* EXISTING is the template result (or NULL). */
- fn_parms_fini (parm_tag, inner, existing, has_defn);
+ fn_parms_fini (parm_tag, inner, existing_inner, has_defn);
if (!tree_node_vals (decl))
goto bail;
More information about the Gcc-cvs
mailing list