127 of 172
ZBasic Language Reference 120 ZX Microcontroller Family 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. -D<id>[=<value>] This option defines an identifier that may be used in a conditional construct (see Section 3.12). 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. 7.3 Error and Warning Messages The compiler will output messages for detected error conditions and warnings to stderr (by default, the console). The message output may be redirected to a file using the I/O redirection capabilities of the operating system or by using a compiler option to specify the error output file (see –-error above). Error messages relating to problems with compiler options will not be affected by the presence of the error output specification. For code-related errors and warnings, the message will contain a reference to the filename and line number of the code corresponding to the error or warning. Although the line number given will generally be correct, code involving line continuations may lead to the line number reported being different than the actual physical line number where the offending code appears. The general format of the error and warning messages may be modified to some extent using the –- error-format option described in the preceding section. This may be useful if you are using the