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.