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, var-len string, or var-len array 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 '=' parsed as equality operator in function argument, not assignment to BYREF function result
- 35 Mixing signed/unsigned operands
- 36 Mismatching parameter initializer
- 37 Ambiguous LEN or SIZEOF
- 38 Suspicious logic operation, mixed boolean and non-boolean operands
- 39 Redefinition of intrinsic
- 40 CONST qualifier discarded
- 41 Return type mismatch
- 42 Calling convention mismatch
- 43 Argument count mismatch

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

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.