[gcc r16-1348] diagnostics: convert enum logical_location_kind to enum class
David Malcolm
dmalcolm@gcc.gnu.org
Mon Jun 9 18:22:28 GMT 2025
https://gcc.gnu.org/g:bf0c6e1d34fd9cab0bef4d260f7e482e5fd4a371
commit r16-1348-gbf0c6e1d34fd9cab0bef4d260f7e482e5fd4a371
Author: David Malcolm <dmalcolm@redhat.com>
Date: Mon Jun 9 14:15:25 2025 -0400
diagnostics: convert enum logical_location_kind to enum class
No functional change intended.
gcc/ChangeLog:
* diagnostic-format-sarif.cc (maybe_get_sarif_kind): Update for
conversion of enum logical_location_kind to enum class.
* diagnostic.cc (logical_location_manager::function_p): Likewise.
* libgdiagnostics.cc (html-output/missing-semicolon.py::get_kind):
Likewise.
* logical-location.h (enum logical_location_kind): Convert to...
(enum class logical_location_kind): ...this.
* selftest-logical-location.cc
(test_logical_location_manager::item_from_funcname): Update for
conversion of enum logical_location_kind to enum class.
* tree-logical-location.cc
(tree_logical_location_manager::get_kind): Likewise.
Signed-off-by: David Malcolm <dmalcolm@redhat.com>
Diff:
---
gcc/diagnostic-format-sarif.cc | 40 +++++++++++++++++++-------------------
gcc/diagnostic.cc | 18 ++++++++---------
gcc/libgdiagnostics.cc | 38 ++++++++++++++++++------------------
gcc/logical-location.h | 42 ++++++++++++++++++++--------------------
gcc/selftest-logical-location.cc | 2 +-
gcc/tree-logical-location.cc | 12 ++++++------
6 files changed, 76 insertions(+), 76 deletions(-)
diff --git a/gcc/diagnostic-format-sarif.cc b/gcc/diagnostic-format-sarif.cc
index 7dcd126aeb23..853a8333b3cc 100644
--- a/gcc/diagnostic-format-sarif.cc
+++ b/gcc/diagnostic-format-sarif.cc
@@ -2735,51 +2735,51 @@ maybe_get_sarif_kind (enum logical_location_kind kind)
{
default:
gcc_unreachable ();
- case LOGICAL_LOCATION_KIND_UNKNOWN:
+ case logical_location_kind::unknown:
return nullptr;
/* Kinds within executable code. */
- case LOGICAL_LOCATION_KIND_FUNCTION:
+ case logical_location_kind::function:
return "function";
- case LOGICAL_LOCATION_KIND_MEMBER:
+ case logical_location_kind::member:
return "member";
- case LOGICAL_LOCATION_KIND_MODULE:
+ case logical_location_kind::module_:
return "module";
- case LOGICAL_LOCATION_KIND_NAMESPACE:
+ case logical_location_kind::namespace_:
return "namespace";
- case LOGICAL_LOCATION_KIND_TYPE:
+ case logical_location_kind::type:
return "type";
- case LOGICAL_LOCATION_KIND_RETURN_TYPE:
+ case logical_location_kind::return_type:
return "returnType";
- case LOGICAL_LOCATION_KIND_PARAMETER:
+ case logical_location_kind::parameter:
return "parameter";
- case LOGICAL_LOCATION_KIND_VARIABLE:
+ case logical_location_kind::variable:
return "variable";
/* Kinds within XML or HTML documents. */
- case LOGICAL_LOCATION_KIND_ELEMENT:
+ case logical_location_kind::element:
return "element";
- case LOGICAL_LOCATION_KIND_ATTRIBUTE:
+ case logical_location_kind::attribute:
return "attribute";
- case LOGICAL_LOCATION_KIND_TEXT:
+ case logical_location_kind::text:
return "text";
- case LOGICAL_LOCATION_KIND_COMMENT:
+ case logical_location_kind::comment:
return "comment";
- case LOGICAL_LOCATION_KIND_PROCESSING_INSTRUCTION:
+ case logical_location_kind::processing_instruction:
return "processingInstruction";
- case LOGICAL_LOCATION_KIND_DTD:
+ case logical_location_kind::dtd:
return "dtd";
- case LOGICAL_LOCATION_KIND_DECLARATION:
+ case logical_location_kind::declaration:
return "declaration";
/* Kinds within JSON documents. */
- case LOGICAL_LOCATION_KIND_OBJECT:
+ case logical_location_kind::object:
return "object";
- case LOGICAL_LOCATION_KIND_ARRAY:
+ case logical_location_kind::array:
return "array";
- case LOGICAL_LOCATION_KIND_PROPERTY:
+ case logical_location_kind::property:
return "property";
- case LOGICAL_LOCATION_KIND_VALUE:
+ case logical_location_kind::value:
return "value";
}
}
diff --git a/gcc/diagnostic.cc b/gcc/diagnostic.cc
index 5b8eb7d14042..ab52e34e2fb5 100644
--- a/gcc/diagnostic.cc
+++ b/gcc/diagnostic.cc
@@ -1059,17 +1059,17 @@ logical_location_manager::function_p (key k) const
{
default:
gcc_unreachable ();
- case LOGICAL_LOCATION_KIND_UNKNOWN:
- case LOGICAL_LOCATION_KIND_MODULE:
- case LOGICAL_LOCATION_KIND_NAMESPACE:
- case LOGICAL_LOCATION_KIND_TYPE:
- case LOGICAL_LOCATION_KIND_RETURN_TYPE:
- case LOGICAL_LOCATION_KIND_PARAMETER:
- case LOGICAL_LOCATION_KIND_VARIABLE:
+ case logical_location_kind::unknown:
+ case logical_location_kind::module_:
+ case logical_location_kind::namespace_:
+ case logical_location_kind::type:
+ case logical_location_kind::return_type:
+ case logical_location_kind::parameter:
+ case logical_location_kind::variable:
return false;
- case LOGICAL_LOCATION_KIND_FUNCTION:
- case LOGICAL_LOCATION_KIND_MEMBER:
+ case logical_location_kind::function:
+ case logical_location_kind::member:
return true;
}
}
diff --git a/gcc/libgdiagnostics.cc b/gcc/libgdiagnostics.cc
index 0040db463dc1..29f63eb720c0 100644
--- a/gcc/libgdiagnostics.cc
+++ b/gcc/libgdiagnostics.cc
@@ -307,45 +307,45 @@ public:
gcc_unreachable ();
case DIAGNOSTIC_LOGICAL_LOCATION_KIND_FUNCTION:
- return LOGICAL_LOCATION_KIND_FUNCTION;
+ return logical_location_kind::function;
case DIAGNOSTIC_LOGICAL_LOCATION_KIND_MEMBER:
- return LOGICAL_LOCATION_KIND_MEMBER;
+ return logical_location_kind::member;
case DIAGNOSTIC_LOGICAL_LOCATION_KIND_MODULE:
- return LOGICAL_LOCATION_KIND_MODULE;
+ return logical_location_kind::module_;
case DIAGNOSTIC_LOGICAL_LOCATION_KIND_NAMESPACE:
- return LOGICAL_LOCATION_KIND_NAMESPACE;
+ return logical_location_kind::namespace_;
case DIAGNOSTIC_LOGICAL_LOCATION_KIND_TYPE:
- return LOGICAL_LOCATION_KIND_TYPE;
+ return logical_location_kind::type;
case DIAGNOSTIC_LOGICAL_LOCATION_KIND_RETURN_TYPE:
- return LOGICAL_LOCATION_KIND_RETURN_TYPE;
+ return logical_location_kind::return_type;
case DIAGNOSTIC_LOGICAL_LOCATION_KIND_PARAMETER:
- return LOGICAL_LOCATION_KIND_PARAMETER;
+ return logical_location_kind::parameter;
case DIAGNOSTIC_LOGICAL_LOCATION_KIND_VARIABLE:
- return LOGICAL_LOCATION_KIND_VARIABLE;
+ return logical_location_kind::variable;
case DIAGNOSTIC_LOGICAL_LOCATION_KIND_ELEMENT:
- return LOGICAL_LOCATION_KIND_ELEMENT;
+ return logical_location_kind::element;
case DIAGNOSTIC_LOGICAL_LOCATION_KIND_ATTRIBUTE:
- return LOGICAL_LOCATION_KIND_ATTRIBUTE;
+ return logical_location_kind::attribute;
case DIAGNOSTIC_LOGICAL_LOCATION_KIND_TEXT:
- return LOGICAL_LOCATION_KIND_TEXT;
+ return logical_location_kind::text;
case DIAGNOSTIC_LOGICAL_LOCATION_KIND_COMMENT:
- return LOGICAL_LOCATION_KIND_COMMENT;
+ return logical_location_kind::comment;
case DIAGNOSTIC_LOGICAL_LOCATION_KIND_PROCESSING_INSTRUCTION:
- return LOGICAL_LOCATION_KIND_PROCESSING_INSTRUCTION;
+ return logical_location_kind::processing_instruction;
case DIAGNOSTIC_LOGICAL_LOCATION_KIND_DTD:
- return LOGICAL_LOCATION_KIND_DTD;
+ return logical_location_kind::dtd;
case DIAGNOSTIC_LOGICAL_LOCATION_KIND_DECLARATION:
- return LOGICAL_LOCATION_KIND_DECLARATION;
+ return logical_location_kind::declaration;
case DIAGNOSTIC_LOGICAL_LOCATION_KIND_OBJECT:
- return LOGICAL_LOCATION_KIND_OBJECT;
+ return logical_location_kind::object;
case DIAGNOSTIC_LOGICAL_LOCATION_KIND_ARRAY:
- return LOGICAL_LOCATION_KIND_ARRAY;
+ return logical_location_kind::array;
case DIAGNOSTIC_LOGICAL_LOCATION_KIND_PROPERTY:
- return LOGICAL_LOCATION_KIND_PROPERTY;
+ return logical_location_kind::property;
case DIAGNOSTIC_LOGICAL_LOCATION_KIND_VALUE:
- return LOGICAL_LOCATION_KIND_VALUE;
+ return logical_location_kind::value;
}
}
diff --git a/gcc/logical-location.h b/gcc/logical-location.h
index dba9dc4010bf..3522934a90b4 100644
--- a/gcc/logical-location.h
+++ b/gcc/logical-location.h
@@ -29,34 +29,34 @@ along with GCC; see the file COPYING3. If not see
Roughly corresponds to logicalLocation's "kind" property in SARIF v2.1.0
(section 3.33.7). */
-enum logical_location_kind
+enum class logical_location_kind
{
- LOGICAL_LOCATION_KIND_UNKNOWN,
+ unknown,
/* Kinds within executable code. */
- LOGICAL_LOCATION_KIND_FUNCTION,
- LOGICAL_LOCATION_KIND_MEMBER,
- LOGICAL_LOCATION_KIND_MODULE,
- LOGICAL_LOCATION_KIND_NAMESPACE,
- LOGICAL_LOCATION_KIND_TYPE,
- LOGICAL_LOCATION_KIND_RETURN_TYPE,
- LOGICAL_LOCATION_KIND_PARAMETER,
- LOGICAL_LOCATION_KIND_VARIABLE,
+ function,
+ member,
+ module_,
+ namespace_,
+ type,
+ return_type,
+ parameter,
+ variable,
/* Kinds within XML or HTML documents. */
- LOGICAL_LOCATION_KIND_ELEMENT,
- LOGICAL_LOCATION_KIND_ATTRIBUTE,
- LOGICAL_LOCATION_KIND_TEXT,
- LOGICAL_LOCATION_KIND_COMMENT,
- LOGICAL_LOCATION_KIND_PROCESSING_INSTRUCTION,
- LOGICAL_LOCATION_KIND_DTD,
- LOGICAL_LOCATION_KIND_DECLARATION,
+ element,
+ attribute,
+ text,
+ comment,
+ processing_instruction,
+ dtd,
+ declaration,
/* Kinds within JSON documents. */
- LOGICAL_LOCATION_KIND_OBJECT,
- LOGICAL_LOCATION_KIND_ARRAY,
- LOGICAL_LOCATION_KIND_PROPERTY,
- LOGICAL_LOCATION_KIND_VALUE
+ object,
+ array,
+ property,
+ value
};
/* We want to efficiently support passing around logical locations in the
diff --git a/gcc/selftest-logical-location.cc b/gcc/selftest-logical-location.cc
index 5f33b48c849f..63b9fb4404c5 100644
--- a/gcc/selftest-logical-location.cc
+++ b/gcc/selftest-logical-location.cc
@@ -90,7 +90,7 @@ test_logical_location_manager::item_from_funcname (const char *funcname)
if (item **slot = m_name_to_item_map.get (funcname))
return *slot;
- item *i = new item (LOGICAL_LOCATION_KIND_FUNCTION, funcname);
+ item *i = new item (logical_location_kind::function, funcname);
m_name_to_item_map.put (funcname, i);
return i;
}
diff --git a/gcc/tree-logical-location.cc b/gcc/tree-logical-location.cc
index 1b2702fdb8a0..1d0cc5803dd7 100644
--- a/gcc/tree-logical-location.cc
+++ b/gcc/tree-logical-location.cc
@@ -90,18 +90,18 @@ tree_logical_location_manager::get_kind (key k) const
switch (TREE_CODE (node))
{
default:
- return LOGICAL_LOCATION_KIND_UNKNOWN;
+ return logical_location_kind::unknown;
case FUNCTION_DECL:
- return LOGICAL_LOCATION_KIND_FUNCTION;
+ return logical_location_kind::function;
case PARM_DECL:
- return LOGICAL_LOCATION_KIND_PARAMETER;
+ return logical_location_kind::parameter;
case VAR_DECL:
- return LOGICAL_LOCATION_KIND_VARIABLE;
+ return logical_location_kind::variable;
case NAMESPACE_DECL:
- return LOGICAL_LOCATION_KIND_NAMESPACE;
+ return logical_location_kind::namespace_;
case RECORD_TYPE:
- return LOGICAL_LOCATION_KIND_TYPE;
+ return logical_location_kind::type;
}
}
More information about the Gcc-cvs
mailing list