Why is this an issue?

An enum member that is specified as a range should only define this range with integer literals (constant expressions are not allowed by the standard).

How to fix it

Code examples

Noncompliant code example

localparam int i = 1;
typedef enum { A[i:3] } e_t;

Compliant solution

typedef enum { A[1:3] } e_t;