aboutsummaryrefslogtreecommitdiffstats
path: root/frontends/ast/ast.cc
diff options
context:
space:
mode:
authorJannis Harder <me@jix.one>2023-03-10 16:14:56 +0100
committerGitHub <noreply@github.com>2023-03-10 16:14:56 +0100
commitc50f641812deed626bc9ecbfe171f56f36bf8432 (patch)
tree0344e0d36e05dc8e9de1a9309d4c509f8cb92ba5 /frontends/ast/ast.cc
parentbaa3659ea54aed3a714ed2fcb8b5242f5332ef37 (diff)
parent1af7d6121f697b60e6eaabcabd50c49c90d09402 (diff)
downloadyosys-c50f641812deed626bc9ecbfe171f56f36bf8432.tar.gz
yosys-c50f641812deed626bc9ecbfe171f56f36bf8432.tar.bz2
yosys-c50f641812deed626bc9ecbfe171f56f36bf8432.zip
Merge pull request #3682 from daglem/struct-member-out-of-bounds
Out of bounds checking for struct/union members
Diffstat (limited to 'frontends/ast/ast.cc')
-rw-r--r--frontends/ast/ast.cc8
1 files changed, 7 insertions, 1 deletions
diff --git a/frontends/ast/ast.cc b/frontends/ast/ast.cc
index 982943d1b..5a2ade04a 100644
--- a/frontends/ast/ast.cc
+++ b/frontends/ast/ast.cc
@@ -524,7 +524,13 @@ void AstNode::dumpVlog(FILE *f, std::string indent) const
break;
case AST_IDENTIFIER:
- fprintf(f, "%s", id2vl(str).c_str());
+ {
+ AST::AstNode *member_node = AST::get_struct_member(this);
+ if (member_node)
+ fprintf(f, "%s[%d:%d]", id2vl(str).c_str(), member_node->range_left, member_node->range_right);
+ else
+ fprintf(f, "%s", id2vl(str).c_str());
+ }
for (auto child : children)
child->dumpVlog(f, "");
break;