To get more info a an error message use verror
eg verror 2295
# Message # 2295: # Within a fork-join_any or fork-join_none block, it shall be illegal to refer to formal # arguments passed by reference other than in the initialization value expression of variables # declared in a block_item_declaration of the fork. # # [DOC: IEEE Std 1800-2009 Verilog LRM - Section 9.3.2 "Parallel blocks"]
From page 159 of IEEE Std 1800-2009 SystemVerilog LRM
Variables declared in the block_item_declaration of a fork-join block shall be initialized to their initialization value expression whenever execution enters their scope and before any processes are spawned. Within a fork-join_any or fork-join_none block, it shall be illegal to refer to formal arguments passed by reference other than in the initialization value expressions of variables declared in a block_item_declaration of the fork.
So your code looks to be non-LRM compliant