[gcc r16-8221] gccrs: Change variable underscore detection

Arthur Cohen cohenarthur@gcc.gnu.org
Fri Mar 20 17:25:11 GMT 2026


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

commit r16-8221-gea31a3fddb5637db0d3acb08ed1741ea3a8166b0
Author: Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
Date:   Tue Mar 3 12:23:42 2026 +0100

    gccrs: Change variable underscore detection
    
    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>

Diff:
---
 gcc/rust/checks/lints/rust-lint-unused-var.cc | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/gcc/rust/checks/lints/rust-lint-unused-var.cc b/gcc/rust/checks/lints/rust-lint-unused-var.cc
index 85915dd2d118..0b2442f210e4 100644
--- a/gcc/rust/checks/lints/rust-lint-unused-var.cc
+++ b/gcc/rust/checks/lints/rust-lint-unused-var.cc
@@ -22,6 +22,15 @@
 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;


More information about the Gcc-cvs mailing list