Why is this an issue?

Generics should not define default values. Generic values should be explicitly set for synthesis to make sure that what is built is exactly what was expected to be built.

Generic values should also not be redefined in component declaration. It would make the propagation of generic values quite hard to understand.

How to fix it

Code examples

Noncompliant code example

entity fly is
  generic (
    dream : std_logic := '1';
    run : std_logic := '0'
  );
...
end;

architecture rtl of fly is
  component fly is
    generic (
      dream : std_logic := '0';
      run : std_logic := '1'
    );
  end component;
  ...

Compliant solution

entity fly is
  generic (
    dream : std_logic
  );
...
end;

architecture rtl of fly is
  component fly is
  end component;
  ...