Modernization; no functional change intended.
Successfully bootstrapped & regrtested on x86_64-pc-linux-gnu.
Pushed to trunk as r16-2767-gb963237a903f73.
gcc/ChangeLog:
* dump-context.h: Convert "enum optinfo_item_kind" into
"enum class kind" within class optinfo_item.
* dumpfile.cc: Likewise. Use "auto" in a few places.
Convert "enum optinfo_kind" to "enum class kind" within
class optinfo.
* opt-problem.cc: Likewise.
* optinfo-emit-json.cc: Likewise.
* optinfo.cc: Likewise.
* optinfo.h: Likewise.
---
gcc/dump-context.h | 10 +++----
gcc/dumpfile.cc | 57 +++++++++++++++++++++-------------------
gcc/opt-problem.cc | 2 +-
gcc/optinfo-emit-json.cc | 12 ++++-----
gcc/optinfo.cc | 40 ++++++++++++++--------------
gcc/optinfo.h | 57 ++++++++++++++++++++--------------------
6 files changed, 90 insertions(+), 88 deletions(-)
diff --git a/gcc/dump-context.h b/gcc/dump-context.h
index 9c52f03f0b7e..336cb2385bc8 100644
--- a/gcc/dump-context.h
+++ b/gcc/dump-context.h
@@ -267,7 +267,7 @@ extern void verify_dumped_text (const location &loc,
void
verify_item (const location &loc,
const optinfo_item *item,
- enum optinfo_item_kind expected_kind,
+ enum optinfo_item::kind expected_kind,
location_t expected_location,
const char *expected_text);
@@ -275,7 +275,7 @@ verify_item (const location &loc,
#define ASSERT_IS_TEXT(ITEM, EXPECTED_TEXT) \
SELFTEST_BEGIN_STMT \
- verify_item (SELFTEST_LOCATION, (ITEM), OPTINFO_ITEM_KIND_TEXT, \
+ verify_item (SELFTEST_LOCATION, (ITEM), optinfo_item::kind::text, \
UNKNOWN_LOCATION, (EXPECTED_TEXT)); \
SELFTEST_END_STMT
@@ -283,7 +283,7 @@ verify_item (const location &loc,
#define ASSERT_IS_TREE(ITEM, EXPECTED_LOCATION, EXPECTED_TEXT) \
SELFTEST_BEGIN_STMT \
- verify_item (SELFTEST_LOCATION, (ITEM), OPTINFO_ITEM_KIND_TREE, \
+ verify_item (SELFTEST_LOCATION, (ITEM), optinfo_item::kind::tree, \
(EXPECTED_LOCATION), (EXPECTED_TEXT)); \
SELFTEST_END_STMT
@@ -291,7 +291,7 @@ verify_item (const location &loc,
#define ASSERT_IS_GIMPLE(ITEM, EXPECTED_LOCATION, EXPECTED_TEXT) \
SELFTEST_BEGIN_STMT \
- verify_item (SELFTEST_LOCATION, (ITEM), OPTINFO_ITEM_KIND_GIMPLE, \
+ verify_item (SELFTEST_LOCATION, (ITEM), optinfo_item::kind::gimple,
\
(EXPECTED_LOCATION), (EXPECTED_TEXT)); \
SELFTEST_END_STMT
@@ -299,7 +299,7 @@ verify_item (const location &loc,
#define ASSERT_IS_SYMTAB_NODE(ITEM, EXPECTED_LOCATION, EXPECTED_TEXT) \
SELFTEST_BEGIN_STMT \
- verify_item (SELFTEST_LOCATION, (ITEM), OPTINFO_ITEM_KIND_SYMTAB_NODE, \
+ verify_item (SELFTEST_LOCATION, (ITEM), optinfo_item::kind::symtab_node, \
(EXPECTED_LOCATION), (EXPECTED_TEXT)); \
SELFTEST_END_STMT
diff --git a/gcc/dumpfile.cc b/gcc/dumpfile.cc
index ebee8e5121fb..bca8b384c3f9 100644
--- a/gcc/dumpfile.cc
+++ b/gcc/dumpfile.cc
@@ -636,8 +636,8 @@ make_item_for_dump_gimple_stmt (gimple *stmt, int spc,
dump_flags_t dump_flags)
pp_gimple_stmt_1 (&pp, stmt, spc, dump_flags);
pp_newline (&pp);
- std::unique_ptr<optinfo_item> item
- = std::make_unique<optinfo_item> (OPTINFO_ITEM_KIND_GIMPLE,
+ auto item
+ = std::make_unique<optinfo_item> (optinfo_item::kind::gimple,
gimple_location (stmt),
xstrdup (pp_formatted_text (&pp)));
return item;
@@ -684,8 +684,8 @@ make_item_for_dump_gimple_expr (gimple *stmt, int spc,
dump_flags_t dump_flags)
pp_needs_newline (&pp) = true;
pp_gimple_stmt_1 (&pp, stmt, spc, dump_flags);
- std::unique_ptr<optinfo_item> item
- = std::make_unique<optinfo_item> (OPTINFO_ITEM_KIND_GIMPLE,
+ auto item
+ = std::make_unique<optinfo_item> (optinfo_item::kind::gimple,
gimple_location (stmt),
xstrdup (pp_formatted_text (&pp)));
return item;
@@ -738,8 +738,8 @@ make_item_for_dump_generic_expr (tree node, dump_flags_t
dump_flags)
if (EXPR_HAS_LOCATION (node))
loc = EXPR_LOCATION (node);
- std::unique_ptr<optinfo_item> item
- = std::make_unique<optinfo_item> (OPTINFO_ITEM_KIND_TREE, loc,
+ auto item
+ = std::make_unique<optinfo_item> (optinfo_item::kind::tree, loc,
xstrdup (pp_formatted_text (&pp)));
return item;
}
@@ -783,8 +783,8 @@ static std::unique_ptr<optinfo_item>
make_item_for_dump_symtab_node (symtab_node *node)
{
location_t loc = DECL_SOURCE_LOCATION (node->decl);
- std::unique_ptr<optinfo_item> item
- = std::make_unique<optinfo_item> (OPTINFO_ITEM_KIND_SYMTAB_NODE, loc,
+ auto item
+ = std::make_unique<optinfo_item> (optinfo_item::kind::symtab_node, loc,
xstrdup (node->dump_name ()));
return item;
}
@@ -1011,8 +1011,9 @@ emit_any_pending_textual_chunks ()
return;
char *formatted_text = xstrdup (pp_formatted_text (pp));
- std::unique_ptr<optinfo_item> item
- = std::make_unique<optinfo_item> (OPTINFO_ITEM_KIND_TEXT, UNKNOWN_LOCATION,
+ auto item
+ = std::make_unique<optinfo_item> (optinfo_item::kind::text,
+ UNKNOWN_LOCATION,
formatted_text);
pp->emit_item (std::move (item), m_optinfo);
@@ -1084,7 +1085,8 @@ make_item_for_dump_dec (const poly_int<N, C> &value)
}
auto item
- = std::make_unique<optinfo_item> (OPTINFO_ITEM_KIND_TEXT, UNKNOWN_LOCATION,
+ = std::make_unique<optinfo_item> (optinfo_item::kind::text,
+ UNKNOWN_LOCATION,
xstrdup (pp_formatted_text (&pp)));
return item;
}
@@ -1162,8 +1164,9 @@ dump_context::begin_scope (const char *name,
pretty_printer pp;
pp_printf (&pp, "%s %s %s", "===", name, "===");
pp_newline (&pp);
- std::unique_ptr<optinfo_item> item
- = std::make_unique<optinfo_item> (OPTINFO_ITEM_KIND_TEXT, UNKNOWN_LOCATION,
+ auto item
+ = std::make_unique<optinfo_item> (optinfo_item::kind::text,
+ UNKNOWN_LOCATION,
xstrdup (pp_formatted_text (&pp)));
emit_item (*item.get (), MSG_NOTE);
@@ -1172,7 +1175,7 @@ dump_context::begin_scope (const char *name,
optinfo &info
= begin_next_optinfo (dump_metadata_t (MSG_NOTE, impl_location),
user_location);
- info.m_kind = OPTINFO_KIND_SCOPE;
+ info.m_kind = optinfo::kind::scope;
info.add_item (std::move (item));
end_any_optinfo ();
}
@@ -1221,7 +1224,7 @@ dump_context::begin_next_optinfo (const dump_metadata_t
&metadata,
end_any_optinfo ();
gcc_assert (m_pending == NULL);
dump_location_t loc (user_loc, metadata.get_impl_location ());
- m_pending = new optinfo (loc, OPTINFO_KIND_NOTE, current_pass);
+ m_pending = new optinfo (loc, optinfo::kind::note, current_pass);
m_pending->handle_dump_file_kind (metadata.get_dump_flags ());
return *m_pending;
}
@@ -2265,7 +2268,7 @@ verify_dumped_text (const location &loc,
void
verify_item (const location &loc,
const optinfo_item *item,
- enum optinfo_item_kind expected_kind,
+ enum optinfo_item::kind expected_kind,
location_t expected_location,
const char *expected_text)
{
@@ -2324,7 +2327,7 @@ test_capture_of_dump_calls (const line_table_case &case_)
{
optinfo *info = tmp.get_pending_optinfo ();
ASSERT_TRUE (info != NULL);
- ASSERT_EQ (info->get_kind (), OPTINFO_KIND_NOTE);
+ ASSERT_EQ (info->get_kind (), optinfo::kind::note);
ASSERT_EQ (info->num_items (), 1);
ASSERT_IS_TEXT (info->get_item (0), "int: 42 str: foo");
ASSERT_IMPL_LOCATION_EQ (info->get_impl_location (),
@@ -2345,7 +2348,7 @@ test_capture_of_dump_calls (const line_table_case &case_)
{
optinfo *info = tmp.get_pending_optinfo ();
ASSERT_TRUE (info != NULL);
- ASSERT_EQ (info->get_kind (), OPTINFO_KIND_NOTE);
+ ASSERT_EQ (info->get_kind (), optinfo::kind::note);
ASSERT_EQ (info->num_items (), 2);
ASSERT_IS_TEXT (info->get_item (0), "tree: ");
ASSERT_IS_TREE (info->get_item (1), UNKNOWN_LOCATION, "0");
@@ -2367,7 +2370,7 @@ test_capture_of_dump_calls (const line_table_case &case_)
{
optinfo *info = tmp.get_pending_optinfo ();
ASSERT_TRUE (info != NULL);
- ASSERT_EQ (info->get_kind (), OPTINFO_KIND_NOTE);
+ ASSERT_EQ (info->get_kind (), optinfo::kind::note);
ASSERT_EQ (info->num_items (), 2);
ASSERT_IS_TEXT (info->get_item (0), "gimple: ");
ASSERT_IS_GIMPLE (info->get_item (1), stmt_loc, "return;");
@@ -2389,7 +2392,7 @@ test_capture_of_dump_calls (const line_table_case &case_)
{
optinfo *info = tmp.get_pending_optinfo ();
ASSERT_TRUE (info != NULL);
- ASSERT_EQ (info->get_kind (), OPTINFO_KIND_NOTE);
+ ASSERT_EQ (info->get_kind (), optinfo::kind::note);
ASSERT_EQ (info->num_items (), 2);
ASSERT_IS_TEXT (info->get_item (0), "gimple: ");
ASSERT_IS_GIMPLE (info->get_item (1), stmt_loc, "return;\n");
@@ -2411,7 +2414,7 @@ test_capture_of_dump_calls (const line_table_case &case_)
{
optinfo *info = tmp.get_pending_optinfo ();
ASSERT_TRUE (info != NULL);
- ASSERT_EQ (info->get_kind (), OPTINFO_KIND_NOTE);
+ ASSERT_EQ (info->get_kind (), optinfo::kind::note);
ASSERT_EQ (info->num_items (), 2);
ASSERT_IS_TEXT (info->get_item (0), "node: ");
ASSERT_IS_SYMTAB_NODE (info->get_item (1), decl_loc, "test_decl/1");
@@ -2441,7 +2444,7 @@ test_capture_of_dump_calls (const line_table_case &case_)
{
optinfo *info = tmp.get_pending_optinfo ();
ASSERT_TRUE (info != NULL);
- ASSERT_EQ (info->get_kind (), OPTINFO_KIND_NOTE);
+ ASSERT_EQ (info->get_kind (), optinfo::kind::note);
ASSERT_EQ (info->num_items (), 8);
ASSERT_IS_TEXT (info->get_item (0), "before ");
ASSERT_IS_TREE (info->get_item (1), UNKNOWN_LOCATION, "0");
@@ -2471,7 +2474,7 @@ test_capture_of_dump_calls (const line_table_case &case_)
optinfo *info = tmp.get_pending_optinfo ();
ASSERT_TRUE (info != NULL);
ASSERT_EQ (info->get_location_t (), stmt_loc);
- ASSERT_EQ (info->get_kind (), OPTINFO_KIND_NOTE);
+ ASSERT_EQ (info->get_kind (), optinfo::kind::note);
ASSERT_EQ (info->num_items (), 2);
ASSERT_IS_TEXT (info->get_item (0), "test of tree: ");
ASSERT_IS_TREE (info->get_item (1), UNKNOWN_LOCATION, "0");
@@ -2494,7 +2497,7 @@ test_capture_of_dump_calls (const line_table_case &case_)
optinfo *info = tmp.get_pending_optinfo ();
ASSERT_TRUE (info != NULL);
ASSERT_EQ (info->get_location_t (), stmt_loc);
- ASSERT_EQ (info->get_kind (), OPTINFO_KIND_NOTE);
+ ASSERT_EQ (info->get_kind (), optinfo::kind::note);
ASSERT_EQ (info->num_items (), 1);
ASSERT_IS_TREE (info->get_item (0), UNKNOWN_LOCATION, "1");
ASSERT_IMPL_LOCATION_EQ (info->get_impl_location (),
@@ -2598,7 +2601,7 @@ test_capture_of_dump_calls (const line_table_case &case_)
{
optinfo *info = tmp.get_pending_optinfo ();
ASSERT_TRUE (info != NULL);
- ASSERT_EQ (info->get_kind (), OPTINFO_KIND_NOTE);
+ ASSERT_EQ (info->get_kind (), optinfo::kind::note);
ASSERT_EQ (info->num_items (), 1);
ASSERT_IS_SYMTAB_NODE (info->get_item (0), decl_loc, "test_decl/1");
ASSERT_IMPL_LOCATION_EQ (info->get_impl_location (),
@@ -2727,7 +2730,7 @@ test_capture_of_dump_calls (const line_table_case &case_)
temp_dump_context tmp (true, true, MSG_ALL_KINDS);
dump_printf_loc (MSG_OPTIMIZED_LOCATIONS, loc, "test");
ASSERT_EQ (tmp.get_pending_optinfo ()->get_kind (),
- OPTINFO_KIND_SUCCESS);
+ optinfo::kind::success);
}
/* MSG_MISSED_OPTIMIZATION. */
@@ -2735,7 +2738,7 @@ test_capture_of_dump_calls (const line_table_case &case_)
temp_dump_context tmp (true, true, MSG_ALL_KINDS);
dump_printf_loc (MSG_MISSED_OPTIMIZATION, loc, "test");
ASSERT_EQ (tmp.get_pending_optinfo ()->get_kind (),
- OPTINFO_KIND_FAILURE);
+ optinfo::kind::failure);
}
}
diff --git a/gcc/opt-problem.cc b/gcc/opt-problem.cc
index 8324feb151af..e0c7601b2a25 100644
--- a/gcc/opt-problem.cc
+++ b/gcc/opt-problem.cc
@@ -42,7 +42,7 @@ along with GCC; see the file COPYING3. If not see
opt_problem::opt_problem (const dump_location_t &loc,
const char *fmt, va_list *ap)
-: m_optinfo (loc, OPTINFO_KIND_FAILURE, current_pass)
+: m_optinfo (loc, optinfo::kind::failure, current_pass)
{
/* We shouldn't be bothering to construct these objects if
dumping isn't enabled. */
diff --git a/gcc/optinfo-emit-json.cc b/gcc/optinfo-emit-json.cc
index 28c8a98db302..ae686a9e9db6 100644
--- a/gcc/optinfo-emit-json.cc
+++ b/gcc/optinfo-emit-json.cc
@@ -143,7 +143,7 @@ optrecord_json_writer::add_record (const optinfo *optinfo)
add_record (obj);
/* Potentially push the scope. */
- if (optinfo->get_kind () == OPTINFO_KIND_SCOPE)
+ if (optinfo->get_kind () == optinfo::kind::scope)
{
json::array *children = new json::array ();
obj->set ("children", children);
@@ -334,7 +334,7 @@ optrecord_json_writer::optinfo_to_json (const optinfo
*optinfo)
obj->set ("impl_location",
impl_location_to_json (optinfo->get_impl_location ()));
- const char *kind_str = optinfo_kind_to_string (optinfo->get_kind ());
+ const char *kind_str = optinfo::kind_to_string (optinfo->get_kind ());
obj->set_string ("kind", kind_str);
json::array *message = new json::array ();
obj->set ("message", message);
@@ -345,12 +345,12 @@ optrecord_json_writer::optinfo_to_json (const optinfo
*optinfo)
{
default:
gcc_unreachable ();
- case OPTINFO_ITEM_KIND_TEXT:
+ case optinfo_item::kind::text:
{
message->append_string (item->get_text ());
}
break;
- case OPTINFO_ITEM_KIND_TREE:
+ case optinfo_item::kind::tree:
{
json::object *json_item = new json::object ();
json_item->set_string ("expr", item->get_text ());
@@ -363,7 +363,7 @@ optrecord_json_writer::optinfo_to_json (const optinfo
*optinfo)
message->append (json_item);
}
break;
- case OPTINFO_ITEM_KIND_GIMPLE:
+ case optinfo_item::kind::gimple:
{
json::object *json_item = new json::object ();
json_item->set_string ("stmt", item->get_text ());
@@ -376,7 +376,7 @@ optrecord_json_writer::optinfo_to_json (const optinfo
*optinfo)
message->append (json_item);
}
break;
- case OPTINFO_ITEM_KIND_SYMTAB_NODE:
+ case optinfo_item::kind::symtab_node:
{
json::object *json_item = new json::object ();
json_item->set_string ("symtab_node", item->get_text ());
diff --git a/gcc/optinfo.cc b/gcc/optinfo.cc
index 51e9fd615c62..dd5a55178665 100644
--- a/gcc/optinfo.cc
+++ b/gcc/optinfo.cc
@@ -36,9 +36,9 @@ along with GCC; see the file COPYING3. If not see
/* optinfo_item's ctor. Takes ownership of TEXT. */
-optinfo_item::optinfo_item (enum optinfo_item_kind kind, location_t location,
+optinfo_item::optinfo_item (enum kind kind_, location_t location,
char *text)
-: m_kind (kind), m_location (location), m_text (text)
+: m_kind (kind_), m_location (location), m_text (text)
{
}
@@ -52,19 +52,19 @@ optinfo_item::~optinfo_item ()
/* Get a string from KIND. */
const char *
-optinfo_kind_to_string (enum optinfo_kind kind)
+optinfo::kind_to_string (enum kind kind_)
{
- switch (kind)
+ switch (kind_)
{
default:
gcc_unreachable ();
- case OPTINFO_KIND_SUCCESS:
+ case kind::success:
return "success";
- case OPTINFO_KIND_FAILURE:
+ case kind::failure:
return "failure";
- case OPTINFO_KIND_NOTE:
+ case kind::note:
return "note";
- case OPTINFO_KIND_SCOPE:
+ case kind::scope:
return "scope";
}
}
@@ -91,19 +91,19 @@ optinfo::add_item (std::unique_ptr<optinfo_item> item)
/* Get MSG_* flags corresponding to KIND. */
-static dump_flags_t
-optinfo_kind_to_dump_flag (enum optinfo_kind kind)
+dump_flags_t
+optinfo::kind_to_dump_flag (enum kind kind_)
{
- switch (kind)
+ switch (kind_)
{
default:
gcc_unreachable ();
- case OPTINFO_KIND_SUCCESS:
+ case kind::success:
return MSG_OPTIMIZED_LOCATIONS;
- case OPTINFO_KIND_FAILURE:
+ case kind::failure:
return MSG_MISSED_OPTIMIZATION;
- case OPTINFO_KIND_NOTE:
- case OPTINFO_KIND_SCOPE:
+ case kind::note:
+ case kind::scope:
return MSG_NOTE;
}
}
@@ -114,7 +114,7 @@ optinfo_kind_to_dump_flag (enum optinfo_kind kind)
void
optinfo::emit_for_opt_problem () const
{
- dump_flags_t dump_kind = optinfo_kind_to_dump_flag (get_kind ());
+ dump_flags_t dump_kind = kind_to_dump_flag (get_kind ());
dump_kind |= MSG_PRIORITY_REEMITTED;
/* Re-emit to "immediate" destinations, without creating a new optinfo. */
@@ -134,14 +134,14 @@ void
optinfo::handle_dump_file_kind (dump_flags_t dump_kind)
{
/* Any optinfo for a "scope" should have been emitted separately. */
- gcc_assert (m_kind != OPTINFO_KIND_SCOPE);
+ gcc_assert (m_kind != kind::scope);
if (dump_kind & MSG_OPTIMIZED_LOCATIONS)
- m_kind = OPTINFO_KIND_SUCCESS;
+ m_kind = kind::success;
else if (dump_kind & MSG_MISSED_OPTIMIZATION)
- m_kind = OPTINFO_KIND_FAILURE;
+ m_kind = kind::failure;
else if (dump_kind & MSG_NOTE)
- m_kind = OPTINFO_KIND_NOTE;
+ m_kind = kind::note;
}
/* Return true if any of the active optinfo destinations make use
diff --git a/gcc/optinfo.h b/gcc/optinfo.h
index 1e0fb224adc2..ca9457f1b89a 100644
--- a/gcc/optinfo.h
+++ b/gcc/optinfo.h
@@ -74,18 +74,6 @@ class optinfo_item;
extern bool optinfo_wants_inlining_info_p ();
-/* The various kinds of optinfo. */
-
-enum optinfo_kind
-{
- OPTINFO_KIND_SUCCESS,
- OPTINFO_KIND_FAILURE,
- OPTINFO_KIND_NOTE,
- OPTINFO_KIND_SCOPE
-};
-
-extern const char *optinfo_kind_to_string (enum optinfo_kind kind);
-
class dump_context;
/* A bundle of information describing part of an optimization. */
@@ -95,10 +83,19 @@ class optinfo
friend class dump_context;
public:
+ /* The various kinds of optinfo. */
+ enum class kind
+ {
+ success,
+ failure,
+ note,
+ scope
+ };
+
optinfo (const dump_location_t &loc,
- enum optinfo_kind kind,
+ enum kind kind_,
opt_pass *pass)
- : m_loc (loc), m_kind (kind), m_pass (pass), m_items ()
+ : m_loc (loc), m_kind (kind_), m_pass (pass), m_items ()
{}
~optinfo ();
@@ -111,7 +108,7 @@ class optinfo
const dump_impl_location_t &
get_impl_location () const { return m_loc.get_impl_location (); }
- enum optinfo_kind get_kind () const { return m_kind; }
+ enum kind get_kind () const { return m_kind; }
opt_pass *get_pass () const { return m_pass; }
unsigned int num_items () const { return m_items.length (); }
const optinfo_item *get_item (unsigned int i) const { return m_items[i]; }
@@ -123,6 +120,9 @@ class optinfo
void emit_for_opt_problem () const;
+ static const char *kind_to_string (enum kind k);
+ static dump_flags_t kind_to_dump_flag (enum kind k);
+
private:
/* Pre-canned ways of manipulating the optinfo, for use by friend class
dump_context. */
@@ -130,37 +130,36 @@ class optinfo
private:
dump_location_t m_loc;
- enum optinfo_kind m_kind;
+ enum kind m_kind;
opt_pass *m_pass;
auto_vec <optinfo_item *> m_items;
};
-/* An enum for discriminating between different kinds of optinfo_item. */
-
-enum optinfo_item_kind
-{
- OPTINFO_ITEM_KIND_TEXT,
- OPTINFO_ITEM_KIND_TREE,
- OPTINFO_ITEM_KIND_GIMPLE,
- OPTINFO_ITEM_KIND_SYMTAB_NODE
-};
-
/* An item within an optinfo. */
class optinfo_item
{
public:
- optinfo_item (enum optinfo_item_kind kind, location_t location,
+ /* An enum for discriminating between different kinds of optinfo_item. */
+ enum class kind
+ {
+ text,
+ tree,
+ gimple,
+ symtab_node
+ };
+
+ optinfo_item (enum kind kind_, location_t location,
char *text);
~optinfo_item ();
- enum optinfo_item_kind get_kind () const { return m_kind; }
+ enum kind get_kind () const { return m_kind; }
location_t get_location () const { return m_location; }
const char *get_text () const { return m_text; }
private:
/* Metadata (e.g. for optimization records). */
- enum optinfo_item_kind m_kind;
+ enum kind m_kind;
location_t m_location;
/* The textual form of the item, owned by the item. */
--
2.26.3