Compiler Error Messages
During the program compilation three types of errors can arise:
Compiler Warnings:
The warnings don't stop the compilation, just alert the user some non-recommended and error-prone operation is attempted in the code.
Sometimes one of these operations is coded deliberately to achieve a result, in this case the warnings can be disabled by setting the -w 1 option at the command line.

- 1 Passing scalar as pointer
- 2 Passing pointer to scalar
- 3 Passing different pointer types
- 4 Suspicious pointer assignment
- 5 Implicit conversion
- 6 Cannot export symbol without -export option
- 7 Identifier's name too big, truncated
- 8 Literal number too big, truncated
- 9 Literal string too big, truncated
- 10 UDT with pointer or var-len string fields
- 11 Implicit variable allocation
- 12 Missing closing quote in literal string
- 13 Function result was not explicitly set
- 14 Branch crossing local variable definition
- 15 No explicit BYREF or BYVAL
- 16 Possible escape sequence found in
- 17 The type length is too large, consider passing BYREF
- 18 The length of the parameters list is too large, consider passing UDT's BYREF
- 19 The ANY initializer has no effect on UDT's with default constructors
- 20 Object files or libraries with mixed multithreading (-mt) options
- 21 Object files or libraries with mixed language (-lang) options
- 22 Deleting ANY pointers is undefined
- 23 Array too large for stack, consider making it var-len or SHARED
- 24 Variable too large for stack, consider making it SHARED
- 25 Overflow in constant conversion
- 26 Variable following NEXT is meaningless
- 27 Cast to non-pointer
- 28 Return method mismatch
- 29 Passing Pointer
- 30 Command line option overrides directive
- 31 Directive ignored after first pass
- 32 'IF' statement found directly after multi-line 'ELSE'
- 33 Shift value greater than or equal to number of bits in data type
- 34 'BYVAL AS STRING' actually behaves like 'BYREF AS ZSTRING' (this is hoped to change in future releases)
- 35 '=' parsed as equality operator in function argument, not assignment to BYREF function result

Compiler Error messages:
The error messages stop the compilation after 10 errors (see the -maxerr command-line option to change that default value) or a fatal error occurred, and require a correction by the user before the compilation can be continued. The compiler signals the lines where the errors have been found, so the correction can be done quickly. In a few cases the place pointed at by the error messages is not where the errors can be found, it's the place where the compiler has given up in waiting for something that should be somewhere.

