150 of 208
ZBasic Language Reference 142 ZX Microcontroller Family Warning Type Number Description array-bounds 9 Warn about constant indices on arrays being outside of the valid range. calltask-byref 1 Warn about invoking a task that uses ByRef parameters. case-overlap 10 Warn about the same value appearing in more than one case expression or range in a Select Case statement. data-range 3 Warn about data values exceeding the capacity for the specified type. for-loop-termination 11 Warn about a For loop that may not terminate properly. hidden-data 5 Warn about data definitions hiding definitions at outer levels. never-returns 8 Warn that a routine will never return (automatically suppressed for the entry routine and routines invoked using CallTask). questionable-code 4 Warn about questionable coding practices. structure-compare 12 Warn about comparison of structures containing allocated strings. task-stack-size 13 Warn about insufficient task stack size. undefined-variable 2 Warn about the use of a variable before a value is assigned to it or when at least one path through a function does not set the return value. unused-parameter 6 Warn about an unused parameter. unused-procedure 14 Warn about an unused procedure. useless-code 7 Warn about code that will never be executed or has no effect. warnings 1000 Refers to all warning types collectively. The invocation option –-help-warning displays similar information and also indicates which warning types are on by default. --warning-is-error This option causes the compiler to treat all warnings as errors. -D<id>[=<value>] This option defines an identifier that may be used in a conditional construct (see Section 3.10). If no value is specified, the identifier is considered to be an integral identifier and is assigned the value 1. The value may be specified as a decimal value or, when prefixed by &H or 0, as a hexadecimal value. Otherwise, the value is considered to be a string value. The string value may optionally be enclosed in matching quote marks or apostrophes but this is only necessary if the value contains white space or begins with a character sequence that would otherwise indicate that an integral value is being specified. Note that depending on your operating system, using the ampersand or other special characters on the command line may require special quoting or escape characters. If the identifier already exists, an error message will be displayed. The –U option may be used to avoid this situation. Also note that identifiers defined in this fashion are also available to be used in program code somewhat as if they were defined by a Const definition. The primary difference is that integral valued identifiers have a universal type that can be used just like a literal integral value. Identifiers defined by this means are visible in all modules processed after the appearance of the option. Note that within a particular module the identifier may be undefined and re-defined. However, this has effect only within that particular module; the remaining modules will see the value as originally defined. -U<id> This option causes the compiler to remove the specified identifier (as defined by –D) from the internal symbol table if the identifier exists. If the identifier doesn’t exist, the option is silently ignored.