From 8baff6ae33c7135655efce6ec93ecfed63c3b7f4 Mon Sep 17 00:00:00 2001 From: Geza Lore Date: Tue, 18 Aug 2026 11:19:50 +0200 Subject: [PATCH] Internals: Don't wrap elaboration severity task in an AstInitial (#6280) (#8142) An elaboration severity system task ($info/$warning/$error/$fatal used as a module/generate/program/checker item), which is a module item,was parsed as an AstInitial wrapping an AstElabDisplay. That put AstElabDisplay (a non-statement) into the procedural statement list of an AstInitial. AstElabDisplay is evaluated by V3Width, which then deletes it. The AstInitial wrapper is historic and has no effect. Part of #6280 --- src/verilog.y | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/verilog.y b/src/verilog.y index 2a876a6d2..8d71e0e6d 100644 --- a/src/verilog.y +++ b/src/verilog.y @@ -4563,8 +4563,8 @@ system_f_or_t_expr_call: // IEEE: part of system_tf_call (can be tas ; severity_system_task: // IEEE: severity_system_task/elaboration_severity_system_task (1800-2009) - // // TODO: These currently just make initial statements, should instead give runtime error - severity_system_task_guts ';' { $$ = new AstInitial{$1, $1}; } + // // Elaboration-time task; V3Width evaluates and removes it + severity_system_task_guts ';' { $$ = $1; } ; severity_system_task_guts: // IEEE: part of severity_system_task (1800-2009)