carbon-language/carbon-lang

Invalid parse tree generated

Open

#7.247 aberto em 21 de mai. de 2026

Ver no GitHub
 (0 comments) (0 reactions) (0 assignees)C++ (1.535 forks)batch import
good first issuetoolchain

Métricas do repositório

Stars
 (33.701 stars)
Métricas de merge de PR
 (Mesclagem média 3d 6h) (129 fundiu PRs em 30d)

Description

What did you do, or what's a simple way to reproduce the bug?

echo 'fn{p>fn()}' > /tmp/fuzz.carbon
bazel run -c dbg //toolchain -- compile --phase=parse /tmp/fuzz.carbon

What did you expect to happen?

Diagnostics reported, and completing without crashing.

What actually happened?

FATAL failure at toolchain/parse/parse.cpp:68: Invalid tree returned by Parse(): NodeId #nodeA couldn't be extracted as a FunctionDefinition. Trace:
Aggregate N6Carbon5Parse18FunctionDefinitionE: begin
Vector: begin
NodeIdInCategory Decl|Statement: kind ExprStatement consumed
NodeIdInCategory Decl|Statement error: kind IdentifierNameExpr doesn't match
Vector: end
NodeIdForKind error: wrong kind IdentifierNameExpr, expected FunctionDefinitionStart
Aggregate N6Carbon5Parse18FunctionDefinitionE: error
Error: IdentifierNameExpr node left unconsumed.

Any other information, logs, or outputs that you want to share?

The checking of the produce parse tree does not occur in an -c opt build.

This issue was found by fuzzing.

Guia do colaborador