Previous - Up - Next
2 Error Messages
The messages are listed in alphabetical order; the corresponding tags
are shown within brackets, e.g., [ENBOOL].
- array index out of bounds [EOOB]
- The used indexed is outside the defined range.
- array range must start at 0 [EZRANGE]
- An array index range must start at zero.
- array size is less than 1 [EASZR]
- An array must have at least one element.
- array size is not a constant integer [EASZVAR]
- The size of an array must be a constant integer.
- attribute type undefined [EATYPE]
- Either the attr_type or the type parameter of the
attribute must be specified.
- assignment to constant [ECONST]
- The lvalue that is assigned to is declared as a const and
thus can't be assigned to.
- bit range of field '...' outside register boundaries [EFBITS]
- The bit range of a field can only use bits present in the
register.
- bit range of field '...' overlaps with field '...' [EBITRO]
- The fields of a register must not overlap.
- bitslice size of ... bits is not between 0 and 64 [EBSSIZE]
- Bit slices cannot be larger than 64 bits.
- break is not possible here [EBREAKU]
- A break statement cannot be used in a foreach
or select statement.
- cannot assign to this expression [EASSIGN]
- The target of the assignment is not an l-value, and thus cannot be
assigned to.
- cannot assign to inlined parameter [EASSINL]
- The target of the assignment is a method parameter that has been
given a constant or undefined value when inlining the method.
- cannot define both allocate_type and local 'data' objects [EATTRDATA]
- Specifying allocate_type and using 'data' declarations in
the same attribute object is not allowed.
- cannot find file to import [EIMPORT]
- The file to imported could not be found. Use the -I
option to specify additional directories to search for imported
files.
- cannot use a register with fields as a value [EREGVAL]
- When a register has been specified with explicit fields, you have to
use the get and set methods to access the register as
a single value.
- cannot use an array as a value [EARRAY]
- A whole array cannot be used as a single value.
- cannot use variable index in a constant list [EAVAR]
- Indexing into constant lists can only be done with constant indexes.
- continue is not possible here [ECONTU]
- A continue statement cannot be used in a foreach
or select statement.
- device declarations are not allowed in imported files [EDEVIMP]
- Source files that are used with import directives may not
contain device declarations.
- duplicate assignment to parameter [EDPARAM]
- A parameter may only have a single assignment (apart from any
default value).
- duplicate bank function number [EDBFUNC]
- The device contains two differently-named banks that use the same
function number.
- duplicate definition of method [EDMETH]
- A method has more than one definition in the same scope.
- duplicate definition of variable [EDVAR]
- A local variable has more than one definition in the same code block.
- duplicate method parameter name [EARGD]
- All parameter names of a method must be distinct.
- file is empty [EEMPTY]
- The compilation failed becuse the input file was empty.
- forced compilation error in source code [EERSTMT]
- The source code contained a statement "error;", which
forces a compilation error with the above message.
- illegal 'after' call [EAFTER]
- An illegal after (..) call .. was made. A method called
this way may not take any parameters, and it may not be part of an
array.
- illegal bitslice operation [EBSLICE]
- A bitslice operation was attempted on an expression that is not an
integer.
- illegal bitorder [EBITO]
- The specified bit-order is not allowed.
- illegal comparison; mismatching types [EILLCOMP]
- The values being compared do not have matching types.
- illegal function application of ... [EAPPLY]
- The applied value is not a function.
- illegal operand to unary '...' [EUNOP]
- The operand has the wrong type for the given unary operator.
- illegal operands to binary '...' [EBINOP]
- One or both of the operands have the wrong type for the given binary
operator.
- illegal register size [EREGISZ]
- The specified register size is not allowed. Possible values are 1-8.
- illegal value for parameter [EPARAM]
- The parameter is not bound to a legal value.
- incompatible array declarations [EAINCOMP]
- The array has been declared more than once, in an incompatible way.
- incompatible method definitions [EMETH]
- The default implementation is overridden by an implementation with
different input/output parameters.
- incompatible version (...) while compiling a ... device [EVERS]
- A device declared to be written in one DML language version tried to
import a file writen in an incompatible language version.
- invalid expression [EINVALID]
- The expression does not produce a proper value.
- invalid log type [ELTYPE]
- Log-statement type must be one of "info", "error", "undefined",
"spec_violation", "target_error", and "unimplemented".
- log level must be an integer between 1 and 4 [ELLEV]
- Log-statement level must be 1-4.
- malformed format string [EFORMAT]
- The log-statement format string is malformed.
- missing device declaration [EDEVICE]
- The main source file given to the DML compiler must contain a
device declaration.
- missing implementation of method [EMMETH]
- The method has been declared, but is not given an implementation or
a default implementation.
- more than one output parameter not allowed in interface methods [EIMPRET]
- Methods within an interface declaration may have only have
zero or one output parameter.
- name collision on '...' [ENAMECOLL]
- The name is already in use in the same scope.
- negative size (...) of bit range for '...' [EBITRN]
- The size of the bit range must be positive. Note that the [msb:lsb]
syntax requires that the most significant bit (msb) is written to the
left of the colon, regardless of the actual bit numbering used.
- no assignment to parameter [ENPARAM]
- The parameter has been declared, but is not assigned a value or a
default value.
- no return type [ERETTYPE]
- The type of the return value (if any) must be specified for methods
that implement interfaces.
- no type for {input,output} parameter [ENARGT]
- Methods that are called must have data type declarations for all
their parameters. (Methods that are only inlined do not need this.)
- no value provided for auto-declared parameter '...' [EAUTOPARAM]
- A parameter declared as predefined using the 'auto' keyword was not
assigned a value at compile time, possibly due to a missing -D
compiler option.
- non-boolean condition [ENBOOL]
- Conditions must be properly boolean expressions; e.g., "if (i ==
0)" is allowed, but "if (i)" is not, if i is an
integer.
- non-constant element in list [ECLST]
- Lists may only contain constants.
- non-constant expression [ENCONST]
- A constant expression was expected.
- non-constant parameter, or circular parameter dependencies [EVARPARAM]
- The value assigned to the parameter is not a well-defined constant.
- not a list [ENLST]
- A list was expected.
- not a method [ENMETH]
- A method name was excpected.
- not a pointer [ENOPTR]
- A pointer value was expected.
- not a value [ENVAL]
- Only some objects can be used as values directly. An attribute can
only be accessed directly as a value if it has been declared using the
allocate_type parameter.
- nothing to break from [EBREAK]
- A break statement can only be used inside a loop or switch
construct.
- nothing to continue [ECONT]
- A continue statement can only be used inside a loop
construct.
- object is not allocated at run-time [ENALLOC]
- An object which is not allocated at run-time cannot be referenced as
a run-time value.
- overlapping registers [EREGOL]
- The registers are mapped to overlapping address ranges.
- passing const reference for nonconst parameter '...' in function call [ECONSTP]
- C function called with a pointer to a constant value for a parameter
declared without const in the prototype.
- recursive inline [ERECUR]
- Methods may not be inlined recursively.
- redefining auto parameter [EREAUTOPARAM]
- Built-in parameters cannot be redefined by the user.
- reference to unknown object [EREF]
- The referenced object has not been declared.
- right-hand side operand of '...' is zero [EDIVZ]
- The right-hand side of the given / or % operator is always zero.
- shift with negative shift count [ESHNEG]
- The right-hand side operand to a shift operator must not be negative.
- syntax error [ESYNTAX]
- The code is malformed.
- this object is not allowed here [ENALLOW]
- Many object types have limitations on the contexts in which they may
appear.
- trying to get a member of a non-struct [ENOSTUCT]
- The left-hand side operand of the . operator is not of struct type.
- trying to index something that isn't an array [ENARRAY]
- Indexing can only be applied to arrays, integers (bit-slicing),
and lists.
- uncaught exception [EBADFAIL]
- An exception is thrown in a context where it will not be caught.
- undefined array size [EASZUNDEF]
- The size of an array must be defined somewhere in the program.
- undefined index value [EIDX]
- The index value is not well-defined.
- undefined register size [EREGNSZ]
- All registers must have a specified constant size.
- undefined value [EUNDEF]
- Caused by an attempt to generate code for an expression that
contains the undefined value.
- unknown identifier [EIDENT]
- The identifier has not been declared anywhere.
- unknown interface type [EIFTYPE]
- The interface datatype is unknown.
- unknown struct member [EMEMBER]
- Attempt to access a nonexisting member of a struct.
- unknown template [ENTMPL]
- The template has not been defined.
- unknown type [ETYPE]
- The data type is not defined in the DML code.
- wrong number of arguments for format string [EFMTARGN]
- The log-statement has too few or too many arguments for the given
format string.
- wrong number of {input,output} arguments [EARG]
- The number of input/output arguments given in the call differs from
the method definition.
- wrong type in assignment [EASTYPE]
- The target of an assignment can't store the value given in the
source, because they are of different types.
- wrong type for argument n of format string ... [EFMTARGT]
- Argument type mismatch in a log-statement format string.
- wrong type for {input,output} parameter '...' when {calling,inlining} [EARGT]
- The data type of the argument value given for the mentioned method
parameter differs from the method definition.
- wrong type for parameter '...' in function call [EPTYPE]
- The data type of the argument value given for the mentioned C
function parameter differs from the function prototype.
Previous - Up - Next