https://gcc.gnu.org/g:2f054b8db9fa548443560a1187c998945fc9634a

commit r16-3005-g2f054b8db9fa548443560a1187c998945fc9634a
Author: Owen Avery <powerboat9.ga...@gmail.com>
Date:   Fri Aug 1 21:27:28 2025 -0400

    gccrs: Catch parse failure in parse_path_meta_item
    
    gcc/rust/ChangeLog:
    
            * ast/rust-ast.cc (AttributeParser::parse_path_meta_item): Catch
            parse_expr returning nullptr and remove defunct comment.
    
    Signed-off-by: Owen Avery <powerboat9.ga...@gmail.com>

Diff:
---
 gcc/rust/ast/rust-ast.cc | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/gcc/rust/ast/rust-ast.cc b/gcc/rust/ast/rust-ast.cc
index 8918ef8a0073..fd371ea0cd99 100644
--- a/gcc/rust/ast/rust-ast.cc
+++ b/gcc/rust/ast/rust-ast.cc
@@ -3713,9 +3713,12 @@ AttributeParser::parse_path_meta_item ()
        skip_token ();
 
        std::unique_ptr<Expr> expr = parser->parse_expr ();
-       // stream_pos++;
-       /* shouldn't be required anymore due to parsing literal actually
-        * skipping the token */
+
+       // handle error
+       // parse_expr should already emit an error and return nullptr
+       if (!expr)
+         return nullptr;
+
        return std::unique_ptr<MetaItemPathExpr> (
          new MetaItemPathExpr (std::move (path), std::move (expr)));
       }

Reply via email to