Static Code Analysis Messages

Fatal Errors

100: User break 
Source analysis has been interrupted by user.

101: Too many errors or warnings 
The number of Errors and Warnings has exceeded the defined limits.

102: Error reading [...] 
Unable to read the source from [...] after the file was opened.

103: Unable to create [...] 
Unable to create file [...]. Destination disk might not have enough space, or you have no right to write to it.

104: Unable to load [...] 
File [...] does not exist, or you have no right to read it.

105: Unable to open [...] 
File [...] does not exist, or you have no right to read it.

106: Unable to save [...] 
Unable to open or save file [...]. Destination disk might not have enough space, or user does not have writing privilege.


200: [...]: Already in struct/union
A structure or an enumeration already has an element with the same name.

201: [...]: Conflicting global symbol
The project contains several global symbols of different type, but of the same name.

202: [...]: Undefined symbol
The definition of the used label or declared static function is missing.

203: [...]: Multiple initialization 
A symbol has been initialized more than once.

204: [...]: Multiple definition
A symbol has been defined more than once within the same module.

205: [...]: Multiple declaration 
A symbol has been declared more than once, in case multiple declaration is not allowed (for example: a symbol is a local variable or a function formal parameter).

206: [...]: Non-identical redeclaration
Redeclaration of a symbol within the same module does not correspond to the previous declaration.

207: Too many type specifiers 
A symbol cannot be declared as long and short, signed and unsigned, or int and float at the same time.

208: Too many type storage specifiers
The declaration contains incompatible storage specifiers (static and extern).

209: [...]: Invalid usage of typedef
Typedef symbol is used as a variable or a function name.

210: [...]: Invalid storage class
This Symbol storage class cannot be used in the context of the given declaration.

211: Invalid storage class 
This storage class cannot be used in the context of the given declaration.

212: Initialization is not allowed 
The initialization is not allowed for typedef, extern, or function declarations.

213: [...]: Undefined struct/union
A struct/union cannot contain the another incompletely defined struct/union.

214: [...]: Not a function
The declaration which precedes the function body does not represent the function declaration.

215: [...]: Not a function parameter
The old style definition of a function contains an identifier declaration which is not on its parameter list.

216: [...]: Unknown identifier 
Usage of an unknown identifier.

217: [...]: Not a struct/union on left side of '.'
An argument to the left of the "." operator must be of the struct/union type.

218: Unterminated string constant
A string constant is not terminated with a double quote character.

219: Unterminated character constant
A character constant is not terminated with a single quote character.

220: Empty character constant 
A character constant must contain at least one character.

221: Character constant too long
An ordinary character constant must contain a maximum of one character.

222: Invalid numeric constant Invalid format of a numeric constant.

223: Parse stack overflow 
The parse stack has overflowed. Source contains extremely complex statements or expressions.

224: Invalid declaration 
Syntax error in a declaration.

225: Invalid struct/union element
Syntax error in a struct/union element declaration.

226: Invalid parameter declaration
Syntax error in a function parameter declaration.

227: Invalid statement 
Syntax error in a statement.

228: Invalid argument list 
Syntax error in a list of arguments within a function call.

229: Invalid expression 
Syntax error in an expression.

230: [...]: Not a pointer to a struct/union
An argument to the left of the "->" operator must be a pointer to a struct/union type.

231: [...]: Invalid function call 
A function call has been used on a symbol which is not a function or a pointer to a function.

232: [...]: Invalid indirection argument
Indirection operator, "*", must be used on a pointer or an array name.

233: [...]: Invalid array access 
Array-access operator must be used on a pointer or an array name.

234: [...]: Invalid '&' operand 
The address-of operator, "&", has been used on inappropriate operand (for example, on enum constant).

235: [...]: Invalid left side of assignment
The left side of an assignment operator or an argument of "++" or "--" operators is not lvalue (it cannot be assigned).

236: [...]: Global symbol with multiple definitions
The symbol with extern linkage has multiple definitions.

237: [...]: Unknown struct/union member [...]
The right side of "->" or "." operators does not represent an element of a struct/union.

238: Unterminated comment started on line [...]
A comment started with "/*" does not have a closing delimiter "*/" within a source file.

239: Unterminated conditional directive started on line [...]
Preprocessor directive #if, #ifdef, or #ifndef has not been terminated with the #endif directive.

240: Macro/include stack overflow
The number of nested macro/include expansions has become too large. If the traditional preprocessor is active, this may indicate recursive macro definitions.

241: Operator 'defined' needs an identifier
Invalid form of "defined" operator usage within the #if preprocessor directive.

242: Invalid filename format in #include directive
A file name within the #include directive must be (after eventual macro expansion) in the form of <FILENAME> or "FILENAME".

243: Unable to open header file [...]
File [...] does not exist, or you have no right to read it.

244: Misplaced '#' or '##' in a macro definition
The stringify operator "#" is not followed by a macro argument name, or the concatenation operator "##" is not placed between two tokens.

