Next: , Previous: Passing options to other programs, Up: Invoking GHDL


3.4 GHDL warnings

Some constructions are not erroneous but dubious. Warnings are diagnostic messages that report such constructions. Some warnings are reported only during analysis, others during elaboration.

You could disable a warning by using the --warn-no-XXX instead of --warn-XXX.

--warn-reserved
Emit a warning if an identifier is a reserved word in a later VHDL standard.
--warn-default-binding
During analyze, warns if a component instantiation has neither configuration specification nor default binding. This may be useful if you want to detect during analyze possibly unbound component if you don't use configuration. See VHDL standards, for more details about default binding rules.
--warn-binding
During elaboration, warns if a component instantiation is not bound (and not explicitly left unbound). Also warns if a port of an entity is not bound in a configuration specification or in a component configuration. This warning is enabled by default, since default binding rules are somewhat complex and an unbound component is most often unexpected.

However, warnings are even emitted if a component instantiation is inside a generate statement. As a consequence, if you use the conditional generate statement to select a component according to the implementation, you will certainly get warnings.

--warn-library
Warns if a design unit replaces another design unit with the same name.
--warn-vital-generic
Warns if a generic name of a vital entity is not a vital generic name. This is set by default.
--warn-delayed-checks
Warns for checks that cannot be done during analysis time and are postponed to elaboration time. This is because not all procedure bodies are available during analysis (either because a package body has not yet been analysed or because GHDL doesn't read not required package bodies).

These are checks for no wait statement in a procedure called in a sensitized process and checks for pure rules of a function.

--warn-body
Emit a warning if a package body which is not required is analyzed. If a package does not declare a subprogram or a deferred constant, the package does not require a body.
--warn-specs
Emit a warning if an all or others specification does not apply.
--warn-unused
Emit a warning when a subprogram is never used.
--warn-error
When this option is set, warnings are considered as errors.