- 1 Argument count mismatch
- 2 Expected End-of-File
- 3 Expected End-of-Line
- 4 Duplicated definition
- 5 Expected 'AS'
- 6 Expected '('
- 7 Expected ')'
- 8 Undefined symbol
- 9 Expected expression
- 10 Expected '='
- 11 Expected constant
- 12 Expected 'TO'
- 13 Expected 'NEXT'
- 14 Expected identifier
- 15 Expected '-'
- 16 Expected ','
- 17 Syntax error
- 18 Element not defined
- 19 Expected 'END TYPE' or 'END UNION'
- 20 Type mismatch
- 21 Internal!
- 22 Parameter type mismatch
- 23 File not found
- 24 Invalid data types
- 25 Invalid character
- 26 File access error
- 27 Recursion level too deep
- 28 Expected pointer
- 29 Expected 'LOOP'
- 30 Expected 'WEND'
- 31 Expected 'THEN'
- 32 Expected 'END IF'
- 33 Illegal 'END'
- 34 Expected 'CASE'
- 35 Expected 'END SELECT'
- 36 Wrong number of dimensions
- 37 Array boundaries do not match the original EXTERN declaration
- 38 'SUB' or 'FUNCTION' without 'END SUB' or 'END FUNCTION'
- 39 Expected 'END SUB' or 'END FUNCTION'
- 40 Illegal parameter specification
- 41 Variable not declared
- 42 Variable required
- 43 Illegal outside a compound statement
- 44 Expected 'END ASM'
- 45 Function not declared
- 46 Expected ';'
- 47 Undefined label
- 48 Too many array dimensions
- 49 Array too big
- 50 User Defined Type too big
- 51 Expected scalar counter
- 52 Illegal outside a CONSTRUCTOR, DESTRUCTOR, FUNCTION, OPERATOR, PROPERTY or SUB block
- 53 Expected var-len array
- 54 Fixed-len strings cannot be returned from functions
- 55 Array already dimensioned
- 56 Illegal without the -ex option
- 57 Type mismatch
- 58 Illegal specification
- 59 Expected 'END WITH'
- 60 Illegal inside functions
- 61 Statement in between SELECT and first CASE
- 62 Expected array
- 63 Expected '{'
- 64 Expected '}'
- 65 Too many expressions
- 66 Expected explicit result type
- 67 Range too large
- 68 Forward references not allowed
- 69 Incomplete type
- 70 Array not dimensioned
- 71 Array access, index expected
- 72 Expected 'END ENUM'
- 73 Var-len arrays cannot be initialized
- 74 Invalid bitfield
- 75 Too many parameters
- 76 Macro text too long
- 77 Invalid command-line option
- 78 Var-len strings cannot be initialized
- 79 Recursive TYPE or UNION not allowed
- 80 Recursive DEFINE not allowed
- 81 Array fields cannot be redimensioned
- 82 Identifier cannot include periods
- 83 Executable not found
- 84 Array out-of-bounds
- 85 Missing command-line option for
- 86 Expected 'ANY'
- 87 Expected 'END SCOPE'
- 88 Illegal inside a compound statement or scoped block
- 89 UDT function results cannot be passed by reference
- 90 Ambiguous call to overloaded function
- 91 No matching overloaded function
- 92 Division by zero
- 93 Cannot pop stack, underflow
- 94 UDT's containing var-len string fields cannot be initialized
- 95 Branching to scope block containing local variables
- 96 Branching to other functions or to module-level
- 97 Branch crossing local array, var-len string or object definition
- 98 LOOP without DO
- 99 NEXT without FOR
- 100 WEND without WHILE
- 101 END WITH without WITH
- 102 END IF without IF
- 103 END SELECT without SELECT
- 104 END SUB or FUNCTION without SUB or FUNCTION
- 105 END SCOPE without SCOPE
- 106 END NAMESPACE without NAMESPACE
- 107 END EXTERN without EXTERN
- 108 ELSEIF without IF
- 109 ELSE without IF
- 110 CASE without SELECT
- 111 Cannot modify a constant
- 112 Expected period ('.')
- 113 Expected 'END NAMESPACE'
- 114 Illegal inside a NAMESPACE block
- 115 Symbols defined inside namespaces cannot be removed
- 116 Expected 'END EXTERN'
- 117 Expected 'END SUB'
- 118 Expected 'END FUNCTION'
- 119 Expected 'END CONSTRUCTOR'
- 120 Expected 'END DESTRUCTOR'
- 121 Expected 'END OPERATOR'
- 122 Expected 'END PROPERTY'
- 123 Declaration outside the original namespace
- 124 No end of multi-line comment, expected "'/"
- 125 Too many errors, exiting
- 126 Expected 'ENDMACRO'
- 127 EXTERN or COMMON variables cannot be initialized
- 128 At least one parameter must be a user-defined type
- 129 Parameter or result must be a user-defined type
- 130 Both parameters can't be of the same type
- 131 Parameter and result can't be of the same type
- 132 Invalid result type for this operator
- 133 Invalid parameter type, it must be the same as the parent TYPE/CLASS
- 134 Vararg parameters are not allowed in overloaded functions
- 135 Illegal outside an OPERATOR block
- 136 Parameter cannot be optional
- 137 Only valid in -lang
- 138 Default types or suffixes are only valid in -lang
- 139 Suffixes are only valid in -lang
- 140 Implicit variables are only valid in -lang
- 141 Auto variables are only valid in -lang
- 142 Invalid array index
- 143 Operator must be a member function
- 144 Operator cannot be a member function
- 145 Member function not allowed in anonymous UDT's
- 146 Expected operator
- 147 Declaration outside the original namespace or class
- 148 A destructor should not have any parameters
- 149 Expected class or UDT identifier
- 150 Var-len strings cannot be part of UNION's or nested TYPE's
- 151 Fields with constructors cannot be part of UNION's or nested TYPE's
- 152 Fields with destructors cannot be part of UNION's or nested TYPE's
- 153 Illegal outside a CONSTRUCTOR block
- 154 Illegal outside a DESTRUCTOR block
- 155 UDT's with methods must have unique names
- 156 Parent is not a class or UDT
- 157 CONSTRUCTOR() chain call not at top of constructor
- 158 BASE() initializer not at top of constructor
- 159 REDIM on UDT with non-CDECL constructor
- 160 REDIM on UDT with non-CDECL destructor
- 161 REDIM on UDT with non-parameterless default constructor
- 162 ERASE on UDT with non-CDECL constructor
- 163 ERASE on UDT with non-CDECL destructor
- 164 ERASE on UDT with non-parameterless default constructor
- 165 This symbol cannot be undefined
- 166 RETURN mixed with 'FUNCTION =' or EXIT FUNCTION (using both styles together is unsupported when returning objects with constructors)
- 167 'FUNCTION =' or EXIT FUNCTION mixed with RETURN (using both styles together is unsupported when returning objects with constructors)
- 168 Missing RETURN to copy-construct function result
- 169 Invalid assignment/conversion
- 170 Invalid array subscript
- 171 TYPE or CLASS has no default constructor
- 172 Function result TYPE has no default constructor
- 173 Base UDT without default constructor; missing BASE() initializer
- 174 Base UDT without default constructor; missing default constructor implementation in derived UDT
- 175 Base UDT without default constructor; missing copy constructor implementation in derived UDT
- 176 Invalid priority attribute
- 177 PROPERTY GET should have no parameter, or just one if indexed
- 178 PROPERTY SET should have one parameter, or just two if indexed
- 179 Expected 'PROPERTY'
- 180 Illegal outside a PROPERTY block
- 181 PROPERTY has no GET method/accessor
- 182 PROPERTY has no SET method/accessor
- 183 PROPERTY has no indexed GET method/accessor
- 184 PROPERTY has no indexed SET method/accessor
- 185 Missing overloaded operator:
- 186 The NEW[] operator does not allow explicit calls to constructors
- 187 The NEW[] operator only supports the { ANY } initialization
- 188 The NEW operator cannot be used with strings
- 189 Illegal member access
- 190 Expected ':'
- 191 The default constructor has no public access
- 192 Constructor has no public access
- 193 Destructor has no public access
- 194 Accessing base UDT's private default constructor
- 195 Accessing base UDT's private destructor
- 196 Illegal non-static member access
- 197 Constructor declared ABSTRACT
- 198 Constructor declared VIRTUAL
- 199 Destructor declared ABSTRACT
- 200 Member cannot be static
- 201 Member isn't static
- 202 Only static members can be accessed from static functions
- 203 The PRIVATE and PUBLIC attributes are not allowed with REDIM, COMMON or EXTERN
- 204 STATIC used here, but not the in the DECLARE statement
- 205 CONST used here, but not the in the DECLARE statement
- 206 VIRTUAL used here, but not the in the DECLARE statement
- 207 ABSTRACT used here, but not the in the DECLARE statement
- 208 Method declared VIRTUAL, but UDT does not extend OBJECT
- 209 Method declared ABSTRACT, but UDT does not extend OBJECT
- 210 Not overriding any virtual method
- 211 Implemented body for an ABSTRACT method
- 212 Override has different return type than overridden method
- 213 Override has different calling convention than overridden method
- 214 Implicit destructor override would have different calling convention
- 215 Implicit LET operator override would have different calling convention
- 216 Override has different parameters than overridden method
- 217 This operator cannot be STATIC
- 218 Parameter must be an integer
- 219 Parameter must be a pointer
- 220 Expected initializer
- 221 Fields cannot be named as keywords in TYPE's that contain member functions or in CLASS'es
- 222 Illegal outside a FOR compound statement
- 223 Illegal outside a DO compound statement
- 224 Illegal outside a WHILE compound statement
- 225 Illegal outside a SELECT compound statement
- 226 Expected 'FOR'
- 227 Expected 'DO'
- 228 Expected 'WHILE'
- 229 Expected 'SELECT'
- 230 No outer FOR compound statement found
- 231 No outer DO compound statement found
- 232 No outer WHILE compound statement found
- 233 No outer SELECT compound statement found
- 234 Expected 'CONSTRUCTOR', 'DESTRUCTOR', 'DO', 'FOR', 'FUNCTION', 'OPERATOR', 'PROPERTY', 'SELECT', 'SUB' or 'WHILE'
- 235 Expected 'DO', 'FOR' or 'WHILE'
- 236 Illegal outside a SUB block
- 237 Illegal outside a FUNCTION block
- 238 Ambiguous symbol access, explicit scope resolution required
- 239 An ENUM, TYPE or UNION cannot be empty
- 240 ENUM's declared inside EXTERN .. END EXTERN blocks don't open new scopes
- 241 STATIC used on non-member procedure
- 242 CONST used on non-member procedure
- 243 ABSTRACT used on non-member procedure
- 244 VIRTUAL used on non-member procedure
- 245 Invalid initializer
- 246 Objects with default [con|de]structors or methods are only allowed in the module level
- 247 Symbol not a CLASS, ENUM, TYPE or UNION type
- 248 Too many elements
- 249 Only data members supported
- 250 UNIONs are not allowed
- 251 Arrays are not allowed
- 252 COMMON variables cannot be object instances of CLASS/TYPE's with cons/destructors
- 253 Cloning operators (LET, Copy constructors) can't take a byval arg of the parent's type
- 254 Local symbols can't be referenced
- 255 Expected 'PTR' or 'POINTER'
- 256 Too many levels of pointer indirection
- 257 Dynamic arrays can't be const
- 258 Const UDT cannot invoke non-const method
- 259 Elements must be empty for strings and arrays
- 260 GOSUB disabled, use 'OPTION GOSUB' to enable
- 261 Invalid -lang
- 262 Can't use ANY as initializer in array with ellipsis bound
- 263 Must have initializer with array with ellipsis bound
- 264 Can't use ... as lower bound
- 265 FOR/NEXT variable name mismatch
- 266 Selected option requires an SSE FPU mode
- 267 Expected relational operator ( =, >, <, <>, <=, >= )
- 268 Unsupported statement in -gen gcc mode
- 269 Too many labels
- 270 Unsupported function
- 271 Expected sub
- 272 Expected '#ENDIF'
- 273 Resource file given for target system that does not support them
- 274 -o <file> option without corresponding input file
- 275 TYPE can only extend other TYPE symbols
- 276 Illegal outside a CLASS, TYPE or UNION method
- 277 CLASS, TYPE or UNION not derived
- 278 CLASS, TYPE or UNION has no constructor
- 279 Symbol type has no Run-Time Type Info (RTTI)
- 280 Types have no hierarchical relation
- 281 Expected a CLASS, TYPE or UNION symbol type
- 282 Casting derived UDT pointer from incompatible pointer type
- 283 Casting derived UDT pointer from unrelated UDT pointer type
- 284 Casting derived UDT pointer to incompatible pointer type
- 285 Casting derived UDT pointer to unrelated UDT pointer type
- 286 ALIAS name string is empty
- 287 LIB name string is empty
- 288 UDT has unimplemented abstract methods
- 289 #ASSERT condition failed
- 290 Expected '>'
- 291 Invalid size

Third party programs errors
These errors occur after the source has been compiled into assembler, they come from the auxiliary programs FB requires to compile a source into an executable: the linker, the assembler and (for Windows programs) the resource compiler.
If an IDE or a make utility are been used, additional errors can arise. These errors are outside the scope of this help.