https://gcc.gnu.org/g:bf0c6e1d34fd9cab0bef4d260f7e482e5fd4a371

commit r16-1348-gbf0c6e1d34fd9cab0bef4d260f7e482e5fd4a371
Author: David Malcolm <dmalc...@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 <dmalc...@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;
     }
 }

Reply via email to