]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
gccrs: Change variable underscore detection
authorPierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
Tue, 3 Mar 2026 11:23:42 +0000 (12:23 +0100)
committerArthur Cohen <arthur.cohen@embecosm.com>
Fri, 20 Mar 2026 17:10:45 +0000 (18:10 +0100)
gcc/rust/ChangeLog:

* checks/lints/rust-lint-unused-var.cc (starts_with_underscore): Add
function to detect underscore within symbol name.
(check_decl): Call new function for underscore checking.

Signed-off-by: Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
gcc/rust/checks/lints/rust-lint-unused-var.cc

index 85915dd2d118f1d226e847e62b5e92267c76ad5f..0b2442f210e48705947fb9b2acd3b5233274b3aa 100644 (file)
 namespace Rust {
 namespace Analysis {
 
+static bool
+starts_with_underscore (const char *var_name)
+{
+  auto pos = std::string (var_name).find_last_of (':');
+  if (pos == std::string::npos)
+    return strncmp (var_name, "_", 1) == 0;
+  return strncmp (var_name + pos + 1, "_", 1) == 0;
+}
+
 static void
 check_decl (tree *t)
 {
@@ -30,7 +39,7 @@ check_decl (tree *t)
 
   tree var_name = DECL_NAME (*t);
   const char *var_name_ptr = IDENTIFIER_POINTER (var_name);
-  bool starts_with_under_score = strncmp (var_name_ptr, "_", 1) == 0;
+  bool starts_with_under_score = starts_with_underscore (var_name_ptr);
   bool is_self = strcmp (var_name_ptr, "self") == 0;
 
   bool is_constant = TREE_CODE (*t) == CONST_DECL;