245: Invalid macro name 
The name of a macro must be a valid identifier.

246: Invalid macro argument list
The macro argument list is not a list of identifiers enclosed in braces and separated by commas, or an argument name has been repeated in the list.

247: Invalid #[...] directive 
Invalid argument within #ifdef, #ifndef, or #line directive. It must be an identifier for the #ifdef and #ifndef directives, and a line number and optional file name for the #line directive.

248: Misplaced #[...] directive
Directives #else, #endif, or #elif must be in appropriate sequence of conditional compilation directives, which must start with #if, #ifdef, or #ifndef.

249: Unknown preprocessor directive
A name after "#" is not recognized as a valid preprocessor directive.

250: Unterminated macro call started on line [...]
A list of current macro arguments has not been completed within a source file.

251: Macro "[...]" used with wrong number of arguments
The number of current macro arguments differs from the number determined within the macro definition.

252: Invalid predefined macro "[...]"
The given predefined macro definition is not valid.

253: Unexpected EOF
A declaration or a statement has not been completed within a source file.

254: #error [...] 
Error generated by the #error directive. Text from the rest of the line containing the directive is displayed.

255: Division by zero 
Division by zero in expression within preprocessor directive.

256:  [...] Invalid number of arguments
Number of arguments in function call doesn't match number of function parameters.

293: [...]: Earlier definition
This message appears in pair with Error 204

294: [...]: Earlier declaration
This message appears in pair with Error 205

295: [...]: Another definition
This message appears in pair with Error 201

296: [...]: Another definition
This message appears in pair with Error 236


Warnings are messages used to draw attention to situations and practices that can lead to semantic errors, inefficient coding, or portability problems. The number of Warnings displayed can be reduced via options in Options > Static Code Analysis..., particularly by Warnings.

300: Identifier too long, truncated
The number of characters in an identifier exceeds the limit given in Max Identifier Length. The remaining characters are ignored.

301: [...]: Identifier never used
A symbol has been declared, but not used.

302: [...]: Project scope identifier used in only one module
A symbol has external linkage, but has been used in only one module.

303: #warning [...] Warning generated by the #warning directive. Text from the rest of the line containing the directive is displayed.

304: [...]: Module level symbol used only in function [...]
A variable or a constant has been declared as static at module level, but is used in only one function. Its definition should be moved to that function.

305: [...]: Missing global definition
A symbol with external linkage has been declared as extern, but no definition could be found. DAC can skip this message in case of symbols declared within standard library header files, if so specified by the Warnings parameter.

306: Non-identical redefinition of macro '[...]'
This macro definition differs from the previous one with the same macro name.

307: [...]: Non-identical type specification
Different attributes (signed, unsigned, const, or volatile) are used in two declarations of the same symbol.

308: [...]: Undefined struct/union/enum
There is no complete definition of a named struct/union/enum in the module.

309: [...]: Function call without declaration
A call to a non-declared function. The assumed declaration is: int ident();

310: Invalid escape sequence A string or a character constant contains an invalid sequence after the "\" character.

311: [...]: Mixed old style and ANSI function declarations
The same function has both ANSI and old style declarations.

312: Symbol references in 'asm' statement are ignored
Warning generated when asm, _asm, or __asm statement is used. DAC does not recognize uses of symbols within assembler statements or blocks. Usage of __DA_C__ is suggested.

313: [...]: Non-portable declaration
A symbol declaration is given without any specifier, "int" is assumed. Some compilers do not support such declarations

314: "sizeof" value is not defined in Project file [sizeof] section, default value 1 is used.
The 'sizeof' operator has been encountered within the "#if" or "#elif" directive with an argument of an unknown size. Development Assistant for C cannot compute type or object size if it is not specified in the Project file [sizeof] section.

315: "_arg" value is unknown 
IAR compiler "_argt$" intrinsic function call is encountered within "#if" or "#elif" directive. Development Assistant for C cannot report the type code of types or objects. Usage of __DA_C__ is suggested.

316: File [...] recursively included
File [...] contains an #include directive which produces repeated inclusion of [...], or loads a header which includes it again.

317: [...]: Attempt to modify const object
An attempt to modify const object (only supported by some compiler).

318: [...]: Attempt to modify const object
Attempt to modify const object (only supported by some compiler)

319: #warning [...]"
Warning generated by #warning directive

320: [...] not supported"
For not supported constructs ... (ASM)

321: [...]: used as code and data label in different modules
Identifier used as code and data label in different modules (ASM)

322: [...]: Multiple definition/declaration
Multiple definition/declaration of symbol or macro

323: [...]: Earlier definition/declaration
Earlier definition/declaration of symbol or macro

324: %s: Header file is included %d times.
Header file is included from module or another included header file more than once.

325: Header file is multiple analyzed.
Header file is included more than once and doesn't contain constructs to prevent multiple analysis.

326: %s: Automatic variable shall have been assigned a value before.
Variable value is used before any initialisation or assignment.

Copyright 1993-2017, RistanCASE GmbH