QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare...
Transcript of QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare...
RELEASE NOTES
QA·C 9.4.1
February, 2018
Documentation Version 1.3
IMPORTANT NOTICE
DISCLAIMER OF WARRANTY
This document should only be used in conjunction with QA·C 9.4.1.
Programming Research Ltd. have taken due care in preparing this document which ithas endeavored to ensure is accurate at the time of printing. However, no liability can beaccepted for errors or omissions; nor should the document be considered as an expressedor implied warranty of accuracy or completeness, fitness for a particular purpose, or thatthe products described perform as specified within.
COPYRIGHT NOTICE
All rights reserved. No part of this document may be reproduced, stored in a retrievalsystem of any nature, or transmitted in any form or by any means, including photocopyingand recording, without the prior written permission of Programming Research Ltd., thecopyright owner. If any unauthorized acts are carried out in relation to this copyrightedwork, a civil claim for damages may be made and/or a criminal prosecution may result.Copyright ©Programming Research Ltd. 2018
TRADEMARKS
PRQA, the PRQA logo, QA·C, QA·C++ and High Integrity C++ (HIC++) are trademarks ofProgramming Research Ltd."MISRA", "MISRA C" and "MISRA C++" are registered trademarks of HORIBA MIRA Lim-ited, held on behalf of the MISRA Consortium."AUTOSAR" is a registered trademark of AUTOSAR GBR, held on behalf of the AU-TOSAR Development Partnership.Yices is a registered trademark of SRI International.Windows is a registered trademark of Microsoft Corporation.
RELEASE NOTES : QA·C 9.4.1 Page i Programming Research Ltd.
CONTACTING PROGRAMMING RESEARCH LTD
For technical support, contact your nearest Programming Research Ltd. authorized dis-tributor or, alternatively, the Programming Research Ltd. head office as follows:
by telephone on +44 (0) 1932 888 080by fax on +44 (0) 1932 888 081or by webpage: www.prqa.com/services/contact-support/
RELEASE NOTES : QA·C 9.4.1 Page ii Programming Research Ltd.
Contents1 Introduction 1
2 QA·C Changes Overview 22.1 Functional Changes in QA·C 9.4.1 . . . . . . . . . . . . . . . . . . . . . . . 2
2.1.1 Support for C99 Hexadecimal Floating Point . . . . . . . . . . . . . 22.1.2 Enhanced Analysis of Missing Const . . . . . . . . . . . . . . . . . 2
2.2 Functional Changes in QA·C 9.4.0 . . . . . . . . . . . . . . . . . . . . . . . 32.2.1 Analysis of Commented Out Code . . . . . . . . . . . . . . . . . . . 32.2.2 Other Changes in QA·C 9.4.0 . . . . . . . . . . . . . . . . . . . . . 4
2.3 Functional Changes in QA·C 9.3.0 . . . . . . . . . . . . . . . . . . . . . . . 42.3.1 MISRA C 2012 Improvements . . . . . . . . . . . . . . . . . . . . . 42.3.2 Configuration Changes . . . . . . . . . . . . . . . . . . . . . . . . . 42.3.3 End of line continuation character . . . . . . . . . . . . . . . . . . . 4
2.4 Functional Changes in QA·C 9.2.0 . . . . . . . . . . . . . . . . . . . . . . . 52.4.1 Full Support for Designated Initializers . . . . . . . . . . . . . . . . 5
2.4.1.1 Designated array members resulting in out of bounds . . 52.4.1.2 Overwritten initializers . . . . . . . . . . . . . . . . . . . . 62.4.1.3 Diagnostic Locations in Initializers . . . . . . . . . . . . . 6
2.4.2 Dataflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.4.2.1 Header Function Analysis . . . . . . . . . . . . . . . . . . 7
2.4.3 Metric Improvements . . . . . . . . . . . . . . . . . . . . . . . . . . 72.4.3.1 Ticket 24385 . . . . . . . . . . . . . . . . . . . . . . . . . 72.4.3.2 Ticket 24386 . . . . . . . . . . . . . . . . . . . . . . . . . 92.4.3.3 Ticket 24387 . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.4.4 Known Issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.4.4.1 Use of -extensions Option with Assembly . . . . . . . . . 9
2.5 Functional Changes in QA·C 9.1.1 . . . . . . . . . . . . . . . . . . . . . . . 102.5.1 Justification for Comment Based Suppressions . . . . . . . . . . . . 10
2.6 Functional Changes in QA·C 9.1.0 . . . . . . . . . . . . . . . . . . . . . . . 102.6.1 Messages Location Changes . . . . . . . . . . . . . . . . . . . . . . 102.6.2 Support for GCC language extensions . . . . . . . . . . . . . . . . 11
2.6.2.1 Nested Functions . . . . . . . . . . . . . . . . . . . . . . 112.6.2.2 Statement Expressions . . . . . . . . . . . . . . . . . . . 11
2.6.3 Dataflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122.6.3.1 Query Timeout Message . . . . . . . . . . . . . . . . . . 122.6.3.2 Buffer Overflow Checking . . . . . . . . . . . . . . . . . . 132.6.3.3 Parameters Declared with Array Syntax . . . . . . . . . . 13
3 QA·C Messages 143.1 Messages for QA·C 9.4.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.1.1 New Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143.1.2 Messages with Modified Behavior . . . . . . . . . . . . . . . . . . . 14
RELEASE NOTES : QA·C 9.4.1 Page iii Programming Research Ltd.
3.2 Messages for QA·C 9.4.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413.2.1 New Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413.2.2 Messages with Modified Behavior . . . . . . . . . . . . . . . . . . . 483.2.3 Message Text Changes . . . . . . . . . . . . . . . . . . . . . . . . . 118
3.3 Messages for QA·C 9.3.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1203.3.1 Messages with Modified Behavior . . . . . . . . . . . . . . . . . . . 120
3.4 Messages for QA·C 9.3.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1253.4.1 New Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1253.4.2 Removed Messages . . . . . . . . . . . . . . . . . . . . . . . . . . 1513.4.3 Messages with Modified Behavior . . . . . . . . . . . . . . . . . . . 1533.4.4 Message Text Changes . . . . . . . . . . . . . . . . . . . . . . . . . 362
3.5 Messages for QA·C 9.2.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3643.5.1 New Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3643.5.2 Messages with Modified Behavior . . . . . . . . . . . . . . . . . . . 3723.5.3 Message Text Changes . . . . . . . . . . . . . . . . . . . . . . . . . 450
3.6 Messages for QA·C 9.1.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4513.6.1 New Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4513.6.2 Messages with Modified Behavior . . . . . . . . . . . . . . . . . . . 451
3.7 Messages for QA·C 9.1.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4543.7.1 New Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4543.7.2 Messages with Modified Behavior . . . . . . . . . . . . . . . . . . . 468
4 QA·C Ticket Summary 4864.1 Ticket Summary for QA·C 9.4.1 . . . . . . . . . . . . . . . . . . . . . . . . . 4864.2 Ticket Summary for QA·C 9.4.0 . . . . . . . . . . . . . . . . . . . . . . . . . 4874.3 Ticket Summary for QA·C 9.3.1 . . . . . . . . . . . . . . . . . . . . . . . . . 5024.4 Ticket Summary for QA·C 9.3.0 . . . . . . . . . . . . . . . . . . . . . . . . . 5044.5 Ticket Summary for QA·C 9.2.0 . . . . . . . . . . . . . . . . . . . . . . . . . 5234.6 Ticket Summary for QA·C 9.1.1 . . . . . . . . . . . . . . . . . . . . . . . . . 5414.7 Ticket Summary for QA·C 9.1.0 . . . . . . . . . . . . . . . . . . . . . . . . . 542
RELEASE NOTES : QA·C 9.4.1 Page iv Programming Research Ltd.
1 Introduction
Version 9.4.1 of QA·C is a patch release.
This document provides information on the feature additions and fixes made in the re-lease.
RELEASE NOTES : QA·C 9.4.1 Page 1 Programming Research Ltd.
2 QA·C Changes Overview
2.1 Functional Changes in QA·C 9.4.1
2.1.1 Support for C99 Hexadecimal Floating Point
ISO:C99 allows that floating constants can be expressed in hexadecimal representation inaddition to decimal representation. In line with this, QA·C is now able to parse the syntaxof floating point constants.
QA·C also generates a new C99 language extension message (1076) to report the use ofhexadecimal floating point constants, for example:
/*PRQA S 1076 ++*/double val = 0x1.1p4; /* Hexadecimal floating constant */
2.1.2 Enhanced Analysis of Missing Const
The QA·C 9.4.1 type system has been reworked to allow for better analysis of missingconst, specifically through the analysis of pointer to types. Specifically, QA·C is now ableto identify pointers/pointer variables which exist in block scope and point to non-const-qualified types, but which could instead point to const-qualified types.
QA·C also generates new messages (3678, 3679 and 3695) to indicate when a local orstatic pointer variable could be declared with increased const-qualification, for example:
/*PRQA S 0-9999 ++*//*PRQA S 3678 --*/
void foo (int * x){int * y; /* No message */int * z; /* Message 3678 - could be 'int const *' */int * w; /* Message 3678 - could be 'int const *' */y = x;z = y;w = z;* y = '\0';}
void take_ip (int * p);void take_icp (int * cp);void take_ipp (int ** pp);
RELEASE NOTES : QA·C 9.4.1 Page 2 Programming Research Ltd.
void bar (int * x){int * s = x; /* No message */int * t = x; /* Message 3678 - could be 'int const *' */int * u = x; /* No message */
take_ip (s);take_icp (t);take_ipp (&u);}
void baz (int i){int arr[] = { 1, 2, 3, 4, 5 }; /* Message 3678 - could be 'int const [5]' */return arr[i];}
Note: There are known false positive instances of 3678, 3679 and 3695, where typedefsare used to build derived types. For example:
typedef int Num;
void incorrect (Num x) {Num a[5] = { x }; // false positive 3678Num * p = a;p[1] = 6;
}
2.2 Functional Changes in QA·C 9.4.0
2.2.1 Analysis of Commented Out Code
QA·C 9.4.0 provides the analysis of commented out code, for both line and block com-ments, by tokenizing comments and using a triplet-based algorithm (described in themessage help) to compare the comments against a table of "common code sequences"gathered from real-world, standard-compliant projects. While TU (Translation Unit) codeis being parsed, this table is dynamically updated with the sequences of tokens foundin the code, and the token statistics for the project currently being parsed are updatedaccordingly.
The configuration option -po comment::dynamic_statistics allows you to control thisupdate behavior. The option is enabled by default, being set to -po comment::dynamic_statistics+.
RELEASE NOTES : QA·C 9.4.1 Page 3 Programming Research Ltd.
If you wish to disable the behavior, for example because you wish to ensure that the sametable of "common code sequences" is used for every single TU, then simply set the optionto -po comment::dynamic_statistics-.
2.2.2 Other Changes in QA·C 9.4.0
There is improved signal to noise ratio in the analysis of resources.
In addition, QA·C 9.4.0 addresses several critical failures.
2.3 Functional Changes in QA·C 9.3.0
2.3.1 MISRA C 2012 Improvements
This release includes many improvements to the coverage of MISRA C 2012, specificallyrelating to depth of analysis. Detailed information relating to messages added, removedand changed can be found in the QA·C Messages section.
2.3.2 Configuration Changes
2.3.3 End of line continuation character
QA·C formerly treated \new-line as a continuation character. However, this behaviorcould have resulted in configuration problems that were hard to identify.
For example, the following configuration file:
-i C:\project\include\include1-i C:\project\include\include2\-d macro
would have been processed as:
-i C:\project\include\include1-i C:\project\include\include2\-dmacro
which meant that QA·C would have treated macro as a source file to analyze.
Therefore, QA·C no longer recognizes \new-line as a continuation character. As a result,the example above would now be parsed as two separate -i options and a single -doption.
RELEASE NOTES : QA·C 9.4.1 Page 4 Programming Research Ltd.
2.4 Functional Changes in QA·C 9.2.0
2.4.1 Full Support for Designated Initializers
The handling of initializers by QA·C has been fully updated allowing for full and correctsupport for aggregate initializers including their inclusion during dataflow analysis.
struct A {int i;int j;int k;
};
void foo (void){
int j = 0;
struct A a = {1 /* 1575 */, 2 /* 1586 */, 3 /* 1586 */, .j=j /* 1398 1575 */, 0 /* 1398 1398 */
};
1 / a.i; /* OK */1 / a.j; /* 2831 */1 / a.k; /* 2831 */
}
The above example shows several improvements compared to the previous release ofQA·C:
• The correct value used in the initialization is fully modeled by dataflow, including asub-message that points to the expression initializing the member.
• The location of an overwritten initializer is highlighted by a sub-message as part ofthe primary message.
2.4.1.1 Designated array members resulting in out of bounds
A non designated initializer appearing after a designated initializer may result in an at-tempt to initialize past the end of the array. Previous versions of QA·C did not detect
RELEASE NOTES : QA·C 9.4.1 Page 5 Programming Research Ltd.
this:
void foo (void){
char a[4] = { [3]=1, 2 }; /* 0684 */}
2.4.1.2 Overwritten initializers
Using designators can result in an earlier initializer being overwritten by a subsequentone. QA·C now includes a sub-message that highlights the overwritten initializer.
void foo (void){
char a[4] = { 1, 2 /* 1586*/, 3, [1]=2 /* 1397 */
};}
2.4.1.3 Diagnostic Locations in Initializers
All of the above changes were made possible by separating the parsing of initializersfrom the mapping to the type of the declaration. An additional benefit is that locations fordiagnostics issued against initializers now refer directly to the initializer and not the tokenafter.
void foo (void){
char a[2] = { 1 /* 1292 -- New Location */, '0' /* 1292 -- Old Location */
};}
We have undertaken to provide as accurate a list as possible for the messages that havehad their locations changed. However, given the large number diagnostics that are pos-sible for an initialization it is possible that some messages are not listed. However, itis expected that the majority of differences for most code will come down to a columnchange.
See the QA·C 9.3.0 Modified Messages and QA·C 9.3.0 Ticket Summary for more infor-mation.
RELEASE NOTES : QA·C 9.4.1 Page 6 Programming Research Ltd.
2.4.2 Dataflow
2.4.2.1 Header Function Analysis
The syntax for the -po df::analyse_header_functions option has been changed to en-able greater control over Dataflow analysis of functions defined in header files, particularlywhen interfunction analysis is enabled. Previously, -po df::analyse_header_functionswas a boolean option. The new syntax is:
-prodoption df::analyse_header_functions={off|inter|intra}
To support existing configurations, enabling this option:
-po df::analyse_header_functions+
is equivalent to:
-po df::analyse_header_functions=intra
The intra setting specifies that functions defined in header files are only inlined whencalled from a definition in the source file, whereas inter is equivalent to the previousfunctionality which resulted in analysis of all header functions and inlining of other calledfunctions. As a result, using the intra setting provides an improvement in analysis timeparticularly for projects that make heavy use of inline functions defined in header files.Please see the QA·C manual for more details.
2.4.3 Metric Improvements
2.4.3.1 Ticket 24385
Metrics STM20 ’Number of Operand Occurrences’ will be updated to improve consistencybetween QA·C and QA·C++. In particular, the invocation of a macro that expands to an_ignore*/_munch* annotation will be counted.
Metrics STM21 ’Number of Operand Occurrences’ will be updated to: (1) no longer in-correctly count twice the ’#’ and ’elif’ tokens of an ’#elif’ preprocessing directive, and (2)no longer incorrectly count the ’if’ and ’else’ tokens of preprocessing directives that arelocated in included files, when the -ppmetrics option is not enabled.
Metrics STFDT ’Number of Distinct Operators in Function’ and STFN1 ’Number of Oper-ator Occurrences in Function’ will be updated to improve consistency between QA·C andQA·C++. In particular, when assembly language extensions of the form ’asm ... ’ or ’asm( ... )’ are used, only the ’asm’ will be counted as an operator, but not the open/closebrackets.
Metrics STOPN ’Halstead Distinct Operands’ will correctly count the names of ’inline asm’
RELEASE NOTES : QA·C 9.4.1 Page 7 Programming Research Ltd.
functions defined using attribute-style syntax, as contributing to the total number of uniqueidentifiers in the program.
Metrics STOPT ’Halstead Distinct Operators’ will no longer incorrectly count the ’if’ and’else’ tokens of preprocessing directives that are located in included files, when the -ppmetrics option is not enabled.
Metrics STTOT ’Total Number of Tokens Used’ will be updated to: (1) always count allpreprocessing directives, even if they are located in a section of code that is excludedby other preprocessing directives (2) always count tokens that follow on the same linethe ’#if’, ’#ifdef’, ’#elif’, ’#define’ and ’#undef’ preprocessing directives (3) always ignoretokens that follow on the same line the ’#else’, ’#endif’, ’#error’ ’#include’ and other un-recognised directives (4) when assembly language extensions of the form ’asm ... ’ or’asm ( ... )’ are used, only count the ’asm’ token, but not the open/close brackets (5) nolonger incorrectly count twice the ’#’ and ’elif’ tokens of an ’#elif’ preprocessing directive(6) no longer incorrectly count the ’if’ and ’else’ tokens of preprocessing directives thatare located in included files, when the -ppmetrics option is not enabled.
Metrics STVAR ’Total Number of Identifiers’ will be updated to: (1) always count all prepro-cessing directives, even if they are located in a section of code that is excluded by otherpreprocessing directives (2) always count tokens that follow on the same line the ’#if’,’#ifdef’, ’#elif’, ’#define’ and ’#undef’ preprocessing directives (3) always ignore tokensthat follow on the same line the ’#else’, ’#endif’, ’#error’ ’#include’ and other unrecogniseddirectives (4) correctly count the names of ’inline asm’ functions defined using attribute-style syntax, as contributing to the total number of unique identifiers in the program.
Metrics STAV1, STAV2 and STAV3 ’Average Size of Statement in Function’ depend onSTFN1, therefore these metrics will also be affected by the update.
Metrics STHAL ’Halstead Prediction of STTOT’ and STZIP ’Zipf Prediction of STTOT’ de-pend on STOPN and STOPT, therefore these metrics will also be affected by the update.
Metrics STSHN ’Shannon Information Content’ depends on STOPN, STOPT and STZIP,therefore this metrics will also be affected by the update.
Metrics STVOL ’Program Volume’ depends on STOPN, STOPT and STTOT, therefore thismetrics will also be affected by the update.
Metrics STDIF ’Program Difficulty’ depends on STVOL and STVAR, therefore this metricswill also be affected by the update.
Metrics STEFF ’Program Effort’ depends on STVOL and STDIF, therefore this metrics willalso be affected by the update.
Metrics STDEV ’Estimated Development Time’ and STBUG ’Residual Bugs (Token-BasedEstimate)’ depend on STEFF, therefore these metrics will also be affected by the update.
RELEASE NOTES : QA·C 9.4.1 Page 8 Programming Research Ltd.
2.4.3.2 Ticket 24386
The calculation of function metrics STLIN ’Number of Code Lines’ will be adjusted in caseswhere the code contains statement expressions and/or nested functions, which are GCClanguage extensions. In particular: (1) the STLIN of a statement expression will alwaysbe zero (2) the STLIN of a function containing a statement expression will also include thelines of that statement expression (3) the STLIN of a function containing a nested functionwill also include the lines of that nested function. Note that the STLIN of a nested functionwill remain unchanged, still counting the lines of that nested function.
The calculation of function metrics STXLN ’Number of Executable Lines’ will be adjustedso that: (1) defining declarations (i.e. declarations with initialisers) will only contributelines that pertain to their initialiser, starting from the line that contains the ’=’ token (2)the STXLN of a statement expression will always be zero (3) the STXLN of a functioncontaining a statement expression will also include the executable lines of that statementexpression.
The calculation of function metrics STKDN ’Knot Density’ and STPDN ’Path Density’ de-pends on STXLN, therefore these metrics will also be affected by the update.
2.4.3.3 Ticket 24387
The calculation of file metrics STCDN ’Comment to Code Ratio’ will count ’/’ charactersthat belong to the code (e.g. that form the ’/’ or ’/=’ operators), and will not count ’\’ char-acters that are immediately followed by a new-line character (i.e. used for line splicing).
2.4.4 Known Issues
2.4.4.1 Use of -extensions Option with Assembly
There is a known issue in QA·C9.2.0 when using the -extensions / -ex option with sourcefiles that contain the asm keyword. Enabling all extensions by setting the option to -ex+or -ex all will cause a parse error (message 0907) against the use of the asm keyword.The workaround is to enable all of the extensions individually as required e.g.
-ex vms-ex convex-ex dollar-ex c++-ex pc-ex ansipc-ex asm
RELEASE NOTES : QA·C 9.4.1 Page 9 Programming Research Ltd.
-ex svr4-ex longlong-ex sl
2.5 Functional Changes in QA·C 9.1.1
2.5.1 Justification for Comment Based Suppressions
The syntax for the comment based suppressions has been extended to allow for justifica-tion text to be associated with the suppression annotation.
For Example:
doSomething(a, b); // PRQA S 1234 # This is allowed
The # delimiter is used to indicate the start of the optional justification text. See the QA·Cmanual for details of the changes to the syntax of comment based suppressions.
2.6 Functional Changes in QA·C 9.1.0
2.6.1 Messages Location Changes
The QA·C preprocessor has been updated to improve consistency with QA·C++ and tolay the groundwork for the future use of a preprocessor common to both tools.
The focus of this work in 9.1.0 are fixes to the location of tokens and messages.
For example, previous versions of QA·C would issue diagnostics relating to the trailingcomma in an enumerator on the token after the comma:
enum E {E0,
/* ^* Location for new release*/
};/* ^* Location for previous releases*/
The calculation of metrics STTLN, STVAR, STDEV, STDIF, STEFF, STHAL, STOPN,STSHN, STVOL, STZIP have also been affected as a result of this change.
Note: Messages that are known to have changed as a result of ticket 20522 are listed
RELEASE NOTES : QA·C 9.4.1 Page 10 Programming Research Ltd.
in Messages with Modified Behavior. These messages were discovered as a result ofextensive regression testing of QA·C. However, it is possible that the location of otherQA·C messages will have changed in rare cases.
2.6.2 Support for GCC language extensions
2.6.2.1 Nested Functions
QA·C now fully supports the GCC nested function language extension.
For example:
int f1(int j) {int f2(int i){
return i + j;}return f2(10);
}
2.6.2.2 Statement Expressions
With the addition of nested function support, QA·C has improved statement expressionsupport by mapping them to nested functions.
For example, the statement expression:
int f3(void) {return ({ int i = 0; i; });
}
will be modeled by QA·C as a call to a nested function:
int f3(void) {void statement_expr_0_2_10 (void) { int i; return i; }return statement_expr_0_2_10 ();
}
The improved support for statement expressions may result in a significant difference inmessages generated for projects that make use the extension. For example:
1. message 1021 will be generated at the start and not at the end of a statementexpression
2. message 3200 instead of message 3112 will be generated against the statement
RELEASE NOTES : QA·C 9.4.1 Page 11 Programming Research Ltd.
expression if its result not used
3. message 3112 will no longer be generated against the last statement in a statementexpression
4. the generation of messages related to the type of the result of a statement expres-sion will be corrected, this improves the behavior of e.g. messages 0436, 1253,1291, 1840, 4447, etc.
5. effects across the boundaries of statement expression will be analyzed, so that thebehavior of various messages with respect to statement expressions will improve,including e.g. messages 0769, 0770, 0711, 2205, 2212, 3196, 3203, 3220, etc. andalso potentially all dataflow messages.
Note: Messages that are known to have changed as a result of ticket 11994 are listedin Messages with Modified Behavior. These messages were discovered as a result ofextensive regression testing of QA·C. However, it is possible that all QA·C messagesrelated to evaluation of expressions and statements in general could be affected by theintroduction of this new feature and these messages are not explicitly listed in Messageswith Modified Behavior. As a case in point, there are more than 600 messages in QA·Crelated to casts, conversions, statements and expressions for which there could potentiallybe a construct involving a statement expression that would result in different behaviorbetween QA·C 9.1.0 and earlier versions.
2.6.3 Dataflow
2.6.3.1 Query Timeout Message
A new dataflow option df::query_timeout_message has been introduced to generate ananalysis message
2758: Query has exceeded the configured maximum: ’%1sms’. Dataflow analysis contin-ues with the next query.
whenever a solver query times out, regardless of the df::function _timeout configuration.Previously, it was possible to guarantee that a diagnostic is generated on query timeoutonly by setting df::query_timeout to be greater than or equal to df::function_timeout, withmessage 2755 generated in this case. However, this has two undesired side effects:
• analysis of the current function will not be completed after a query times out
• solver is run in a conservative mode, to guarantee that the time taken does notexceed the specified df::query_timeout, which may mean that a timeout is morelikely
RELEASE NOTES : QA·C 9.4.1 Page 12 Programming Research Ltd.
On the other hand, the df::query_timeout_message option does not suffer from these sideeffects; therefore, it is recommended that df::function_timeout is no longer used, or is setto be greater than df::query_timeout.
2.6.3.2 Buffer Overflow Checking
QA·C detects buffer overflow by checking that a pointer is within the bounds of the objectit refers to. However, previously, the analysis did not include the width of the dereferencedtype when performing the analysis. For example:
#include <stdlib.h>void foo (void){
int * p = (int*)malloc(2); // sizeof(int) == 4*p = 0; // 2 byte invalid read previously not detected
}
QA·C 9.4.1 now correctly identifies this problem.
In addition, for intra-function dataflow, QA·C 9.4.1 will use the dimension of parametersdeclared as arrays when performing out of bounds checking when that parameter is used.For example:
void foo (int array[4]){
array[5]; // 2840 Constant: Dereference of an invalid pointer value.}
2.6.3.3 Parameters Declared with Array Syntax
QA·C will generate a message if an array passed as an argument to a function does nothave as many elements as the array declarator of the function parameter. For example:
void foo1 (int array[4]);void foo2 (){
int array[2];foo1(array); // 2781: Definite: Function argument has fewer elements
// than the array dimension in the parameter declaration.}
Note: This analysis will not be run for functions that are inlined by QA·C 9.4.1, that iswhen QA·C is run with a non zero -po df::inter setting.
RELEASE NOTES : QA·C 9.4.1 Page 13 Programming Research Ltd.
3 QA·C Messages
3.1 Messages for QA·C 9.4.1
3.1.1 New Messages
The following table lists messages which are new in QA·C 9.4.1.
Table 3.1: Messages Added for QA·C 9.4.1
Msg. Id. Description
1076
[C99] Use of hexadecimal floating constant.Ticket(s):23566 Added support for parsing of C99 hexadecimal floating con-
stants.
3678
The object referenced by ’%1s’ is not modified through it, so ’%1s’ couldbe declared with type ’%2s’.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3679
The object referenced by ’%1s’ is not modified through it, so ’%1s’ couldbe declared with type ’%2s’.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3695
’%1s’ indirectly refers to objects it does not modify, so could potentiallybe declared with type ’%2s’.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3.1.2 Messages with Modified Behavior
The following table summarizes the messages whose behavior has been modified as aresult of a change in specification.
RELEASE NOTES : QA·C 9.4.1 Page 14 Programming Research Ltd.
Table 3.2: Messages Modified for QA·C 9.4.1
Msg. Id. Description
0318
Redundant type qualifier used in castTicket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
0434
[S] The identifier ’%s’ has not been declared.Ticket(s):23566 Added support for parsing of C99 hexadecimal floating con-
stants.
0454
[C] The address-of operator ’&’ cannot be applied to an object declaredwith ’register’.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
0540
[C] 2nd and 3rd operands of conditional operator ’?’ must have com-patible types.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
0701
Argument for memory size does not refer to ’sizeof (%s)’.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
0724
The value of this implicitly-specified enumeration constant is not unique.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
0746
[C] ’return exp;’ found in ’%s()’ whose return type is ’void’.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
0747
[C] ’return exp;’ found in ’%s()’ whose return type is qualified ’void’.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 15 Programming Research Ltd.
Table 3.2 – continued from previous page
Msg. Id. Description
0907
[S] Unexpected token.Ticket(s):23566 Added support for parsing of C99 hexadecimal floating con-
stants.
0941
[C] A variable length array may not be initialized.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
1336
Parameter identifiers missing in declaration of a function type.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
1487
Comparing the representations of objects of different types.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
1820
The %1s operand is non-constant and ’essentially signed’ (%2s) butwill be implicitly converted to an unsigned type (%3s) in this arithmeticoperation.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
1821
The %1s operand is non-constant and ’essentially signed’ (%2s) butwill be implicitly converted to an unsigned type (%3s) in this bitwiseoperation.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
1822
The %1s operand is non-constant and ’essentially signed’ (%2s) butwill be implicitly converted to an unsigned type (%3s) in this relationaloperation.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 16 Programming Research Ltd.
Table 3.2 – continued from previous page
Msg. Id. Description
1823
The %1s operand is non-constant and ’essentially signed’ (%2s) butwill be implicitly converted to an unsigned type (%3s) in this equalityoperation.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
1824
The %1s operand is non-constant and ’essentially signed’ (%2s) butwill be implicitly converted to an unsigned type (%3s) in this conditionaloperation.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
1830
The %1s operand is constant, ’essentially signed’ (%2s) and negativebut will be implicitly converted to an unsigned type (%3s) in this arith-metic operation.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
1831
The %1s operand is constant, ’essentially signed’ (%2s) and negativebut will be implicitly converted to an unsigned type (%3s) in this bitwiseoperation.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
1832
The %1s operand is constant, ’essentially signed’ (%2s) and negativebut will be implicitly converted to an unsigned type (%3s) in this rela-tional operation.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
1833
The %1s operand is constant, ’essentially signed’ (%2s) and negativebut will be implicitly converted to an unsigned type (%3s) in this equalityoperation.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 17 Programming Research Ltd.
Table 3.2 – continued from previous page
Msg. Id. Description
1834
The %1s operand is constant, ’essentially signed’ (%2s) and negativebut will be implicitly converted to an unsigned type (%3s) in this condi-tional operation.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
1840
The %1s operand is constant, ’essentially signed’ (%2s) and non-negative but will be implicitly converted to an unsigned type (%3s) inthis arithmetic operation.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
1841
The %1s operand is constant, ’essentially signed’ (%2s) and non-negative but will be implicitly converted to an unsigned type (%3s) inthis bitwise operation.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
1842
The %1s operand is constant, ’essentially signed’ (%2s) and non-negative but will be implicitly converted to an unsigned type (%3s) inthis relational operation.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
1843
The %1s operand is constant, ’essentially signed’ (%2s) and non-negative but will be implicitly converted to an unsigned type (%3s) inthis equality operation.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
1844
The %1s operand is constant, ’essentially signed’ (%2s) and non-negative but will be implicitly converted to an unsigned type (%3s) inthis conditional operation.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 18 Programming Research Ltd.
Table 3.2 – continued from previous page
Msg. Id. Description
1850
The %1s operand is ’essentially unsigned’ (%2s) but will be implicitlyconverted to a signed type (%3s) in this arithmetic operation.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
1851
The %1s operand is ’essentially unsigned’ (%2s) but will be implicitlyconverted to a signed type (%3s) in this bitwise operation.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
1852
The %1s operand is ’essentially unsigned’ (%2s) but will be implicitlyconverted to a signed type (%3s) in this relational operation.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
1853
The %1s operand is ’essentially unsigned’ (%2s) but will be implicitlyconverted to a signed type (%3s) in this equality operation.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
1854
The %1s operand is ’essentially unsigned’ (%2s) but will be implicitlyconverted to a signed type (%3s) in this conditional operation.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
1860
The operands of this arithmetic operator are of different ’essentialsignedness’ but will generate a result of type ’signed int’.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
1861
The operands of this bitwise operator are of different ’essential signed-ness’ but will generate a result of type ’signed int’.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 19 Programming Research Ltd.
Table 3.2 – continued from previous page
Msg. Id. Description
1862
The operands of this relational operator are of different ’essentialsignedness’ but will both be promoted to ’signed int’ for comparison.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
1863
The operands of this equality operator are of different ’essential signed-ness’ but will both be promoted to ’signed int’ for comparison.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
1864
The 2nd and 3rd operands of this conditional operator are of different’essential signedness’. The result will be in the promoted type ’signedint’.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
2211
’%s’ is not aligned with the previously declared identifier.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3120
Hard-coded ’magic’ integer constant, ’%s’.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3212
This cast is redundant.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3227
The parameter ’%s’ is never modified and so it could be declared withthe ’const’ qualifier.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 20 Programming Research Ltd.
Table 3.2 – continued from previous page
Msg. Id. Description
3228
Storage class specifier not positioned at the beginning of declaration.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3673
The object addressed by the pointer parameter ’%s’ is not modified andso the pointer could be of type ’pointer to const’.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3675
Function parameter declared with type qualification which differs fromprevious declaration.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3677
The elements of the array parameter ’%s’ are not modified and so theycould be qualified as ’const’.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3700
Implicit conversion: char to signed char.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3701
Implicit conversion: char to unsigned char.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3702
Implicit conversion: char to short.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 21 Programming Research Ltd.
Table 3.2 – continued from previous page
Msg. Id. Description
3703
Implicit conversion: char to unsigned short.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3704
Implicit conversion: char to int.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3705
Implicit conversion: char to unsigned int.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3706
Implicit conversion: char to long.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3707
Implicit conversion: char to unsigned long.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3708
Implicit conversion: char to float.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3709
Implicit conversion: char to double.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3710
Implicit conversion: char to long double.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 22 Programming Research Ltd.
Table 3.2 – continued from previous page
Msg. Id. Description
3711
Implicit conversion: unsigned char to char.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3712
Implicit conversion: unsigned char to signed char.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3713
Implicit conversion: unsigned char to short.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3715
Implicit conversion: unsigned char to int.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3717
Implicit conversion: unsigned char to long.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3719
Implicit conversion: unsigned char to float.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3720
Implicit conversion: unsigned char to double.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3721
Implicit conversion: unsigned char to long double.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 23 Programming Research Ltd.
Table 3.2 – continued from previous page
Msg. Id. Description
3722
Implicit conversion: signed char to char.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3723
Implicit conversion: signed char to unsigned char.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3725
Implicit conversion: signed char to unsigned short.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3727
Implicit conversion: signed char to unsigned int.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3729
Implicit conversion: signed char to unsigned long.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3730
Implicit conversion: signed char to float.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3731
Implicit conversion: signed char to double.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3732
Implicit conversion: signed char to long double.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 24 Programming Research Ltd.
Table 3.2 – continued from previous page
Msg. Id. Description
3733
Implicit conversion: short to char.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3734
Implicit conversion: short to signed char.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3735
Implicit conversion: short to unsigned char.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3736
Implicit conversion: short to unsigned short.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3738
Implicit conversion: short to unsigned int.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3740
Implicit conversion: short to unsigned long.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3741
Implicit conversion: short to float.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3742
Implicit conversion: short to double.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 25 Programming Research Ltd.
Table 3.2 – continued from previous page
Msg. Id. Description
3743
Implicit conversion: short to long double.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3744
Implicit conversion: unsigned short to char.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3745
Implicit conversion: unsigned short to signed char.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3746
Implicit conversion: unsigned short to unsigned char.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3747
Implicit conversion: unsigned short to short.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3748
Implicit conversion: unsigned short to int.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3750
Implicit conversion: unsigned short to long.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3752
Implicit conversion: unsigned short to float.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 26 Programming Research Ltd.
Table 3.2 – continued from previous page
Msg. Id. Description
3753
Implicit conversion: unsigned short to double.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3754
Implicit conversion: unsigned short to long double.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3755
Implicit conversion: int to char.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3756
Implicit conversion: int to signed char.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3757
Implicit conversion: int to unsigned char.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3758
Implicit conversion: int to short.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3759
Implicit conversion: int to unsigned short.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3760
Implicit conversion: int to unsigned int.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 27 Programming Research Ltd.
Table 3.2 – continued from previous page
Msg. Id. Description
3762
Implicit conversion: int to unsigned long.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3763
Implicit conversion: int to float.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3764
Implicit conversion: int to double.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3765
Implicit conversion: int to long double.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3766
Implicit conversion: unsigned int to char.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3767
Implicit conversion: unsigned int to signed char.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3768
Implicit conversion: unsigned int to unsigned char.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3769
Implicit conversion: unsigned int to short.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 28 Programming Research Ltd.
Table 3.2 – continued from previous page
Msg. Id. Description
3770
Implicit conversion: unsigned int to unsigned short.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3771
Implicit conversion: unsigned int to int.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3772
Implicit conversion: unsigned int to long.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3774
Implicit conversion: unsigned int to float.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3775
Implicit conversion: unsigned int to double.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3776
Implicit conversion: unsigned int to long double.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3777
Implicit conversion: long to char.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3778
Implicit conversion: long to signed char.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 29 Programming Research Ltd.
Table 3.2 – continued from previous page
Msg. Id. Description
3779
Implicit conversion: long to unsigned char.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3780
Implicit conversion: long to short.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3781
Implicit conversion: long to unsigned short.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3782
Implicit conversion: long to int.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3783
Implicit conversion: long to unsigned int.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3784
Implicit conversion: long to unsigned long.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3785
Implicit conversion: long to float.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3786
Implicit conversion: long to double.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 30 Programming Research Ltd.
Table 3.2 – continued from previous page
Msg. Id. Description
3787
Implicit conversion: long to long double.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3788
Implicit conversion: unsigned long to char.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3789
Implicit conversion: unsigned long to signed char.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3790
Implicit conversion: unsigned long to unsigned char.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3791
Implicit conversion: unsigned long to short.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3792
Implicit conversion: unsigned long to unsigned short.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3793
Implicit conversion: unsigned long to int.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3794
Implicit conversion: unsigned long to unsigned int.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 31 Programming Research Ltd.
Table 3.2 – continued from previous page
Msg. Id. Description
3795
Implicit conversion: unsigned long to long.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3796
Implicit conversion: unsigned long to float.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3797
Implicit conversion: unsigned long to double.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3798
Implicit conversion: unsigned long to long double.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3799
Implicit conversion: float to char.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3800
Implicit conversion: float to signed char.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3801
Implicit conversion: float to unsigned char.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3802
Implicit conversion: float to short.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 32 Programming Research Ltd.
Table 3.2 – continued from previous page
Msg. Id. Description
3803
Implicit conversion: float to unsigned short.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3804
Implicit conversion: float to int.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3805
Implicit conversion: float to unsigned int.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3806
Implicit conversion: float to long.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3807
Implicit conversion: float to unsigned long.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3810
Implicit conversion: double to char.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3811
Implicit conversion: double to signed char.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3812
Implicit conversion: double to unsigned char.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 33 Programming Research Ltd.
Table 3.2 – continued from previous page
Msg. Id. Description
3813
Implicit conversion: double to short.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3814
Implicit conversion: double to unsigned short.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3815
Implicit conversion: double to int.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3816
Implicit conversion: double to unsigned int.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3817
Implicit conversion: double to long.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3818
Implicit conversion: double to unsigned long.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3819
Implicit conversion: double to float.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3821
Implicit conversion: long double to char.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 34 Programming Research Ltd.
Table 3.2 – continued from previous page
Msg. Id. Description
3822
Implicit conversion: long double to signed char.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3823
Implicit conversion: long double to unsigned char.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3824
Implicit conversion: long double to short.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3825
Implicit conversion: long double to unsigned short .Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3826
Implicit conversion: long double to int.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3827
Implicit conversion: long double to unsigned int.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3828
Implicit conversion: long double to long.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3829
Implicit conversion: long double to unsigned long.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 35 Programming Research Ltd.
Table 3.2 – continued from previous page
Msg. Id. Description
3830
Implicit conversion: long double to float.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3831
Implicit conversion: long double to double.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3832
Implicit conversion: char to long long.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3833
Implicit conversion: char to unsigned long long.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3834
Implicit conversion: unsigned char to long long.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3837
Implicit conversion: signed char to unsigned long long.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3839
Implicit conversion: short to unsigned long long.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3840
Implicit conversion: unsigned short to long long.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 36 Programming Research Ltd.
Table 3.2 – continued from previous page
Msg. Id. Description
3843
Implicit conversion: int to unsigned long long.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3844
Implicit conversion: unsigned int to long long.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3848
Implicit conversion: unsigned long to long long.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3850
Implicit conversion: long long to char.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3851
Implicit conversion: long long to signed char.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3852
Implicit conversion: long long to unsigned char.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3853
Implicit conversion: long long to short.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3854
Implicit conversion: long long to unsigned short.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 37 Programming Research Ltd.
Table 3.2 – continued from previous page
Msg. Id. Description
3855
Implicit conversion: long long to int.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3856
Implicit conversion: long long to unsigned int.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3857
Implicit conversion: long long to longTicket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3858
Implicit conversion: long long to unsigned long.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3859
Implicit conversion: long long to unsigned long long.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3860
Implicit conversion: long long to float.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3861
Implicit conversion: long long to double.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3862
Implicit conversion: long long to long double.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 38 Programming Research Ltd.
Table 3.2 – continued from previous page
Msg. Id. Description
3863
Implicit conversion: unsigned long long to char.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3864
Implicit conversion: unsigned long long to signed char.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3865
Implicit conversion: unsigned long long to unsigned char.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3866
Implicit conversion: unsigned long long to short.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3867
Implicit conversion: unsigned long long to unsigned short.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3868
Implicit conversion: unsigned long long to int.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3869
Implicit conversion: unsigned long long to unsigned int.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3870
Implicit conversion: unsigned long long to long.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 39 Programming Research Ltd.
Table 3.2 – continued from previous page
Msg. Id. Description
3871
Implicit conversion: unsigned long long to unsigned long.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3872
Implicit conversion: unsigned long long to long long.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3873
Implicit conversion: unsigned long long to float.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3874
Implicit conversion: unsigned long long to double.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3875
Implicit conversion: unsigned long long to long double.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3876
Implicit conversion: float to long long.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3877
Implicit conversion: float to unsigned long long.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3878
Implicit conversion: double to long long.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 40 Programming Research Ltd.
Table 3.2 – continued from previous page
Msg. Id. Description
3879
Implicit conversion: double to unsigned long long.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3880
Implicit conversion: long double to long long.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3881
Implicit conversion: long double to unsigned long long.Ticket(s):15746 Added new messages 3678, 3679 and 3695 to indicate when
a local or static pointer variable could be declared with moreconst-qualification.
3.2 Messages for QA·C 9.4.0
3.2.1 New Messages
The following table lists messages which are new in QA·C 9.4.0.
Table 3.3: Messages Added for QA·C 9.4.0
Msg. Id. Description
0242
[E] This file contains the control-M character in the middle of a line.Ticket(s):25447 Restored behaviour of message 0240 to warn when a carriage-
return is detected at the end of a line on a platform which usesonly line feeds to mark end-of-line. Added new message 0242to warn when a carriage-return is detected in a different context.
0691
Array initialized with designators has fewer initializers than its declaredsize. Default initialization is applied to the remainder of the array ele-ments.Ticket(s):24803 New analysis to highlight arrays with explicit initializers for some,
but not all, elements.25896 QAC failed to return for code containing a braced initializer to an
array of incomplete type.continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 41 Programming Research Ltd.
Table 3.3 – continued from previous page
Msg. Id. Description
0704
Structure initialized with designators has fewer initializers than its de-clared size. Default initialization is applied to the remainder of the mem-bers.Ticket(s):24803 New analysis to highlight arrays with explicit initializers for some,
but not all, elements.
0754
String literal is being modified.Ticket(s):24746 New message 0754 instead of 0556 and 0447 to identify a string
literal being modified.
0772
Multiple jump statements are used to terminate this iteration statement,including ’goto’.Ticket(s):24843 New messages 0772 and 0773 to warn when a loop has multiple
exits including ’goto’ and ’return’ statements; adjusted the loca-tions of 0769 and 0771 and other loop-control related messagesfor better consistency.
0773
Multiple jump statements are used to terminate this iteration statement,including ’return’.Ticket(s):24843 New messages 0772 and 0773 to warn when a loop has multiple
exits including ’goto’ and ’return’ statements; adjusted the loca-tions of 0769 and 0771 and other loop-control related messagesfor better consistency.
0895
Macro parameter ’%s’ is inconsistently subject to macro replacement.Ticket(s):24856 New message 0895 to mark the point of declaration of a macro
parameter which is subjected to inconsistent expansion.
1007
The macro ’%s’ must not be expanded.Ticket(s):24845 New option -warnmacroexpansion (-WME) and message 1007
to warn on expansion of the specified macro.
1080
[C] A typedef or pointer to function is being declared with default argu-ment syntax. This is not allowed.Ticket(s):25592 Fixed crashes seen on certain uses of the default parameter
value extension; added new message 1080 to warn when theextension becomes a constraint violation.
1567
Macro ’%1s’ expanded here.Ticket(s):24845 New option -warnmacroexpansion (-WME) and message 1007
to warn on expansion of the specified macro.continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 42 Programming Research Ltd.
Table 3.3 – continued from previous page
Msg. Id. Description
1814
An operand of ’essentially enum’ type is being added or subtracted froman operand of ’essentially character’ type.Ticket(s):24805 QAC will generate message 1814 whenever an expression of
essentially enum type is added or subtracted with an expressionwith essentially character type.
2023
The preceding ’switch’ clause is not empty and ends with a jump state-ment other than ’break’.Ticket(s):24300 Added new messages to warn when jumps other than ’break’
are used to terminate switch clauses, and reduced false neg-atives for switch structure enforcement messages 2002, 2003,2009 and 2012. New message 2025 to warn of jumps over clo-sure boundaries.
2024
Final ’switch’ clause ends with a ’jump’ statement other than ’break’.Ticket(s):24300 Added new messages to warn when jumps other than ’break’
are used to terminate switch clauses, and reduced false neg-atives for switch structure enforcement messages 2002, 2003,2009 and 2012. New message 2025 to warn of jumps over clo-sure boundaries.
2025
This appears to jump across a nested function scope boundary.Ticket(s):24300 Added new messages to warn when jumps other than ’break’
are used to terminate switch clauses, and reduced false neg-atives for switch structure enforcement messages 2002, 2003,2009 and 2012. New message 2025 to warn of jumps over clo-sure boundaries.
2052
This line comment appears to comment out source code.Ticket(s):24695 Added new messages 2052 and 2053 to warn when a line or
block comment respectively appears to contain commented-outcode.
2053
This block comment appears to comment out source code.Ticket(s):24695 Added new messages 2052 and 2053 to warn when a line or
block comment respectively appears to contain commented-outcode.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 43 Programming Research Ltd.
Table 3.3 – continued from previous page
Msg. Id. Description
2473
Unable to identify a loop control variable because of indirection.Ticket(s):10998 Rework of QAC’s loop control variable detection to correctly rec-
ognize loop control variables that are members of aggregates,and remove false positives and negatives when the loop controlvariable is a pointer.
2474
Loop control is shared between multiple variables.Ticket(s):10998 Rework of QAC’s loop control variable detection to correctly rec-
ognize loop control variables that are members of aggregates,and remove false positives and negatives when the loop controlvariable is a pointer.
2475
Loop control is shared with an indirect variable.Ticket(s):10998 Rework of QAC’s loop control variable detection to correctly rec-
ognize loop control variables that are members of aggregates,and remove false positives and negatives when the loop controlvariable is a pointer.
2504
Call to ’%s’ is not immediately preceded by the explicit zero-ing of ’er-rno’. However, ’errno’ is implicitly zero because of the context.Ticket(s):24876 Messages 2500 and 2501 are no longer generated when ’errno’
has been tested against zero for the current path.
2826
Definite: Use of an object after its lifetime has ended.Ticket(s):21292 The assignment of a local variable’s address of objects with
longer lifetime is not always detected.
2827
Apparent: Use of an object after its lifetime has ended.Ticket(s):21292 The assignment of a local variable’s address of objects with
longer lifetime is not always detected.
2828
Suspicious: Use of an object after its lifetime has ended.Ticket(s):21292 The assignment of a local variable’s address of objects with
longer lifetime is not always detected.
2916
Definite: Storing the address of an object in a pointer that has greaterlifetime.Ticket(s):21292 The assignment of a local variable’s address of objects with
longer lifetime is not always detected.25802 Internal refactoring of flow graph analysis.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 44 Programming Research Ltd.
Table 3.3 – continued from previous page
Msg. Id. Description
2917
Apparent: Storing the address of an object in a pointer that has greaterlifetime.Ticket(s):21292 The assignment of a local variable’s address of objects with
longer lifetime is not always detected.
2918
Suspicious: Storing the address of an object in a pointer that hasgreater lifetime.Ticket(s):21292 The assignment of a local variable’s address of objects with
longer lifetime is not always detected.25802 Internal refactoring of flow graph analysis.
2919
Possible: Storing the address of an object in a pointer that has greaterlifetime.Ticket(s):24850 See 21292.
2935
Constant: Dereference of an invalid char pointer value.Ticket(s):24869 Message 2840-2844 range has been replaced by range 2935-
2939 for calls to strcpy, strncpy, strcat, strncat, sprintf, swprintf,snprintf, snprintf_s, and strftime.
2936
Definite: Dereference of an invalid char pointer value.Ticket(s):24869 Message 2840-2844 range has been replaced by range 2935-
2939 for calls to strcpy, strncpy, strcat, strncat, sprintf, swprintf,snprintf, snprintf_s, and strftime.
2937
Apparent: Dereference of an invalid char pointer value.Ticket(s):24869 Message 2840-2844 range has been replaced by range 2935-
2939 for calls to strcpy, strncpy, strcat, strncat, sprintf, swprintf,snprintf, snprintf_s, and strftime.
2938
Suspicious: Dereference of an invalid char pointer value.Ticket(s):24869 Message 2840-2844 range has been replaced by range 2935-
2939 for calls to strcpy, strncpy, strcat, strncat, sprintf, swprintf,snprintf, snprintf_s, and strftime.
2939
Possible: Dereference of an invalid char pointer value.Ticket(s):24869 Message 2840-2844 range has been replaced by range 2935-
2939 for calls to strcpy, strncpy, strcat, strncat, sprintf, swprintf,snprintf, snprintf_s, and strftime.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 45 Programming Research Ltd.
Table 3.3 – continued from previous page
Msg. Id. Description
3142
Unable to parse ’%1s_macro’ arguments; ignoring #pragma.Ticket(s):24414 Support added for Visual Studio push_macro/pop_macro fea-
ture.
3143
’%1s_macro’ with non-macro identifier ’%2s’.Ticket(s):24414 Support added for Visual Studio push_macro/pop_macro fea-
ture.
3144
Ignoring ’pop_macro’ with empty macro stack for ’%1s’.Ticket(s):24414 Support added for Visual Studio push_macro/pop_macro fea-
ture.
3241
This inline function declaration for ’%s’ is implicitly static.Ticket(s):24801 New messages 3241 to warn when inline function declarations
are implicitly static, and 3242 to warn when a plain inline func-tion declaration rules out making defining it as static later. Alsoimproves consistency of related qualifier/specifier messages.
3242
This inline function declaration for ’%s’ prevents it from being definedwith internal linkage.Ticket(s):24801 New messages 3241 to warn when inline function declarations
are implicitly static, and 3242 to warn when a plain inline func-tion declaration rules out making defining it as static later. Alsoimproves consistency of related qualifier/specifier messages.
3331
The definition for identifier ’%s’ with external linkage conflicts with aprevious declaration in the same scope.Ticket(s):24749 New message 3331 to indicate when the definition for an identi-
fier with external linkage conflicts with a previous declaration inthe same scope.
3350
Controlling expression of ’while’ loop is a floating point comparison.Ticket(s):24838 New message 3350 to highlight when a while loop is controlled
by a floating-point comparison.continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 46 Programming Research Ltd.
Table 3.3 – continued from previous page
Msg. Id. Description
3387
A full expression containing an increment (++) or decrement (–) opera-tor should have no potential side effects other than that caused by theincrement or decrement operator.Ticket(s):24835 New message 3387 to identify use of increment or decrement
operator in an expression that has another side effect. Detectionof volatile access has also been improved, in particular wheninvolving addresses of volatile objects.
3433
Expression operand to sizeof is not parenthesized.Ticket(s):24813 New messages 3433 and 3434 to indicate when sizeof or alignof
are being used with a non-parenthesized expression operand.
3434
Expression operand to alignof is not parenthesized.Ticket(s):24813 New messages 3433 and 3434 to indicate when sizeof or alignof
are being used with a non-parenthesized expression operand.
3469
This usage of a function-like macro looks like it could be replaced by anequivalent function call.Ticket(s):24715 New messages 3469, 3471, 3472, 3473 to indicate when a
function-like macro could be rewritten as an equivalent C func-tion.
3471
Some uses of this function-like macro look like they could be replacedby equivalent function calls.Ticket(s):24715 New messages 3469, 3471, 3472, 3473 to indicate when a
function-like macro could be rewritten as an equivalent C func-tion.
3472
All toplevel uses of this function-like macro look like they could be re-placed by equivalent function calls.Ticket(s):24715 New messages 3469, 3471, 3472, 3473 to indicate when a
function-like macro could be rewritten as an equivalent C func-tion.
3473
This usage of a function-like setter macro looks like it could be replacedby a similar function call.Ticket(s):24715 New messages 3469, 3471, 3472, 3473 to indicate when a
function-like macro could be rewritten as an equivalent C func-tion.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 47 Programming Research Ltd.
Table 3.3 – continued from previous page
Msg. Id. Description
3630The implementation of this struct/union type should be hidden.Ticket(s):24697 The implementation of this struct/union type should be hidden.
3677
The elements of the array parameter ’%s’ are not modified and so theycould be qualified as ’const’.Ticket(s):21553 New message 3677 to indicate when the element type of an
array or pointer to array function parameter should be declaredwith const qualifier. Also fixed false negative 3673 on operationswhich involve multiple pointer dereferences.
3.2.2 Messages with Modified Behavior
The following table summarizes the messages whose behavior has been modified as aresult of a change in specification.
Table 3.4: Messages Modified for QA·C 9.4.0
Msg. Id. Description
0240
[E] This file contains the control-M character at the end of a line.Ticket(s):25447 Restored behaviour of message 0240 to warn when a carriage-
return is detected at the end of a line on a platform which usesonly line feeds to mark end-of-line. Added new message 0242to warn when a carriage-return is detected in a different context.
0268
[S] Comment open at end of translation unit.Ticket(s):25815 The message status of QAC preprocessing messages has been
brought into line with QAC++. Also fixes an error in the handlingof malformed #include directives.
0278
[C] Overflow in signed arithmetic operation on constant operands.Ticket(s):24825 Messages relating to constant wraparound are no longer gen-
erated in unevaluated contexts. This change does not apply tooverflow messages.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 48 Programming Research Ltd.
Table 3.4 – continued from previous page
Msg. Id. Description
0304
[U] The address of an array declared ’register’ may not be computed.Ticket(s):24875 Certain messages that apply to initializer expressions will be
generated against those expressions instead of being generatedat the end of the initialiser list. A number of related messageswill also have their locations improved as part of a general mes-sage location improvement across QAC.
0375
[L] Nesting of parenthesized expressions exceeds 63 - program doesnot conform strictly to ISO:C99.Ticket(s):25282 Fixed false positive 0375/0410 when parenthesized expressions
are cast. Locations for parenthesis/volatile messages tightenedup.
0400
[U] ’%s’ is modified more than once between sequence points - evalu-ation order unspecified.Ticket(s):25045 Reduced false positives and negatives for several messages re-
lating to variable modification in expressions involving statementexpressions and nested functions. (Using a variable in a state-ment expression is no longer considered a modification.)
25282 Fixed false positive 0375/0410 when parenthesized expressionsare cast. Locations for parenthesis/volatile messages tightenedup.
0401
[U] ’%s’ may be modified more than once between sequence points -evaluation order unspecified.Ticket(s):25045 Reduced false positives and negatives for several messages re-
lating to variable modification in expressions involving statementexpressions and nested functions. (Using a variable in a state-ment expression is no longer considered a modification.)
25282 Fixed false positive 0375/0410 when parenthesized expressionsare cast. Locations for parenthesis/volatile messages tightenedup.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 49 Programming Research Ltd.
Table 3.4 – continued from previous page
Msg. Id. Description
0402
[U] ’%s’ is modified and accessed between sequence points - evalua-tion order unspecified.Ticket(s):21171 Message 0402 will no longer be incorrectly generated in cer-
tain situations involving assignment between structure mem-bers, which are of function pointer type and which are accessedthrough pointers.
25045 Reduced false positives and negatives for several messages re-lating to variable modification in expressions involving statementexpressions and nested functions. (Using a variable in a state-ment expression is no longer considered a modification.)
25282 Fixed false positive 0375/0410 when parenthesized expressionsare cast. Locations for parenthesis/volatile messages tightenedup.
0403
[U] ’%s’ may be modified and accessed between sequence points -evaluation order unspecified.Ticket(s):25045 Reduced false positives and negatives for several messages re-
lating to variable modification in expressions involving statementexpressions and nested functions. (Using a variable in a state-ment expression is no longer considered a modification.)
25282 Fixed false positive 0375/0410 when parenthesized expressionsare cast. Locations for parenthesis/volatile messages tightenedup.
0404
More than one read access to volatile objects between sequencepoints.Ticket(s):25045 Reduced false positives and negatives for several messages re-
lating to variable modification in expressions involving statementexpressions and nested functions. (Using a variable in a state-ment expression is no longer considered a modification.)
25282 Fixed false positive 0375/0410 when parenthesized expressionsare cast. Locations for parenthesis/volatile messages tightenedup.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 50 Programming Research Ltd.
Table 3.4 – continued from previous page
Msg. Id. Description
0405
More than one modification of volatile objects between sequencepoints.Ticket(s):25045 Reduced false positives and negatives for several messages re-
lating to variable modification in expressions involving statementexpressions and nested functions. (Using a variable in a state-ment expression is no longer considered a modification.)
25282 Fixed false positive 0375/0410 when parenthesized expressionsare cast. Locations for parenthesis/volatile messages tightenedup.
0410
[L] Nesting of parentheses exceeds 32 - program does not conformstrictly to ISO:C90.Ticket(s):25282 Fixed false positive 0375/0410 when parenthesized expressions
are cast. Locations for parenthesis/volatile messages tightenedup.
0434
[S] The identifier ’%s’ has not been declared.Ticket(s):25896 QAC failed to return for code containing a braced initializer to an
array of incomplete type.
0453
[C] An array subscript must have integral type.Ticket(s):25896 QAC failed to return for code containing a braced initializer to an
array of incomplete type.
0499
Right operand of shift operator is greater than or equal to the width ofthe essential type of the left operand.Ticket(s):24824 Message 0499 will be correctly generated in certain situations
where the left hand side operand of the shift operator is a con-stant expression. Note that this update will clear some falsenegatives in the enforcement of MISRA C:2012 Rule 12.2.
0542
[C] Controlling expression must have scalar (arithmetic or pointer) type.Ticket(s):10998 Rework of QAC’s loop control variable detection to correctly rec-
ognize loop control variables that are members of aggregates,and remove false positives and negatives when the loop controlvariable is a pointer.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 51 Programming Research Ltd.
Table 3.4 – continued from previous page
Msg. Id. Description
0544
[U] The value of an incomplete ’union’ may not be used.Ticket(s):24875 Certain messages that apply to initializer expressions will be
generated against those expressions instead of being generatedat the end of the initialiser list. A number of related messageswill also have their locations improved as part of a general mes-sage location improvement across QAC.
0545
[U] The value of an incomplete ’struct’ may not be used.Ticket(s):24875 Certain messages that apply to initializer expressions will be
generated against those expressions instead of being generatedat the end of the initialiser list. A number of related messageswill also have their locations improved as part of a general mes-sage location improvement across QAC.
0546
[C] ’enum %s’ has unknown content. Use of an enum tag with unde-fined content is not permitted.Ticket(s):24875 Certain messages that apply to initializer expressions will be
generated against those expressions instead of being generatedat the end of the initialiser list. A number of related messageswill also have their locations improved as part of a general mes-sage location improvement across QAC.
0556
[C] Left operand of assignment must be a modifiable object.Ticket(s):24746 New message 0754 instead of 0556 and 0447 to identify a string
literal being modified.
0609
[L] More than 12 pointer, array or function declarators modifying a dec-laration - program does not conform strictly to ISO:C90.Ticket(s):24849 Fixed false positive in 3260, 3261, 3262, 3263 that mistakenly
treated arrays as additional levels of pointer nesting. Improvedconsistency of 0609.
0618
[C99] ’volatile’ qualifier has been duplicated.Ticket(s):14326 The analysis will no longer abort, and message 0618 will no
longer be incorrectly generated in certain situations involving acast to volatile qualifier only (with an implicit ’int’ type).
0621
[C] The struct/union ’%s’ cannot be initialized because it has unknownsize.Ticket(s):25896 QAC failed to return for code containing a braced initializer to an
array of incomplete type.continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 52 Programming Research Ltd.
Table 3.4 – continued from previous page
Msg. Id. Description
0627
[C] ’%s’ has different type to previous declaration in the same scope.Ticket(s):24749 New message 3331 to indicate when the definition for an identi-
fier with external linkage conflicts with a previous declaration inthe same scope.
0634
[I] Bit-field %s in %s has not been declared explicitly as unsigned orsigned.Ticket(s):24745 Messages 0634 and 0635 have been clarified with the names
of the affected fields and relocated to point directly at the fieldsrather than the containing structs. In addition, the -intrinsictypeoption has been extended with a new suboption, ’bitfield’, whichaccepts a comma-separated list of builtin types to accept as sup-ported for use in bitfield declarations, which will suppress mes-sage 0625 when those types are used to declare bitfields.
0635
[E] Bit-field %s in %s has been declared with a type not explicitly sup-ported.Ticket(s):24745 Messages 0634 and 0635 have been clarified with the names
of the affected fields and relocated to point directly at the fieldsrather than the containing structs. In addition, the -intrinsictypeoption has been extended with a new suboption, ’bitfield’, whichaccepts a comma-separated list of builtin types to accept as sup-ported for use in bitfield declarations, which will suppress mes-sage 0625 when those types are used to declare bitfields.
0654
[U] Using ’const’ or ’volatile’ in a function return type is undefined.Ticket(s):24745 Messages 0634 and 0635 have been clarified with the names
of the affected fields and relocated to point directly at the fieldsrather than the containing structs. In addition, the -intrinsictypeoption has been extended with a new suboption, ’bitfield’, whichaccepts a comma-separated list of builtin types to accept as sup-ported for use in bitfield declarations, which will suppress mes-sage 0625 when those types are used to declare bitfields.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 53 Programming Research Ltd.
Table 3.4 – continued from previous page
Msg. Id. Description
0656
[C] Function return type cannot be function or array type, or an incom-plete struct/union (for function definition).Ticket(s):24745 Messages 0634 and 0635 have been clarified with the names
of the affected fields and relocated to point directly at the fieldsrather than the containing structs. In addition, the -intrinsictypeoption has been extended with a new suboption, ’bitfield’, whichaccepts a comma-separated list of builtin types to accept as sup-ported for use in bitfield declarations, which will suppress mes-sage 0625 when those types are used to declare bitfields.
0673
[C] Initializer points to a more heavily qualified type.Ticket(s):24875 Certain messages that apply to initializer expressions will be
generated against those expressions instead of being generatedat the end of the initialiser list. A number of related messageswill also have their locations improved as part of a general mes-sage location improvement across QAC.
0676
[u] Array element is of function type. Arrays cannot be constructed fromfunction types.Ticket(s):24745 Messages 0634 and 0635 have been clarified with the names
of the affected fields and relocated to point directly at the fieldsrather than the containing structs. In addition, the -intrinsictypeoption has been extended with a new suboption, ’bitfield’, whichaccepts a comma-separated list of builtin types to accept as sup-ported for use in bitfield declarations, which will suppress mes-sage 0625 when those types are used to declare bitfields.
0678
[u] Array element is array of unknown size. Arrays cannot be con-structed from incomplete types.Ticket(s):24745 Messages 0634 and 0635 have been clarified with the names
of the affected fields and relocated to point directly at the fieldsrather than the containing structs. In addition, the -intrinsictypeoption has been extended with a new suboption, ’bitfield’, whichaccepts a comma-separated list of builtin types to accept as sup-ported for use in bitfield declarations, which will suppress mes-sage 0625 when those types are used to declare bitfields.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 54 Programming Research Ltd.
Table 3.4 – continued from previous page
Msg. Id. Description
0680
[u] Array element is ’void’ or an incomplete ’struct’ or ’union’. Arrayscannot be constructed from incomplete types.Ticket(s):24745 Messages 0634 and 0635 have been clarified with the names
of the affected fields and relocated to point directly at the fieldsrather than the containing structs. In addition, the -intrinsictypeoption has been extended with a new suboption, ’bitfield’, whichaccepts a comma-separated list of builtin types to accept as sup-ported for use in bitfield declarations, which will suppress mes-sage 0625 when those types are used to declare bitfields.
25896 QAC failed to return for code containing a braced initializer to anarray of incomplete type.
0684
[C] Too many initializers.Ticket(s):24825 Messages relating to constant wraparound are no longer gen-
erated in unevaluated contexts. This change does not apply tooverflow messages.
0701
Argument for memory size does not refer to ’sizeof (%s)’.Ticket(s):24875 Certain messages that apply to initializer expressions will be
generated against those expressions instead of being generatedat the end of the initialiser list. A number of related messageswill also have their locations improved as part of a general mes-sage location improvement across QAC.
0702
Result of sizeof operator is not explicitly cast.Ticket(s):10998 Rework of QAC’s loop control variable detection to correctly rec-
ognize loop control variables that are members of aggregates,and remove false positives and negatives when the loop controlvariable is a pointer.
0708
[C] No definition found for the label ’%s’ in this function.Ticket(s):24843 New messages 0772 and 0773 to warn when a loop has multiple
exits including ’goto’ and ’return’ statements; adjusted the loca-tions of 0769 and 0771 and other loop-control related messagesfor better consistency.
0766
[C] ’continue’ statement found outside an iteration statement.Ticket(s):24843 New messages 0772 and 0773 to warn when a loop has multiple
exits including ’goto’ and ’return’ statements; adjusted the loca-tions of 0769 and 0771 and other loop-control related messagesfor better consistency.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 55 Programming Research Ltd.
Table 3.4 – continued from previous page
Msg. Id. Description
0767
[C] ’break’ statement found outside a ’switch’ or iteration statement.Ticket(s):24843 New messages 0772 and 0773 to warn when a loop has multiple
exits including ’goto’ and ’return’ statements; adjusted the loca-tions of 0769 and 0771 and other loop-control related messagesfor better consistency.
0768
[C] ’case’ or ’default’ found outside a ’switch’ statement.Ticket(s):24843 New messages 0772 and 0773 to warn when a loop has multiple
exits including ’goto’ and ’return’ statements; adjusted the loca-tions of 0769 and 0771 and other loop-control related messagesfor better consistency.
0769
A ’break’ statement has been used to terminate an iteration statement.Ticket(s):24843 New messages 0772 and 0773 to warn when a loop has multiple
exits including ’goto’ and ’return’ statements; adjusted the loca-tions of 0769 and 0771 and other loop-control related messagesfor better consistency.
0770
A ’continue’ statement has been used.Ticket(s):24843 New messages 0772 and 0773 to warn when a loop has multiple
exits including ’goto’ and ’return’ statements; adjusted the loca-tions of 0769 and 0771 and other loop-control related messagesfor better consistency.
0771
More than one ’break’ statement has been used to terminate this itera-tion statement.Ticket(s):24843 New messages 0772 and 0773 to warn when a loop has multiple
exits including ’goto’ and ’return’ statements; adjusted the loca-tions of 0769 and 0771 and other loop-control related messagesfor better consistency.
0774
[C] ’auto’ may not be specified on global declaration of ’%s’.Ticket(s):24801 New messages 3241 to warn when inline function declarations
are implicitly static, and 3242 to warn when a plain inline func-tion declaration rules out making defining it as static later. Alsoimproves consistency of related qualifier/specifier messages.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 56 Programming Research Ltd.
Table 3.4 – continued from previous page
Msg. Id. Description
0775
[C] ’register’ may not be specified on global declaration of ’%s’.Ticket(s):24801 New messages 3241 to warn when inline function declarations
are implicitly static, and 3242 to warn when a plain inline func-tion declaration rules out making defining it as static later. Alsoimproves consistency of related qualifier/specifier messages.
0790
This translation unit makes use of floating types.Ticket(s):25896 QAC failed to return for code containing a braced initializer to an
array of incomplete type.
0803
[C] The ’#’ operator may only appear before a macro parameter.Ticket(s):25815 The message status of QAC preprocessing messages has been
brought into line with QAC++. Also fixes an error in the handlingof malformed #include directives.
0804
[C] Macro parameter ’%s’ is not unique.Ticket(s):25815 The message status of QAC preprocessing messages has been
brought into line with QAC++. Also fixes an error in the handlingof malformed #include directives.
0817
[S] Closing quote or bracket ’>’ missing from include filename.Ticket(s):25815 The message status of QAC preprocessing messages has been
brought into line with QAC++. Also fixes an error in the handlingof malformed #include directives.
0818
[Q] Cannot find ’%s’ - Perhaps the appropriate search path was notgiven ?Ticket(s):25815 The message status of QAC preprocessing messages has been
brought into line with QAC++. Also fixes an error in the handlingof malformed #include directives.
0821
[C] ’#include’ does not identify a header or source file that can be pro-cessed.Ticket(s):25815 The message status of QAC preprocessing messages has been
brought into line with QAC++. Also fixes an error in the handlingof malformed #include directives.
0838
File ’%1s’ has already been included directly from within file ’%2s’.Ticket(s):21397 Messages 0838 and 0839 are issued inside the problematic
header file instead of the source file, when applicable. Thismakes it possible to suppress the message with the -q option.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 57 Programming Research Ltd.
Table 3.4 – continued from previous page
Msg. Id. Description
0839
File ’%1s’ has already been included indirectly from within file ’%2s’.Ticket(s):21397 Messages 0838 and 0839 are issued inside the problematic
header file instead of the source file, when applicable. Thismakes it possible to suppress the message with the -q option.
0846
[S] ’#define’ must be followed by an identifier.Ticket(s):25815 The message status of QAC preprocessing messages has been
brought into line with QAC++. Also fixes an error in the handlingof malformed #include directives.
0851
[C] More arguments in macro call than specified in definition.Ticket(s):25815 The message status of QAC preprocessing messages has been
brought into line with QAC++. Also fixes an error in the handlingof malformed #include directives.
0852
[S] Unable to find the ’)’ that marks the end of the macro call.Ticket(s):25815 The message status of QAC preprocessing messages has been
brought into line with QAC++. Also fixes an error in the handlingof malformed #include directives.
0887
[U] Use of ’defined’ must match either ’defined(identifier)’ or ’definedidentifier’.Ticket(s):25815 The message status of QAC preprocessing messages has been
brought into line with QAC++. Also fixes an error in the handlingof malformed #include directives.
0893
Macro argument ’%s’ is both expanded as a macro and used with the’%s’ operator.Ticket(s):24856 New message 0895 to mark the point of declaration of a macro
parameter which is subjected to inconsistent expansion.
0974
[I] Cast of integer constant expression to a signed integer type whichcannot represent the value.Ticket(s):24875 Certain messages that apply to initializer expressions will be
generated against those expressions instead of being generatedat the end of the initialiser list. A number of related messageswill also have their locations improved as part of a general mes-sage location improvement across QAC.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 58 Programming Research Ltd.
Table 3.4 – continued from previous page
Msg. Id. Description
1033
[C] The identifier __VA_ARGS__ may only be used in the replacementlist of a variadic macro.Ticket(s):25815 The message status of QAC preprocessing messages has been
brought into line with QAC++. Also fixes an error in the handlingof malformed #include directives.
1062
[C] Structure ’%1s’ with flexible array member ’%2s’ cannot be used inthe declaration of array elements.Ticket(s):24745 Messages 0634 and 0635 have been clarified with the names
of the affected fields and relocated to point directly at the fieldsrather than the containing structs. In addition, the -intrinsictypeoption has been extended with a new suboption, ’bitfield’, whichaccepts a comma-separated list of builtin types to accept as sup-ported for use in bitfield declarations, which will suppress mes-sage 0625 when those types are used to declare bitfields.
1269
Floating constant cast to integral type.Ticket(s):25896 QAC failed to return for code containing a braced initializer to an
array of incomplete type.
1324
Function ’main’ cannot be called or have its address taken in C++.Ticket(s):25268 Reduced overall QAC memory usage; significantly reduced
memory usage of array initializers.
1330
The parameter identifiers in this function declaration differ from those ina previous declaration.Ticket(s):25292 Fixed false positive 1330 on expressions involving a cast to func-
tion pointer.
1331
Type or number of arguments doesn’t match previous use of the func-tion.Ticket(s):24875 Certain messages that apply to initializer expressions will be
generated against those expressions instead of being generatedat the end of the initialiser list. A number of related messageswill also have their locations improved as part of a general mes-sage location improvement across QAC.
1334
The parameter identifiers in the prototypes of these functions/functionpointers are different.Ticket(s):25292 Fixed false positive 1330 on expressions involving a cast to func-
tion pointer.continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 59 Programming Research Ltd.
Table 3.4 – continued from previous page
Msg. Id. Description
1482
Non-constant expression cast to enum type.Ticket(s):24875 Certain messages that apply to initializer expressions will be
generated against those expressions instead of being generatedat the end of the initialiser list. A number of related messageswill also have their locations improved as part of a general mes-sage location improvement across QAC.
1840
The %1s operand is constant, ’essentially signed’ (%2s) and non-negative but will be implicitly converted to an unsigned type (%3s) inthis arithmetic operation.Ticket(s):25896 QAC failed to return for code containing a braced initializer to an
array of incomplete type.
1890
A composite expression of ’essentially signed’ type (%1s) is being im-plicitly converted to a wider signed type, ’%2s’.Ticket(s):24809 If a composite expression is the operand to the unary negate,
unary posate, or bitwise complement operator, the resultingunary expression will inherit that status and also be considereda composite expression.
1891
A composite expression of ’essentially unsigned’ type (%1s) is beingimplicitly converted to a wider unsigned type, ’%2s’.Ticket(s):24809 If a composite expression is the operand to the unary negate,
unary posate, or bitwise complement operator, the resultingunary expression will inherit that status and also be considereda composite expression.
1892
A composite expression of ’essentially floating’ type (%1s) is being im-plicitly converted to a wider floating type, ’%2s’.Ticket(s):24809 If a composite expression is the operand to the unary negate,
unary posate, or bitwise complement operator, the resultingunary expression will inherit that status and also be considereda composite expression.
1893
The 2nd and 3rd operands of this conditional operator are both ’essen-tially signed’ (’%1s’ and ’%2s’) but one is a composite expression of anarrower type than the other.Ticket(s):24809 If a composite expression is the operand to the unary negate,
unary posate, or bitwise complement operator, the resultingunary expression will inherit that status and also be considereda composite expression.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 60 Programming Research Ltd.
Table 3.4 – continued from previous page
Msg. Id. Description
1894
The 2nd and 3rd operands of this conditional operator are both ’essen-tially unsigned’ (’%1s’ and ’%2s’) but one is a composite expression ofa narrower type than the other.Ticket(s):24809 If a composite expression is the operand to the unary negate,
unary posate, or bitwise complement operator, the resultingunary expression will inherit that status and also be considereda composite expression.
1895
The 2nd and 3rd operands of this conditional operator are both ’essen-tially floating’ (’%1s’ and ’%2s’) but one is a composite expression of anarrower type than the other.Ticket(s):24809 If a composite expression is the operand to the unary negate,
unary posate, or bitwise complement operator, the resultingunary expression will inherit that status and also be considereda composite expression.
2001
A ’goto’ statement has been used.Ticket(s):24843 New messages 0772 and 0773 to warn when a loop has multiple
exits including ’goto’ and ’return’ statements; adjusted the loca-tions of 0769 and 0771 and other loop-control related messagesfor better consistency.
2002
No ’default’ label found in this ’switch’ statement.Ticket(s):24300 Added new messages to warn when jumps other than ’break’
are used to terminate switch clauses, and reduced false neg-atives for switch structure enforcement messages 2002, 2003,2009 and 2012. New message 2025 to warn of jumps over clo-sure boundaries.
2003
The preceding ’switch’ clause is not empty and does not end with a’jump’ statement. Execution will fall through.Ticket(s):24300 Added new messages to warn when jumps other than ’break’
are used to terminate switch clauses, and reduced false neg-atives for switch structure enforcement messages 2002, 2003,2009 and 2012. New message 2025 to warn of jumps over clo-sure boundaries.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 61 Programming Research Ltd.
Table 3.4 – continued from previous page
Msg. Id. Description
2005
A ’continue’ statement has been used.Ticket(s):24843 New messages 0772 and 0773 to warn when a loop has multiple
exits including ’goto’ and ’return’ statements; adjusted the loca-tions of 0769 and 0771 and other loop-control related messagesfor better consistency.
2007
’auto’ does not add information to a declaration, and is best avoided.Ticket(s):24801 New messages 3241 to warn when inline function declarations
are implicitly static, and 3242 to warn when a plain inline func-tion declaration rules out making defining it as static later. Alsoimproves consistency of related qualifier/specifier messages.
2009
This ’default’ label is not the final ’case’ label within the ’switch’ block.Ticket(s):24300 Added new messages to warn when jumps other than ’break’
are used to terminate switch clauses, and reduced false neg-atives for switch structure enforcement messages 2002, 2003,2009 and 2012. New message 2025 to warn of jumps over clo-sure boundaries.
2012
This ’default’ label is neither the first nor the last label within the ’switch’block.Ticket(s):24300 Added new messages to warn when jumps other than ’break’
are used to terminate switch clauses, and reduced false neg-atives for switch structure enforcement messages 2002, 2003,2009 and 2012. New message 2025 to warn of jumps over clo-sure boundaries.
2020
Final ’switch’ clause does not end with an explicit ’jump’ statement.Ticket(s):24300 Added new messages to warn when jumps other than ’break’
are used to terminate switch clauses, and reduced false neg-atives for switch structure enforcement messages 2002, 2003,2009 and 2012. New message 2025 to warn of jumps over clo-sure boundaries.
2118
Default argument promotion : float promoted to double.Ticket(s):24875 Certain messages that apply to initializer expressions will be
generated against those expressions instead of being generatedat the end of the initialiser list. A number of related messageswill also have their locations improved as part of a general mes-sage location improvement across QAC.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 62 Programming Research Ltd.
Table 3.4 – continued from previous page
Msg. Id. Description
2200
Indentation of this line is to the left of the current block indentation level.Ticket(s):21598 Messages 2207, 2208 and 2209 now also apply to the braces
delimiting the body of functions. In addition, indent and stylechecking is disabled in certain cases for ambiguous macro ar-guments and nonstandard language extensions. Message 2200description improved.
2201
This indentation is not consistent with previous indentation in this file.Ticket(s):21598 Messages 2207, 2208 and 2209 now also apply to the braces
delimiting the body of functions. In addition, indent and stylechecking is disabled in certain cases for ambiguous macro ar-guments and nonstandard language extensions. Message 2200description improved.
2203
This closing brace is not aligned appropriately with the matching open-ing brace.Ticket(s):21598 Messages 2207, 2208 and 2209 now also apply to the braces
delimiting the body of functions. In addition, indent and stylechecking is disabled in certain cases for ambiguous macro ar-guments and nonstandard language extensions. Message 2200description improved.
2204
’%s’ is not aligned to match its controlling ’switch’ statement.Ticket(s):21598 Messages 2207, 2208 and 2209 now also apply to the braces
delimiting the body of functions. In addition, indent and stylechecking is disabled in certain cases for ambiguous macro ar-guments and nonstandard language extensions. Message 2200description improved.
2207
This brace style is not consistent with ’K&R’ style.Ticket(s):21598 Messages 2207, 2208 and 2209 now also apply to the braces
delimiting the body of functions. In addition, indent and stylechecking is disabled in certain cases for ambiguous macro ar-guments and nonstandard language extensions. Message 2200description improved.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 63 Programming Research Ltd.
Table 3.4 – continued from previous page
Msg. Id. Description
2208
This brace style is not consistent with ’indented’ style.Ticket(s):21598 Messages 2207, 2208 and 2209 now also apply to the braces
delimiting the body of functions. In addition, indent and stylechecking is disabled in certain cases for ambiguous macro ar-guments and nonstandard language extensions. Message 2200description improved.
2209
This brace style is not consistent with ’exdented’ style.Ticket(s):21598 Messages 2207, 2208 and 2209 now also apply to the braces
delimiting the body of functions. In addition, indent and stylechecking is disabled in certain cases for ambiguous macro ar-guments and nonstandard language extensions. Message 2200description improved.
2211
’%s’ is not aligned with the previously declared identifier.Ticket(s):21598 Messages 2207, 2208 and 2209 now also apply to the braces
delimiting the body of functions. In addition, indent and stylechecking is disabled in certain cases for ambiguous macro ar-guments and nonstandard language extensions. Message 2200description improved.
2212
Body of control statement is not enclosed within braces.Ticket(s):21598 Messages 2207, 2208 and 2209 now also apply to the braces
delimiting the body of functions. In addition, indent and stylechecking is disabled in certain cases for ambiguous macro ar-guments and nonstandard language extensions. Message 2200description improved.
25067 Fixed false positive 2212 when brace occurs hidden by a macroin same place in header and main file.
2213
Matching braces appear on the same line - proper indentation would bepreferred.Ticket(s):21598 Messages 2207, 2208 and 2209 now also apply to the braces
delimiting the body of functions. In addition, indent and stylechecking is disabled in certain cases for ambiguous macro ar-guments and nonstandard language extensions. Message 2200description improved.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 64 Programming Research Ltd.
Table 3.4 – continued from previous page
Msg. Id. Description
2214
Body of control statement is on the same line and is not enclosed withinbraces.Ticket(s):21598 Messages 2207, 2208 and 2209 now also apply to the braces
delimiting the body of functions. In addition, indent and stylechecking is disabled in certain cases for ambiguous macro ar-guments and nonstandard language extensions. Message 2200description improved.
2215
This indentation is not consistent with configured depth.Ticket(s):21598 Messages 2207, 2208 and 2209 now also apply to the braces
delimiting the body of functions. In addition, indent and stylechecking is disabled in certain cases for ambiguous macro ar-guments and nonstandard language extensions. Message 2200description improved.
2461
Loop control variable in this ’for’ statement, %s, has file scope.Ticket(s):10998 Rework of QAC’s loop control variable detection to correctly rec-
ognize loop control variables that are members of aggregates,and remove false positives and negatives when the loop controlvariable is a pointer.
2462
The variable initialized in the first expression of this ’for’ statement is notthe variable identified as the ’loop control variable’ (%s).Ticket(s):10998 Rework of QAC’s loop control variable detection to correctly rec-
ognize loop control variables that are members of aggregates,and remove false positives and negatives when the loop controlvariable is a pointer.
2463
The variable incremented in the third expression of this ’for’ statementis not the variable identified as the ’loop control variable’ (%s).Ticket(s):10998 Rework of QAC’s loop control variable detection to correctly rec-
ognize loop control variables that are members of aggregates,and remove false positives and negatives when the loop controlvariable is a pointer.
2464
Loop control variable, %s, modified twice in for-loop header.Ticket(s):10998 Rework of QAC’s loop control variable detection to correctly rec-
ognize loop control variables that are members of aggregates,and remove false positives and negatives when the loop controlvariable is a pointer.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 65 Programming Research Ltd.
Table 3.4 – continued from previous page
Msg. Id. Description
2465
This ’for’ loop will only be executed once.Ticket(s):10998 Rework of QAC’s loop control variable detection to correctly rec-
ognize loop control variables that are members of aggregates,and remove false positives and negatives when the loop controlvariable is a pointer.
2466
The value of this controlling expression is always ’false’. The containedcode is unreachable.Ticket(s):10998 Rework of QAC’s loop control variable detection to correctly rec-
ognize loop control variables that are members of aggregates,and remove false positives and negatives when the loop controlvariable is a pointer.
2467
Loop control variable in this ’for’ statement, %s, is not modified insideloop.Ticket(s):10998 Rework of QAC’s loop control variable detection to correctly rec-
ognize loop control variables that are members of aggregates,and remove false positives and negatives when the loop controlvariable is a pointer.
2468
Loop control variable in this ’for’ statement, %s, is not modified insideloop but has file scope.Ticket(s):10998 Rework of QAC’s loop control variable detection to correctly rec-
ognize loop control variables that are members of aggregates,and remove false positives and negatives when the loop controlvariable is a pointer.
2469
Loop control variable in this ’for’ statement, %s, is modified in the bodyof the loop.Ticket(s):10998 Rework of QAC’s loop control variable detection to correctly rec-
ognize loop control variables that are members of aggregates,and remove false positives and negatives when the loop controlvariable is a pointer.
2470
Taking address of loop control variable, %s.Ticket(s):10998 Rework of QAC’s loop control variable detection to correctly rec-
ognize loop control variables that are members of aggregates,and remove false positives and negatives when the loop controlvariable is a pointer.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 66 Programming Research Ltd.
Table 3.4 – continued from previous page
Msg. Id. Description
2471
Unable to identify a loop control variable.Ticket(s):10998 Rework of QAC’s loop control variable detection to correctly rec-
ognize loop control variables that are members of aggregates,and remove false positives and negatives when the loop controlvariable is a pointer.
2472
More than one possible loop control variable.Ticket(s):10998 Rework of QAC’s loop control variable detection to correctly rec-
ognize loop control variables that are members of aggregates,and remove false positives and negatives when the loop controlvariable is a pointer.
2481
Loop control variable in this ’while’ statement, %s, has file scope.Ticket(s):10998 Rework of QAC’s loop control variable detection to correctly rec-
ognize loop control variables that are members of aggregates,and remove false positives and negatives when the loop controlvariable is a pointer.
2487
Loop control variable in this ’while’ statement, %s, is not modified insideloop.Ticket(s):10998 Rework of QAC’s loop control variable detection to correctly rec-
ognize loop control variables that are members of aggregates,and remove false positives and negatives when the loop controlvariable is a pointer.
2488
Loop control variable in this ’while’ statement, %s, is not modified insideloop but has file scope.Ticket(s):10998 Rework of QAC’s loop control variable detection to correctly rec-
ognize loop control variables that are members of aggregates,and remove false positives and negatives when the loop controlvariable is a pointer.
2500
Call to ’%s’ is not immediately preceded by the zero-ing of ’errno’.Ticket(s):24803 New analysis to highlight arrays with explicit initializers for some,
but not all, elements.
2502
Zero-ing of ’errno’ is not immediately followed by a call to an ’errno’setting function.Ticket(s):24803 New analysis to highlight arrays with explicit initializers for some,
but not all, elements.continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 67 Programming Research Ltd.
Table 3.4 – continued from previous page
Msg. Id. Description
2668
Subtraction of a pointer to an array and a pointer to a non-array.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2669
Comparison of a pointer to an array and a pointer to a non-array.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2671
Definite: The value being compared with macro EOF does not originatefrom an EOF returning function.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2674
Possible: The value being compared with macro EOF does not origi-nate from an EOF returning function.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2676
Definite: The value originating from an EOF returning function wasmodified before being compared with macro EOF.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2678
Suspicious: The value originating from an EOF returning function wasmodified before being compared with macro EOF.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 68 Programming Research Ltd.
Table 3.4 – continued from previous page
Msg. Id. Description
2681
Definite: Using an invalidated value ’%s’ returned from a Standard Li-brary function.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2682
Apparent: Using an invalidated value ’%s’ returned from a StandardLibrary function.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2683
Suspicious: Using an invalidated value ’%s’ returned from a StandardLibrary function.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2686
Definite: Writing to a file opened for reading.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2687
Apparent: Writing to a file opened for reading.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2688
Suspicious: Writing to a file opened for reading.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 69 Programming Research Ltd.
Table 3.4 – continued from previous page
Msg. Id. Description
2691
Definite: The same file will be open with write access and anothermode.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2692
Apparent: The same file will be open with write access and anothermode.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2693
Suspicious: The same file will be open with write access and anothermode.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2696
Definite: Attempt to access a file which has been closed.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2697
Apparent: Attempt to access a file which has been closed.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2698
Suspicious: Attempt to access a file which has been closed.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 70 Programming Research Ltd.
Table 3.4 – continued from previous page
Msg. Id. Description
2701
Definite: Opened file is not closed.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2702
Apparent: Opened file is not closed.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2703
Suspicious: Opened file is not closed.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2706
Definite: Allocated memory is not deallocated.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2707
Apparent: Allocated memory is not deallocated.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2708
Suspicious: Allocated memory is not deallocated.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2711
Definite: Memory allocation and deallocation mismatch.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 71 Programming Research Ltd.
Table 3.4 – continued from previous page
Msg. Id. Description
2712
Apparent: Memory allocation and deallocation mismatch.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2713
Suspicious: Memory allocation and deallocation mismatch.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2716
Definite: Memory deallocated multiple times.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2717
Apparent: Memory deallocated multiple times.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2718
Suspicious: Memory deallocated multiple times.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2721
Definite: Deallocation of non dynamic memory.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2722
Apparent: Deallocation of non dynamic memory.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 72 Programming Research Ltd.
Table 3.4 – continued from previous page
Msg. Id. Description
2723
Suspicious: Deallocation of non dynamic memory.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2726
Definite: Use of uninitialized resource.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2727
Apparent: Use of uninitialized resource.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2728
Suspicious: Use of uninitialized resource.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2731
Definite: Use of destroyed resource.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2732
Apparent: Use of destroyed resource.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2733
Suspicious: Use of destroyed resource.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 73 Programming Research Ltd.
Table 3.4 – continued from previous page
Msg. Id. Description
2736
Definite: Created resource is not destroyed.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2737
Apparent: Created resource is not destroyed.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2738
Suspicious: Created resource is not destroyed.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2740
This loop controlling expression is a constant expression and its valueis ’true’.Ticket(s):10998 Rework of QAC’s loop control variable detection to correctly rec-
ognize loop control variables that are members of aggregates,and remove false positives and negatives when the loop controlvariable is a pointer.
25655 Minor performance improvements, and bug fixes due to im-proved modelling of constants and declaration scope in dataflow.
2741
This ’if’ controlling expression is a constant expression and its value is’true’.Ticket(s):10998 Rework of QAC’s loop control variable detection to correctly rec-
ognize loop control variables that are members of aggregates,and remove false positives and negatives when the loop controlvariable is a pointer.
25465 Fixed false positives due to incorrect constant folding of casts to_Bool.
25655 Minor performance improvements, and bug fixes due to im-proved modelling of constants and declaration scope in dataflow.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 74 Programming Research Ltd.
Table 3.4 – continued from previous page
Msg. Id. Description
2742
This ’if’ controlling expression is a constant expression and its value is’false’.Ticket(s):10998 Rework of QAC’s loop control variable detection to correctly rec-
ognize loop control variables that are members of aggregates,and remove false positives and negatives when the loop controlvariable is a pointer.
25465 Fixed false positives due to incorrect constant folding of casts to_Bool.
25655 Minor performance improvements, and bug fixes due to im-proved modelling of constants and declaration scope in dataflow.
2743
This ’do - while’ loop controlling expression is a constant expressionand its value is ’false’. The loop will only be executed once.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2744
This ’while’ or ’for’ loop controlling expression is a constant expressionand its value is ’false’. The loop will not be entered.Ticket(s):10998 Rework of QAC’s loop control variable detection to correctly rec-
ognize loop control variables that are members of aggregates,and remove false positives and negatives when the loop controlvariable is a pointer.
25655 Minor performance improvements, and bug fixes due to im-proved modelling of constants and declaration scope in dataflow.
2746
Definite: Use of uninitialized file handle.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2747
Apparent: Use of uninitialized file handle.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 75 Programming Research Ltd.
Table 3.4 – continued from previous page
Msg. Id. Description
2748
Suspicious: Use of uninitialized file handle.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2750
Internal dataflow problem. Dataflow analysis continues with the nextfunction. Please inform Programming Research.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2751
This function is too complex. Dataflow analysis continues with the nextfunction.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2752
This ’%1s’ results in the function being too complex. Dataflow analysiscontinues with the next function.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2753
As a result of error message ’%s’, dataflow analysis of the remainder ofthis function is not possible.Ticket(s):25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2754
As a result of error message ’%s’, dataflow analysis of the remainder ofthis translation unit is not possible.Ticket(s):25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 76 Programming Research Ltd.
Table 3.4 – continued from previous page
Msg. Id. Description
2755
Analysis time of function ’%1s’ has exceeded the configured maximum:’%2sms’. Dataflow analysis continues with the next function.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2756
Could not expand function call to ’%1s’ with maximum ’-po df::inter’value.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2757
Could not analyze function ’%1s’.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2758
Query has exceeded the configured maximum: ’%1sms’. Dataflowanalysis continues with the next query.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2761
Definite: Subtracting pointers that address different objects.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2763
Suspicious: Subtracting pointers that address different objects.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 77 Programming Research Ltd.
Table 3.4 – continued from previous page
Msg. Id. Description
2766
Definite: Subtracting pointers that address different members of thesame object.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2767
Apparent: Subtracting pointers that address different members of thesame object.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2768
Suspicious: Subtracting pointers that address different members of thesame object.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2771
Definite: Comparing pointers that address different objects.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2772
Apparent: Comparing pointers that address different objects.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2773
Suspicious: Comparing pointers that address different objects.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 78 Programming Research Ltd.
Table 3.4 – continued from previous page
Msg. Id. Description
2776
Definite: Copy between overlapping objects.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25549 Message 2776 will no longer be incorrectly generated when a
structure with bit-fields is wrapped in a union and an assignmentis made between bit-fields in that structure that are at either sideof an 8-bit boundary.
25655 Minor performance improvements, and bug fixes due to im-proved modelling of constants and declaration scope in dataflow.
2777
Apparent: Copy between overlapping objects.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2778
Suspicious: Copy between overlapping objects.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2781
Definite: Function argument has fewer elements than the array dimen-sion in the parameter declaration for non-inlined call.Ticket(s):25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2782
Apparent: Function argument has fewer elements than the array dimen-sion in the parameter declaration for non-inlined call.Ticket(s):25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2783
Suspicious: Function argument has fewer elements than the array di-mension in the parameter declaration for non-inlined call.Ticket(s):25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2784
Possible: Function argument has fewer elements than the array dimen-sion in the parameter declaration for non-inlined call.Ticket(s):25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 79 Programming Research Ltd.
Table 3.4 – continued from previous page
Msg. Id. Description
2785
Constant: Null terminated string is being passed as argument to Stan-dard Library function memcmp.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2786
Definite: Null terminated string is being passed as argument to Stan-dard Library function memcmp.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2789
Possible: Null terminated string is being passed as argument to Stan-dard Library function memcmp.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2790
Constant: Right hand operand of shift operator is negative or too large.Ticket(s):25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2791
Definite: Right hand operand of shift operator is negative or too large.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2792
Apparent: Right hand operand of shift operator is negative or too large.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 80 Programming Research Ltd.
Table 3.4 – continued from previous page
Msg. Id. Description
2793
Suspicious: Right hand operand of shift operator is negative or toolarge.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2796
Definite: Calling a standard library character handling function with aninvalid character value.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2797
Apparent: Calling a standard library character handling function with aninvalid character value.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2798
Suspicious: Calling a standard library character handling function withan invalid character value.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2799
Possible: Calling a standard library character handling function with aninvalid character value.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 81 Programming Research Ltd.
Table 3.4 – continued from previous page
Msg. Id. Description
2800
Constant: Overflow in signed arithmetic operation.Ticket(s):24825 Messages relating to constant wraparound are no longer gen-
erated in unevaluated contexts. This change does not apply tooverflow messages.
24875 Certain messages that apply to initializer expressions will begenerated against those expressions instead of being generatedat the end of the initialiser list. A number of related messageswill also have their locations improved as part of a general mes-sage location improvement across QAC.
25305 Dataflow has been improved to model side effects of pointer as-signment less conservatively.
25655 Minor performance improvements, and bug fixes due to im-proved modelling of constants and declaration scope in dataflow.
2801
Definite: Overflow in signed arithmetic operation.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2802
Apparent: Overflow in signed arithmetic operation.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2803
Suspicious: Overflow in signed arithmetic operation.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2806
Definite: Calling a standard library wide character handling functionwith an invalid character value.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 82 Programming Research Ltd.
Table 3.4 – continued from previous page
Msg. Id. Description
2807
Apparent: Calling a standard library wide character handling functionwith an invalid character value.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2808
Suspicious: Calling a standard library wide character handling functionwith an invalid character value.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2809
Possible: Calling a standard library wide character handling functionwith an invalid character value.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2810
Constant: Dereference of NULL pointer.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2811
Definite: Dereference of NULL pointer.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.25802 Internal refactoring of flow graph analysis.
2812
Apparent: Dereference of NULL pointer.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 83 Programming Research Ltd.
Table 3.4 – continued from previous page
Msg. Id. Description
2813
Suspicious: Dereference of NULL pointer.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2814
Possible: Dereference of NULL pointer.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.25802 Internal refactoring of flow graph analysis.
2816
Definite: Calling a standard library character input/output function withan invalid character value.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2817
Apparent: Calling a standard library character input/output function withan invalid character value.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2818
Suspicious: Calling a standard library character input/output functionwith an invalid character value.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2819
Possible: Calling a standard library character input/output function withan invalid character value.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 84 Programming Research Ltd.
Table 3.4 – continued from previous page
Msg. Id. Description
2820
Constant: Arithmetic operation on NULL pointer.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2821
Definite: Arithmetic operation on NULL pointer.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2822
Apparent: Arithmetic operation on NULL pointer.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2823
Suspicious: Arithmetic operation on NULL pointer.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2824
Possible: Arithmetic operation on NULL pointer.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2830
Constant: Division by zero.Ticket(s):25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2831
Definite: Division by zero.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 85 Programming Research Ltd.
Table 3.4 – continued from previous page
Msg. Id. Description
2832
Apparent: Division by zero.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2833
Suspicious: Division by zero.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2834
Possible: Division by zero.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2835
Constant: Non-null terminated string used in a string function.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2836
Definite: Non-null terminated string used in a string function.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2839
Possible: Non-null terminated string used in a string function.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 86 Programming Research Ltd.
Table 3.4 – continued from previous page
Msg. Id. Description
2840
Constant: Dereference of an invalid pointer value.Ticket(s):24783 False positive 2840 when accessing the last array element of
struct type with a _Bool member.25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2841
Definite: Dereference of an invalid pointer value.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2842
Apparent: Dereference of an invalid pointer value.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2843
Suspicious: Dereference of an invalid pointer value.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2844
Possible: Dereference of an invalid pointer value.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2845
Constant: Maximum number of characters to be read/written is largerthan the target buffer size.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 87 Programming Research Ltd.
Table 3.4 – continued from previous page
Msg. Id. Description
2846
Definite: Maximum number of characters to be read/written is largerthan the target buffer size.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2847
Apparent: Maximum number of characters to be read/written is largerthan the target buffer size.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2848
Suspicious: Maximum number of characters to be read/written is largerthan the target buffer size.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2849
Possible: Maximum number of characters to be read/written is largerthan the target buffer size.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2850
Constant: Implicit conversion to a signed integer type of insufficientsize.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2851
Definite: Implicit conversion to a signed integer type of insufficient size.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 88 Programming Research Ltd.
Table 3.4 – continued from previous page
Msg. Id. Description
2852
Apparent: Implicit conversion to a signed integer type of insufficientsize.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2853
Suspicious: Implicit conversion to a signed integer type of insufficientsize.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2855
Constant: Casting to a signed integer type of insufficient size.Ticket(s):25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2856
Definite: Casting to a signed integer type of insufficient size.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2857
Apparent: Casting to a signed integer type of insufficient size.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2858
Suspicious: Casting to a signed integer type of insufficient size.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 89 Programming Research Ltd.
Table 3.4 – continued from previous page
Msg. Id. Description
2860
Constant: Implementation-defined value resulting from left shift opera-tion on expression of signed type.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2861
Definite: Implementation-defined value resulting from left shift operationon expression of signed type.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2862
Apparent: Implementation-defined value resulting from left shift opera-tion on expression of signed type.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2863
Suspicious: Implementation-defined value resulting from left shift oper-ation on expression of signed type.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2865
Constant: Using 0 as size parameter of a function call.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2866
Definite: Using 0 as size parameter of a function call.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 90 Programming Research Ltd.
Table 3.4 – continued from previous page
Msg. Id. Description
2867
Apparent: Using 0 as size parameter of a function call.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2868
Suspicious: Using 0 as size parameter of a function call.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2869
Possible: Using 0 as size parameter of a function call.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2870
Infinite loop construct with constant control expression.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2871
Infinite loop identified.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2872
This loop, if entered, will never terminate.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2877
This loop will never be executed more than once.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 91 Programming Research Ltd.
Table 3.4 – continued from previous page
Msg. Id. Description
2880
This code is unreachable.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2881
The code in this ’default’ clause is unreachable.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2882
This ’switch’ statement will bypass the initialization of local variables.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2883
This ’goto’ statement will always bypass the initialization of local vari-ables.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2887
Function ’main’ ends with an implicit ’return’ statement.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2888
This function has been declared with a non-void ’return’ type but endswith an implicit ’return ;’ statement.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 92 Programming Research Ltd.
Table 3.4 – continued from previous page
Msg. Id. Description
2889
This function has more than one ’return’ path.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2890
Constant: Negative value implicitly converted to an unsigned type.Ticket(s):24825 Messages relating to constant wraparound are no longer gen-
erated in unevaluated contexts. This change does not apply tooverflow messages.
25305 Dataflow has been improved to model side effects of pointer as-signment less conservatively.
25655 Minor performance improvements, and bug fixes due to im-proved modelling of constants and declaration scope in dataflow.
2891
Definite: Negative value implicitly converted to an unsigned type.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2892
Apparent: Negative value implicitly converted to an unsigned type.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2893
Suspicious: Negative value implicitly converted to an unsigned type.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2895
Constant: Negative value cast to an unsigned type.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 93 Programming Research Ltd.
Table 3.4 – continued from previous page
Msg. Id. Description
2896
Definite: Negative value cast to an unsigned type.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2897
Apparent: Negative value cast to an unsigned type.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2898
Suspicious: Negative value cast to an unsigned type.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2900
Constant: Positive integer value truncated by implicit conversion to asmaller unsigned type.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2901
Definite: Positive integer value truncated by implicit conversion to asmaller unsigned type.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2902
Apparent: Positive integer value truncated by implicit conversion to asmaller unsigned type.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 94 Programming Research Ltd.
Table 3.4 – continued from previous page
Msg. Id. Description
2903
Suspicious: Positive integer value truncated by implicit conversion to asmaller unsigned type.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2905
Constant: Positive integer value truncated by cast to a smaller unsignedtype.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2906
Definite: Positive integer value truncated by cast to a smaller unsignedtype.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2907
Apparent: Positive integer value truncated by cast to a smaller unsignedtype.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2908
Suspicious: Positive integer value truncated by cast to a smaller un-signed type.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 95 Programming Research Ltd.
Table 3.4 – continued from previous page
Msg. Id. Description
2910
Constant: Wraparound in unsigned arithmetic operation.Ticket(s):24825 Messages relating to constant wraparound are no longer gen-
erated in unevaluated contexts. This change does not apply tooverflow messages.
24875 Certain messages that apply to initializer expressions will begenerated against those expressions instead of being generatedat the end of the initialiser list. A number of related messageswill also have their locations improved as part of a general mes-sage location improvement across QAC.
25305 Dataflow has been improved to model side effects of pointer as-signment less conservatively.
25655 Minor performance improvements, and bug fixes due to im-proved modelling of constants and declaration scope in dataflow.
2911
Definite: Wraparound in unsigned arithmetic operation.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2912
Apparent: Wraparound in unsigned arithmetic operation.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2913
Suspicious: Wraparound in unsigned arithmetic operation.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2920
Constant: Left shift operation on expression of unsigned type results inloss of high order bits.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 96 Programming Research Ltd.
Table 3.4 – continued from previous page
Msg. Id. Description
2921
Definite: Left shift operation on expression of unsigned type results inloss of high order bits.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2922
Apparent: Left shift operation on expression of unsigned type results inloss of high order bits.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2923
Suspicious: Left shift operation on expression of unsigned type resultsin loss of high order bits.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2930
Constant: Computing an invalid pointer value.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2931
Definite: Computing an invalid pointer value.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2932
Apparent: Computing an invalid pointer value.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 97 Programming Research Ltd.
Table 3.4 – continued from previous page
Msg. Id. Description
2933
Suspicious: Computing an invalid pointer value.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2934
Possible: Computing an invalid pointer value.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2940
Constant: Result of implicit conversion is only representable in a two’scomplement implementation.Ticket(s):24875 Certain messages that apply to initializer expressions will be
generated against those expressions instead of being generatedat the end of the initialiser list. A number of related messageswill also have their locations improved as part of a general mes-sage location improvement across QAC.
25305 Dataflow has been improved to model side effects of pointer as-signment less conservatively.
25655 Minor performance improvements, and bug fixes due to im-proved modelling of constants and declaration scope in dataflow.
2941
Definite: Result of implicit conversion is only representable in a two’scomplement implementation.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2942
Apparent: Result of implicit conversion is only representable in a two’scomplement implementation.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 98 Programming Research Ltd.
Table 3.4 – continued from previous page
Msg. Id. Description
2943
Suspicious: Result of implicit conversion is only representable in a two’scomplement implementation.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2945
Constant: Result of cast is only representable in a two’s complementimplementation.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2946
Definite: Result of cast is only representable in a two’s complementimplementation.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2947
Apparent: Result of cast is only representable in a two’s complementimplementation.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2948
Suspicious: Result of cast is only representable in a two’s complementimplementation.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2950
Constant: Negative value used in array subscript or pointer arithmeticoperation.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 99 Programming Research Ltd.
Table 3.4 – continued from previous page
Msg. Id. Description
2951
Definite: Negative value used in array subscript or pointer arithmeticoperation.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2952
Apparent: Negative value used in array subscript or pointer arithmeticoperation.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2953
Suspicious: Negative value used in array subscript or pointer arithmeticoperation.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2956
Definite: Using object ’%s’ with tainted value.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2959
Possible: Using object ’%s’ with tainted value.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2961
Definite: Using value of uninitialized automatic object ’%s’.Ticket(s):25294 False Positive 2961 is no longer generated when dereferencing
a member of type pointer to function through an array subscript.25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 100 Programming Research Ltd.
Table 3.4 – continued from previous page
Msg. Id. Description
2962
Apparent: Using value of uninitialized automatic object ’%s’.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2963
Suspicious: Using value of uninitialized automatic object ’%s’.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2966
Definite: Some members of object ’%s’ are uninitialized.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2967
Apparent: Some members of object ’%s’ are uninitialized.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2968
Suspicious: Some members of object ’%s’ are uninitialized.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2971
Definite: Passing address of uninitialized object ’%s’ to a function pa-rameter declared as a pointer to const.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 101 Programming Research Ltd.
Table 3.4 – continued from previous page
Msg. Id. Description
2972
Apparent: Passing address of uninitialized object ’%s’ to a function pa-rameter declared as a pointer to const.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2973
Suspicious: Passing address of uninitialized object ’%s’ to a functionparameter declared as a pointer to const.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2976
Definite: Passing address of partially initialized object ’%s’ to a functionparameter declared as a pointer to const.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2977
Apparent: Passing address of partially initialized object ’%s’ to a func-tion parameter declared as a pointer to const.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2978
Suspicious: Passing address of partially initialized object ’%s’ to a func-tion parameter declared as a pointer to const.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2980
The value of this function parameter is never used before being modi-fied.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 102 Programming Research Ltd.
Table 3.4 – continued from previous page
Msg. Id. Description
2981
This initialization is redundant. The value of this object is never usedbefore being modified.Ticket(s):25045 Reduced false positives and negatives for several messages re-
lating to variable modification in expressions involving statementexpressions and nested functions. (Using a variable in a state-ment expression is no longer considered a modification.)
25305 Dataflow has been improved to model side effects of pointer as-signment less conservatively.
25655 Minor performance improvements, and bug fixes due to im-proved modelling of constants and declaration scope in dataflow.
2982
This assignment is redundant. The value of this object is never usedbefore being modified.Ticket(s):25045 Reduced false positives and negatives for several messages re-
lating to variable modification in expressions involving statementexpressions and nested functions. (Using a variable in a state-ment expression is no longer considered a modification.)
25305 Dataflow has been improved to model side effects of pointer as-signment less conservatively.
25655 Minor performance improvements, and bug fixes due to im-proved modelling of constants and declaration scope in dataflow.
2983
This assignment is redundant. The value of this object is never subse-quently used.Ticket(s):25045 Reduced false positives and negatives for several messages re-
lating to variable modification in expressions involving statementexpressions and nested functions. (Using a variable in a state-ment expression is no longer considered a modification.)
25305 Dataflow has been improved to model side effects of pointer as-signment less conservatively.
25655 Minor performance improvements, and bug fixes due to im-proved modelling of constants and declaration scope in dataflow.
2984
This operation is redundant. The value of the result is always ’%1s’.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 103 Programming Research Ltd.
Table 3.4 – continued from previous page
Msg. Id. Description
2985
This operation is redundant. The value of the result is always that of theleft-hand operand.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2986
This operation is redundant. The value of the result is always that of theright-hand operand.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2987
This function call produces no side effects and is redundant.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2990
The value of this loop controlling expression is always ’true’.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2991
The value of this ’if’ controlling expression is always ’true’.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2992
The value of this ’if’ controlling expression is always ’false’.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 104 Programming Research Ltd.
Table 3.4 – continued from previous page
Msg. Id. Description
2993
The value of this ’do - while’ loop controlling expression is always ’false’.The loop will only be executed once.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2994
The value of this ’while’ or ’for’ loop controlling expression is always’false’. The loop will not be entered.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2995
The result of this logical operation is always ’true’.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2996
The result of this logical operation is always ’false’.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2997
The first operand of this conditional operator is always ’true’.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.
2998
The first operand of this conditional operator is always ’false’.Ticket(s):25305 Dataflow has been improved to model side effects of pointer as-
signment less conservatively.25655 Minor performance improvements, and bug fixes due to im-
proved modelling of constants and declaration scope in dataflow.continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 105 Programming Research Ltd.
Table 3.4 – continued from previous page
Msg. Id. Description
3197
This initialization is redundant. The value of ’%s’ is never used beforebeing modified.Ticket(s):25045 Reduced false positives and negatives for several messages re-
lating to variable modification in expressions involving statementexpressions and nested functions. (Using a variable in a state-ment expression is no longer considered a modification.)
3198
This assignment is redundant. The value of ’%s’ is never used beforebeing modified.Ticket(s):25045 Reduced false positives and negatives for several messages re-
lating to variable modification in expressions involving statementexpressions and nested functions. (Using a variable in a state-ment expression is no longer considered a modification.)
3199
This assignment is redundant. The value of this object is never usedbefore being modified.Ticket(s):25045 Reduced false positives and negatives for several messages re-
lating to variable modification in expressions involving statementexpressions and nested functions. (Using a variable in a state-ment expression is no longer considered a modification.)
3200
’%s’ returns a value which is not being used.Ticket(s):25281 Analysis of unused values returned from a function call now in-
cludes calls made through pointer to functions.
3202
The label ’%s:’ is not used in this function and could be removed.Ticket(s):25045 Reduced false positives and negatives for several messages re-
lating to variable modification in expressions involving statementexpressions and nested functions. (Using a variable in a state-ment expression is no longer considered a modification.)
3203
The variable ’%s’ is set but never used.Ticket(s):25045 Reduced false positives and negatives for several messages re-
lating to variable modification in expressions involving statementexpressions and nested functions. (Using a variable in a state-ment expression is no longer considered a modification.)
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 106 Programming Research Ltd.
Table 3.4 – continued from previous page
Msg. Id. Description
3204
The variable ’%s’ is only set once and so it could be declared with the’const’ qualifier.Ticket(s):25045 Reduced false positives and negatives for several messages re-
lating to variable modification in expressions involving statementexpressions and nested functions. (Using a variable in a state-ment expression is no longer considered a modification.)
3205
The identifier ’%s’ is not used and could be removed.Ticket(s):25045 Reduced false positives and negatives for several messages re-
lating to variable modification in expressions involving statementexpressions and nested functions. (Using a variable in a state-ment expression is no longer considered a modification.)
3206
The parameter ’%s’ is not used in this function.Ticket(s):25045 Reduced false positives and negatives for several messages re-
lating to variable modification in expressions involving statementexpressions and nested functions. (Using a variable in a state-ment expression is no longer considered a modification.)
3208
’%s()’ returns a value which is sometimes ignored.Ticket(s):25281 Analysis of unused values returned from a function call now in-
cludes calls made through pointer to functions.
3209
’%s()’ returns a value which is always ignored.Ticket(s):25281 Analysis of unused values returned from a function call now in-
cludes calls made through pointer to functions.
3236
[C] ’inline’ may not be applied to function ’main’.Ticket(s):24801 New messages 3241 to warn when inline function declarations
are implicitly static, and 3242 to warn when a plain inline func-tion declaration rules out making defining it as static later. Alsoimproves consistency of related qualifier/specifier messages.
3240
inline function ’%s’ is being defined with external linkage.Ticket(s):24801 New messages 3241 to warn when inline function declarations
are implicitly static, and 3242 to warn when a plain inline func-tion declaration rules out making defining it as static later. Alsoimproves consistency of related qualifier/specifier messages.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 107 Programming Research Ltd.
Table 3.4 – continued from previous page
Msg. Id. Description
3243
inline function ’%s’ is also an ’external definition’.Ticket(s):24801 New messages 3241 to warn when inline function declarations
are implicitly static, and 3242 to warn when a plain inline func-tion declaration rules out making defining it as static later. Alsoimproves consistency of related qualifier/specifier messages.
3244
[C] ’inline’ may only be used in the declaration of a function identifier.Ticket(s):24801 New messages 3241 to warn when inline function declarations
are implicitly static, and 3242 to warn when a plain inline func-tion declaration rules out making defining it as static later. Alsoimproves consistency of related qualifier/specifier messages.
3260
Typedef defined with more than 2 levels of indirection.Ticket(s):24849 Fixed false positive in 3260, 3261, 3262, 3263 that mistakenly
treated arrays as additional levels of pointer nesting. Improvedconsistency of 0609.
3261
Member of struct/union defined with more than 2 levels of indirection.Ticket(s):24849 Fixed false positive in 3260, 3261, 3262, 3263 that mistakenly
treated arrays as additional levels of pointer nesting. Improvedconsistency of 0609.
3262
Object defined or declared with more than 2 levels of indirection.Ticket(s):24849 Fixed false positive in 3260, 3261, 3262, 3263 that mistakenly
treated arrays as additional levels of pointer nesting. Improvedconsistency of 0609.
3263
Function defined or declared with a return type which has more than 2levels of indirection.Ticket(s):24849 Fixed false positive in 3260, 3261, 3262, 3263 that mistakenly
treated arrays as additional levels of pointer nesting. Improvedconsistency of 0609.
3302
Wraparound past zero in unsigned subtraction of constant operands.Ticket(s):24825 Messages relating to constant wraparound are no longer gen-
erated in unevaluated contexts. This change does not apply tooverflow messages.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 108 Programming Research Ltd.
Table 3.4 – continued from previous page
Msg. Id. Description
3303
Wraparound past zero in unsigned addition of constant operands.Ticket(s):24825 Messages relating to constant wraparound are no longer gen-
erated in unevaluated contexts. This change does not apply tooverflow messages.
3304
Wraparound past zero in unsigned multiplication of constant operands.Ticket(s):24825 Messages relating to constant wraparound are no longer gen-
erated in unevaluated contexts. This change does not apply tooverflow messages.
3310
This ’goto’ statement involves a backward jump.Ticket(s):24843 New messages 0772 and 0773 to warn when a loop has multiple
exits including ’goto’ and ’return’ statements; adjusted the loca-tions of 0769 and 0771 and other loop-control related messagesfor better consistency.
3313
No definition has been found for structure/union tag ’%s’.Ticket(s):25896 QAC failed to return for code containing a braced initializer to an
array of incomplete type.
3314
This controlling expression is an assignment.Ticket(s):10998 Rework of QAC’s loop control variable detection to correctly rec-
ognize loop control variables that are members of aggregates,and remove false positives and negatives when the loop controlvariable is a pointer.
3323
This controlling expression has a constant ’true’ value.Ticket(s):10998 Rework of QAC’s loop control variable detection to correctly rec-
ognize loop control variables that are members of aggregates,and remove false positives and negatives when the loop controlvariable is a pointer.
3325
This ’while’ or ’for’ loop controlling expression has a constant ’false’value.Ticket(s):10998 Rework of QAC’s loop control variable detection to correctly rec-
ognize loop control variables that are members of aggregates,and remove false positives and negatives when the loop controlvariable is a pointer.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 109 Programming Research Ltd.
Table 3.4 – continued from previous page
Msg. Id. Description
3329
This ’if’ controlling expression has a constant ’false’ value.Ticket(s):10998 Rework of QAC’s loop control variable detection to correctly rec-
ognize loop control variables that are members of aggregates,and remove false positives and negatives when the loop controlvariable is a pointer.
3339
Floating point variable used as ’while’ loop control variable.Ticket(s):24838 New message 3350 to highlight when a while loop is controlled
by a floating-point comparison.
3340
Floating point variable used as ’for’ loop control variable.Ticket(s):24838 New message 3350 to highlight when a while loop is controlled
by a floating-point comparison.
3342
Controlling expression of ’for’ loop is a floating point comparison.Ticket(s):24838 New message 3350 to highlight when a while loop is controlled
by a floating-point comparison.
3343
Logical NOT being performed on one operand of a comparison.Ticket(s):10998 Rework of QAC’s loop control variable detection to correctly rec-
ognize loop control variables that are members of aggregates,and remove false positives and negatives when the loop controlvariable is a pointer.
3345
Statement contains more than one access to objects that are volatile.Ticket(s):25282 Fixed false positive 0375/0410 when parenthesized expressions
are cast. Locations for parenthesis/volatile messages tightenedup.
3346
The controlling expression in this ’if’ statement has a constant ’true’value.Ticket(s):10998 Rework of QAC’s loop control variable detection to correctly rec-
ognize loop control variables that are members of aggregates,and remove false positives and negatives when the loop controlvariable is a pointer.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 110 Programming Research Ltd.
Table 3.4 – continued from previous page
Msg. Id. Description
3401
Possible precedence confusion: extra parentheses are recommendedhere.Ticket(s):10998 Rework of QAC’s loop control variable detection to correctly rec-
ognize loop control variables that are members of aggregates,and remove false positives and negatives when the loop controlvariable is a pointer.
24875 Certain messages that apply to initializer expressions will begenerated against those expressions instead of being generatedat the end of the initialiser list. A number of related messageswill also have their locations improved as part of a general mes-sage location improvement across QAC.
3407
String literal compared using a relational or equality operator.Ticket(s):10998 Rework of QAC’s loop control variable detection to correctly rec-
ognize loop control variables that are members of aggregates,and remove false positives and negatives when the loop controlvariable is a pointer.
3410
Macro parameter not enclosed in ().Ticket(s):24715 New messages 3469, 3471, 3472, 3473 to indicate when a
function-like macro could be rewritten as an equivalent C func-tion.
3415
Right hand operand of ’&&’ or ’||’ is an expression with persistent sideeffects.Ticket(s):10998 Rework of QAC’s loop control variable detection to correctly rec-
ognize loop control variables that are members of aggregates,and remove false positives and negatives when the loop controlvariable is a pointer.
24836 False positives for messages 3415, 3416, 3421 and 3446 whenan expression calls a function with no persistent side effect.
3416
Logical operation performed on expression with persistent side effects.Ticket(s):10998 Rework of QAC’s loop control variable detection to correctly rec-
ognize loop control variables that are members of aggregates,and remove false positives and negatives when the loop controlvariable is a pointer.
24836 False positives for messages 3415, 3416, 3421 and 3446 whenan expression calls a function with no persistent side effect.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 111 Programming Research Ltd.
Table 3.4 – continued from previous page
Msg. Id. Description
3419
Initialization expression of ’for’ statement has no side effects.Ticket(s):10998 Rework of QAC’s loop control variable detection to correctly rec-
ognize loop control variables that are members of aggregates,and remove false positives and negatives when the loop controlvariable is a pointer.
3420
Increment expression of ’for’ statement has no side effects.Ticket(s):10998 Rework of QAC’s loop control variable detection to correctly rec-
ognize loop control variables that are members of aggregates,and remove false positives and negatives when the loop controlvariable is a pointer.
3421
Expression with persistent side effects is used in an initializer list.Ticket(s):24835 New message 3387 to identify use of increment or decrement
operator in an expression that has another side effect. Detectionof volatile access has also been improved, in particular wheninvolving addresses of volatile objects.
24836 False positives for messages 3415, 3416, 3421 and 3446 whenan expression calls a function with no persistent side effect.
3441
Function call argument is an expression with possible side effects.Ticket(s):10998 Rework of QAC’s loop control variable detection to correctly rec-
ognize loop control variables that are members of aggregates,and remove false positives and negatives when the loop controlvariable is a pointer.
3442
Operator other than & (address-of) or = (assignment) applied to avolatile object.Ticket(s):25282 Fixed false positive 0375/0410 when parenthesized expressions
are cast. Locations for parenthesis/volatile messages tightenedup.
3446
The 2nd or 3rd operand of this conditional operator is an expressionwith persistent side effects.Ticket(s):10998 Rework of QAC’s loop control variable detection to correctly rec-
ognize loop control variables that are members of aggregates,and remove false positives and negatives when the loop controlvariable is a pointer.
24836 False positives for messages 3415, 3416, 3421 and 3446 whenan expression calls a function with no persistent side effect.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 112 Programming Research Ltd.
Table 3.4 – continued from previous page
Msg. Id. Description
3620
’register’ may be illegal on array and ’struct’ / ’union’ types in somecompilers.Ticket(s):24801 New messages 3241 to warn when inline function declarations
are implicitly static, and 3242 to warn when a plain inline func-tion declaration rules out making defining it as static later. Alsoimproves consistency of related qualifier/specifier messages.
3659
Unnamed zero-width bit-field declared with a signed type.Ticket(s):24745 Messages 0634 and 0635 have been clarified with the names
of the affected fields and relocated to point directly at the fieldsrather than the containing structs. In addition, the -intrinsictypeoption has been extended with a new suboption, ’bitfield’, whichaccepts a comma-separated list of builtin types to accept as sup-ported for use in bitfield declarations, which will suppress mes-sage 0625 when those types are used to declare bitfields.
3663
Unnamed bit-field defined with non-zero width.Ticket(s):24745 Messages 0634 and 0635 have been clarified with the names
of the affected fields and relocated to point directly at the fieldsrather than the containing structs. In addition, the -intrinsictypeoption has been extended with a new suboption, ’bitfield’, whichaccepts a comma-separated list of builtin types to accept as sup-ported for use in bitfield declarations, which will suppress mes-sage 0625 when those types are used to declare bitfields.
3665
Unnamed bit-field consisting of a single bit declared with a signed type.Ticket(s):24745 Messages 0634 and 0635 have been clarified with the names
of the affected fields and relocated to point directly at the fieldsrather than the containing structs. In addition, the -intrinsictypeoption has been extended with a new suboption, ’bitfield’, whichaccepts a comma-separated list of builtin types to accept as sup-ported for use in bitfield declarations, which will suppress mes-sage 0625 when those types are used to declare bitfields.
3673
The object addressed by the pointer parameter ’%s’ is not modified andso the pointer could be of type ’pointer to const’.Ticket(s):21553 New message 3677 to indicate when the element type of an
array or pointer to array function parameter should be declaredwith const qualifier. Also fixed false negative 3673 on operationswhich involve multiple pointer dereferences.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 113 Programming Research Ltd.
Table 3.4 – continued from previous page
Msg. Id. Description
4397
An expression which is the result of a ~ or << operation has not beencast to its essential type.Ticket(s):24843 New messages 0772 and 0773 to warn when a loop has multiple
exits including ’goto’ and ’return’ statements; adjusted the loca-tions of 0769 and 0771 and other loop-control related messagesfor better consistency.
4443
A non-constant expression of ’essentially unsigned’ type (%1s) is beingconverted to a wider signed type, ’%2s’ on assignment.Ticket(s):24875 Certain messages that apply to initializer expressions will be
generated against those expressions instead of being generatedat the end of the initialiser list. A number of related messageswill also have their locations improved as part of a general mes-sage location improvement across QAC.
4446
A non-constant expression of ’essentially unsigned’ type (%1s) is beingconverted to signed type, ’%2s’ on assignment.Ticket(s):24875 Certain messages that apply to initializer expressions will be
generated against those expressions instead of being generatedat the end of the initialiser list. A number of related messageswill also have their locations improved as part of a general mes-sage location improvement across QAC.
4447
A constant expression of ’essentially unsigned’ type (%1s) is being con-verted to signed type, ’%2s’ on assignment.Ticket(s):24875 Certain messages that apply to initializer expressions will be
generated against those expressions instead of being generatedat the end of the initialiser list. A number of related messageswill also have their locations improved as part of a general mes-sage location improvement across QAC.
4460
A non-constant expression of ’essentially signed’ type (%1s) is beingconverted to narrower signed type, ’%2s’ on assignment.Ticket(s):24875 Certain messages that apply to initializer expressions will be
generated against those expressions instead of being generatedat the end of the initialiser list. A number of related messageswill also have their locations improved as part of a general mes-sage location improvement across QAC.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 114 Programming Research Ltd.
Table 3.4 – continued from previous page
Msg. Id. Description
4461
A non-constant expression of ’essentially unsigned’ type (%1s) is beingconverted to narrower unsigned type, ’%2s’ on assignment.Ticket(s):24875 Certain messages that apply to initializer expressions will be
generated against those expressions instead of being generatedat the end of the initialiser list. A number of related messageswill also have their locations improved as part of a general mes-sage location improvement across QAC.
4462
A non-constant expression of ’essentially floating’ type (%1s) is beingconverted to narrower floating type, ’%2s’ on assignment.Ticket(s):24875 Certain messages that apply to initializer expressions will be
generated against those expressions instead of being generatedat the end of the initialiser list. A number of related messageswill also have their locations improved as part of a general mes-sage location improvement across QAC.
4463
A constant expression of ’essentially signed’ type (%1s) is being con-verted to narrower signed type, ’%2s’ on assignment.Ticket(s):24875 Certain messages that apply to initializer expressions will be
generated against those expressions instead of being generatedat the end of the initialiser list. A number of related messageswill also have their locations improved as part of a general mes-sage location improvement across QAC.
4464
A constant expression of ’essentially unsigned’ type (%1s) is being con-verted to narrower unsigned type, ’%2s’ on assignment.Ticket(s):24875 Certain messages that apply to initializer expressions will be
generated against those expressions instead of being generatedat the end of the initialiser list. A number of related messageswill also have their locations improved as part of a general mes-sage location improvement across QAC.
4465
A constant expression of ’essentially floating’ type (%1s) is being con-verted to narrower floating type, ’%2s’ on assignment.Ticket(s):24875 Certain messages that apply to initializer expressions will be
generated against those expressions instead of being generatedat the end of the initialiser list. A number of related messageswill also have their locations improved as part of a general mes-sage location improvement across QAC.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 115 Programming Research Ltd.
Table 3.4 – continued from previous page
Msg. Id. Description
4470
A non-constant expression of ’essentially signed’ type (%1s) is beingpassed to a function parameter of wider signed type, ’%2s’.Ticket(s):24875 Certain messages that apply to initializer expressions will be
generated against those expressions instead of being generatedat the end of the initialiser list. A number of related messageswill also have their locations improved as part of a general mes-sage location improvement across QAC.
4471
A non-constant expression of ’essentially unsigned’ type (%1s) is beingpassed to a function parameter of wider unsigned type, ’%2s’.Ticket(s):24875 Certain messages that apply to initializer expressions will be
generated against those expressions instead of being generatedat the end of the initialiser list. A number of related messageswill also have their locations improved as part of a general mes-sage location improvement across QAC.
4472
A non-constant expression of ’essentially floating’ type (%1s) is beingpassed to a function parameter of wider floating type, ’%2s’.Ticket(s):24875 Certain messages that apply to initializer expressions will be
generated against those expressions instead of being generatedat the end of the initialiser list. A number of related messageswill also have their locations improved as part of a general mes-sage location improvement across QAC.
4480
A non-constant expression of ’essentially signed’ type (%1s) is beingreturned from a function defined with a wider signed return type, ’%2s’.Ticket(s):24875 Certain messages that apply to initializer expressions will be
generated against those expressions instead of being generatedat the end of the initialiser list. A number of related messageswill also have their locations improved as part of a general mes-sage location improvement across QAC.
4481
A non-constant expression of ’essentially unsigned’ type (%1s) is be-ing returned from a function defined with a wider unsigned return type,’%2s’.Ticket(s):24875 Certain messages that apply to initializer expressions will be
generated against those expressions instead of being generatedat the end of the initialiser list. A number of related messageswill also have their locations improved as part of a general mes-sage location improvement across QAC.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 116 Programming Research Ltd.
Table 3.4 – continued from previous page
Msg. Id. Description
4482
A non-constant expression of ’essentially floating’ type (%1s) is beingreturned from a function defined with a wider floating return type, ’%2s’.Ticket(s):24875 Certain messages that apply to initializer expressions will be
generated against those expressions instead of being generatedat the end of the initialiser list. A number of related messageswill also have their locations improved as part of a general mes-sage location improvement across QAC.
4490
A composite expression of ’essentially signed’ type (%1s) is being con-verted to wider signed type, ’%2s’ on assignment.Ticket(s):24809 If a composite expression is the operand to the unary negate,
unary posate, or bitwise complement operator, the resultingunary expression will inherit that status and also be considereda composite expression.
4491
A composite expression of ’essentially unsigned’ type (%1s) is beingconverted to wider unsigned type, ’%2s’ on assignment.Ticket(s):24809 If a composite expression is the operand to the unary negate,
unary posate, or bitwise complement operator, the resultingunary expression will inherit that status and also be considereda composite expression.
24875 Certain messages that apply to initializer expressions will begenerated against those expressions instead of being generatedat the end of the initialiser list. A number of related messageswill also have their locations improved as part of a general mes-sage location improvement across QAC.
4492
A composite expression of ’essentially floating’ type (%1s) is being con-verted to wider floating type, ’%2s’ on assignment.Ticket(s):24809 If a composite expression is the operand to the unary negate,
unary posate, or bitwise complement operator, the resultingunary expression will inherit that status and also be considereda composite expression.
24875 Certain messages that apply to initializer expressions will begenerated against those expressions instead of being generatedat the end of the initialiser list. A number of related messageswill also have their locations improved as part of a general mes-sage location improvement across QAC.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 117 Programming Research Ltd.
Table 3.4 – continued from previous page
Msg. Id. Description
4498
An expression which is the result of a ~ or << operation has been con-verted to a different essential type category on assignment.Ticket(s):24875 Certain messages that apply to initializer expressions will be
generated against those expressions instead of being generatedat the end of the initialiser list. A number of related messageswill also have their locations improved as part of a general mes-sage location improvement across QAC.
4499
An expression which is the result of a ~ or << operation has been con-verted to a wider essential type on assignment.Ticket(s):24809 If a composite expression is the operand to the unary negate,
unary posate, or bitwise complement operator, the resultingunary expression will inherit that status and also be considereda composite expression.
3.2.3 Message Text Changes
The following table summarizes message text changes.
Table 3.5: Changed Message Text for QA·C 9.4.0
Msg.Id. Message Text Change Ticket
0634
9.4.0 [I] Bit-field %s in %s has not been declared explicitly asunsigned or signed.
9.3.1 [I] Bit-fields in this struct/union have not been declaredexplicitly as unsigned or signed.
24745
0635
9.4.0 [E] Bit-field %s in %s has been declared with a type notexplicitly supported.
9.3.1 [E] Bit-fields in this struct/union have been declared withtypes other than int, signed int, unsigned int or _Bool.
24745
0893
9.4.0 Macro argument ’%s’ is both expanded as a macro andused with the ’%s’ operator.
9.3.1 Macro parameter ’%s’ is inconsistently subject to macroreplacement.
24856
22009.4.0 Indentation of this line is to the left of the current block
indentation level.9.3.1 Indentation of this line is to the left of the line above.
21598
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 118 Programming Research Ltd.
Table 3.5 – continued from previous page
Msg.Id. Message Text Change Ticket
2500
9.4.0 Call to ’%s’ is not immediately preceded by the zero-ingof ’errno’.
9.3.1 Call to ’%s’ is not immediately preceded by the zeroingof ’errno’.
24803
2502
9.4.0 Zero-ing of ’errno’ is not immediately followed by a callto an ’errno’ setting function.
9.3.1 Zeroing of ’errno’ is not immediately followed by a callto an ’errno’ setting function.
24803
2668
9.4.0 Subtraction of a pointer to an array and a pointer to anon-array.
9.3.1 Subtraction of a pointer to an array and a pointer to anon array.
2530525655
2669
9.4.0 Comparison of a pointer to an array and a pointer to anon-array.
9.3.1 Comparison of a pointer to an array and a pointer to anon array.
2530525655
2835
9.4.0 Constant: Non-null terminated string used in a stringfunction.
9.3.1 Constant: Non null terminated string used in a stringfunction.
2530525655
2836
9.4.0 Definite: Non-null terminated string used in a stringfunction.
9.3.1 Definite: Non null terminated string used in a stringfunction.
2530525655
2839
9.4.0 Possible: Non-null terminated string used in a stringfunction.
9.3.1 Possible: Non null terminated string used in a stringfunction.
2530525655
2845
9.4.0 Constant: Maximum number of characters to be read-/written is larger than the target buffer size.
9.3.1 Constant: Maximum number of characters to be writtenis larger than the target buffer size.
2530525655
2846
9.4.0 Definite: Maximum number of characters to be read-/written is larger than the target buffer size.
9.3.1 Definite: Maximum number of characters to be writtenis larger than the target buffer size.
2530525655
2847
9.4.0 Apparent: Maximum number of characters to be read-/written is larger than the target buffer size.
9.3.1 Apparent: Maximum number of characters to be writtenis larger than the target buffer size.
2530525655
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 119 Programming Research Ltd.
Table 3.5 – continued from previous page
Msg.Id. Message Text Change Ticket
2848
9.4.0 Suspicious: Maximum number of characters to be read-/written is larger than the target buffer size.
9.3.1 Suspicious: Maximum number of characters to be writ-ten is larger than the target buffer size.
2530525655
2849
9.4.0 Possible: Maximum number of characters to be read-/written is larger than the target buffer size.
9.3.1 Possible: Maximum number of characters to be writtenis larger than the target buffer size.
2530525655
3415
9.4.0 Right hand operand of ’&&’ or ’||’ is an expression withpersistent side effects.
9.3.1 Right hand operand of ’&&’ or ’||’ is an expression withpossible side effects.
1099824836
3416
9.4.0 Logical operation performed on expression with persis-tent side effects.
9.3.1 Logical operation performed on expression with possi-ble side effects.
1099824836
3421
9.4.0 Expression with persistent side effects is used in an ini-tializer list.
9.3.1 Expression with possible side effects is used in an ini-tializer list.
2483524836
3446
9.4.0 The 2nd or 3rd operand of this conditional operator isan expression with persistent side effects.
9.3.1 The 2nd or 3rd operand of this conditional operator isan expression with possible side effects.
1099824836
3.3 Messages for QA·C 9.3.1
3.3.1 Messages with Modified Behavior
The following table summarizes the messages whose behavior has been modified as aresult of a change in specification.
RELEASE NOTES : QA·C 9.4.1 Page 120 Programming Research Ltd.
Table 3.6: Messages Modified for QA·C 9.3.1
Msg. Id. Description
0268
[S] Comment open at end of translation unit.Ticket(s):25503 The severity level of the following messages is restored to the
level they had in QAC 9.2: 0268, 0803, 0804, 0817, 0821, 0846,0887, 1033. Message 0852 is recategorized from constraint er-ror to syntax error. Note that all the message severity changesintroduced in QAC 9.3.0 through Ticket 25160 are undone, ex-cept for messages 0852 and 3104.
0803
[C] The ’#’ operator may only appear before a macro parameter.Ticket(s):25503 The severity level of the following messages is restored to the
level they had in QAC 9.2: 0268, 0803, 0804, 0817, 0821, 0846,0887, 1033. Message 0852 is recategorized from constraint er-ror to syntax error. Note that all the message severity changesintroduced in QAC 9.3.0 through Ticket 25160 are undone, ex-cept for messages 0852 and 3104.
0804
[C] Macro parameter ’%s’ is not unique.Ticket(s):25503 The severity level of the following messages is restored to the
level they had in QAC 9.2: 0268, 0803, 0804, 0817, 0821, 0846,0887, 1033. Message 0852 is recategorized from constraint er-ror to syntax error. Note that all the message severity changesintroduced in QAC 9.3.0 through Ticket 25160 are undone, ex-cept for messages 0852 and 3104.
0817
[S] Closing quote or bracket ’>’ missing from include filename.Ticket(s):25503 The severity level of the following messages is restored to the
level they had in QAC 9.2: 0268, 0803, 0804, 0817, 0821, 0846,0887, 1033. Message 0852 is recategorized from constraint er-ror to syntax error. Note that all the message severity changesintroduced in QAC 9.3.0 through Ticket 25160 are undone, ex-cept for messages 0852 and 3104.
0821
[C] ’#include’ does not identify a header or source file that can be pro-cessed.Ticket(s):25503 The severity level of the following messages is restored to the
level they had in QAC 9.2: 0268, 0803, 0804, 0817, 0821, 0846,0887, 1033. Message 0852 is recategorized from constraint er-ror to syntax error. Note that all the message severity changesintroduced in QAC 9.3.0 through Ticket 25160 are undone, ex-cept for messages 0852 and 3104.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 121 Programming Research Ltd.
Table 3.6 – continued from previous page
Msg. Id. Description
0846
[S] ’#define’ must be followed by an identifier.Ticket(s):25503 The severity level of the following messages is restored to the
level they had in QAC 9.2: 0268, 0803, 0804, 0817, 0821, 0846,0887, 1033. Message 0852 is recategorized from constraint er-ror to syntax error. Note that all the message severity changesintroduced in QAC 9.3.0 through Ticket 25160 are undone, ex-cept for messages 0852 and 3104.
0852
[C] Unable to find the ’)’ that marks the end of the macro call.Ticket(s):25503 The severity level of the following messages is restored to the
level they had in QAC 9.2: 0268, 0803, 0804, 0817, 0821, 0846,0887, 1033. Message 0852 is recategorized from constraint er-ror to syntax error. Note that all the message severity changesintroduced in QAC 9.3.0 through Ticket 25160 are undone, ex-cept for messages 0852 and 3104.
0887
[U] Use of ’defined’ must match either ’defined(identifier)’ or ’definedidentifier’.Ticket(s):25503 The severity level of the following messages is restored to the
level they had in QAC 9.2: 0268, 0803, 0804, 0817, 0821, 0846,0887, 1033. Message 0852 is recategorized from constraint er-ror to syntax error. Note that all the message severity changesintroduced in QAC 9.3.0 through Ticket 25160 are undone, ex-cept for messages 0852 and 3104.
1033
[C] The identifier __VA_ARGS__ may only be used in the replacementlist of a variadic macro.Ticket(s):25503 The severity level of the following messages is restored to the
level they had in QAC 9.2: 0268, 0803, 0804, 0817, 0821, 0846,0887, 1033. Message 0852 is recategorized from constraint er-ror to syntax error. Note that all the message severity changesintroduced in QAC 9.3.0 through Ticket 25160 are undone, ex-cept for messages 0852 and 3104.
1061
[C] Structure ’%1s’ with flexible array member ’%2s’ cannot be used inthe declaration of structure member ’%3s’.Ticket(s):25461 QAC no longer fails when issuing message 1061 for unnamed
struct and members.continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 122 Programming Research Ltd.
Table 3.6 – continued from previous page
Msg. Id. Description
2686
Definite: Writing to a file opened for reading.Ticket(s):25312 QAC no longer fails for translation units that call ’fopen’ or ’fre-
open’ where the return type is not used.
2687
Apparent: Writing to a file opened for reading.Ticket(s):25312 QAC no longer fails for translation units that call ’fopen’ or ’fre-
open’ where the return type is not used.
2688
Suspicious: Writing to a file opened for reading.Ticket(s):25312 QAC no longer fails for translation units that call ’fopen’ or ’fre-
open’ where the return type is not used.
2691
Definite: The same file will be open with write access and anothermode.Ticket(s):25312 QAC no longer fails for translation units that call ’fopen’ or ’fre-
open’ where the return type is not used.
2692
Apparent: The same file will be open with write access and anothermode.Ticket(s):25312 QAC no longer fails for translation units that call ’fopen’ or ’fre-
open’ where the return type is not used.
2693
Suspicious: The same file will be open with write access and anothermode.Ticket(s):25312 QAC no longer fails for translation units that call ’fopen’ or ’fre-
open’ where the return type is not used.
2706
Definite: Allocated memory is not deallocated.Ticket(s):25154 QAC no longer fails during analysis of complex resource usage,
whilst also addressing false positives where resources may bereleased through calls to external functions.
2707
Apparent: Allocated memory is not deallocated.Ticket(s):25154 QAC no longer fails during analysis of complex resource usage,
whilst also addressing false positives where resources may bereleased through calls to external functions.
2708
Suspicious: Allocated memory is not deallocated.Ticket(s):25154 QAC no longer fails during analysis of complex resource usage,
whilst also addressing false positives where resources may bereleased through calls to external functions.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 123 Programming Research Ltd.
Table 3.6 – continued from previous page
Msg. Id. Description
2961
Definite: Using value of uninitialized automatic object ’%s’.Ticket(s):25452 QAC no longer fails when checking loop variables for use before
initialization in infinite loops.
2962
Apparent: Using value of uninitialized automatic object ’%s’.Ticket(s):25452 QAC no longer fails when checking loop variables for use before
initialization in infinite loops.
2963
Suspicious: Using value of uninitialized automatic object ’%s’.Ticket(s):25452 QAC no longer fails when checking loop variables for use before
initialization in infinite loops.
2966
Definite: Some members of object ’%s’ are uninitialized.Ticket(s):25452 QAC no longer fails when checking loop variables for use before
initialization in infinite loops.
2967
Apparent: Some members of object ’%s’ are uninitialized.Ticket(s):25452 QAC no longer fails when checking loop variables for use before
initialization in infinite loops.
2968
Suspicious: Some members of object ’%s’ are uninitialized.Ticket(s):25452 QAC no longer fails when checking loop variables for use before
initialization in infinite loops.
2971
Definite: Passing address of uninitialized object ’%s’ to a function pa-rameter declared as a pointer to const.Ticket(s):25452 QAC no longer fails when checking loop variables for use before
initialization in infinite loops.
2972
Apparent: Passing address of uninitialized object ’%s’ to a function pa-rameter declared as a pointer to const.Ticket(s):25452 QAC no longer fails when checking loop variables for use before
initialization in infinite loops.
2973
Suspicious: Passing address of uninitialized object ’%s’ to a functionparameter declared as a pointer to const.Ticket(s):25452 QAC no longer fails when checking loop variables for use before
initialization in infinite loops.continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 124 Programming Research Ltd.
Table 3.6 – continued from previous page
Msg. Id. Description
2976
Definite: Passing address of partially initialized object ’%s’ to a functionparameter declared as a pointer to const.Ticket(s):25452 QAC no longer fails when checking loop variables for use before
initialization in infinite loops.
2977
Apparent: Passing address of partially initialized object ’%s’ to a func-tion parameter declared as a pointer to const.Ticket(s):25452 QAC no longer fails when checking loop variables for use before
initialization in infinite loops.
2978
Suspicious: Passing address of partially initialized object ’%s’ to a func-tion parameter declared as a pointer to const.Ticket(s):25452 QAC no longer fails when checking loop variables for use before
initialization in infinite loops.
3.4 Messages for QA·C 9.3.0
3.4.1 New Messages
The following table lists messages which are new in QA·C 9.3.0.
Table 3.7: Messages Added for QA·C 9.3.0
Msg. Id. Description
0323
[u] Cast between a pointer to incomplete type and a floating type.Ticket(s):24839 QAC will generate new messages 0323 and 0324 to report cast
between pointer to incomplete type and a type. Messages 0301and 0306 will no longer be generated for casts mentioned above.
0324
[u] Cast between a pointer to incomplete type and an integral type.Ticket(s):24839 QAC will generate new messages 0323 and 0324 to report cast
between pointer to incomplete type and a type. Messages 0301and 0306 will no longer be generated for casts mentioned above.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 125 Programming Research Ltd.
Table 3.7 – continued from previous page
Msg. Id. Description
0325
[u] Cast between a pointer to incomplete type and a pointer to function.Ticket(s):24853 QAC will generate message 0325 to report cast between pointer
to a function and a pointer to incomplete type, or vice a versa.Message 0307 will no longer be generated under circumstancesdescribed above.
0326
[I] Cast between a pointer to void and an integral type.Ticket(s):23603 QAC will no longer generate messagess 0301, 0303 and 0306
when pointer to void is involved. QAC will generate messages0326 and 0327 to identify casting between pointer to void andarithmetic type.
0327
[I] Cast between a pointer to void and an floating type.Ticket(s):23603 QAC will no longer generate messagess 0301, 0303 and 0306
when pointer to void is involved. QAC will generate messages0326 and 0327 to identify casting between pointer to void andarithmetic type.
0328
[u] Cast between a pointer to object and an essential type other thansigned/unsigned.Ticket(s):25048 QAC will generate message 0328 to identify casts between
pointer to object and an essential type other than signed/un-signed.
0404
More than one read access to volatile objects between sequencepoints.Ticket(s):22583 QAC will generate new messages to identify situations when
there is more than one read or more than one write to a volatiletype between sequence points.
0405
More than one modification of volatile objects between sequencepoints.Ticket(s):22583 QAC will generate new messages to identify situations when
there is more than one read or more than one write to a volatiletype between sequence points.
0603
[U] The macro identifier ’%s’ is reserved.Ticket(s):24727 QAC will generate new message 0603 whenever macro identi-
fier beginning with an underscore is defined or undefined.continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 126 Programming Research Ltd.
Table 3.7 – continued from previous page
Msg. Id. Description
0613
[L] Size of object ’%s’ exceeds 65535 bytes - program does not conformstrictly to ISO:C99.Ticket(s):23418 A new message 0613 will be generated when the C99 trans-
lation limit ’65535 bytes in an object (in a hosted environmentonly)’ is exceeded.
0615
[L] More than 511 block scope identifiers defined within a block - pro-gram does not conform strictly to ISO:C99.Ticket(s):23574 A new message 0615 will be generated when the C99 transla-
tion limit ’511 identifiers with block scope declared in one block’is exceeded.
0751
Casting to char pointer type.Ticket(s):21205 New message 751 has been added, to handle casts to char
pointers, for which 310 won’t be generated anymore.
0791
[U] Macro identifier does not differ from other macro identifier(s) (e.g.’%s’) within the specified number of significant characters.Ticket(s):24326 New messages 0791, 0792 and 0793 will be generated instead
of, respectively, existing messages 0779, 0778 and 0789 if theconflict arises between two macro identifiers.
25148 The following messages will have their locations slightly adjustedto improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 127 Programming Research Ltd.
Table 3.7 – continued from previous page
Msg. Id. Description
0792
[L] Macro identifier matches other macro identifier(s) (e.g. ’%s’) in first31 characters - program does not conform strictly to ISO:C90.Ticket(s):24326 New messages 0791, 0792 and 0793 will be generated instead
of, respectively, existing messages 0779, 0778 and 0789 if theconflict arises between two macro identifiers.
25148 The following messages will have their locations slightly adjustedto improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 128 Programming Research Ltd.
Table 3.7 – continued from previous page
Msg. Id. Description
0793
[L] Macro identifier matches other macro identifier(s) (e.g. ’%s’) in first63 characters - program does not conform strictly to ISO:C99.Ticket(s):24326 New messages 0791, 0792 and 0793 will be generated instead
of, respectively, existing messages 0779, 0778 and 0789 if theconflict arises between two macro identifiers.
25148 The following messages will have their locations slightly adjustedto improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
0794
Identifier matches other identifier(s) (e.g. ’%s’) in an outer scope withinthe ISO:C90 limit of 31 significant characters.Ticket(s):23823 New messages 0794, 0795 and 0796 will be generated to report
identifiers in inner scopes that hide identifiers in outer scopesbecause they are not distinct within the required number of sig-nificant characters.
24855 QAC will take into account function parameter names when gen-erating messages 0778, 0779, 0789, 0794, 0795, 0796.
0795
Identifier matches other identifier(s) (e.g. ’%s’) in an outer scope withinthe specified number of significant characters.Ticket(s):23823 New messages 0794, 0795 and 0796 will be generated to report
identifiers in inner scopes that hide identifiers in outer scopesbecause they are not distinct within the required number of sig-nificant characters.
24855 QAC will take into account function parameter names when gen-erating messages 0778, 0779, 0789, 0794, 0795, 0796.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 129 Programming Research Ltd.
Table 3.7 – continued from previous page
Msg. Id. Description
0796
Identifier matches other identifier(s) (e.g. ’%s’) in an outer scope withinthe ISO:C99 limit of 63 significant charactersTicket(s):23823 New messages 0794, 0795 and 0796 will be generated to report
identifiers in inner scopes that hide identifiers in outer scopesbecause they are not distinct within the required number of sig-nificant characters.
24855 QAC will take into account function parameter names when gen-erating messages 0778, 0779, 0789, 0794, 0795, 0796.
0840
[E] Extra tokens at end of #include directive.Ticket(s):24724 QAC will generate new message 840 in case of #include direc-
tive followed by extra tokens.
1494
The result of library function ’%s’ might be modified.Ticket(s):24146 QAC will generate message 1493 whenever result of localeconv,
getenv, setlocale or strerror is implicitly assigned to a pointer toa modifiable object. QAC will generate message 1494 when-erver result of localeconv, getenv, setlocale or strerror mighthave been modified via a pointer.
2012
This ’default’ label is neither the first nor the last label within the ’switch’block.Ticket(s):14126 New message to highlight where the default label of a switch
statement is not the first or last label
2013
This ’if .. else if ’ construct ’else’ statement is empty.Ticket(s):24467 QAC will generate message 2013 for empty else statement in ’if
.. else if’ constructs.
2014
This ’switch’ statement ’default’ clause is empty and contains com-ments.Ticket(s):24296 Message 2016 has been split to distinguish switch default blocks
that are empty with a comment from those without comments.
2140
Implicit conversion from plain char to wider signed integer type.Ticket(s):24894 New messages 2140-2155 will be generated on implicit or ex-
plicit conversion of plain or signed char to a type of potentially-higher rank
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 130 Programming Research Ltd.
Table 3.7 – continued from previous page
Msg. Id. Description
2141
Implicit conversion from plain char to wider unsigned integer type.Ticket(s):24894 New messages 2140-2155 will be generated on implicit or ex-
plicit conversion of plain or signed char to a type of potentially-higher rank
2142
Implicit conversion from plain char to floating type.Ticket(s):24894 New messages 2140-2155 will be generated on implicit or ex-
plicit conversion of plain or signed char to a type of potentially-higher rank
2143
Implicit conversion from plain char to enum type.Ticket(s):24894 New messages 2140-2155 will be generated on implicit or ex-
plicit conversion of plain or signed char to a type of potentially-higher rank
2144
Implicit conversion from signed char to wider signed integer type.Ticket(s):24894 New messages 2140-2155 will be generated on implicit or ex-
plicit conversion of plain or signed char to a type of potentially-higher rank
2145
Implicit conversion from signed char to wider unsigned integer type.Ticket(s):24894 New messages 2140-2155 will be generated on implicit or ex-
plicit conversion of plain or signed char to a type of potentially-higher rank
2146
Implicit conversion from signed char to floating type.Ticket(s):24894 New messages 2140-2155 will be generated on implicit or ex-
plicit conversion of plain or signed char to a type of potentially-higher rank
2147
Implicit conversion from signed char to enum type.Ticket(s):24894 New messages 2140-2155 will be generated on implicit or ex-
plicit conversion of plain or signed char to a type of potentially-higher rank
2148
Explicit conversion from plain char to wider signed integer type.Ticket(s):24894 New messages 2140-2155 will be generated on implicit or ex-
plicit conversion of plain or signed char to a type of potentially-higher rank
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 131 Programming Research Ltd.
Table 3.7 – continued from previous page
Msg. Id. Description
2149
Explicit conversion from plain char to wider unsigned integer type.Ticket(s):24894 New messages 2140-2155 will be generated on implicit or ex-
plicit conversion of plain or signed char to a type of potentially-higher rank
2150
Explicit conversion from plain char to floating type.Ticket(s):24894 New messages 2140-2155 will be generated on implicit or ex-
plicit conversion of plain or signed char to a type of potentially-higher rank
2151
Explicit conversion from plain char to enum type.Ticket(s):24894 New messages 2140-2155 will be generated on implicit or ex-
plicit conversion of plain or signed char to a type of potentially-higher rank
2152
Explicit conversion from signed char to wider signed integer type.Ticket(s):24894 New messages 2140-2155 will be generated on implicit or ex-
plicit conversion of plain or signed char to a type of potentially-higher rank
2153
Explicit conversion from signed char to wider unsigned integer type.Ticket(s):24894 New messages 2140-2155 will be generated on implicit or ex-
plicit conversion of plain or signed char to a type of potentially-higher rank
2154
Explicit conversion from signed char to floating type.Ticket(s):24894 New messages 2140-2155 will be generated on implicit or ex-
plicit conversion of plain or signed char to a type of potentially-higher rank
2155
Explicit conversion from signed char to enum type.Ticket(s):24894 New messages 2140-2155 will be generated on implicit or ex-
plicit conversion of plain or signed char to a type of potentially-higher rank
2218
Body of switch statement is not enclosed within braces.Ticket(s):24822 New messages 2218 and 2219 have been added, to handle the
switch statements without braces, following the model of 2212and 2214.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 132 Programming Research Ltd.
Table 3.7 – continued from previous page
Msg. Id. Description
2219
Body of switch statement is on the same line and is not enclosed withinbraces.Ticket(s):24822 New messages 2218 and 2219 have been added, to handle the
switch statements without braces, following the model of 2212and 2214.
2668
Subtraction of a pointer to an array and a pointer to a non array.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
24848 QAC will generate message 2668 or 2669 respectively where apointer to an array is subtracted or compared to a pointer thatdoes not refer to an array.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2669
Comparison of a pointer to an array and a pointer to a non array.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
24848 QAC will generate message 2668 or 2669 respectively where apointer to an array is subtracted or compared to a pointer thatdoes not refer to an array.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 133 Programming Research Ltd.
Table 3.7 – continued from previous page
Msg. Id. Description
2686
Definite: Writing to a file opened for reading.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
24436 New analysis to identify an attempt to write to a FILE that wasopened for reading.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2687
Apparent: Writing to a file opened for reading.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
24436 New analysis to identify an attempt to write to a FILE that wasopened for reading.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2688
Suspicious: Writing to a file opened for reading.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
24436 New analysis to identify an attempt to write to a FILE that wasopened for reading.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 134 Programming Research Ltd.
Table 3.7 – continued from previous page
Msg. Id. Description
2691
Definite: The same file will be open with write access and anothermode.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
24436 New analysis to identify an attempt to write to a FILE that wasopened for reading.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2692
Apparent: The same file will be open with write access and anothermode.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
24436 New analysis to identify an attempt to write to a FILE that wasopened for reading.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2693
Suspicious: The same file will be open with write access and anothermode.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
24436 New analysis to identify an attempt to write to a FILE that wasopened for reading.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 135 Programming Research Ltd.
Table 3.7 – continued from previous page
Msg. Id. Description
2696
Definite: Attempt to access a file which has been closed.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
24439 New analysis to detect usage of a FILE pointer after the streamhas been closed
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2697
Apparent: Attempt to access a file which has been closed.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
24439 New analysis to detect usage of a FILE pointer after the streamhas been closed
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2698
Suspicious: Attempt to access a file which has been closed.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
24439 New analysis to detect usage of a FILE pointer after the streamhas been closed
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 136 Programming Research Ltd.
Table 3.7 – continued from previous page
Msg. Id. Description
2701
Definite: Opened file is not closed.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
24434 New analysis to detect resourecs, including memory and files,that are acquired but not released.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2702
Apparent: Opened file is not closed.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
24434 New analysis to detect resourecs, including memory and files,that are acquired but not released.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2703
Suspicious: Opened file is not closed.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
24434 New analysis to detect resourecs, including memory and files,that are acquired but not released.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 137 Programming Research Ltd.
Table 3.7 – continued from previous page
Msg. Id. Description
2706
Definite: Allocated memory is not deallocated.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
24434 New analysis to detect resourecs, including memory and files,that are acquired but not released.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2707
Apparent: Allocated memory is not deallocated.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
24434 New analysis to detect resourecs, including memory and files,that are acquired but not released.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2708
Suspicious: Allocated memory is not deallocated.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
24434 New analysis to detect resourecs, including memory and files,that are acquired but not released.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 138 Programming Research Ltd.
Table 3.7 – continued from previous page
Msg. Id. Description
2711
Definite: Memory allocation and deallocation mismatch.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
24434 New analysis to detect resourecs, including memory and files,that are acquired but not released.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2712
Apparent: Memory allocation and deallocation mismatch.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
24434 New analysis to detect resourecs, including memory and files,that are acquired but not released.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2713
Suspicious: Memory allocation and deallocation mismatch.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
24434 New analysis to detect resourecs, including memory and files,that are acquired but not released.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 139 Programming Research Ltd.
Table 3.7 – continued from previous page
Msg. Id. Description
2716
Definite: Memory deallocated multiple times.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
24435 New analysis to detect use of ’free’ to memory that was not allo-cated dynamically
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2717
Apparent: Memory deallocated multiple times.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
24435 New analysis to detect use of ’free’ to memory that was not allo-cated dynamically
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2718
Suspicious: Memory deallocated multiple times.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
24435 New analysis to detect use of ’free’ to memory that was not allo-cated dynamically
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 140 Programming Research Ltd.
Table 3.7 – continued from previous page
Msg. Id. Description
2721
Definite: Deallocation of non dynamic memory.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
24435 New analysis to detect use of ’free’ to memory that was not allo-cated dynamically
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2722
Apparent: Deallocation of non dynamic memory.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
24435 New analysis to detect use of ’free’ to memory that was not allo-cated dynamically
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2723
Suspicious: Deallocation of non dynamic memory.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
24435 New analysis to detect use of ’free’ to memory that was not allo-cated dynamically
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 141 Programming Research Ltd.
Table 3.7 – continued from previous page
Msg. Id. Description
2726
Definite: Use of uninitialized resource.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
24434 New analysis to detect resourecs, including memory and files,that are acquired but not released.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2727
Apparent: Use of uninitialized resource.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
24434 New analysis to detect resourecs, including memory and files,that are acquired but not released.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2728
Suspicious: Use of uninitialized resource.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
24434 New analysis to detect resourecs, including memory and files,that are acquired but not released.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 142 Programming Research Ltd.
Table 3.7 – continued from previous page
Msg. Id. Description
2731
Definite: Use of destroyed resource.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
24434 New analysis to detect resourecs, including memory and files,that are acquired but not released.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2732
Apparent: Use of destroyed resource.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
24434 New analysis to detect resourecs, including memory and files,that are acquired but not released.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2733
Suspicious: Use of destroyed resource.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
24434 New analysis to detect resourecs, including memory and files,that are acquired but not released.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 143 Programming Research Ltd.
Table 3.7 – continued from previous page
Msg. Id. Description
2736
Definite: Created resource is not destroyed.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
24434 New analysis to detect resourecs, including memory and files,that are acquired but not released.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2737
Apparent: Created resource is not destroyed.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
24434 New analysis to detect resourecs, including memory and files,that are acquired but not released.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2738
Suspicious: Created resource is not destroyed.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
24434 New analysis to detect resourecs, including memory and files,that are acquired but not released.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 144 Programming Research Ltd.
Table 3.7 – continued from previous page
Msg. Id. Description
2746
Definite: Use of uninitialized file handle.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
24434 New analysis to detect resourecs, including memory and files,that are acquired but not released.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2747
Apparent: Use of uninitialized file handle.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
24434 New analysis to detect resourecs, including memory and files,that are acquired but not released.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2748
Suspicious: Use of uninitialized file handle.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
24434 New analysis to detect resourecs, including memory and files,that are acquired but not released.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 145 Programming Research Ltd.
Table 3.7 – continued from previous page
Msg. Id. Description
2865
Constant: Using 0 as size parameter of a function call.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
24782 New analysis to detect where the size argument of certain stan-dard library functions has value of 0.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2866
Definite: Using 0 as size parameter of a function call.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
24782 New analysis to detect where the size argument of certain stan-dard library functions has value of 0.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2867
Apparent: Using 0 as size parameter of a function call.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
24782 New analysis to detect where the size argument of certain stan-dard library functions has value of 0.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 146 Programming Research Ltd.
Table 3.7 – continued from previous page
Msg. Id. Description
2868
Suspicious: Using 0 as size parameter of a function call.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
24782 New analysis to detect where the size argument of certain stan-dard library functions has value of 0.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2869
Possible: Using 0 as size parameter of a function call.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
24782 New analysis to detect where the size argument of certain stan-dard library functions has value of 0.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2987
This function call produces no side effects and is redundant.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
23544 New message 2987 to highlight a function call that is redundantand so can be removed.
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 147 Programming Research Ltd.
Table 3.7 – continued from previous page
Msg. Id. Description
2997
The first operand of this conditional operator is always ’true’.Ticket(s):14489 New messages to identify use of an invariant expression as the
first operand of a conditional operator21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2998
The first operand of this conditional operator is always ’false’.Ticket(s):14489 New messages to identify use of an invariant expression as the
first operand of a conditional operator21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
3008
This function contains a mixture of in-line assembler statements and Ccode.Ticket(s):24667 Message 3006 will recognize encapsulation of assembly in
macros, supported by new message 3008
3339
Floating point variable used as ’while’ loop control variable.Ticket(s):13417 QAC will recognize control variable of floating type in while
loops. QAC will generate message 2463 if variable is increasedin for loop third expression along loop control variable.
3383
Cannot identify wraparound guard for unsigned arithmetic expression.Ticket(s):24890 QAC will generate new messages 3383,3384,3385,3386 when
it is unable to detect an unsigned arithmetic wraparound guardcontinued on next page
RELEASE NOTES : QA·C 9.4.1 Page 148 Programming Research Ltd.
Table 3.7 – continued from previous page
Msg. Id. Description
3384
Cannot identify wraparound guard for dependent unsigned arithmeticexpression.Ticket(s):24890 QAC will generate new messages 3383,3384,3385,3386 when
it is unable to detect an unsigned arithmetic wraparound guard
3385
Cannot identify wraparound guard for sizeof-VLA expression.Ticket(s):24890 QAC will generate new messages 3383,3384,3385,3386 when
it is unable to detect an unsigned arithmetic wraparound guard
3386
Cannot identify wraparound guard for dependent sizeof-VLA expres-sion.Ticket(s):24890 QAC will generate new messages 3383,3384,3385,3386 when
it is unable to detect an unsigned arithmetic wraparound guard
3432
Simple macro argument expression is not parenthesized.Ticket(s):24771 QAC will generate message 3432 for simple (precedence-safe)
arguments to macros if they are not parenthesized
3449
Multiple declarations of external object or function.Ticket(s):24886 QAC will generate message 3449 to warn about multiple exter-
nal declarations ofa same variable or function.
3462
Argument to macro ’%s’ appears to contain a side effect, but it is notused.Ticket(s):24774 New messages 3462,3463,3464,3465,3466,3467 added to
warn when a side-effecting expression passed as an argumentto a function-like macro is not consistently evaluated exactlyonce; fixed false negative for 3456 when non-parenthesized
3463
Argument to macro ’%s’ contains a side effect that will not be evaluatedat runtime.Ticket(s):24774 New messages 3462,3463,3464,3465,3466,3467 added to
warn when a side-effecting expression passed as an argumentto a function-like macro is not consistently evaluated exactlyonce; fixed false negative for 3456 when non-parenthesized
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 149 Programming Research Ltd.
Table 3.7 – continued from previous page
Msg. Id. Description
3464
Argument to macro ’%s’ contains a side effect that will be evaluatedmore than once.Ticket(s):24774 New messages 3462,3463,3464,3465,3466,3467 added to
warn when a side-effecting expression passed as an argumentto a function-like macro is not consistently evaluated exactlyonce; fixed false negative for 3456 when non-parenthesized
3465
Argument to macro ’%s’ contains a side effect that might not be evalu-ated at runtime.Ticket(s):24774 New messages 3462,3463,3464,3465,3466,3467 added to
warn when a side-effecting expression passed as an argumentto a function-like macro is not consistently evaluated exactlyonce; fixed false negative for 3456 when non-parenthesized
3466
Variable argument list to macro ’%s’ appears to contain an expressionwith side effects.Ticket(s):24774 New messages 3462,3463,3464,3465,3466,3467 added to
warn when a side-effecting expression passed as an argumentto a function-like macro is not consistently evaluated exactlyonce; fixed false negative for 3456 when non-parenthesized
3467
Variable argument list to macro ’%s’ appears to contain an expressionwith side effects that will be used more than once.Ticket(s):24774 New messages 3462,3463,3464,3465,3466,3467 added to
warn when a side-effecting expression passed as an argumentto a function-like macro is not consistently evaluated exactlyonce; fixed false negative for 3456 when non-parenthesized
3468
The name of this macro is a reserved identifier in C90 and a keywordin C99.Ticket(s):25051 New message 3468 added to highlight C90 reserved identifiers
that are now keywords in C99. Note: _Bool will now generate3468 and not 3439.
3493
The first operand of this conditional operator is always constant ’true’.Ticket(s):14489 New messages to identify use of an invariant expression as the
first operand of a conditional operator
3494
The first operand of this conditional operator is always constant ’false’.Ticket(s):14489 New messages to identify use of an invariant expression as the
first operand of a conditional operatorcontinued on next page
RELEASE NOTES : QA·C 9.4.1 Page 150 Programming Research Ltd.
Table 3.7 – continued from previous page
Msg. Id. Description
4389
A composite expression of ’essentially char’ type (%1s) is being cast toa different type category, ’%2s’.Ticket(s):24830 QAC will generate message 4389 whenever a composite ex-
pression of essentially character type has been cast to a dif-ferent essential type category.
3.4.2 Removed Messages
The following table lists messages which are removed in QA·C 9.3.0.
Table 3.8: Messages Removed for QA·C 9.3.0
Msg. Id. Description
0251
[S] Character constant contains a trigraph representation of a singlebackslash character.Ticket(s):25149 The following messages have been removed from QAC 9.3
and their functionality merged into existing checks: 0257, 0251,0261, 0269, 0809, 0807, 0806, 0847, 0856
0257
[S] String literal is not terminated. A trigraph has been used in theconstruction of an escape sequence.Ticket(s):25149 The following messages have been removed from QAC 9.3
and their functionality merged into existing checks: 0257, 0251,0261, 0269, 0809, 0807, 0806, 0847, 0856
0261
[C] Comment still open at end of included file.Ticket(s):25149 The following messages have been removed from QAC 9.3
and their functionality merged into existing checks: 0257, 0251,0261, 0269, 0809, 0807, 0806, 0847, 0856
0269
[S] Unexpected end of file.Ticket(s):25149 The following messages have been removed from QAC 9.3
and their functionality merged into existing checks: 0257, 0251,0261, 0269, 0809, 0807, 0806, 0847, 0856
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 151 Programming Research Ltd.
Table 3.8 – continued from previous page
Msg. Id. Description
0806
[S] Comma missing in macro parameter list.Ticket(s):25149 The following messages have been removed from QAC 9.3
and their functionality merged into existing checks: 0257, 0251,0261, 0269, 0809, 0807, 0806, 0847, 0856
0807
[S] Identifier missing in macro parameter list.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
25149 The following messages have been removed from QAC 9.3and their functionality merged into existing checks: 0257, 0251,0261, 0269, 0809, 0807, 0806, 0847, 0856
0809
[U] The ’#include’ preprocessing directive has not been followed by <h-char-sequence> or "s-char-sequence".Ticket(s):25149 The following messages have been removed from QAC 9.3
and their functionality merged into existing checks: 0257, 0251,0261, 0269, 0809, 0807, 0806, 0847, 0856
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 152 Programming Research Ltd.
Table 3.8 – continued from previous page
Msg. Id. Description
0847
[S] ’#undef’ must be followed by an identifier.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
25149 The following messages have been removed from QAC 9.3and their functionality merged into existing checks: 0257, 0251,0261, 0269, 0809, 0807, 0806, 0847, 0856
0856
[C] Fewer arguments in macro call than specified in definition.Ticket(s):25149 The following messages have been removed from QAC 9.3
and their functionality merged into existing checks: 0257, 0251,0261, 0269, 0809, 0807, 0806, 0847, 0856
3.4.3 Messages with Modified Behavior
The following table summarizes the messages whose behavior has been modified as aresult of a change in specification.
RELEASE NOTES : QA·C 9.4.1 Page 153 Programming Research Ltd.
Table 3.9: Messages Modified for QA·C 9.3.0
Msg. Id. Description
0159
[Q] The maximum number of errors set by -maxerr has been exceeded- the analysis has been aborted.Ticket(s):25160 The following messages have had their severity level increased:
0803, 0804, 0821, 0852, 0887, 1033. The following messageshave had their severity level decreased: 0268, 0817, 0846,3104.
0160[U] Using unsupported conversion specifier number %s.Ticket(s):24507 Removed dependency on the legacy configuration file ’qac.cfg’.
0190[U] Using unsupported conversion specifier number %s.Ticket(s):24507 Removed dependency on the legacy configuration file ’qac.cfg’.
0231
[S] Character constant contains an invalid hex escape sequence.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 154 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
0232
[C] Value of hex escape sequence is not representable in type ’un-signed char’.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
0233
[C] Value of octal escape sequence is not representable in type ’un-signed char’.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 155 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
0235
[U] Unknown escape sequence.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
0241
[E] This file contains the control-Z character - was this transferred froma PC?Ticket(s):25151 The following messages have changed their behavior slightly,
fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 156 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
0244
[C] Value of character constant is not representable in type ’int’.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 157 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
0245
[S] Empty character constant.Ticket(s):25140 Change status of messages 245, 249, and 259 to more accu-
rately reflect standard (syntax error to undefined behavior).25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
25151 The following messages have changed their behavior slightly,fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 158 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
0249
[S] Character constant contains a new-line character.Ticket(s):25140 Change status of messages 245, 249, and 259 to more accu-
rately reflect standard (syntax error to undefined behavior).25143 Token-based analysis messages will now be emitted within asm
blocks, making the behavior consistent between asm and _ig-nore
25148 The following messages will have their locations slightly adjustedto improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
0250
[S] Character constant contains a single backslash character.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 159 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
0258
[S] String literal is not terminated. A backslash character has been usedto define an escape sequence.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 160 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
0259
[S] String literal is not terminated.Ticket(s):25140 Change status of messages 245, 249, and 259 to more accu-
rately reflect standard (syntax error to undefined behavior).25143 Token-based analysis messages will now be emitted within asm
blocks, making the behavior consistent between asm and _ig-nore
25148 The following messages will have their locations slightly adjustedto improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
25151 The following messages have changed their behavior slightly,fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 161 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
0268
[S] Comment open at end of translation unit.Ticket(s):25151 The following messages have changed their behavior slightly,
fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
25160 The following messages have had their severity level increased:0803, 0804, 0821, 0852, 0887, 1033. The following messageshave had their severity level decreased: 0268, 0817, 0846,3104.
0284
[I] Multiple character constants have implementation defined values.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 162 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
0285
[I] Character constant contains character which is not a member of thebasic source character set.Ticket(s):25143 Token-based analysis messages will now be emitted within asm
blocks, making the behavior consistent between asm and _ig-nore
25151 The following messages have changed their behavior slightly,fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
0286
[I] String literal contains character which is not a member of the basicsource character set.Ticket(s):25143 Token-based analysis messages will now be emitted within asm
blocks, making the behavior consistent between asm and _ig-nore
25151 The following messages have changed their behavior slightly,fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 163 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
0287
[I] Header name contains character which is not a member of the basicsource character set.Ticket(s):25151 The following messages have changed their behavior slightly,
fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
0288
[I] Source file ’%s’ has comments containing characters which are notmembers of the basic source character set.Ticket(s):25151 The following messages have changed their behavior slightly,
fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
0289
[I] Source file ’%s’ has preprocessing tokens containing characterswhich are not members of the basic source character set.Ticket(s):25151 The following messages have changed their behavior slightly,
fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 164 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
0301
[u] Cast between a pointer to object and a floating type.Ticket(s):23603 QAC will no longer generate messagess 0301, 0303 and 0306
when pointer to void is involved. QAC will generate messages0326 and 0327 to identify casting between pointer to void andarithmetic type.
24839 QAC will generate new messages 0323 and 0324 to report castbetween pointer to incomplete type and a type. Messages 0301and 0306 will no longer be generated for casts mentioned above.
0303
[I] Cast between a pointer to volatile object and an integral type.Ticket(s):23603 QAC will no longer generate messagess 0301, 0303 and 0306
when pointer to void is involved. QAC will generate messages0326 and 0327 to identify casting between pointer to void andarithmetic type.
0306
[I] Cast between a pointer to object and an integral type.Ticket(s):23603 QAC will no longer generate messagess 0301, 0303 and 0306
when pointer to void is involved. QAC will generate messages0326 and 0327 to identify casting between pointer to void andarithmetic type.
24839 QAC will generate new messages 0323 and 0324 to report castbetween pointer to incomplete type and a type. Messages 0301and 0306 will no longer be generated for casts mentioned above.
0307
[u] Cast between a pointer to object and a pointer to function.Ticket(s):24853 QAC will generate message 0325 to report cast between pointer
to a function and a pointer to incomplete type, or vice a versa.Message 0307 will no longer be generated under circumstancesdescribed above.
0310
Casting to different object pointer type.Ticket(s):21205 New message 751 has been added, to handle casts to char
pointers, for which 310 won’t be generated anymore.continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 165 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
0337
[U] String literal has undefined value. This may be a result of using ’#’on \\.Ticket(s):25151 The following messages have changed their behavior slightly,
fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
0339
Octal constant used.Ticket(s):25151 The following messages have changed their behavior slightly,
fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
0372
[L] More than 63 levels of nested conditional inclusion - program doesnot conform strictly to ISO:C99.Ticket(s):25151 The following messages have changed their behavior slightly,
fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 166 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
0380
[L] Number of macro definitions exceeds 4095 - program does not con-form strictly to ISO:C99.Ticket(s):25151 The following messages have changed their behavior slightly,
fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
0388
[L] ’#include "%s"’ causes nesting to exceed 15 levels - program doesnot conform strictly to ISO:C99.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
0400
[U] ’%s’ is modified more than once between sequence points - evalu-ation order unspecified.Ticket(s):22583 QAC will generate new messages to identify situations when
there is more than one read or more than one write to a volatiletype between sequence points.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 167 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
0402
[U] ’%s’ is modified and accessed between sequence points - evalua-tion order unspecified.Ticket(s):22583 QAC will generate new messages to identify situations when
there is more than one read or more than one write to a volatiletype between sequence points.
0500
[U] Right operand of shift operator is negative - this is undefined.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
0501
[U] Right operand of shift operator is too large - this is undefined.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 168 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
0502
A right shift on signed data may be an arithmetic or a logical shift.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
0553
Translation unit contains no object or function definitions with externallinkage.Ticket(s):25094 QAC will generate message 0553 when it would previously have
been obscured by declarations eliciting message 0709, 0625, orsimilar linkage constraint violations
25151 The following messages have changed their behavior slightly,fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
0570
This switch case label of ’essential type’ ’%1s’, is not consistent with acontrolling expression of essential type ’%2s’.Ticket(s):23530 Message 0570 will no longer be generated for non negative con-
stant exprsesions of signed type if the value can be representedin the target type.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 169 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
0580
[C] Constant is too large to be representable.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
0602
[U] The identifier ’%s’ is reserved for use by the library.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 170 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
0605
[C] A declaration must declare a tag or an identifier.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
0703
Structure has fewer initializers than its declared size. Default initializa-tion is applied to the remainder of the members.Ticket(s):24302 Unnamed bitfields affect the padding between members but are
not counted as members for initialization, QAC will no longerincorrectly consider them for initialization.
25088 QAC will not count unnamed bitfields when generating message0703.
0735
Switch expression is of essentially Boolean type.Ticket(s):25080 QAC will generate message 0735 whenever switch expression
is of essentially Boolean type.
0778
[L] Identifier matches other identifier(s) (e.g. ’%s’) in first 31 characters- program does not conform strictly to ISO:C90.Ticket(s):23823 New messages 0794, 0795 and 0796 will be generated to report
identifiers in inner scopes that hide identifiers in outer scopesbecause they are not distinct within the required number of sig-nificant characters.
24326 New messages 0791, 0792 and 0793 will be generated insteadof, respectively, existing messages 0779, 0778 and 0789 if theconflict arises between two macro identifiers.
24855 QAC will take into account function parameter names when gen-erating messages 0778, 0779, 0789, 0794, 0795, 0796.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 171 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
0779
[U] Identifier does not differ from other identifier(s) (e.g. ’%s’) within thespecified number of significant characters.Ticket(s):23823 New messages 0794, 0795 and 0796 will be generated to report
identifiers in inner scopes that hide identifiers in outer scopesbecause they are not distinct within the required number of sig-nificant characters.
24326 New messages 0791, 0792 and 0793 will be generated insteadof, respectively, existing messages 0779, 0778 and 0789 if theconflict arises between two macro identifiers.
24855 QAC will take into account function parameter names when gen-erating messages 0778, 0779, 0789, 0794, 0795, 0796.
0784
Identifier ’%s’ is also used as a macro name.Ticket(s):25151 The following messages have changed their behavior slightly,
fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
0785
Identifier matches other macro name(s) (e.g. ’%s’) in first 31 characters.Ticket(s):25151 The following messages have changed their behavior slightly,
fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 172 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
0786
Identifier matches other macro name(s) (e.g. ’%s’) in first 63 characters.Ticket(s):25151 The following messages have changed their behavior slightly,
fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
0787
Identifier does not differ from other macro name(s) (e.g. ’%s’) within thespecified number of significant characters.Ticket(s):25151 The following messages have changed their behavior slightly,
fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 173 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
0788
This identifier, ’%s’, is used as both a macro name and a function-likemacro parameter name.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
0789
[L] Identifier matches other identifier(s) (e.g. ’%s’) in first 63 characters- program does not conform strictly to ISO:C99.Ticket(s):23823 New messages 0794, 0795 and 0796 will be generated to report
identifiers in inner scopes that hide identifiers in outer scopesbecause they are not distinct within the required number of sig-nificant characters.
24326 New messages 0791, 0792 and 0793 will be generated insteadof, respectively, existing messages 0779, 0778 and 0789 if theconflict arises between two macro identifiers.
24855 QAC will take into account function parameter names when gen-erating messages 0778, 0779, 0789, 0794, 0795, 0796.
0803
[C] The ’#’ operator may only appear before a macro parameter.Ticket(s):25160 The following messages have had their severity level increased:
0803, 0804, 0821, 0852, 0887, 1033. The following messageshave had their severity level decreased: 0268, 0817, 0846,3104.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 174 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
0804
[C] Macro parameter ’%s’ is not unique.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
25151 The following messages have changed their behavior slightly,fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
25160 The following messages have had their severity level increased:0803, 0804, 0821, 0852, 0887, 1033. The following messageshave had their severity level decreased: 0268, 0817, 0846,3104.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 175 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
0805
[S] Invalid identifier encountered in macro parameter list.Ticket(s):25151 The following messages have changed their behavior slightly,
fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
0808
[Q] ’#include "%s"’ causes itself to be included recursively. QA·C ter-minates execution after 8 occurrences.Ticket(s):25151 The following messages have changed their behavior slightly,
fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 176 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
0810
[L] ’#include "%s"’ causes nesting to exceed 8 levels - program doesnot conform strictly to ISO:C90.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
0811
[C] The glue operator ’##’ may only appear in a ’#define’ preprocessingdirective.Ticket(s):25143 Token-based analysis messages will now be emitted within asm
blocks, making the behavior consistent between asm and _ig-nore
25151 The following messages have changed their behavior slightly,fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 177 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
0812
[C] Header name token ’<text>’ found outside ’#include’ preprocessingdirective.Ticket(s):25143 Token-based analysis messages will now be emitted within asm
blocks, making the behavior consistent between asm and _ig-nore
25151 The following messages have changed their behavior slightly,fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
0813
[U] Using any of the characters ’ " or /* in ’#include <%s>’ gives unde-fined behaviour.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 178 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
0814
[U] Using the characters ’ or /* in ’#include "%s"’ gives undefined be-haviour.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
25151 The following messages have changed their behavior slightly,fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 179 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
0815
[L] #include <...> file name does not conform strictly to ISO:C90.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
0816
[L] #include "..." file name does not conform strictly to ISO:C90.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
0817
[S] Closing quote or bracket ’>’ missing from include filename.Ticket(s):25160 The following messages have had their severity level increased:
0803, 0804, 0821, 0852, 0887, 1033. The following messageshave had their severity level decreased: 0268, 0817, 0846,3104.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 180 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
0818
[Q] Cannot find ’%s’ - Perhaps the appropriate search path was notgiven ?Ticket(s):24724 QAC will generate new message 840 in case of #include direc-
tive followed by extra tokens.25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
25151 The following messages have changed their behavior slightly,fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 181 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
0821
[C] ’#include’ does not identify a header or source file that can be pro-cessed.Ticket(s):24724 QAC will generate new message 840 in case of #include direc-
tive followed by extra tokens.25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
25151 The following messages have changed their behavior slightly,fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
25160 The following messages have had their severity level increased:0803, 0804, 0821, 0852, 0887, 1033. The following messageshave had their severity level decreased: 0268, 0817, 0846,3104.
25262 Fixed inconsistencies between the number of parameter textplaceholders(%s) and the number of parameters written for thediagnostic.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 182 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
0822
[Q] Cannot find forceinclude file ’%s’.Ticket(s):25151 The following messages have changed their behavior slightly,
fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
0823
[S] Unexpected ’#else’ or ’#elif’ directive follows ’#else’.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
25151 The following messages have changed their behavior slightly,fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 183 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
0824
[S] Unexpected ’#else’ or ’#elif’ directive found outside a ’#if’ block.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
0826
[S] Unexpected ’:’ found without a preceding ’?’ in a ’#if’ or ’#elif’ ex-pression.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 184 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
0827
[S] Missing ’:’ after ’?’ in a ’#if’ or ’#elif’ expression.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
25151 The following messages have changed their behavior slightly,fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
0828
[L] More than 8 levels of nested conditional inclusion - program doesnot conform strictly to ISO:C90.Ticket(s):25151 The following messages have changed their behavior slightly,
fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 185 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
0829
[S] Could not find ’#endif’ preprocessing directive to close ’#if...’.Ticket(s):25151 The following messages have changed their behavior slightly,
fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
0830
[E] Unrecognized text encountered after a preprocessing directive.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
25151 The following messages have changed their behavior slightly,fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 186 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
0831
[E] Use of ’\\’ in this ’#include’ line is a PC extension - this usage isnon-portable.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
0832
Macro substitution in #include preprocessing directive.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 187 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
0833
[S] ’#ifdef’ or ’#ifndef’ must be followed by an identifier.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
0836
[U] Definition of macro named ’defined’.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 188 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
0837
[U] Use of ’#undef’ to remove the operator ’defined’.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
0838
File ’%1s’ has already been included directly from within file ’%2s’.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 189 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
0841
Using ’#undef’.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 190 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
0842
Using #define or #undef inside a function.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
25151 The following messages have changed their behavior slightly,fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 191 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
0843
/ character used in an include file name.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 192 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
0846
[S] ’#define’ must be followed by an identifier.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
25151 The following messages have changed their behavior slightly,fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
25160 The following messages have had their severity level increased:0803, 0804, 0821, 0852, 0887, 1033. The following messageshave had their severity level decreased: 0268, 0817, 0846,3104.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 193 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
0848
[U] Attempting to #undef ’%s’, which is a predefined macro name.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
0849
[S] Preprocessing directive appears in the middle of a line.Ticket(s):25143 Token-based analysis messages will now be emitted within asm
blocks, making the behavior consistent between asm and _ig-nore
25151 The following messages have changed their behavior slightly,fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 194 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
0850
[C99] Macro argument is empty.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
25151 The following messages have changed their behavior slightly,fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
25151 The following messages have changed their behavior slightly,fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 195 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
0851
[C] More arguments in macro call than specified in definition.Ticket(s):25151 The following messages have changed their behavior slightly,
fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
0852
[C] Unable to find the ’)’ that marks the end of the macro call.Ticket(s):25151 The following messages have changed their behavior slightly,
fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
25160 The following messages have had their severity level increased:0803, 0804, 0821, 0852, 0887, 1033. The following messageshave had their severity level decreased: 0268, 0817, 0846,3104.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 196 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
0853
[U] Macro arguments contain a sequence of tokens that has the form ofa preprocessing directive.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
25151 The following messages have changed their behavior slightly,fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 197 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
0854
[U] Attempting to #define ’%s’, which is a predefined macro name.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
0855
Preprocessing results in a sequence of tokens that has the form of apreprocessing directive.Ticket(s):25151 The following messages have changed their behavior slightly,
fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 198 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
0857
[L] Number of macro definitions exceeds 1024 - program does not con-form strictly to ISO:C90.Ticket(s):25151 The following messages have changed their behavior slightly,
fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
0861
This #include <%s> directive is redundant.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 199 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
0862
This #include "%s" directive is redundant.Ticket(s):25151 The following messages have changed their behavior slightly,
fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
0868
An absolute path has been specified in a #include statement.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
0869
[Q] ’#error’ directive: %s Analysis terminated due to ’#error’ directive.Ticket(s):25151 The following messages have changed their behavior slightly,
fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 200 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
0872
[U] Result of ’##’ operator is not a legal preprocessing token.Ticket(s):25151 The following messages have changed their behavior slightly,
fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 201 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
0873
[C] Preprocessing token cannot be converted to an actual token.Ticket(s):25143 Token-based analysis messages will now be emitted within asm
blocks, making the behavior consistent between asm and _ig-nore
25148 The following messages will have their locations slightly adjustedto improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
25151 The following messages have changed their behavior slightly,fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 202 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
0877
[C] ’#if’ and ’#elif’ expressions may contain only integral constants.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
0879
[S] Illegal operator in ’#if’ or ’#elif’ expression.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 203 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
0880
Using # and ## operators in the same macro definition.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
0881
Using multiple ## operators in the same macro definition.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 204 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
0883
Include file code is not protected against repeated inclusionTicket(s):24688 Message 0883 will be generated for files where there is no code
to protect. #elif and #else are no longer considered part of avalid include guard.
24975 Message 0883 is now generated once per include per translationunit.
25148 The following messages will have their locations slightly adjustedto improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
0884
Using multiple # operators in the same macro definition.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 205 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
0885
[U] The token ’defined’ is generated in the expansion of this macro.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
0886
[S] Missing or invalid expression in ’#if’ or ’#elif’ directive.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 206 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
0887
[U] Use of ’defined’ must match either ’defined(identifier)’ or ’definedidentifier’.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
25160 The following messages have had their severity level increased:0803, 0804, 0821, 0852, 0887, 1033. The following messageshave had their severity level decreased: 0268, 0817, 0846,3104.
0888
[U] ’defined’ requires an identifier as an argument.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 207 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
0889
#undef refers to a macro that has previously been #undef’d.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 208 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
0894
’#%s’ directive controlling expression does not evaluate to zero or one.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
25151 The following messages have changed their behavior slightly,fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 209 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
0896
[S] Missing operand in ’#if’ or ’#elif’ expression.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
25151 The following messages have changed their behavior slightly,fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 210 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
0897
[S] Missing operator in ’#if’ or ’#elif’ expression.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
25151 The following messages have changed their behavior slightly,fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 211 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
0898
[S] Unexpected ’)’ or ’:’ in ’#if’ or ’#elif’ expression.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
25151 The following messages have changed their behavior slightly,fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 212 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
0899
[E] Unrecognized preprocessing directive has been ignored - assumedto be a language extension.Ticket(s):25143 Token-based analysis messages will now be emitted within asm
blocks, making the behavior consistent between asm and _ig-nore
25148 The following messages will have their locations slightly adjustedto improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
25151 The following messages have changed their behavior slightly,fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 213 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
0914
[U] Source file does not end with a newline character.Ticket(s):25151 The following messages have changed their behavior slightly,
fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
0917
[S] Unable to recover from syntax errors in this source file.Ticket(s):24724 QAC will generate new message 840 in case of #include direc-
tive followed by extra tokens.
0925
[S] Unexpected end of file.Ticket(s):25151 The following messages have changed their behavior slightly,
fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
0945
[C99] Operand of sizeof is an expression of variable length array typewith side effects.Ticket(s):24460 QAC will generate message 0945 only if expression, used as an
operand of sizeof operator, has side effects.continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 214 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
1001
[E] ’#include %s’ is a VMS extension.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
1002
[E] ’%s’ is not a legal identifier in ISO C.Ticket(s):25151 The following messages have changed their behavior slightly,
fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 215 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
1005
[S] End-of-file encountered when expecting ’#endif’ preprocessing di-rective.Ticket(s):25151 The following messages have changed their behavior slightly,
fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
25262 Fixed inconsistencies between the number of parameter textplaceholders(%s) and the number of parameters written for thediagnostic.
1006
[E] This in-line assembler construct is a language extension. The codehas been ignored.Ticket(s):25151 The following messages have changed their behavior slightly,
fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 216 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
1009
[S] Unrecognizable expression in ’#if’ preprocessing directive.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
1010
[S] ’#%s’ is not a valid form of ’#if’ syntax .Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 217 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
1011
[C99] Use of ’//’ comment.Ticket(s):25151 The following messages have changed their behavior slightly,
fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
1028
[E] Use of the sizeof operator in a preprocessing directive is a languageextension.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 218 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
1030
[C99] Macro defined with variable argument list.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
1033
[C] The identifier __VA_ARGS__ may only be used in the replacementlist of a variadic macro.Ticket(s):25151 The following messages have changed their behavior slightly,
fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
25160 The following messages have had their severity level increased:0803, 0804, 0821, 0852, 0887, 1033. The following messageshave had their severity level decreased: 0268, 0817, 0846,3104.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 219 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
1035
[E] No macro arguments supplied for variable argument list. This is alanguage extension.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
25151 The following messages have changed their behavior slightly,fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
1067
[C99] Union member is a struct declared with a flexible array member.Ticket(s):25262 Fixed inconsistencies between the number of parameter text
placeholders(%s) and the number of parameters written for thediagnostic.
1068
[E] Union member is a struct declared with a potentially-flexible arraymember.Ticket(s):25262 Fixed inconsistencies between the number of parameter text
placeholders(%s) and the number of parameters written for thediagnostic.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 220 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
1251
Suffixed integer constant causes implicit conversion of other operand.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
1252
Suffixed integer constant implicitly converted to different integer type.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 221 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
1253
Unsuffixed integer constant implicitly converted to different integer type.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
1254
Suffix is not consistent with a type of unsigned long.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 222 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
1255
Unsuffixed integer constant is not of type int.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
1272
Redundant leading zeroes on a numeric constant.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 223 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
1277
Hex constant does not include a "U" suffix.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
1278
Decimal constant includes a suffix.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 224 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
1279
Hex constant includes an "L" suffix.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
1281
Integer literal constant is of an unsigned type but does not include a "U"suffix.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
1317
Value of constant expression is not in the enum type to which it is beingconverted.Ticket(s):11200 QAC will provide option to specify typdef names that will be
treated as essentially boolean when performing analysis.continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 225 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
1318
Object of enum type is being modified with a compound assignmentoperator.Ticket(s):11200 QAC will provide option to specify typdef names that will be
treated as essentially boolean when performing analysis.
1397
Array element ’%s’ has already been initialized.Ticket(s):24451 Support for designated initialization of union member other than
the first, reducing false positives and negatives where these val-ues are used. Also addressed failure for aggregate union mem-ber subsequently overwritten by a designated initializer otherthan the first member.
1398
Structure member ’%s’ has already been initialized.Ticket(s):23605 The text of message 1398 will refer to the name of the structure
member that has already been initialised, instead of its zero-based position within the structure.
24451 Support for designated initialization of union member other thanthe first, reducing false positives and negatives where these val-ues are used. Also addressed failure for aggregate union mem-ber subsequently overwritten by a designated initializer otherthan the first member.
1399
A union member has already been initialized.Ticket(s):24451 Support for designated initialization of union member other than
the first, reducing false positives and negatives where these val-ues are used. Also addressed failure for aggregate union mem-ber subsequently overwritten by a designated initializer otherthan the first member.
1410
Enum object is being compared with a constant, non-enum expressionusing an equality operator.Ticket(s):11200 QAC will provide option to specify typdef names that will be
treated as essentially boolean when performing analysis.
1412
A constant expression of non-enum type is being assigned to an objectof enum type.Ticket(s):11200 QAC will provide option to specify typdef names that will be
treated as essentially boolean when performing analysis.continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 226 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
1477
Object of enum type is being implicitly compared against zero in a con-trolling expression.Ticket(s):11200 QAC will provide option to specify typdef names that will be
treated as essentially boolean when performing analysis.
1493
The result of library function ’%s’ is used as a pointer to a modifiableobject.Ticket(s):24146 QAC will generate message 1493 whenever result of localeconv,
getenv, setlocale or strerror is implicitly assigned to a pointer toa modifiable object. QAC will generate message 1494 when-erver result of localeconv, getenv, setlocale or strerror mighthave been modified via a pointer.
1495
Destination and source objects have incompatible types.Ticket(s):25262 Fixed inconsistencies between the number of parameter text
placeholders(%s) and the number of parameters written for thediagnostic.
1496
Destination and source objects may have incompatible types.Ticket(s):25262 Fixed inconsistencies between the number of parameter text
placeholders(%s) and the number of parameters written for thediagnostic.
1820
The %1s operand is non-constant and ’essentially signed’ (%2s) butwill be implicitly converted to an unsigned type (%3s) in this arithmeticoperation.Ticket(s):23497 Messages 1820, 1821, 1822, 1823, 1824, 1850, 1851, 1852,
1853, 1854, 1880, 1881, 1882, 4390 and 4393 will be generatedalso when the applicable operands happen to be structure/unionmembers, array elements, pointer dereferences, results of func-tion calls, etc.
1821
The %1s operand is non-constant and ’essentially signed’ (%2s) butwill be implicitly converted to an unsigned type (%3s) in this bitwiseoperation.Ticket(s):23497 Messages 1820, 1821, 1822, 1823, 1824, 1850, 1851, 1852,
1853, 1854, 1880, 1881, 1882, 4390 and 4393 will be generatedalso when the applicable operands happen to be structure/unionmembers, array elements, pointer dereferences, results of func-tion calls, etc.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 227 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
1822
The %1s operand is non-constant and ’essentially signed’ (%2s) butwill be implicitly converted to an unsigned type (%3s) in this relationaloperation.Ticket(s):23497 Messages 1820, 1821, 1822, 1823, 1824, 1850, 1851, 1852,
1853, 1854, 1880, 1881, 1882, 4390 and 4393 will be generatedalso when the applicable operands happen to be structure/unionmembers, array elements, pointer dereferences, results of func-tion calls, etc.
1823
The %1s operand is non-constant and ’essentially signed’ (%2s) butwill be implicitly converted to an unsigned type (%3s) in this equalityoperation.Ticket(s):23497 Messages 1820, 1821, 1822, 1823, 1824, 1850, 1851, 1852,
1853, 1854, 1880, 1881, 1882, 4390 and 4393 will be generatedalso when the applicable operands happen to be structure/unionmembers, array elements, pointer dereferences, results of func-tion calls, etc.
1824
The %1s operand is non-constant and ’essentially signed’ (%2s) butwill be implicitly converted to an unsigned type (%3s) in this conditionaloperation.Ticket(s):23497 Messages 1820, 1821, 1822, 1823, 1824, 1850, 1851, 1852,
1853, 1854, 1880, 1881, 1882, 4390 and 4393 will be generatedalso when the applicable operands happen to be structure/unionmembers, array elements, pointer dereferences, results of func-tion calls, etc.
1850
The %1s operand is ’essentially unsigned’ (%2s) but will be implicitlyconverted to a signed type (%3s) in this arithmetic operation.Ticket(s):23497 Messages 1820, 1821, 1822, 1823, 1824, 1850, 1851, 1852,
1853, 1854, 1880, 1881, 1882, 4390 and 4393 will be generatedalso when the applicable operands happen to be structure/unionmembers, array elements, pointer dereferences, results of func-tion calls, etc.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 228 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
1851
The %1s operand is ’essentially unsigned’ (%2s) but will be implicitlyconverted to a signed type (%3s) in this bitwise operation.Ticket(s):23497 Messages 1820, 1821, 1822, 1823, 1824, 1850, 1851, 1852,
1853, 1854, 1880, 1881, 1882, 4390 and 4393 will be generatedalso when the applicable operands happen to be structure/unionmembers, array elements, pointer dereferences, results of func-tion calls, etc.
1852
The %1s operand is ’essentially unsigned’ (%2s) but will be implicitlyconverted to a signed type (%3s) in this relational operation.Ticket(s):23497 Messages 1820, 1821, 1822, 1823, 1824, 1850, 1851, 1852,
1853, 1854, 1880, 1881, 1882, 4390 and 4393 will be generatedalso when the applicable operands happen to be structure/unionmembers, array elements, pointer dereferences, results of func-tion calls, etc.
1853
The %1s operand is ’essentially unsigned’ (%2s) but will be implicitlyconverted to a signed type (%3s) in this equality operation.Ticket(s):23497 Messages 1820, 1821, 1822, 1823, 1824, 1850, 1851, 1852,
1853, 1854, 1880, 1881, 1882, 4390 and 4393 will be generatedalso when the applicable operands happen to be structure/unionmembers, array elements, pointer dereferences, results of func-tion calls, etc.
1854
The %1s operand is ’essentially unsigned’ (%2s) but will be implicitlyconverted to a signed type (%3s) in this conditional operation.Ticket(s):23497 Messages 1820, 1821, 1822, 1823, 1824, 1850, 1851, 1852,
1853, 1854, 1880, 1881, 1882, 4390 and 4393 will be generatedalso when the applicable operands happen to be structure/unionmembers, array elements, pointer dereferences, results of func-tion calls, etc.
1880
The operands of this relational operator are expressions of different’essential type’ categories (%1s and %2s).Ticket(s):23497 Messages 1820, 1821, 1822, 1823, 1824, 1850, 1851, 1852,
1853, 1854, 1880, 1881, 1882, 4390 and 4393 will be generatedalso when the applicable operands happen to be structure/unionmembers, array elements, pointer dereferences, results of func-tion calls, etc.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 229 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
1881
The operands of this equality operator are expressions of different ’es-sential type’ categories (%1s and %2s).Ticket(s):11200 QAC will provide option to specify typdef names that will be
treated as essentially boolean when performing analysis.23497 Messages 1820, 1821, 1822, 1823, 1824, 1850, 1851, 1852,
1853, 1854, 1880, 1881, 1882, 4390 and 4393 will be generatedalso when the applicable operands happen to be structure/unionmembers, array elements, pointer dereferences, results of func-tion calls, etc.
1882
The 2nd and 3rd operands of this conditional operator are expressionsof different ’essential type’ categories (%1s and %2s).Ticket(s):23497 Messages 1820, 1821, 1822, 1823, 1824, 1850, 1851, 1852,
1853, 1854, 1880, 1881, 1882, 4390 and 4393 will be generatedalso when the applicable operands happen to be structure/unionmembers, array elements, pointer dereferences, results of func-tion calls, etc.
2016
This ’switch’ statement ’default’ clause is empty.Ticket(s):24296 Message 2016 has been split to distinguish switch default blocks
that are empty with a comment from those without comments.
2109
Integral promotion : _Bool promoted to signed int.Ticket(s):11200 QAC will provide option to specify typdef names that will be
treated as essentially boolean when performing analysis.
2211
’%s’ is not aligned with the previously declared identifier.Ticket(s):25151 The following messages have changed their behavior slightly,
fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 230 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
2217
Line length exceeds %s characters.Ticket(s):25151 The following messages have changed their behavior slightly,
fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
2463
The variable incremented in the third expression of this ’for’ statementis not the variable identified as the ’loop control variable’ (%s).Ticket(s):13417 QAC will recognize control variable of floating type in while
loops. QAC will generate message 2463 if variable is increasedin for loop third expression along loop control variable.
2464
Loop control variable, %s, modified twice in for-loop header.Ticket(s):13417 QAC will recognize control variable of floating type in while
loops. QAC will generate message 2463 if variable is increasedin for loop third expression along loop control variable.
2501
Call to ’%s’ is not immediately followed by the testing of ’errno’.Ticket(s):24211 Messages 2501 and 2502 will be generated even if the expected
statement is not encountered because the end of the translationunit is reached. Messages 2501 will not be generated when thereturn value of an errno setting function can be used to deter-mine if an error has occured.
24877 Messages 2501 will not be generated when the return value ofan errno setting function is used to determine if an error hasoccurred.
2502
Zeroing of ’errno’ is not immediately followed by a call to an ’errno’setting function.Ticket(s):24211 Messages 2501 and 2502 will be generated even if the expected
statement is not encountered because the end of the translationunit is reached. Messages 2501 will not be generated when thereturn value of an errno setting function can be used to deter-mine if an error has occured.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 231 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
2671
Definite: The value being compared with macro EOF does not originatefrom an EOF returning function.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
24451 Support for designated initialization of union member other thanthe first, reducing false positives and negatives where these val-ues are used. Also addressed failure for aggregate union mem-ber subsequently overwritten by a designated initializer otherthan the first member.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2674
Possible: The value being compared with macro EOF does not origi-nate from an EOF returning function.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 232 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
2676
Definite: The value originating from an EOF returning function wasmodified before being compared with macro EOF.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
24451 Support for designated initialization of union member other thanthe first, reducing false positives and negatives where these val-ues are used. Also addressed failure for aggregate union mem-ber subsequently overwritten by a designated initializer otherthan the first member.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2678
Suspicious: The value originating from an EOF returning function wasmodified before being compared with macro EOF.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2681
Definite: Using an invalidated value ’%s’ returned from a Standard Li-brary function.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 233 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
2682
Apparent: Using an invalidated value ’%s’ returned from a StandardLibrary function.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2683
Suspicious: Using an invalidated value ’%s’ returned from a StandardLibrary function.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2740
This loop controlling expression is a constant expression and its valueis ’true’.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 234 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
2741
This ’if’ controlling expression is a constant expression and its value is’true’.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2742
This ’if’ controlling expression is a constant expression and its value is’false’.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2743
This ’do - while’ loop controlling expression is a constant expressionand its value is ’false’. The loop will only be executed once.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 235 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
2744
This ’while’ or ’for’ loop controlling expression is a constant expressionand its value is ’false’. The loop will not be entered.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2750
Internal dataflow problem. Dataflow analysis continues with the nextfunction. Please inform Programming Research.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2751
This function is too complex. Dataflow analysis continues with the nextfunction.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 236 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
2752
This ’%1s’ results in the function being too complex. Dataflow analysiscontinues with the next function.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2753
As a result of error message ’%s’, dataflow analysis of the remainder ofthis function is not possible.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
24906 Messages 3238 and 3237 won’t cancel dataflow analysis any-more (message 2753 won’t be generated subsequently to thesetwo ones).
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2754
As a result of error message ’%s’, dataflow analysis of the remainder ofthis translation unit is not possible.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 237 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
2755
Analysis time of function ’%1s’ has exceeded the configured maximum:’%2sms’. Dataflow analysis continues with the next function.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2756
Could not expand function call to ’%1s’ with maximum ’-po df::inter’value.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2757
Could not analyze function ’%1s’.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 238 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
2758
Query has exceeded the configured maximum: ’%1sms’. Dataflowanalysis continues with the next query.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2761
Definite: Subtracting pointers that address different objects.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
24451 Support for designated initialization of union member other thanthe first, reducing false positives and negatives where these val-ues are used. Also addressed failure for aggregate union mem-ber subsequently overwritten by a designated initializer otherthan the first member.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2763
Suspicious: Subtracting pointers that address different objects.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 239 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
2766
Definite: Subtracting pointers that address different members of thesame object.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
24451 Support for designated initialization of union member other thanthe first, reducing false positives and negatives where these val-ues are used. Also addressed failure for aggregate union mem-ber subsequently overwritten by a designated initializer otherthan the first member.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2767
Apparent: Subtracting pointers that address different members of thesame object.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2768
Suspicious: Subtracting pointers that address different members of thesame object.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 240 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
2771
Definite: Comparing pointers that address different objects.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
24451 Support for designated initialization of union member other thanthe first, reducing false positives and negatives where these val-ues are used. Also addressed failure for aggregate union mem-ber subsequently overwritten by a designated initializer otherthan the first member.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2772
Apparent: Comparing pointers that address different objects.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2773
Suspicious: Comparing pointers that address different objects.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 241 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
2776
Definite: Copy between overlapping objects.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
24309 Messages 2777, 2778 and 2779 are now generated for assign-ment involving an element of an array that is a union member,and another overlapping member of the same union.
24451 Support for designated initialization of union member other thanthe first, reducing false positives and negatives where these val-ues are used. Also addressed failure for aggregate union mem-ber subsequently overwritten by a designated initializer otherthan the first member.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2777
Apparent: Copy between overlapping objects.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
24309 Messages 2777, 2778 and 2779 are now generated for assign-ment involving an element of an array that is a union member,and another overlapping member of the same union.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 242 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
2778
Suspicious: Copy between overlapping objects.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
24309 Messages 2777, 2778 and 2779 are now generated for assign-ment involving an element of an array that is a union member,and another overlapping member of the same union.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2781
Definite: Function argument has fewer elements than the array dimen-sion in the parameter declaration for non-inlined call.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2782
Apparent: Function argument has fewer elements than the array dimen-sion in the parameter declaration for non-inlined call.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 243 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
2783
Suspicious: Function argument has fewer elements than the array di-mension in the parameter declaration for non-inlined call.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2784
Possible: Function argument has fewer elements than the array dimen-sion in the parameter declaration for non-inlined call.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2785
Constant: Null terminated string is being passed as argument to Stan-dard Library function memcmp.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 244 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
2786
Definite: Null terminated string is being passed as argument to Stan-dard Library function memcmp.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
24451 Support for designated initialization of union member other thanthe first, reducing false positives and negatives where these val-ues are used. Also addressed failure for aggregate union mem-ber subsequently overwritten by a designated initializer otherthan the first member.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2789
Possible: Null terminated string is being passed as argument to Stan-dard Library function memcmp.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2790
Constant: Right hand operand of shift operator is negative or too large.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 245 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
2791
Definite: Right hand operand of shift operator is negative or too large.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
24451 Support for designated initialization of union member other thanthe first, reducing false positives and negatives where these val-ues are used. Also addressed failure for aggregate union mem-ber subsequently overwritten by a designated initializer otherthan the first member.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2792
Apparent: Right hand operand of shift operator is negative or too large.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2793
Suspicious: Right hand operand of shift operator is negative or toolarge.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 246 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
2796
Definite: Calling a standard library character handling function with aninvalid character value.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
24451 Support for designated initialization of union member other thanthe first, reducing false positives and negatives where these val-ues are used. Also addressed failure for aggregate union mem-ber subsequently overwritten by a designated initializer otherthan the first member.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2797
Apparent: Calling a standard library character handling function with aninvalid character value.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2798
Suspicious: Calling a standard library character handling function withan invalid character value.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 247 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
2799
Possible: Calling a standard library character handling function with aninvalid character value.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2800
Constant: Overflow in signed arithmetic operation.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2801
Definite: Overflow in signed arithmetic operation.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
24451 Support for designated initialization of union member other thanthe first, reducing false positives and negatives where these val-ues are used. Also addressed failure for aggregate union mem-ber subsequently overwritten by a designated initializer otherthan the first member.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 248 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
2802
Apparent: Overflow in signed arithmetic operation.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2803
Suspicious: Overflow in signed arithmetic operation.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2806
Definite: Calling a standard library wide character handling functionwith an invalid character value.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
24451 Support for designated initialization of union member other thanthe first, reducing false positives and negatives where these val-ues are used. Also addressed failure for aggregate union mem-ber subsequently overwritten by a designated initializer otherthan the first member.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 249 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
2807
Apparent: Calling a standard library wide character handling functionwith an invalid character value.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2808
Suspicious: Calling a standard library wide character handling functionwith an invalid character value.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2809
Possible: Calling a standard library wide character handling functionwith an invalid character value.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 250 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
2810
Constant: Dereference of NULL pointer.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2811
Definite: Dereference of NULL pointer.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
24451 Support for designated initialization of union member other thanthe first, reducing false positives and negatives where these val-ues are used. Also addressed failure for aggregate union mem-ber subsequently overwritten by a designated initializer otherthan the first member.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2812
Apparent: Dereference of NULL pointer.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 251 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
2813
Suspicious: Dereference of NULL pointer.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2814
Possible: Dereference of NULL pointer.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2816
Definite: Calling a standard library character input/output function withan invalid character value.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
24451 Support for designated initialization of union member other thanthe first, reducing false positives and negatives where these val-ues are used. Also addressed failure for aggregate union mem-ber subsequently overwritten by a designated initializer otherthan the first member.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 252 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
2817
Apparent: Calling a standard library character input/output function withan invalid character value.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2818
Suspicious: Calling a standard library character input/output functionwith an invalid character value.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2819
Possible: Calling a standard library character input/output function withan invalid character value.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 253 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
2820
Constant: Arithmetic operation on NULL pointer.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2821
Definite: Arithmetic operation on NULL pointer.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
24451 Support for designated initialization of union member other thanthe first, reducing false positives and negatives where these val-ues are used. Also addressed failure for aggregate union mem-ber subsequently overwritten by a designated initializer otherthan the first member.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2822
Apparent: Arithmetic operation on NULL pointer.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 254 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
2823
Suspicious: Arithmetic operation on NULL pointer.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2824
Possible: Arithmetic operation on NULL pointer.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 255 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
2830
Constant: Division by zero.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25148 The following messages will have their locations slightly adjustedto improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 256 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
2831
Definite: Division by zero.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
24451 Support for designated initialization of union member other thanthe first, reducing false positives and negatives where these val-ues are used. Also addressed failure for aggregate union mem-ber subsequently overwritten by a designated initializer otherthan the first member.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2832
Apparent: Division by zero.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2833
Suspicious: Division by zero.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 257 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
2834
Possible: Division by zero.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2835
Constant: Non null terminated string used in a string function.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2836
Definite: Non null terminated string used in a string function.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
24451 Support for designated initialization of union member other thanthe first, reducing false positives and negatives where these val-ues are used. Also addressed failure for aggregate union mem-ber subsequently overwritten by a designated initializer otherthan the first member.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 258 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
2839
Possible: Non null terminated string used in a string function.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2840
Constant: Dereference of an invalid pointer value.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2841
Definite: Dereference of an invalid pointer value.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
24451 Support for designated initialization of union member other thanthe first, reducing false positives and negatives where these val-ues are used. Also addressed failure for aggregate union mem-ber subsequently overwritten by a designated initializer otherthan the first member.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 259 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
2842
Apparent: Dereference of an invalid pointer value.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2843
Suspicious: Dereference of an invalid pointer value.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2844
Possible: Dereference of an invalid pointer value.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 260 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
2845
Constant: Maximum number of characters to be written is larger thanthe target buffer size.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2846
Definite: Maximum number of characters to be written is larger than thetarget buffer size.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
24451 Support for designated initialization of union member other thanthe first, reducing false positives and negatives where these val-ues are used. Also addressed failure for aggregate union mem-ber subsequently overwritten by a designated initializer otherthan the first member.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2847
Apparent: Maximum number of characters to be written is larger thanthe target buffer size.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 261 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
2848
Suspicious: Maximum number of characters to be written is larger thanthe target buffer size.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2849
Possible: Maximum number of characters to be written is larger thanthe target buffer size.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2850
Constant: Implicit conversion to a signed integer type of insufficientsize.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 262 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
2851
Definite: Implicit conversion to a signed integer type of insufficient size.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
24451 Support for designated initialization of union member other thanthe first, reducing false positives and negatives where these val-ues are used. Also addressed failure for aggregate union mem-ber subsequently overwritten by a designated initializer otherthan the first member.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2852
Apparent: Implicit conversion to a signed integer type of insufficientsize.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2853
Suspicious: Implicit conversion to a signed integer type of insufficientsize.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 263 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
2855
Constant: Casting to a signed integer type of insufficient size.Ticket(s):24175 The handling of statement expressions and nested function pa-
rameters has been improved to stop the generation of message2752.
2856
Definite: Casting to a signed integer type of insufficient size.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
24451 Support for designated initialization of union member other thanthe first, reducing false positives and negatives where these val-ues are used. Also addressed failure for aggregate union mem-ber subsequently overwritten by a designated initializer otherthan the first member.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2857
Apparent: Casting to a signed integer type of insufficient size.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 264 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
2858
Suspicious: Casting to a signed integer type of insufficient size.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2860
Constant: Implementation-defined value resulting from left shift opera-tion on expression of signed type.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2861
Definite: Implementation-defined value resulting from left shift operationon expression of signed type.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
24451 Support for designated initialization of union member other thanthe first, reducing false positives and negatives where these val-ues are used. Also addressed failure for aggregate union mem-ber subsequently overwritten by a designated initializer otherthan the first member.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 265 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
2862
Apparent: Implementation-defined value resulting from left shift opera-tion on expression of signed type.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2863
Suspicious: Implementation-defined value resulting from left shift oper-ation on expression of signed type.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2870
Infinite loop construct with constant control expression.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 266 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
2871
Infinite loop identified.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2872
This loop, if entered, will never terminate.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2877
This loop will never be executed more than once.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 267 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
2880
This code is unreachable.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2881
The code in this ’default’ clause is unreachable.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2882
This ’switch’ statement will bypass the initialization of local variables.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 268 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
2883
This ’goto’ statement will always bypass the initialization of local vari-ables.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2887
Function ’main’ ends with an implicit ’return’ statement.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2888
This function has been declared with a non-void ’return’ type but endswith an implicit ’return ;’ statement.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 269 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
2889
This function has more than one ’return’ path.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2890
Constant: Negative value implicitly converted to an unsigned type.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2891
Definite: Negative value implicitly converted to an unsigned type.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
24451 Support for designated initialization of union member other thanthe first, reducing false positives and negatives where these val-ues are used. Also addressed failure for aggregate union mem-ber subsequently overwritten by a designated initializer otherthan the first member.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 270 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
2892
Apparent: Negative value implicitly converted to an unsigned type.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2893
Suspicious: Negative value implicitly converted to an unsigned type.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2895
Constant: Negative value cast to an unsigned type.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 271 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
2896
Definite: Negative value cast to an unsigned type.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
24451 Support for designated initialization of union member other thanthe first, reducing false positives and negatives where these val-ues are used. Also addressed failure for aggregate union mem-ber subsequently overwritten by a designated initializer otherthan the first member.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2897
Apparent: Negative value cast to an unsigned type.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2898
Suspicious: Negative value cast to an unsigned type.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 272 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
2900
Constant: Positive integer value truncated by implicit conversion to asmaller unsigned type.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2901
Definite: Positive integer value truncated by implicit conversion to asmaller unsigned type.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
24451 Support for designated initialization of union member other thanthe first, reducing false positives and negatives where these val-ues are used. Also addressed failure for aggregate union mem-ber subsequently overwritten by a designated initializer otherthan the first member.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2902
Apparent: Positive integer value truncated by implicit conversion to asmaller unsigned type.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 273 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
2903
Suspicious: Positive integer value truncated by implicit conversion to asmaller unsigned type.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2905
Constant: Positive integer value truncated by cast to a smaller unsignedtype.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2906
Definite: Positive integer value truncated by cast to a smaller unsignedtype.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
24451 Support for designated initialization of union member other thanthe first, reducing false positives and negatives where these val-ues are used. Also addressed failure for aggregate union mem-ber subsequently overwritten by a designated initializer otherthan the first member.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 274 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
2907
Apparent: Positive integer value truncated by cast to a smaller unsignedtype.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2908
Suspicious: Positive integer value truncated by cast to a smaller un-signed type.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 275 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
2910
Constant: Wraparound in unsigned arithmetic operation.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25148 The following messages will have their locations slightly adjustedto improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 276 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
2911
Definite: Wraparound in unsigned arithmetic operation.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
24451 Support for designated initialization of union member other thanthe first, reducing false positives and negatives where these val-ues are used. Also addressed failure for aggregate union mem-ber subsequently overwritten by a designated initializer otherthan the first member.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2912
Apparent: Wraparound in unsigned arithmetic operation.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2913
Suspicious: Wraparound in unsigned arithmetic operation.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 277 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
2920
Constant: Left shift operation on expression of unsigned type results inloss of high order bits.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25148 The following messages will have their locations slightly adjustedto improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 278 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
2921
Definite: Left shift operation on expression of unsigned type results inloss of high order bits.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
24451 Support for designated initialization of union member other thanthe first, reducing false positives and negatives where these val-ues are used. Also addressed failure for aggregate union mem-ber subsequently overwritten by a designated initializer otherthan the first member.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2922
Apparent: Left shift operation on expression of unsigned type results inloss of high order bits.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2923
Suspicious: Left shift operation on expression of unsigned type resultsin loss of high order bits.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 279 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
2930
Constant: Computing an invalid pointer value.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2931
Definite: Computing an invalid pointer value.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
24451 Support for designated initialization of union member other thanthe first, reducing false positives and negatives where these val-ues are used. Also addressed failure for aggregate union mem-ber subsequently overwritten by a designated initializer otherthan the first member.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2932
Apparent: Computing an invalid pointer value.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 280 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
2933
Suspicious: Computing an invalid pointer value.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2934
Possible: Computing an invalid pointer value.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2940
Constant: Result of implicit conversion is only representable in a two’scomplement implementation.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 281 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
2941
Definite: Result of implicit conversion is only representable in a two’scomplement implementation.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
24451 Support for designated initialization of union member other thanthe first, reducing false positives and negatives where these val-ues are used. Also addressed failure for aggregate union mem-ber subsequently overwritten by a designated initializer otherthan the first member.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2942
Apparent: Result of implicit conversion is only representable in a two’scomplement implementation.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2943
Suspicious: Result of implicit conversion is only representable in a two’scomplement implementation.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 282 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
2945
Constant: Result of cast is only representable in a two’s complementimplementation.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2946
Definite: Result of cast is only representable in a two’s complementimplementation.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
24451 Support for designated initialization of union member other thanthe first, reducing false positives and negatives where these val-ues are used. Also addressed failure for aggregate union mem-ber subsequently overwritten by a designated initializer otherthan the first member.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2947
Apparent: Result of cast is only representable in a two’s complementimplementation.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 283 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
2948
Suspicious: Result of cast is only representable in a two’s complementimplementation.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2950
Constant: Negative value used in array subscript or pointer arithmeticoperation.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2951
Definite: Negative value used in array subscript or pointer arithmeticoperation.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
24451 Support for designated initialization of union member other thanthe first, reducing false positives and negatives where these val-ues are used. Also addressed failure for aggregate union mem-ber subsequently overwritten by a designated initializer otherthan the first member.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 284 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
2952
Apparent: Negative value used in array subscript or pointer arithmeticoperation.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2953
Suspicious: Negative value used in array subscript or pointer arithmeticoperation.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2956
Definite: Using object ’%s’ with tainted value.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 285 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
2959
Possible: Using object ’%s’ with tainted value.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2961
Definite: Using value of uninitialized automatic object ’%s’.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
23955 The following messages have changed their behavior slightly,fixing a number of false positives and negatives
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2962
Apparent: Using value of uninitialized automatic object ’%s’.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
23955 The following messages have changed their behavior slightly,fixing a number of false positives and negatives
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 286 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
2963
Suspicious: Using value of uninitialized automatic object ’%s’.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
23955 The following messages have changed their behavior slightly,fixing a number of false positives and negatives
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2966
Definite: Some members of object ’%s’ are uninitialized.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
23955 The following messages have changed their behavior slightly,fixing a number of false positives and negatives
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2967
Apparent: Some members of object ’%s’ are uninitialized.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
23955 The following messages have changed their behavior slightly,fixing a number of false positives and negatives
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 287 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
2968
Suspicious: Some members of object ’%s’ are uninitialized.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
23955 The following messages have changed their behavior slightly,fixing a number of false positives and negatives
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2971
Definite: Passing address of uninitialized object ’%s’ to a function pa-rameter declared as a pointer to const.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
23955 The following messages have changed their behavior slightly,fixing a number of false positives and negatives
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2972
Apparent: Passing address of uninitialized object ’%s’ to a function pa-rameter declared as a pointer to const.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
23955 The following messages have changed their behavior slightly,fixing a number of false positives and negatives
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 288 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
2973
Suspicious: Passing address of uninitialized object ’%s’ to a functionparameter declared as a pointer to const.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
23955 The following messages have changed their behavior slightly,fixing a number of false positives and negatives
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2976
Definite: Passing address of partially initialized object ’%s’ to a functionparameter declared as a pointer to const.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
23955 The following messages have changed their behavior slightly,fixing a number of false positives and negatives
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2977
Apparent: Passing address of partially initialized object ’%s’ to a func-tion parameter declared as a pointer to const.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
23955 The following messages have changed their behavior slightly,fixing a number of false positives and negatives
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 289 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
2978
Suspicious: Passing address of partially initialized object ’%s’ to a func-tion parameter declared as a pointer to const.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
23955 The following messages have changed their behavior slightly,fixing a number of false positives and negatives
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2980
The value of this function parameter is never used before being modi-fied.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
23955 The following messages have changed their behavior slightly,fixing a number of false positives and negatives
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2981
This initialization is redundant. The value of this object is never usedbefore being modified.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
23955 The following messages have changed their behavior slightly,fixing a number of false positives and negatives
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 290 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
2982
This assignment is redundant. The value of this object is never usedbefore being modified.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
23955 The following messages have changed their behavior slightly,fixing a number of false positives and negatives
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2983
This assignment is redundant. The value of this object is never subse-quently used.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
23955 The following messages have changed their behavior slightly,fixing a number of false positives and negatives
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2984
This operation is redundant. The value of the result is always ’%1s’.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 291 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
2985
This operation is redundant. The value of the result is always that of theleft-hand operand.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2986
This operation is redundant. The value of the result is always that of theright-hand operand.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2990
The value of this loop controlling expression is always ’true’.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 292 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
2991
The value of this ’if’ controlling expression is always ’true’.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2992
The value of this ’if’ controlling expression is always ’false’.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2993
The value of this ’do - while’ loop controlling expression is always ’false’.The loop will only be executed once.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 293 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
2994
The value of this ’while’ or ’for’ loop controlling expression is always’false’. The loop will not be entered.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2995
The result of this logical operation is always ’true’.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
2996
The result of this logical operation is always ’false’.Ticket(s):21587 Dataflow has been improved to model multiple levels of pointer
indirection. Since it allows more analysis to be done, all dataflowmessages could be impacted
24175 The handling of statement expressions and nested function pa-rameters has been improved to stop the generation of message2752.
25189 The modeling of member objects first defined in quieted headerfiles has been updated. The result is a removal of related falsenegative dataflow messages on these members.
3003
This character constant is being interpreted as a NULL pointer con-stant.Ticket(s):24765 QAC will generate messages 3003 and 3004 correctly when the
conditional operator is involved in expression.continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 294 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
3004
This integral constant expression is being interpreted as a NULL pointerconstant.Ticket(s):24765 QAC will generate messages 3003 and 3004 correctly when the
conditional operator is involved in expression.
3006
This function contains a mixture of in-line assembler statements and Cstatements.Ticket(s):24667 Message 3006 will recognize encapsulation of assembly in
macros, supported by new message 3008
3101
Unary ’-’ applied to an operand of type unsigned int or unsigned longgives an unsigned result.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 295 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
3102
Unary ’-’ applied to an operand whose underlying type is unsigned.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
3104
[S] #pragma ’%s’ has invalid arguments and has been ignored.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
25160 The following messages have had their severity level increased:0803, 0804, 0821, 0852, 0887, 1033. The following messageshave had their severity level decreased: 0268, 0817, 0846,3104.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 296 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
3107
[S] A #pragma ’%s’ has been found without a matching #pragma blockstart directive.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 297 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
3108
Nested comments are not recognized in the ISO standard.Ticket(s):23542 Message 3108 will no longer be generated to report the occur-
rence of a // character sequence within a // comment.25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
25151 The following messages have changed their behavior slightly,fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 298 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
3115
Unrecognized preprocessing directive has been ignored because ofconditional inclusion directives.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
3116
Unrecognized #pragma arguments ’%s’ This #pragma directive hasbeen ignored.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 299 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
3117
Expected ’on’ or ’off’ after ’#pragma’ flag.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
3120
Hard-coded ’magic’ integer constant, ’%s’.Ticket(s):25151 The following messages have changed their behavior slightly,
fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
3121
Hard-coded ’magic’ floating constant, ’%s’.Ticket(s):25151 The following messages have changed their behavior slightly,
fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 300 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
3122
Hard-coded ’magic’ string literal, %s.Ticket(s):25151 The following messages have changed their behavior slightly,
fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
3123
Hard coded ’magic’ character constant, %s.Ticket(s):25151 The following messages have changed their behavior slightly,
fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
3199
This assignment is redundant. The value of this object is never usedbefore being modified.Ticket(s):25262 Fixed inconsistencies between the number of parameter text
placeholders(%s) and the number of parameters written for thediagnostic.
3204
The variable ’%s’ is only set once and so it could be declared with the’const’ qualifier.Ticket(s):24995 False negatives removed for message 3204
3212
This cast is redundant.Ticket(s):23438 Message 3344 will no longer be incorrectly generated when the
controlling expression is an element of a _Bool array.continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 301 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
3218
File scope static, ’%s’, is only accessed in one function.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
3237
[C] inline function ’%1s’ has external linkage and is defining an object,’%2s’, with static storage duration.Ticket(s):24906 Messages 3238 and 3237 won’t cancel dataflow analysis any-
more (message 2753 won’t be generated subsequently to thesetwo ones).
3238
[C] inline function ’%1s’ has external linkage and is referring to an ob-ject, ’%2s’, with internal linkage.Ticket(s):24906 Messages 3238 and 3237 won’t cancel dataflow analysis any-
more (message 2753 won’t be generated subsequently to thesetwo ones).
3315
This ’switch’ statement is redundant.Ticket(s):24199 The behavior of message 3315 has been fixed, removing some
false negatives.continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 302 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
3317
’#if...’ not matched by ’#endif’ in included file. This is probably an error.Ticket(s):25151 The following messages have changed their behavior slightly,
fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
3318
’#else’/’#elif’/’#endif’ in included file matched ’#if...’ in parent file. Thisis probably an error.Ticket(s):25151 The following messages have changed their behavior slightly,
fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
3344
Controlling expression is not an ’essentially Boolean’ expression.Ticket(s):11200 QAC will provide option to specify typdef names that will be
treated as essentially boolean when performing analysis.23438 Message 3344 will no longer be incorrectly generated when the
controlling expression is an element of a _Bool array.continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 303 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
3409
The replacement list of function-like macro ’%s’ is not enclosed in ().Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
3411
Macro defined with unbalanced brackets, parentheses or braces.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 304 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
3412
Macro defines an unrecognized code-fragment.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
3413
Macro definition could be replaced by a typedef.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 305 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
3414
Macro defines a storage-class or function specifier keyword.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
3421
Expression with possible side effects is used in an initializer list.Ticket(s):24424 Message 3421 will also be generated when the initializing ex-
pression involves a dereference of a pointer to a volatile object,array access to a volatile object, or access of a struct or unionvolatile member via the dot or arrow operator. Message 3421will no longer be incorrectly generated against an initializing ex-pression that contains addresses of volatile objects which arenot dereferenced.
25044 Message 3421 will no longer be generated for calls to functionsdefined in the current translation unit that do not result in anyform of side-effect.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 306 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
3428
Macro defines a type qualifier keyword.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
3430
Macro argument expression may require parentheses.Ticket(s):24771 QAC will generate message 3432 for simple (precedence-safe)
arguments to macros if they are not parenthesizedcontinued on next page
RELEASE NOTES : QA·C 9.4.1 Page 307 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
3431
Macro defines an operator, a punctuator or a control statement key-word.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
25151 The following messages have changed their behavior slightly,fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 308 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
3438
[U] #undef’ing the assert macro to call a function of that name causesundefined behaviour.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
3439
Macro redefines a keyword.Ticket(s):25051 New message 3468 added to highlight C90 reserved identifiers
that are now keywords in C99. Note: _Bool will now generate3468 and not 3439.
3443
Macro ’%s’ has a replacement list which appears recursive.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 309 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
3452
The replacement list of object-like macro ’%s’ is not enclosed in ().Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
3453
A function could probably be used instead of this function-like macro.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 310 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
3456
Parameter ’%s’ will be evaluated more than once when this macro isused.Ticket(s):24774 New messages 3462,3463,3464,3465,3466,3467 added to
warn when a side-effecting expression passed as an argumentto a function-like macro is not consistently evaluated exactlyonce; fixed false negative for 3456 when non-parenthesized
3457
Macro defines a braced initializer.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 311 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
3458
Macro defines a braced code statement block.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
3459
Macro defines a ’do-while-zero’ construct.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 312 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
3460
Macro defines a type specifier keyword.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
3461
Macro defines a storage-class specifier/type qualifier sequence.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 313 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
3601
Trigraphs (??x) are an ISO feature.Ticket(s):25151 The following messages have changed their behavior slightly,
fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
3609
Using the alert escape sequence ’\\a’.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 314 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
3610
Hexadecimal escape sequence used.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
3613
Some pre-ISO compilers would treat this 8 or 9 as an octal digit.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 315 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
3616
Character constants may have different values in preprocessor arith-metic than in actual code.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
3892
The result of this cast is implicitly converted to another type.Ticket(s):11200 QAC will provide option to specify typdef names that will be
treated as essentially boolean when performing analysis.continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 316 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
4101
Both operands of & operator are ’Boolean’ expressions.Ticket(s):11200 QAC will provide option to specify typdef names that will be
treated as essentially boolean when performing analysis.25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
4102
Both operands of | operator are ’Boolean’ expressions.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 317 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
4103
Both operands of arithmetic or bitwise operator are ’Boolean’ expres-sions.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
4104
Left hand operand of arithmetic or bitwise operator is a ’Boolean’ ex-pression.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 318 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
4105
Right hand operand of arithmetic or bitwise operator is a ’Boolean’ ex-pression.Ticket(s):11200 QAC will provide option to specify typdef names that will be
treated as essentially boolean when performing analysis.25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
4106
Both operands of && operator are arithmetic or bitwise expressions.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 319 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
4107
Both operands of || operator are arithmetic or bitwise expressions.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
4108
Left hand operand of logical operator is an arithmetic or bitwise expres-sion.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 320 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
4109
Right hand operand of logical operator is an arithmetic or bitwise ex-pression.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
4110
Operand of ! operator is an arithmetic or bitwise expression.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 321 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
4111
Right hand operand of relational operator is a ’Boolean’ expression.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
4112
Left hand operand of relational operator is a ’Boolean’ expression.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 322 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
4113
Both operands of relational operator are ’Boolean’ expressions.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
4114
Operand of ~ operator is a ’Boolean’ expression.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 323 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
4115
Operand of logical && or || operator is not an ’essentially Boolean’ ex-pression.Ticket(s):11200 QAC will provide option to specify typdef names that will be
treated as essentially boolean when performing analysis.25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
4116
Operand of logical ! operator is not an ’essentially Boolean’ expression.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 324 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
4130
Bitwise operations on signed data will give implementation defined re-sults.Ticket(s):11200 QAC will provide option to specify typdef names that will be
treated as essentially boolean when performing analysis.
4390
A composite expression of ’essentially signed’ type (%1s) is being castto a wider signed type, ’%2s’.Ticket(s):23497 Messages 1820, 1821, 1822, 1823, 1824, 1850, 1851, 1852,
1853, 1854, 1880, 1881, 1882, 4390 and 4393 will be generatedalso when the applicable operands happen to be structure/unionmembers, array elements, pointer dereferences, results of func-tion calls, etc.
4393
A composite expression of ’essentially signed’ type (%1s) is being castto a different type category, ’%2s’.Ticket(s):23497 Messages 1820, 1821, 1822, 1823, 1824, 1850, 1851, 1852,
1853, 1854, 1880, 1881, 1882, 4390 and 4393 will be generatedalso when the applicable operands happen to be structure/unionmembers, array elements, pointer dereferences, results of func-tion calls, etc.
4402
An expression of ’essentially Boolean’ type (%1s) is being converted toenum type, ’%2s’ on assignment.Ticket(s):11200 QAC will provide option to specify typdef names that will be
treated as essentially boolean when performing analysis.
4403
An expression of ’essentially Boolean’ type (%1s) is being converted tosigned type, ’%2s’ on assignment.Ticket(s):11200 QAC will provide option to specify typdef names that will be
treated as essentially boolean when performing analysis.
4430
An expression of ’essentially signed’ type (%1s) is being converted toBoolean type, ’%2s’ on assignment.Ticket(s):11200 QAC will provide option to specify typdef names that will be
treated as essentially boolean when performing analysis.
4432
An expression of ’essentially signed’ type (%1s) is being converted toenum type, ’%2s’ on assignment.Ticket(s):11200 QAC will provide option to specify typdef names that will be
treated as essentially boolean when performing analysis.continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 325 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
4501
An expression of ’essentially Boolean’ type (%1s) is being used as the%2s operand of this arithmetic operator (%3s).Ticket(s):11200 QAC will provide option to specify typdef names that will be
treated as essentially boolean when performing analysis.
4502
An expression of ’essentially Boolean’ type (%1s) is being used as the%2s operand of this bitwise operator (%3s).Ticket(s):11200 QAC will provide option to specify typdef names that will be
treated as essentially boolean when performing analysis.
4532
An expression of ’essentially signed’ type (%1s) is being used as the%2s operand of this bitwise operator (%3s).Ticket(s):11200 QAC will provide option to specify typdef names that will be
treated as essentially boolean when performing analysis.
4538
An expression of ’essentially signed’ type (%1s) is being used as the%2s operand of this logical operator (%3s).Ticket(s):11200 QAC will provide option to specify typdef names that will be
treated as essentially boolean when performing analysis.
4580
An operand of ’essentially character’ type is being added to anotheroperand of ’essentially character’ type.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 326 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
4581
An operand of ’essentially character’ type is being subtracted from anoperand of ’essentially signed’ type.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
4582
An operand of ’essentially character’ type is being subtracted from anoperand of ’essentially unsigned’ type.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 327 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
4583
An expression of ’essentially character’ type (%1s) is being used as the%2s operand of this arithmetic operator (%3s).Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
4584
An expression of ’essentially character’ type (%1s) is being used as the%2s operand of this bitwise operator (%3s).Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 328 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
4585
An expression of ’essentially character’ type (%1s) is being used as theleft-hand operand of this shift operator (%2s).Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
4586
An expression of ’essentially character’ type (%1s) is being used as theright-hand operand of this shift operator (%2s).Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 329 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
4587
An expression of ’essentially signed’ type (%1s) is being used as theleft-hand operand of this shift operator (%2s).Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
4588
A non-negative constant expression of ’essentially signed’ type (%1s)is being used as the %2s operand of this bitwise operator (%3s).Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 330 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
4589
A non-negative constant expression of ’essentially signed’ type (%1s)is being used as the left-hand operand of this shift operator (%2s).Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
4590
A non-negative constant expression of ’essentially signed’ type (%1s)is being used as the right-hand operand of this shift operator (%2s).Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 331 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
4599
Operands of binary operator ’%1s’ have the same type ’%2s’ but distincttype names ’%3s’ and ’%4s’.Ticket(s):11200 QAC will provide option to specify typdef names that will be
treated as essentially boolean when performing analysis.
4600
The macro ’%1s’ is also defined in ’<%2s>’.Ticket(s):24727 QAC will generate new message 0603 whenever macro identi-
fier beginning with an underscore is defined or undefined.25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 332 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
4601
The macro ’%1s’ is the name of an identifier in ’<%2s>’.Ticket(s):24727 QAC will generate new message 0603 whenever macro identi-
fier beginning with an underscore is defined or undefined.25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
4602
The identifier ’%1s’ is declared as a macro in ’<%2s>’.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 333 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
4603
The object/function ’%1s’is being defined with the same name as anordinary identifier defined in ’<%2s>’.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
4604
The object/function ’%1s’ is being declared with the same name as anordinary identifier defined in ’<%2s>’.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 334 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
4605
The typedef ’%1s’ is also defined in ’<%2s>’.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
4606
The typedef ’%1s’ has the same name as another ordinary identifier in’<%2s>’.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 335 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
4607
The enum constant ’%1s’ has the same name as another ordinary iden-tifier in ’<%2s>’.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
4608
The tag ’%1s’ is also defined in ’<%2s>’.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 336 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
4620
The macro ’%1s’ may also be defined as a macro in ’<%2s>’.Ticket(s):24727 QAC will generate new message 0603 whenever macro identi-
fier beginning with an underscore is defined or undefined.25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
4621
The macro ’%1s’ may also be defined as a typedef in ’<%2s>’.Ticket(s):24727 QAC will generate new message 0603 whenever macro identi-
fier beginning with an underscore is defined or undefined.25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 337 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
4622
The identifier ’%1s’ may be defined as a macro in ’<%2s>’.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
4623
The typedef ’%1s’ may also be defined in ’<%2s>’.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 338 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
4624
The ordinary identifier ’%1s’ may be defined as a typedef in ’<%2s>’.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
4640
The macro ’%1s’ could conflict in the future with the name of a macroin ’<%2s>’.Ticket(s):24727 QAC will generate new message 0603 whenever macro identi-
fier beginning with an underscore is defined or undefined.25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 339 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
4641
The identifier ’%1s’ could conflict in the future with the name of a macroin ’<%2s>’.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
4642
The macro ’%1s’ could conflict in the future with the name of a functionin ’<%2s>’.Ticket(s):24727 QAC will generate new message 0603 whenever macro identi-
fier beginning with an underscore is defined or undefined.25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 340 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
4643
The identifier ’%1s’ could conflict in the future with the name of a func-tion in ’<%2s>’.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
4644
The macro ’%1s’ could conflict in the future with the name of a typedefin ’<%2s>’.Ticket(s):24727 QAC will generate new message 0603 whenever macro identi-
fier beginning with an underscore is defined or undefined.25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 341 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
4645
The identifier ’%1s’ could conflict in the future with the name of a type-def in ’<%2s>’.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 342 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
4700
Metric value out of threshold range: %s.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
25151 The following messages have changed their behavior slightly,fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 343 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
4810
Invalid annotation: tag ’%1s’ is not defined subsequently in this file.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
25151 The following messages have changed their behavior slightly,fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 344 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
4811
The start of the range ’%1s’, starts and ends at the same location.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
25151 The following messages have changed their behavior slightly,fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 345 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
4812
’%1s’ not allowed here.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
25151 The following messages have changed their behavior slightly,fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 346 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
4813
The location annotation is not preceded by a suppression annotationwhich refers to it.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
25151 The following messages have changed their behavior slightly,fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 347 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
4814
A location annotation cannot itself have a location specifier.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
25151 The following messages have changed their behavior slightly,fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 348 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
4815
The specified product name is invalid.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
25151 The following messages have changed their behavior slightly,fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 349 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
4816
Justification comments are not allowed in location annotations.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
25151 The following messages have changed their behavior slightly,fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 350 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
4817
Justification comments are not allowed to be empty.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
25151 The following messages have changed their behavior slightly,fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 351 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
4820
Annotation kind is expected.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
25151 The following messages have changed their behavior slightly,fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 352 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
4821
Colon is expected.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
25151 The following messages have changed their behavior slightly,fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 353 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
4822
Tag name is expected.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
25151 The following messages have changed their behavior slightly,fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 354 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
4823
Annotation syntax error.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
25151 The following messages have changed their behavior slightly,fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 355 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
4824
Invalid character in tag name.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
25151 The following messages have changed their behavior slightly,fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 356 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
4825
Unexpected character.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
25151 The following messages have changed their behavior slightly,fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 357 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
4826
Message specification is incomplete or missing.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
25151 The following messages have changed their behavior slightly,fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 358 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
4827
Tag name is not allowed in the message specification of continuoussuppression annotation.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
25151 The following messages have changed their behavior slightly,fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 359 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
4828
Invalid usage of predefined location tag.Ticket(s):25148 The following messages will have their locations slightly adjusted
to improve accuracy and compatibility with QAC++: 0231, 0232,0233, 0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388,0500, 0501, 0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793,0804, 0807, 0810, 0813, 0814, 0815, 0816, 0818, 0821, 0823,0824, 0826, 0827, 0830, 0831, 0832, 0833, 0836, 0837, 0838,0841, 0842, 0843, 0846, 0847, 0848, 0850, 0853, 0854, 0861,0868, 0873, 0877, 0879, 0880, 0881, 0883, 0884, 0885, 0886,0887, 0888, 0889, 0894, 0896, 0897, 0898, 0899, 1001, 1009,1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254, 1255, 1272,1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102, 3104,3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459,3460, 3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581,4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624, 4540-4645, 4700, 4810-4817, 4820-4828
25151 The following messages have changed their behavior slightly,fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
4829
Invalid character in message specifier.Ticket(s):25151 The following messages have changed their behavior slightly,
fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 360 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
4830
Unexpected left bracket in message specifier.Ticket(s):25151 The following messages have changed their behavior slightly,
fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
4831
Unexpected right bracket in message specifier.Ticket(s):25151 The following messages have changed their behavior slightly,
fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
4832
Unexpected left bracket in tag name.Ticket(s):25151 The following messages have changed their behavior slightly,
fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 361 Programming Research Ltd.
Table 3.9 – continued from previous page
Msg. Id. Description
4833
Unexpected right bracket in tag name.Ticket(s):25151 The following messages have changed their behavior slightly,
fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
4834
Expected left bracket in product specifier.Ticket(s):25151 The following messages have changed their behavior slightly,
fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
4835
Expected right bracket in product specifier.Ticket(s):25151 The following messages have changed their behavior slightly,
fixing a number of false positives and negatives and improv-ing consistency: 241, 245, 259, 268, 285, 286, 287, 288, 289,337, 0339, 0372, 828, 0380, 0857, 0553, 0784, 785, 786, 0787,0804, 0805, 0808, 0811, 0812, 0814, 0818, 0821, 0822, 0823,0827, 0829, 0830, 0842, 0846, 0849, 0850, 0850, 1035, 0851,0852, 0853, 0855, 0862, 0869, 0872, 0873, 0894, 0896, 0897,0898, 0899, 0914, 0925, 1002, 1005, 1006, 1011, 1033, 2211,2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318, 3431, 3601,4700, 4810-4817, 4820-4835
3.4.4 Message Text Changes
The following table summarizes message text changes.
RELEASE NOTES : QA·C 9.4.1 Page 362 Programming Research Ltd.
Table 3.10: Changed Message Text for QA·C 9.3.0
Msg.Id. Message Text Change Ticket
0735QAC-9.3.0 Switch expression is of essentially Boolean type.QAC-9.2.0 Using relational or logical operators in a ’switch’ expres-
sion is usually a programming error.25080
0789
QAC-9.3.0 [L] Identifier matches other identifier(s) (e.g. ’%s’) infirst 63 characters - program does not conform strictlyto ISO:C99.
QAC-9.2.0 Identifier matches other identifier(s) (e.g. ’%s’) in first63 characters - program does not conform strictly toISO:C99.
238232432624855
0821
QAC-9.3.0 [C] ’#include’ does not identify a header or source filethat can be processed.
QAC-9.2.0 [C] ’#include %s’ does not identify a header or sourcefile that can be processed.
2472425148251512516025262
0894
QAC-9.3.0 ’#%s’ directive controlling expression does not evaluateto zero or one.
QAC-9.2.0 #%s directive controlling expression does not evaluateto zero or one.
2514825151
0945
QAC-9.3.0 [C99] Operand of sizeof is an expression of variablelength array type with side effects.
QAC-9.2.0 [C99] WARNING. Operand of sizeof is an expression ofvariable length array type.
24460
1005
QAC-9.3.0 [S] End-of-file encountered when expecting ’#endif’ pre-processing directive.
QAC-9.2.0 [S] End-of-file encountered when expecting ’#%s’ pre-processing directive.
2515125262
1067
QAC-9.3.0 [C99] Union member is a struct declared with a flexiblearray member.
QAC-9.2.0 [C99] Union member ’%s’ is a struct declared with a flex-ible array member.
25262
1068
QAC-9.3.0 [E] Union member is a struct declared with a potentially-flexible array member.
QAC-9.2.0 [E] Union member ’%s’ is a struct declared with apotentially-flexible array member.
25262
1495
QAC-9.3.0 Destination and source objects have incompatibletypes.
QAC-9.2.0 %s destination and source objects have incompatibletypes.
25262
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 363 Programming Research Ltd.
Table 3.10 – continued from previous page
Msg.Id. Message Text Change Ticket
1496
QAC-9.3.0 Destination and source objects may have incompatibletypes.
QAC-9.2.0 %s destination and source objects may have incompat-ible types.
25262
3199
QAC-9.3.0 This assignment is redundant. The value of this objectis never used before being modified.
QAC-9.2.0 This assignment is redundant. The value of ’%s’ isnever subsequently used.
25262
3315QAC-9.3.0 This ’switch’ statement is redundant.QAC-9.2.0 This ’switch’ statement contains only a single path - it is
redundant.24199
3.5 Messages for QA·C 9.2.0
3.5.1 New Messages
The following table lists messages which are new in QA·C 9.2.0.
Table 3.11: Messages Added for QA·C 9.2.0
Msg. Id. Description
1495
%s destination and source objects have incompatible types.Ticket(s):23471 A new message 1496 will be generated when the destination
and/or source argument of memcpy or memmove is a pointer tovoid. Otherwise, a new message 1495 will be generated whenthe destination and source arguments of memcpy or memmoveare not pointers to qualified or unqualified versions of compat-ible types. Existing message 1487 will also be extended, sothat array arguments to memcmp will be handled as pointer ar-guments. Consequently message 1487 will no longer be incor-rectly generated in certain situations involving array parameters.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 364 Programming Research Ltd.
Table 3.11 – continued from previous page
Msg. Id. Description
1496
%s destination and source objects may have incompatible types.Ticket(s):23471 A new message 1496 will be generated when the destination
and/or source argument of memcpy or memmove is a pointer tovoid. Otherwise, a new message 1495 will be generated whenthe destination and source arguments of memcpy or memmoveare not pointers to qualified or unqualified versions of compat-ible types. Existing message 1487 will also be extended, sothat array arguments to memcmp will be handled as pointer ar-guments. Consequently message 1487 will no longer be incor-rectly generated in certain situations involving array parameters.
1497
Comparison of a string object representation.Ticket(s):23781 A new message 1497 will be generated when the memcmp func-
tion is used to compare string objects. Note: message 1497contributes to the enforcement of MISRA C:2012 Amendment 1Rule 21.16.
1498
The string referenced by <locale.h> type ’struct lconv’ member ’%s’ isbeing modified.Ticket(s):23788 A new message 1498 will be generated to report situations
where a string referenced by a member of an object of typestruct lconv is directly modified. Message 1498 will be gener-ated irrespective of whether the object is obtained from a callto library function ’localeconv’ in <locale.h>. Members of structlconv that refer to strings are of type ’char *’, however theyshould be treated as being of type ’const char *’, to avoid un-defined behaviour. Message 1498 contributes to enforce this re-striction, and therefore contributes to the enforcement of MISRAC:2012 Amendment 1 Rule 21.19. As a consequence of this up-grade, the behaviour of message 1492 will also be refined andextended: message 1492 will no longer be generated againstmodification of struct lconv strings, but it will still be generatedin all other circumstances, and not only when direct modifica-tions to library objects are made via simple assignment, but alsowhen they are made via composite assignments and prefix/post-fix increment/decrement operators. As part of this upgrade, thedefinition of struct lconv in PRQA’s default header <locale.h>will also be extended to comply with the C99 and C11 stan-dards, by adding members int_p_cs_precedes, int_n_cs_pre-cedes, int_p_sep_by_space, int_n_sep_by_space, int_p_sign_-posn and int_n_sign_posn.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 365 Programming Research Ltd.
Table 3.11 – continued from previous page
Msg. Id. Description
2671
Definite: The value being compared with macro EOF does not originatefrom an EOF returning function.Ticket(s):22789 New messages 2676 and 2678 are generated when Dataflow
detects that the value returned from a Standard Library functionthat can return EOF is modified before being compared to macroEOF. In addition, new messages 2671 and 2674 are generatedwhen a value being compared with macro EOF is seen as nothaving originated from am EOF returning function.
2674
Possible: The value being compared with macro EOF does not origi-nate from an EOF returning function.Ticket(s):22789 New messages 2676 and 2678 are generated when Dataflow
detects that the value returned from a Standard Library functionthat can return EOF is modified before being compared to macroEOF. In addition, new messages 2671 and 2674 are generatedwhen a value being compared with macro EOF is seen as nothaving originated from am EOF returning function.
2676
Definite: The value originating from an EOF returning function wasmodified before being compared with macro EOF.Ticket(s):22789 New messages 2676 and 2678 are generated when Dataflow
detects that the value returned from a Standard Library functionthat can return EOF is modified before being compared to macroEOF. In addition, new messages 2671 and 2674 are generatedwhen a value being compared with macro EOF is seen as nothaving originated from am EOF returning function.
2678
Suspicious: The value originating from an EOF returning function wasmodified before being compared with macro EOF.Ticket(s):22789 New messages 2676 and 2678 are generated when Dataflow
detects that the value returned from a Standard Library functionthat can return EOF is modified before being compared to macroEOF. In addition, new messages 2671 and 2674 are generatedwhen a value being compared with macro EOF is seen as nothaving originated from am EOF returning function.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 366 Programming Research Ltd.
Table 3.11 – continued from previous page
Msg. Id. Description
2681
Definite: Using an invalidated value ’%s’ returned from a Standard Li-brary function.Ticket(s):23941 A new message will be generated when Dataflow detects that
the pointer returned by a call to one of the functions asctime,ctime, gmtime, localtime, localeconv, getenv, setlocale or str-error is used following a subsequent call to that same function.
2682
Apparent: Using an invalidated value ’%s’ returned from a StandardLibrary function.Ticket(s):23941 A new message will be generated when Dataflow detects that
the pointer returned by a call to one of the functions asctime,ctime, gmtime, localtime, localeconv, getenv, setlocale or str-error is used following a subsequent call to that same function.
2683
Suspicious: Using an invalidated value ’%s’ returned from a StandardLibrary function.Ticket(s):23941 A new message will be generated when Dataflow detects that
the pointer returned by a call to one of the functions asctime,ctime, gmtime, localtime, localeconv, getenv, setlocale or str-error is used following a subsequent call to that same function.
2785
Constant: Null terminated string is being passed as argument to Stan-dard Library function memcmp.Ticket(s):22832 A new message will be generated when Dataflow detects that
the Standard Library function memcmp is being used to com-pare null terminated strings.
2786
Definite: Null terminated string is being passed as argument to Stan-dard Library function memcmp.Ticket(s):22832 A new message will be generated when Dataflow detects that
the Standard Library function memcmp is being used to com-pare null terminated strings.
24152 The performance of Dataflow is improved for cases where anal-ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 367 Programming Research Ltd.
Table 3.11 – continued from previous page
Msg. Id. Description
2789
Possible: Null terminated string is being passed as argument to Stan-dard Library function memcmp.Ticket(s):22832 A new message will be generated when Dataflow detects that
the Standard Library function memcmp is being used to com-pare null terminated strings.
24152 The performance of Dataflow is improved for cases where anal-ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2806
Definite: Calling a standard library wide character handling functionwith an invalid character value.Ticket(s):23794 Messages 2796, 2797, 2798 and 2799 will no longer be gen-
erated for wide character handling functions. New messages2806, 2807, 2808 and 2809 have been added to cover thesewide character functions in <wctype.h>.
24152 The performance of Dataflow is improved for cases where anal-ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2807
Apparent: Calling a standard library wide character handling functionwith an invalid character value.Ticket(s):23794 Messages 2796, 2797, 2798 and 2799 will no longer be gen-
erated for wide character handling functions. New messages2806, 2807, 2808 and 2809 have been added to cover thesewide character functions in <wctype.h>.
24152 The performance of Dataflow is improved for cases where anal-ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 368 Programming Research Ltd.
Table 3.11 – continued from previous page
Msg. Id. Description
2808
Suspicious: Calling a standard library wide character handling functionwith an invalid character value.Ticket(s):23794 Messages 2796, 2797, 2798 and 2799 will no longer be gen-
erated for wide character handling functions. New messages2806, 2807, 2808 and 2809 have been added to cover thesewide character functions in <wctype.h>.
24152 The performance of Dataflow is improved for cases where anal-ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2809
Possible: Calling a standard library wide character handling functionwith an invalid character value.Ticket(s):23794 Messages 2796, 2797, 2798 and 2799 will no longer be gen-
erated for wide character handling functions. New messages2806, 2807, 2808 and 2809 have been added to cover thesewide character functions in <wctype.h>.
24152 The performance of Dataflow is improved for cases where anal-ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2816
Definite: Calling a standard library character input/output function withan invalid character value.Ticket(s):23796 Messages 2796, 2797, 2798 and 2799 will no longer be gen-
erated for character input/output functions in <stdio.h> and<wchar.h>. New messages 2816, 2817, 2818 and 2819 havebeen added to cover these character input/output functions.
24152 The performance of Dataflow is improved for cases where anal-ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 369 Programming Research Ltd.
Table 3.11 – continued from previous page
Msg. Id. Description
2817
Apparent: Calling a standard library character input/output function withan invalid character value.Ticket(s):23796 Messages 2796, 2797, 2798 and 2799 will no longer be gen-
erated for character input/output functions in <stdio.h> and<wchar.h>. New messages 2816, 2817, 2818 and 2819 havebeen added to cover these character input/output functions.
24152 The performance of Dataflow is improved for cases where anal-ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2818
Suspicious: Calling a standard library character input/output functionwith an invalid character value.Ticket(s):23796 Messages 2796, 2797, 2798 and 2799 will no longer be gen-
erated for character input/output functions in <stdio.h> and<wchar.h>. New messages 2816, 2817, 2818 and 2819 havebeen added to cover these character input/output functions.
24152 The performance of Dataflow is improved for cases where anal-ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2819
Possible: Calling a standard library character input/output function withan invalid character value.Ticket(s):23796 Messages 2796, 2797, 2798 and 2799 will no longer be gen-
erated for character input/output functions in <stdio.h> and<wchar.h>. New messages 2816, 2817, 2818 and 2819 havebeen added to cover these character input/output functions.
24152 The performance of Dataflow is improved for cases where anal-ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2835
Constant: Non null terminated string used in a string function.Ticket(s):22788 A new message is generated when Dataflow detects incorrect
use of Standard Library string handling functions that results inaccess beyond the bounds of an object passed as an argumentto the function.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 370 Programming Research Ltd.
Table 3.11 – continued from previous page
Msg. Id. Description
2836
Definite: Non null terminated string used in a string function.Ticket(s):22788 A new message is generated when Dataflow detects incorrect
use of Standard Library string handling functions that results inaccess beyond the bounds of an object passed as an argumentto the function.
24152 The performance of Dataflow is improved for cases where anal-ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2839
Possible: Non null terminated string used in a string function.Ticket(s):22788 A new message is generated when Dataflow detects incorrect
use of Standard Library string handling functions that results inaccess beyond the bounds of an object passed as an argumentto the function.
24152 The performance of Dataflow is improved for cases where anal-ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
3327
This goto statement references a label that is declared in a separateblock.Ticket(s):14125 A new message 3327 will be generated when a goto statement
references a label which is not declared in the same block, or inany block enclosing that goto statement. Note: message 3327can be used to enforce MISRA C:2012 Rule 15.3.
4816
Justification comments are not allowed in location annotations.Ticket(s):23502 Ability to add Justification Reason to Comment Based Suppres-
sions and Include in Report.
4817
Justification comments are not allowed to be empty.Ticket(s):23502 Ability to add Justification Reason to Comment Based Suppres-
sions and Include in Report.
RELEASE NOTES : QA·C 9.4.1 Page 371 Programming Research Ltd.
3.5.2 Messages with Modified Behavior
The following table summarizes the messages whose behavior has been modified as aresult of a change in specification.
Table 3.12: Messages Modified for QA·C 9.2.0
Msg. Id. Description
0284
[I] Multiple character constants have implementation defined values.Ticket(s):24373 Message 0284 will no longer be incorrectly generated when the
glue operator ’##’ is used in a macro to produce a wide characterconstant from a single character.,0284„„„,
0285
[I] Character constant contains character which is not a member of thebasic source character set.Ticket(s):24374 Message 0285 will only be generated once per character con-
stant, against the leftmost character applicable.
0340
Using the ’#error’ preprocessing directive.Ticket(s):20272 Message locations have been improved as part of restructuring
to enable future use of a preprocessor common to both C andC++ analyzers.
0341
Using the stringify operator ’#’.Ticket(s):20272 Message locations have been improved as part of restructuring
to enable future use of a preprocessor common to both C andC++ analyzers.
0342
Using the glue operator ’##’.Ticket(s):20272 Message locations have been improved as part of restructuring
to enable future use of a preprocessor common to both C andC++ analyzers.
0343
Using string literal concatenation.Ticket(s):20272 Message locations have been improved as part of restructuring
to enable future use of a preprocessor common to both C andC++ analyzers.
0352
Using the ’#elif’ preprocessing directive.Ticket(s):20272 Message locations have been improved as part of restructuring
to enable future use of a preprocessor common to both C andC++ analyzers.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 372 Programming Research Ltd.
Table 3.12 – continued from previous page
Msg. Id. Description
0372
[L] More than 63 levels of nested conditional inclusion - program doesnot conform strictly to ISO:C99.Ticket(s):20272 Message locations have been improved as part of restructuring
to enable future use of a preprocessor common to both C andC++ analyzers.
0380
[L] Number of macro definitions exceeds 4095 - program does not con-form strictly to ISO:C99.Ticket(s):23393 Messages 0380 and 0857 will be generated against the macro
definition in the main source file that causes the applicable ISOC limit to be exceeded. If instead that macro definition hap-pens to be located in an included header, then message 0380or 0857 will be generated against the ’#include’ directive in themain source file that leads to the inclusion of that macro defini-tion. Since messages 0380 and 0857 will no longer be incor-rectly generated at the non-existent line 0, it will be possible tosuppress them.
24389 Messages 0380 and 0857 will be generated when the macroidentifiers that are ’simultaneously’ defined exceeds the applica-ble limit. More specifically, an ’#undef’ preprocessing directiveapplied to a macro identifier which is defined at that point, willdecrease the running count of macro identifiers being comparedagainst the limits.
0403
[U] ’%s’ may be modified and accessed between sequence points -evaluation order unspecified.Ticket(s):23548 Message 0403 will no longer be incorrectly generated is situa-
tions where a statement expression is used as an operand ofan operator whose order of evaluation is unspecified, and theother operand includes the identifier of a local object, and thestatement expression does not use or modify that local object.
0428
Function identifier is not followed by () but a function call may be in-tended.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializerscontinued on next page
RELEASE NOTES : QA·C 9.4.1 Page 373 Programming Research Ltd.
Table 3.12 – continued from previous page
Msg. Id. Description
0434
[S] The identifier ’%s’ has not been declared.Ticket(s):23820 Typedef declarations where the source type is omitted (e.g.
’typedef my_new_type;’) will be intrepreted as having an implicittype int (e.g. ’typedef int my_new_type’). In these cases a num-ber of messages incorrectly reporting syntax errors, constrainterrors, undefined behaviour, etc., as well as ensuing duplicateoccurrences of message 2051, will no longer be generated.
0435
[C] The ’struct’/’union’ member ’%s’ does not exist.Ticket(s):22098 Message 0435 will no longer be incorrectly generated for desig-
nators of structure members under certain circumstances wherethe members are part of a nested structure and their designatorsare preceded by a chain of partially designated initialisers.
22180 QAC will no longer incorrectly generate messages 435, 693 and904 for initialisation of nested objects using designated initialis-ers under certain circumstances where preceding nested ob-jects are initialised with designated initialisers that do not reflectthe order in the declaration of the object type. See Full Supportfor Designated Initializers
0436
[C] Left operand of ’.’ must be a ’struct’ or ’union’ object.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
0478
[C] ’sizeof’ cannot be applied to an object of unknown size.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.
0622
[C] The identifier ’%s’ has been declared both with and without linkagein the same scope.Ticket(s):23820 Typedef declarations where the source type is omitted (e.g.
’typedef my_new_type;’) will be intrepreted as having an implicittype int (e.g. ’typedef int my_new_type’). In these cases a num-ber of messages incorrectly reporting syntax errors, constrainterrors, undefined behaviour, etc., as well as ensuing duplicateoccurrences of message 2051, will no longer be generated.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 374 Programming Research Ltd.
Table 3.12 – continued from previous page
Msg. Id. Description
0624
Function ’%s’ is declared using typedefs which are different to those ina previous declaration.Ticket(s):24198 QAC analysis will no longer abort with a SIGSEGV fault under
certain circumstances, which involve the definition of functionswith parameters of pointer or array type, whose pointed-to typeor element type is defined using a typedef, which in turn involvesan array of pointers to a type that is also defined using a typedef.
0631
[C] More than one declaration of ’%s’ (with no linkage).Ticket(s):23820 Typedef declarations where the source type is omitted (e.g.
’typedef my_new_type;’) will be intrepreted as having an implicittype int (e.g. ’typedef int my_new_type’). In these cases a num-ber of messages incorrectly reporting syntax errors, constrainterrors, undefined behaviour, etc., as well as ensuing duplicateoccurrences of message 2051, will no longer be generated.
0667
[U] ’%s’ is declared as a typedef and may not be redeclared as an objectat an inner scope without an explicit type specifier.Ticket(s):23820 Typedef declarations where the source type is omitted (e.g.
’typedef my_new_type;’) will be intrepreted as having an implicittype int (e.g. ’typedef int my_new_type’). In these cases a num-ber of messages incorrectly reporting syntax errors, constrainterrors, undefined behaviour, etc., as well as ensuing duplicateoccurrences of message 2051, will no longer be generated.
0671
[C] Initializer for object of arithmetic type is not of arithmetic type.Ticket(s):23547 The analysis of initialiser lists which contain array identifiers (to
initialise members of pointer type) will be properly carried out,so that subsequent expressions in the initialiser list will not beaffected by rogue false positives, for instance of messages 0671,0674, 0684, 0703, 3768, 3892 and 4461, or false negatives, forinstance of message 0673.
23615 False negatives and postives as a result Ticket 22180. See FullSupport for Designated Initializers.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 375 Programming Research Ltd.
Table 3.12 – continued from previous page
Msg. Id. Description
0673
[C] Initializer points to a more heavily qualified type.Ticket(s):23547 The analysis of initialiser lists which contain array identifiers (to
initialise members of pointer type) will be properly carried out,so that subsequent expressions in the initialiser list will not beaffected by rogue false positives, for instance of messages 0671,0674, 0684, 0703, 3768, 3892 and 4461, or false negatives, forinstance of message 0673.
0674
[C] Initializer for pointer is of incompatible type.Ticket(s):23547 The analysis of initialiser lists which contain array identifiers (to
initialise members of pointer type) will be properly carried out,so that subsequent expressions in the initialiser list will not beaffected by rogue false positives, for instance of messages 0671,0674, 0684, 0703, 3768, 3892 and 4461, or false negatives, forinstance of message 0673.
23615 False negatives and postives as a result Ticket 22180. See FullSupport for Designated Initializers.
0675
[C] Initializer is not of compatible ’struct’/’union’ type.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.
0682
[C] Initializer for object of a character type is a string literal.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.
0683
[C] Initializer for object of a character type is a wide string literal.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.
0684
[C] Too many initializers.Ticket(s):23547 The analysis of initialiser lists which contain array identifiers (to
initialise members of pointer type) will be properly carried out,so that subsequent expressions in the initialiser list will not beaffected by rogue false positives, for instance of messages 0671,0674, 0684, 0703, 3768, 3892 and 4461, or false negatives, forinstance of message 0673.
23615 False negatives and postives as a result Ticket 22180. See FullSupport for Designated Initializers.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 376 Programming Research Ltd.
Table 3.12 – continued from previous page
Msg. Id. Description
0685
[C] Initializer for any object with static storage duration must be a con-stant expression.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.
0686
Array has fewer initializers than its declared size. Default initialization isapplied to the remainder of the array elements.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.
0690
[C] String literal contains too many characters to initialize object.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.
0692
Union initializer is missing the optional {.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.
0693
Struct initializer is missing the optional {.Ticket(s):22180 QAC will no longer incorrectly generate messages 435, 693 and
904 for initialisation of nested objects using designated initialis-ers under certain circumstances where preceding nested ob-jects are initialised with designated initialisers that do not reflectthe order in the declaration of the object type. See Full Supportfor Designated Initializers
0694
Array initializer is missing the optional {.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.
0698
[C] String literal used to initialize an object of incompatible type.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.
0699
[C] String literal used to initialize a pointer of incompatible type.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.
0701
Argument for memory size does not refer to ’sizeof (%s)’.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 377 Programming Research Ltd.
Table 3.12 – continued from previous page
Msg. Id. Description
0702
Result of sizeof operator is not explicitly cast.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
0703
Structure has fewer initializers than its declared size. Default initializa-tion is applied to the remainder of the members.Ticket(s):23547 The analysis of initialiser lists which contain array identifiers (to
initialise members of pointer type) will be properly carried out,so that subsequent expressions in the initialiser list will not beaffected by rogue false positives, for instance of messages 0671,0674, 0684, 0703, 3768, 3892 and 4461, or false negatives, forinstance of message 0673.
23615 False negatives and postives as a result Ticket 22180. See FullSupport for Designated Initializers.
0753
String literal assigned to pointer which is not a ’pointer to const’.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.
0784
Identifier ’%s’ is also used as a macro name.Ticket(s):20272 Message locations have been improved as part of restructuring
to enable future use of a preprocessor common to both C andC++ analyzers.
0801
[C] The ’##’ operator may not be the first token in a macro replacementlist.Ticket(s):20272 Message locations have been improved as part of restructuring
to enable future use of a preprocessor common to both C andC++ analyzers.
24378 Messages 0801 and 0802 will be generated even if the macrohappens to be redefined.,0801,0802„„„
0802
[C] The ’##’ operator may not be the last token in a macro replacementlist.Ticket(s):20272 Message locations have been improved as part of restructuring
to enable future use of a preprocessor common to both C andC++ analyzers.
24378 Messages 0801 and 0802 will be generated even if the macrohappens to be redefined.,0801,0802„„„
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 378 Programming Research Ltd.
Table 3.12 – continued from previous page
Msg. Id. Description
0803
[C] The ’#’ operator may only appear before a macro parameter.Ticket(s):20272 Message locations have been improved as part of restructuring
to enable future use of a preprocessor common to both C andC++ analyzers.
0811
[C] The glue operator ’##’ may only appear in a ’#define’ preprocessingdirective.Ticket(s):24384 Message 0811 will no longer be incorrectly generated in certain
situations where a glue operator ’##’ is constructed during pre-processing and used on a further series of macro expansions,but it is neither applied nor ends up being part of the prepro-cessed source code.
0812
[C] Header name token ’<text>’ found outside ’#include’ preprocessingdirective.Ticket(s):20272 Message locations have been improved as part of restructuring
to enable future use of a preprocessor common to both C andC++ analyzers.
0824
[S] Unexpected ’#else’ or ’#elif’ directive found outside a ’#if’ block.Ticket(s):20272 Message locations have been improved as part of restructuring
to enable future use of a preprocessor common to both C andC++ analyzers.
0825
[S] Unexpected ’#endif’ found outside a ’#if’ block.Ticket(s):20272 Message locations have been improved as part of restructuring
to enable future use of a preprocessor common to both C andC++ analyzers.
0830
[E] Unrecognized text encountered after a preprocessing directive.Ticket(s):20272 Message locations have been improved as part of restructuring
to enable future use of a preprocessor common to both C andC++ analyzers.
0834
[C] Function-like macro ’%s()’ is being redefined as an object-likemacro.Ticket(s):20272 Message locations have been improved as part of restructuring
to enable future use of a preprocessor common to both C andC++ analyzers.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 379 Programming Research Ltd.
Table 3.12 – continued from previous page
Msg. Id. Description
0835
[C] Macro ’%s’ is being redefined with different parameter names.Ticket(s):20272 Message locations have been improved as part of restructuring
to enable future use of a preprocessor common to both C andC++ analyzers.
0838
File ’%1s’ has already been included directly from within file ’%2s’.Ticket(s):20327 The performance of QAC will be improved when a file is repeat-
edly included. This performance improvement will be negligiblein most situations, however it will be quite significant in certaincases of automatically generated code, where repeated inclu-sion is both intended and intensive. As part of this update, mes-sages 0838 and 0839 will be generated only once against theapplicable inclusion, even if the file has already been previouslyincluded multiple times.
0839
File ’%1s’ has already been included indirectly from within file ’%2s’.Ticket(s):20327 The performance of QAC will be improved when a file is repeat-
edly included. This performance improvement will be negligiblein most situations, however it will be quite significant in certaincases of automatically generated code, where repeated inclu-sion is both intended and intensive. As part of this update, mes-sages 0838 and 0839 will be generated only once against theapplicable inclusion, even if the file has already been previouslyincluded multiple times.
0841
Using ’#undef’.Ticket(s):24377 Multiple definitions of the same macro performed via configu-
ration options will be properly handled. As a result, messagebehaviour related to these macros may improve under certaincircumstances. For example, message 0841 will be generatedwhen a multiply defined macro is then used and undefined in thesource code.
0842
Using #define or #undef inside a function.Ticket(s):20272 Message locations have been improved as part of restructuring
to enable future use of a preprocessor common to both C andC++ analyzers.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 380 Programming Research Ltd.
Table 3.12 – continued from previous page
Msg. Id. Description
0844
[C] Macro ’%s’ is being redefined with a different replacement list.Ticket(s):20272 Message locations have been improved as part of restructuring
to enable future use of a preprocessor common to both C andC++ analyzers.
24400 A bug will be fixed, which causes in certain circumstances mes-sage 0844 to be generated with an incorrect reference for themacro identifier.
0845
[C] Object-like macro ’%s’ is being redefined as a function-like macro.Ticket(s):20272 Message locations have been improved as part of restructuring
to enable future use of a preprocessor common to both C andC++ analyzers.
0849
[S] Preprocessing directive appears in the middle of a line.Ticket(s):20272 Message locations have been improved as part of restructuring
to enable future use of a preprocessor common to both C andC++ analyzers.
0855
Preprocessing results in a sequence of tokens that has the form of apreprocessing directive.Ticket(s):20272 Message locations have been improved as part of restructuring
to enable future use of a preprocessor common to both C andC++ analyzers.
0857
[L] Number of macro definitions exceeds 1024 - program does not con-form strictly to ISO:C90.Ticket(s):23393 Messages 0380 and 0857 will be generated against the macro
definition in the main source file that causes the applicable ISOC limit to be exceeded. If instead that macro definition hap-pens to be located in an included header, then message 0380or 0857 will be generated against the ’#include’ directive in themain source file that leads to the inclusion of that macro defini-tion. Since messages 0380 and 0857 will no longer be incor-rectly generated at the non-existent line 0, it will be possible tosuppress them.
24389 Messages 0380 and 0857 will be generated when the macroidentifiers that are ’simultaneously’ defined exceeds the applica-ble limit. More specifically, an ’#undef’ preprocessing directiveapplied to a macro identifier which is defined at that point, willdecrease the running count of macro identifiers being comparedagainst the limits.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 381 Programming Research Ltd.
Table 3.12 – continued from previous page
Msg. Id. Description
0858
[L] Number of macro parameters exceeds 31 - program does not con-form strictly to ISO:C90.Ticket(s):20272 Message locations have been improved as part of restructuring
to enable future use of a preprocessor common to both C andC++ analyzers.
0859
[L] Number of arguments in macro call exceeds 31 - program does notconform strictly to ISO:C90.Ticket(s):24375 Message 0859 will no longer be incorrectly generated when a
function-like macro call contains exactly 31 arguments. Also,when the function-like macro call contains more than 31 argu-ments, message 0859 will be generated against the 32nd andnot the 31st argument.
0863
[S] ’#line’ encountered without a following line number.Ticket(s):20272 Message locations have been improved as part of restructuring
to enable future use of a preprocessor common to both C andC++ analyzers.
0864
[U] ’#line’ directive specifies line number which is not in the range 1 to32767.Ticket(s):20272 Message locations have been improved as part of restructuring
to enable future use of a preprocessor common to both C andC++ analyzers.
0865
[U] ’#line’ directive is badly formed.Ticket(s):20272 Message locations have been improved as part of restructuring
to enable future use of a preprocessor common to both C andC++ analyzers.
0866
[C] The string literal in a ’#line’ directive cannot be a ’wide string literal’.Ticket(s):20272 Message locations have been improved as part of restructuring
to enable future use of a preprocessor common to both C andC++ analyzers.
0867
[U] ’#line’ has not been followed by a line number.Ticket(s):20272 Message locations have been improved as part of restructuring
to enable future use of a preprocessor common to both C andC++ analyzers.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 382 Programming Research Ltd.
Table 3.12 – continued from previous page
Msg. Id. Description
0873
[C] Preprocessing token cannot be converted to an actual token.Ticket(s):20272 Message locations have been improved as part of restructuring
to enable future use of a preprocessor common to both C andC++ analyzers.
0874
[U] Character string literal and wide character string literal are adjacent.Ticket(s):20272 Message locations have been improved as part of restructuring
to enable future use of a preprocessor common to both C andC++ analyzers.
0875
[L] String literal exceeds 509 characters - program does not conformstrictly to ISO:C90.Ticket(s):20272 Message locations have been improved as part of restructuring
to enable future use of a preprocessor common to both C andC++ analyzers.
0878
Using wide character or string literals.Ticket(s):20272 Message locations have been improved as part of restructuring
to enable future use of a preprocessor common to both C andC++ analyzers.
0880
Using # and ## operators in the same macro definition.Ticket(s):20272 Message locations have been improved as part of restructuring
to enable future use of a preprocessor common to both C andC++ analyzers.
0881
Using multiple ## operators in the same macro definition.Ticket(s):20272 Message locations have been improved as part of restructuring
to enable future use of a preprocessor common to both C andC++ analyzers.
0883
Include file code is not protected against repeated inclusionTicket(s):20272 Message locations have been improved as part of restructuring
to enable future use of a preprocessor common to both C andC++ analyzers.
0884
Using multiple # operators in the same macro definition.Ticket(s):20272 Message locations have been improved as part of restructuring
to enable future use of a preprocessor common to both C andC++ analyzers.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 383 Programming Research Ltd.
Table 3.12 – continued from previous page
Msg. Id. Description
0890
#ifdef refers to a macro that has been #undef’d in a previous #if block.Ticket(s):20272 Message locations have been improved as part of restructuring
to enable future use of a preprocessor common to both C andC++ analyzers.
0891
#ifdef refers to a macro that has been #undef’d previously.Ticket(s):20272 Message locations have been improved as part of restructuring
to enable future use of a preprocessor common to both C andC++ analyzers.
0899
[E] Unrecognized preprocessing directive has been ignored - assumedto be a language extension.Ticket(s):20272 Message locations have been improved as part of restructuring
to enable future use of a preprocessor common to both C andC++ analyzers.
0904
[S] Invalid designator.Ticket(s):22180 QAC will no longer incorrectly generate messages 435, 693 and
904 for initialisation of nested objects using designated initialis-ers under certain circumstances where preceding nested ob-jects are initialised with designated initialisers that do not reflectthe order in the declaration of the object type. See Full Supportfor Designated Initializers
0911
Inserted ’%s’ token in an attempt to continue parsing.Ticket(s):23820 Typedef declarations where the source type is omitted (e.g.
’typedef my_new_type;’) will be intrepreted as having an implicittype int (e.g. ’typedef int my_new_type’). In these cases a num-ber of messages incorrectly reporting syntax errors, constrainterrors, undefined behaviour, etc., as well as ensuing duplicateoccurrences of message 2051, will no longer be generated.
0926
[S] Expected:%s.Ticket(s):23820 Typedef declarations where the source type is omitted (e.g.
’typedef my_new_type;’) will be intrepreted as having an implicittype int (e.g. ’typedef int my_new_type’). In these cases a num-ber of messages incorrectly reporting syntax errors, constrainterrors, undefined behaviour, etc., as well as ensuing duplicateoccurrences of message 2051, will no longer be generated.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 384 Programming Research Ltd.
Table 3.12 – continued from previous page
Msg. Id. Description
1002
[E] ’%s’ is not a legal identifier in ISO C.Ticket(s):20272 Message locations have been improved as part of restructuring
to enable future use of a preprocessor common to both C andC++ analyzers.
1003
[E] ’#%s’ is a language extension for in-line assembler. All statementslocated between #asm and #endasm will be ignored.Ticket(s):20272 Message locations have been improved as part of restructuring
to enable future use of a preprocessor common to both C andC++ analyzers.
1004
[S] ’#endasm’ found without matching ’#asm’ preprocessing directive.Ticket(s):20272 Message locations have been improved as part of restructuring
to enable future use of a preprocessor common to both C andC++ analyzers.
1008
[E] ’#%s’ is not a legal ISO C preprocessing directive.Ticket(s):20272 Message locations have been improved as part of restructuring
to enable future use of a preprocessor common to both C andC++ analyzers.
1018
[C99] Use of LL suffix.Ticket(s):20272 Message locations have been improved as part of restructuring
to enable future use of a preprocessor common to both C andC++ analyzers.
1021
[E] A statement expression is not supported in ISO C, and is treated asa language extension.Ticket(s):24398 Message 3459 will be generated instead of message 3412
whenever a macro replacement list contains a do-while-zerostatement, even its loop body is a single statement (not enclosedin curly brackets). Message 1021 will be generated instead ofmessage 3412 when a macro replacement list contains a state-ment expression (note that statement expressions are a GCClanguage extension).
1031
[C99] Initializer for ’struct’, ’union’ or array type is not a constant expres-sion.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 385 Programming Research Ltd.
Table 3.12 – continued from previous page
Msg. Id. Description
1036
[E] Comma before ## ignored in expansion of variadic macro. This is alanguage extension.Ticket(s):20272 Message locations have been improved as part of restructuring
to enable future use of a preprocessor common to both C andC++ analyzers.
1037
[E] Arrays of length zero are a language extension.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.
1042
[E] Using I64 or UI64 as an integer constant suffix. This is a languageextension.Ticket(s):20272 Message locations have been improved as part of restructuring
to enable future use of a preprocessor common to both C andC++ analyzers.
1045
[E] Use of the #include_next preprocessing directive is a language ex-tension.Ticket(s):20272 Message locations have been improved as part of restructuring
to enable future use of a preprocessor common to both C andC++ analyzers.
1053
[C99] Designators have been used in this initialization list.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.
1056
[C99] The keyword ’_Bool’ has been used.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.
1073
[C99] Taking sizeof a struct with a flexible array member while addingan array size based on the wrong element type.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
1256
An integer constant suffixed with L is being converted to type signed orunsigned long long on assignment.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializerscontinued on next page
RELEASE NOTES : QA·C 9.4.1 Page 386 Programming Research Ltd.
Table 3.12 – continued from previous page
Msg. Id. Description
1257
An integer constant suffixed with L or LL is being converted to a type oflower rank on assignment.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
1264
A suffixed floating constant is being converted to a different floating typeon assignment.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
1265
An unsuffixed floating constant is being converted to a different floatingtype on assignment.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
1266
A floating constant is being converted to integral type on assignment.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
1276
An integer constant is being converted to floating type on assignment.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
1290
An integer constant of ’essentially signed’ type is being converted tounsigned type on assignment.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
1291
An integer constant of ’essentially unsigned’ type is being converted tosigned type on assignment.Ticket(s):23581 When a struct/union/array is initialised with an initialiser list,
messages 1291, 1398 and 3421 will be generated against theinitialiser’s expression they refer to, instead of the subsequenttoken (comma or curly bracket).
1292
An integer constant of ’essentially signed’ type is being converted totype char on assignment.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializerscontinued on next page
RELEASE NOTES : QA·C 9.4.1 Page 387 Programming Research Ltd.
Table 3.12 – continued from previous page
Msg. Id. Description
1293
An integer constant of ’essentially unsigned’ type is being converted totype char on assignment.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
1294
An integer constant of ’essentially signed’ type is being converted totype _Bool on assignment.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
1295
An integer constant of ’essentially unsigned’ type is being converted totype _Bool on assignment.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
1296
An integer constant of ’essentially signed’ type is being converted toenum type on assignment.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
1297
An integer constant of ’essentially unsigned’ type is being converted toenum type on assignment.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
1298
An integer constant of ’essentially signed’ type is being converted tofloating type on assignment.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
1299
An integer constant of ’essentially unsigned’ type is being converted tofloating type on assignment.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
1312
The array being initialized is not large enough to hold a terminating nullbyte for the string initializer.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializerscontinued on next page
RELEASE NOTES : QA·C 9.4.1 Page 388 Programming Research Ltd.
Table 3.12 – continued from previous page
Msg. Id. Description
1317
Value of constant expression is not in the enum type to which it is beingconverted.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.
1327
The macro __STDC__ has been used. It may not be present in a C++environment.Ticket(s):20272 Message locations have been improved as part of restructuring
to enable future use of a preprocessor common to both C andC++ analyzers.
1334
The parameter identifiers in the prototypes of these functions/functionpointers are different.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
1397
Array element ’%s’ has already been initialized.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
1398
Structure member ’%s’ has already been initialized.Ticket(s):23581 When a struct/union/array is initialised with an initialiser list,
messages 1291, 1398 and 3421 will be generated against theinitialiser’s expression they refer to, instead of the subsequenttoken (comma or curly bracket).
1399
A union member has already been initialized.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
1402
An enum constant is being assigned to an object of a different enumtype.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
1412
A constant expression of non-enum type is being assigned to an objectof enum type.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializerscontinued on next page
RELEASE NOTES : QA·C 9.4.1 Page 389 Programming Research Ltd.
Table 3.12 – continued from previous page
Msg. Id. Description
1422
An enum object is being assigned to an object of a different enum type.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
1432
An enum object is being assigned to an object of non-enum type.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
1442
A non-constant expression of non-enum type is being assigned to anobject of enum type.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
1487
Comparing the representations of objects of different types.Ticket(s):23471 A new message 1496 will be generated when the destination
and/or source argument of memcpy or memmove is a pointer tovoid. Otherwise, a new message 1495 will be generated whenthe destination and source arguments of memcpy or memmoveare not pointers to qualified or unqualified versions of compat-ible types. Existing message 1487 will also be extended, sothat array arguments to memcmp will be handled as pointer ar-guments. Consequently message 1487 will no longer be incor-rectly generated in certain situations involving array parameters.
23780 Message 1487 will no longer be incorrectly generated in caseswhere the arguments of library function ’memcmp’ refer to ob-jects that are declared with a storage class specifier (e.g. ’ex-tern’, ’static’, etc). Note that message 1487 contributes to thethe enforcement of MISRA C:2012 Amendment 1 Rule 21.15.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 390 Programming Research Ltd.
Table 3.12 – continued from previous page
Msg. Id. Description
1492
The result of library function ’%s’ is used to modify the referenced ob-ject.Ticket(s):23788 A new message 1498 will be generated to report situations
where a string referenced by a member of an object of typestruct lconv is directly modified. Message 1498 will be gener-ated irrespective of whether the object is obtained from a callto library function ’localeconv’ in <locale.h>. Members of structlconv that refer to strings are of type ’char *’, however theyshould be treated as being of type ’const char *’, to avoid un-defined behaviour. Message 1498 contributes to enforce this re-striction, and therefore contributes to the enforcement of MISRAC:2012 Amendment 1 Rule 21.19. As a consequence of this up-grade, the behaviour of message 1492 will also be refined andextended: message 1492 will no longer be generated againstmodification of struct lconv strings, but it will still be generatedin all other circumstances, and not only when direct modifica-tions to library objects are made via simple assignment, but alsowhen they are made via composite assignments and prefix/post-fix increment/decrement operators. As part of this upgrade, thedefinition of struct lconv in PRQA’s default header <locale.h>will also be extended to comply with the C99 and C11 stan-dards, by adding members int_p_cs_precedes, int_n_cs_pre-cedes, int_p_sep_by_space, int_n_sep_by_space, int_p_sign_-posn and int_n_sign_posn.
1570
Called from here.Ticket(s):21451 Location of sub-messages related to Dataflow inter-function
analysis has been improved to point to the location where vari-ables are set rather than the function parameter.
1575
Variable ’%1s’ previously seen here. (Specimen value: ’%2s’).Ticket(s):21451 Location of sub-messages related to Dataflow inter-function
analysis has been improved to point to the location where vari-ables are set rather than the function parameter.
1579
Referenced here.Ticket(s):21451 Location of sub-messages related to Dataflow inter-function
analysis has been improved to point to the location where vari-ables are set rather than the function parameter.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 391 Programming Research Ltd.
Table 3.12 – continued from previous page
Msg. Id. Description
1580
Function ’%1s’ calls ’%2s’ here.Ticket(s):21451 Location of sub-messages related to Dataflow inter-function
analysis has been improved to point to the location where vari-ables are set rather than the function parameter.
1582
Previously seen here.Ticket(s):21451 Location of sub-messages related to Dataflow inter-function
analysis has been improved to point to the location where vari-ables are set rather than the function parameter.
1586
Previously set here.Ticket(s):21451 Location of sub-messages related to Dataflow inter-function
analysis has been improved to point to the location where vari-ables are set rather than the function parameter.
1590
Offending operand.Ticket(s):21451 Location of sub-messages related to Dataflow inter-function
analysis has been improved to point to the location where vari-ables are set rather than the function parameter.
1592
’%1s’ declared in %2s ’%3s’.Ticket(s):21451 Location of sub-messages related to Dataflow inter-function
analysis has been improved to point to the location where vari-ables are set rather than the function parameter.
1594
’%1s’ declared here.Ticket(s):21451 Location of sub-messages related to Dataflow inter-function
analysis has been improved to point to the location where vari-ables are set rather than the function parameter.
1690
Null preprocessing directive used.Ticket(s):20272 Message locations have been improved as part of restructuring
to enable future use of a preprocessor common to both C andC++ analyzers.
24379 Message 1691 will be correctly generated and message 1690will no longer be incorrectly generated in certain situations thatmay involve for instance excluded section of code being on #elifor #else branches, of the null preprocessing directive not beingfollowed by a comment.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 392 Programming Research Ltd.
Table 3.12 – continued from previous page
Msg. Id. Description
1691
Null preprocessing directive used in an excluded section of code.Ticket(s):20272 Message locations have been improved as part of restructuring
to enable future use of a preprocessor common to both C andC++ analyzers.
24379 Message 1691 will be correctly generated and message 1690will no longer be incorrectly generated in certain situations thatmay involve for instance excluded section of code being on #elifor #else branches, of the null preprocessing directive not beingfollowed by a comment.
2010
The function ’%s()’ must not be called.Ticket(s):23579 When the warncall option is used to enable the reporting of calls
to the ’exit’ function, QAC will no longer generate default mes-sage 2010 (or any other alternative message specified by thewarncall option) against statement expressions that do not con-tain calls to the ’exit’ function. In these situations M3CM will alsono longer incorrectly generate message 5126 to report violationsof MISRA C:2012 Rule 21.8. Note that statement expressionsare a GCC language extension, and that function ’exit’ is definedin the standard library header <stdlib.h>.
2051
The ’int’ type specifier has been omitted from an object declaration.Ticket(s):23820 Typedef declarations where the source type is omitted (e.g.
’typedef my_new_type;’) will be intrepreted as having an implicittype int (e.g. ’typedef int my_new_type’). In these cases a num-ber of messages incorrectly reporting syntax errors, constrainterrors, undefined behaviour, etc., as well as ensuing duplicateoccurrences of message 2051, will no longer be generated.
2201
This indentation is not consistent with previous indentation in this file.Ticket(s):24393 Message 2201 will be generated even if the first token of the line
with the inconsistent indentation happens to be a macro thatexpands to nothing. Note that the false positives and many ofthe false negatives of message 2201 in QAC 9.1.0 have beencleared in QAC 9.1.1 through ticket 23664 and that this ticketwill clear a small number of remaining false negatives.,2201„„„,
2211
’%s’ is not aligned with the previously declared identifier.Ticket(s):20272 Message locations have been improved as part of restructuring
to enable future use of a preprocessor common to both C andC++ analyzers.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 393 Programming Research Ltd.
Table 3.12 – continued from previous page
Msg. Id. Description
2500
Call to ’%s’ is not immediately preceded by the zeroing of ’errno’.Ticket(s):23789 A new configuration option ’-errnosettingfunction’ or ’-esf’, which
is followed by the identifier of a function, will be recognised. Thespecified function will be handled as a function that returns errorinformation using ’errno’. Note that according to the C standardthe following functions are errno setting functions, and QAC willby default handle them as such: ftell, fgetpos, fsetpos, fgetwc,fputwc, strtoimax, strtoumax, strtol, strtoul, strtoll, strtoull, strtof,strtod, strtold wcstoimax, wcstoumax, wcstol, wcstoul, wcstoll,wcstoull, wcstof, wcstod, wcstold, wcrtomb, wcsrtombs, mbr-towc. The configuration option is intended to identify any ad-ditional functions that are also to be considered errno setting.This option will affect the behaviour of messages 2500, 2501,2502 and 2503 and will contribute to the enforcement of MISRAC:2012 Amendment 1 Rules 22.8, 22.9 and 22.10.
23793 Messages 2500, 2501, 2502 and 2503 will be extended to en-force the intended sequence of actions in the handling of errnoalso in situations where e.g. those actions span across (1) an’if’, ’while’ or ’do while’ statement whose body is not enclosed incurly brackets, or (2) a conditional operator.
2501
Call to ’%s’ is not immediately followed by the testing of ’errno’.Ticket(s):23789 A new configuration option ’-errnosettingfunction’ or ’-esf’, which
is followed by the identifier of a function, will be recognised. Thespecified function will be handled as a function that returns errorinformation using ’errno’. Note that according to the C standardthe following functions are errno setting functions, and QAC willby default handle them as such: ftell, fgetpos, fsetpos, fgetwc,fputwc, strtoimax, strtoumax, strtol, strtoul, strtoll, strtoull, strtof,strtod, strtold wcstoimax, wcstoumax, wcstol, wcstoul, wcstoll,wcstoull, wcstof, wcstod, wcstold, wcrtomb, wcsrtombs, mbr-towc. The configuration option is intended to identify any ad-ditional functions that are also to be considered errno setting.This option will affect the behaviour of messages 2500, 2501,2502 and 2503 and will contribute to the enforcement of MISRAC:2012 Amendment 1 Rules 22.8, 22.9 and 22.10.
23793 Messages 2500, 2501, 2502 and 2503 will be extended to en-force the intended sequence of actions in the handling of errnoalso in situations where e.g. those actions span across (1) an’if’, ’while’ or ’do while’ statement whose body is not enclosed incurly brackets, or (2) a conditional operator.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 394 Programming Research Ltd.
Table 3.12 – continued from previous page
Msg. Id. Description
2502
Zeroing of ’errno’ is not immediately followed by a call to an ’errno’setting function.Ticket(s):23789 A new configuration option ’-errnosettingfunction’ or ’-esf’, which
is followed by the identifier of a function, will be recognised. Thespecified function will be handled as a function that returns errorinformation using ’errno’. Note that according to the C standardthe following functions are errno setting functions, and QAC willby default handle them as such: ftell, fgetpos, fsetpos, fgetwc,fputwc, strtoimax, strtoumax, strtol, strtoul, strtoll, strtoull, strtof,strtod, strtold wcstoimax, wcstoumax, wcstol, wcstoul, wcstoll,wcstoull, wcstof, wcstod, wcstold, wcrtomb, wcsrtombs, mbr-towc. The configuration option is intended to identify any ad-ditional functions that are also to be considered errno setting.This option will affect the behaviour of messages 2500, 2501,2502 and 2503 and will contribute to the enforcement of MISRAC:2012 Amendment 1 Rules 22.8, 22.9 and 22.10.
23793 Messages 2500, 2501, 2502 and 2503 will be extended to en-force the intended sequence of actions in the handling of errnoalso in situations where e.g. those actions span across (1) an’if’, ’while’ or ’do while’ statement whose body is not enclosed incurly brackets, or (2) a conditional operator.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 395 Programming Research Ltd.
Table 3.12 – continued from previous page
Msg. Id. Description
2503
Testing of ’errno’ is not immediately preceded by a call to an ’errno’setting function.Ticket(s):23789 A new configuration option ’-errnosettingfunction’ or ’-esf’, which
is followed by the identifier of a function, will be recognised. Thespecified function will be handled as a function that returns errorinformation using ’errno’. Note that according to the C standardthe following functions are errno setting functions, and QAC willby default handle them as such: ftell, fgetpos, fsetpos, fgetwc,fputwc, strtoimax, strtoumax, strtol, strtoul, strtoll, strtoull, strtof,strtod, strtold wcstoimax, wcstoumax, wcstol, wcstoul, wcstoll,wcstoull, wcstof, wcstod, wcstold, wcrtomb, wcsrtombs, mbr-towc. The configuration option is intended to identify any ad-ditional functions that are also to be considered errno setting.This option will affect the behaviour of messages 2500, 2501,2502 and 2503 and will contribute to the enforcement of MISRAC:2012 Amendment 1 Rules 22.8, 22.9 and 22.10.
23793 Messages 2500, 2501, 2502 and 2503 will be extended to en-force the intended sequence of actions in the handling of errnoalso in situations where e.g. those actions span across (1) an’if’, ’while’ or ’do while’ statement whose body is not enclosed incurly brackets, or (2) a conditional operator.
2755
Analysis time of function ’%1s’ has exceeded the configured maximum:’%2sms’. Dataflow analysis continues with the next function.Ticket(s):24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2758
Query has exceeded the configured maximum: ’%1sms’. Dataflowanalysis continues with the next query.Ticket(s):24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 396 Programming Research Ltd.
Table 3.12 – continued from previous page
Msg. Id. Description
2761
Definite: Subtracting pointers that address different objects.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2762
Apparent: Subtracting pointers that address different objects.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2763
Suspicious: Subtracting pointers that address different objects.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2766
Definite: Subtracting pointers that address different members of thesame object.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 397 Programming Research Ltd.
Table 3.12 – continued from previous page
Msg. Id. Description
2767
Apparent: Subtracting pointers that address different members of thesame object.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2768
Suspicious: Subtracting pointers that address different members of thesame object.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2771
Definite: Comparing pointers that address different objects.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2772
Apparent: Comparing pointers that address different objects.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 398 Programming Research Ltd.
Table 3.12 – continued from previous page
Msg. Id. Description
2773
Suspicious: Comparing pointers that address different objects.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2776
Definite: Copy between overlapping objects.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2777
Apparent: Copy between overlapping objects.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2778
Suspicious: Copy between overlapping objects.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 399 Programming Research Ltd.
Table 3.12 – continued from previous page
Msg. Id. Description
2781
Definite: Function argument has fewer elements than the array dimen-sion in the parameter declaration for non-inlined call.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2782
Apparent: Function argument has fewer elements than the array dimen-sion in the parameter declaration for non-inlined call.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2783
Suspicious: Function argument has fewer elements than the array di-mension in the parameter declaration for non-inlined call.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2784
Possible: Function argument has fewer elements than the array dimen-sion in the parameter declaration for non-inlined call.Ticket(s):24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 400 Programming Research Ltd.
Table 3.12 – continued from previous page
Msg. Id. Description
2791
Definite: Right hand operand of shift operator is negative or too large.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2792
Apparent: Right hand operand of shift operator is negative or too large.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2793
Suspicious: Right hand operand of shift operator is negative or toolarge.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 401 Programming Research Ltd.
Table 3.12 – continued from previous page
Msg. Id. Description
2796
Definite: Calling a standard library character handling function with aninvalid character value.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.23794 Messages 2796, 2797, 2798 and 2799 will no longer be gen-
erated for wide character handling functions. New messages2806, 2807, 2808 and 2809 have been added to cover thesewide character functions in <wctype.h>.
23796 Messages 2796, 2797, 2798 and 2799 will no longer be gen-erated for character input/output functions in <stdio.h> and<wchar.h>. New messages 2816, 2817, 2818 and 2819 havebeen added to cover these character input/output functions.
24152 The performance of Dataflow is improved for cases where anal-ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2797
Apparent: Calling a standard library character handling function with aninvalid character value.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.23794 Messages 2796, 2797, 2798 and 2799 will no longer be gen-
erated for wide character handling functions. New messages2806, 2807, 2808 and 2809 have been added to cover thesewide character functions in <wctype.h>.
23796 Messages 2796, 2797, 2798 and 2799 will no longer be gen-erated for character input/output functions in <stdio.h> and<wchar.h>. New messages 2816, 2817, 2818 and 2819 havebeen added to cover these character input/output functions.
24152 The performance of Dataflow is improved for cases where anal-ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 402 Programming Research Ltd.
Table 3.12 – continued from previous page
Msg. Id. Description
2798
Suspicious: Calling a standard library character handling function withan invalid character value.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.23794 Messages 2796, 2797, 2798 and 2799 will no longer be gen-
erated for wide character handling functions. New messages2806, 2807, 2808 and 2809 have been added to cover thesewide character functions in <wctype.h>.
23796 Messages 2796, 2797, 2798 and 2799 will no longer be gen-erated for character input/output functions in <stdio.h> and<wchar.h>. New messages 2816, 2817, 2818 and 2819 havebeen added to cover these character input/output functions.
24152 The performance of Dataflow is improved for cases where anal-ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2799
Possible: Calling a standard library character handling function with aninvalid character value.Ticket(s):23794 Messages 2796, 2797, 2798 and 2799 will no longer be gen-
erated for wide character handling functions. New messages2806, 2807, 2808 and 2809 have been added to cover thesewide character functions in <wctype.h>.
23796 Messages 2796, 2797, 2798 and 2799 will no longer be gen-erated for character input/output functions in <stdio.h> and<wchar.h>. New messages 2816, 2817, 2818 and 2819 havebeen added to cover these character input/output functions.
24152 The performance of Dataflow is improved for cases where anal-ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 403 Programming Research Ltd.
Table 3.12 – continued from previous page
Msg. Id. Description
2801
Definite: Overflow in signed arithmetic operation.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2802
Apparent: Overflow in signed arithmetic operation.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2803
Suspicious: Overflow in signed arithmetic operation.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2811
Definite: Dereference of NULL pointer.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 404 Programming Research Ltd.
Table 3.12 – continued from previous page
Msg. Id. Description
2812
Apparent: Dereference of NULL pointer.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2813
Suspicious: Dereference of NULL pointer.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2814
Possible: Dereference of NULL pointer.Ticket(s):24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2821
Definite: Arithmetic operation on NULL pointer.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 405 Programming Research Ltd.
Table 3.12 – continued from previous page
Msg. Id. Description
2822
Apparent: Arithmetic operation on NULL pointer.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2823
Suspicious: Arithmetic operation on NULL pointer.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2824
Possible: Arithmetic operation on NULL pointer.Ticket(s):24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2831
Definite: Division by zero.Ticket(s):20341 Fixed false negatives for Dataflow messages for cases involving
use of C99 non-constant initializers for struct/union/array typeobjects.
22653 Fixed false negative for message 2831 on structure members foraliased structures when passed as argument to a function.
23615 False negatives and postives as a result Ticket 22180. See FullSupport for Designated Initializers.
24152 The performance of Dataflow is improved for cases where anal-ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 406 Programming Research Ltd.
Table 3.12 – continued from previous page
Msg. Id. Description
2832
Apparent: Division by zero.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2833
Suspicious: Division by zero.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2834
Possible: Division by zero.Ticket(s):24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2841
Definite: Dereference of an invalid pointer value.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 407 Programming Research Ltd.
Table 3.12 – continued from previous page
Msg. Id. Description
2842
Apparent: Dereference of an invalid pointer value.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2843
Suspicious: Dereference of an invalid pointer value.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2844
Possible: Dereference of an invalid pointer value.Ticket(s):24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2846
Definite: Maximum number of characters to be written is larger than thetarget buffer size.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 408 Programming Research Ltd.
Table 3.12 – continued from previous page
Msg. Id. Description
2847
Apparent: Maximum number of characters to be written is larger thanthe target buffer size.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2848
Suspicious: Maximum number of characters to be written is larger thanthe target buffer size.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2849
Possible: Maximum number of characters to be written is larger thanthe target buffer size.Ticket(s):24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2850
Constant: Implicit conversion to a signed integer type of insufficientsize.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
2851
Definite: Implicit conversion to a signed integer type of insufficient size.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 409 Programming Research Ltd.
Table 3.12 – continued from previous page
Msg. Id. Description
2852
Apparent: Implicit conversion to a signed integer type of insufficientsize.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2853
Suspicious: Implicit conversion to a signed integer type of insufficientsize.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2855
Constant: Casting to a signed integer type of insufficient size.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
2856
Definite: Casting to a signed integer type of insufficient size.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2857
Apparent: Casting to a signed integer type of insufficient size.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 410 Programming Research Ltd.
Table 3.12 – continued from previous page
Msg. Id. Description
2858
Suspicious: Casting to a signed integer type of insufficient size.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2861
Definite: Implementation-defined value resulting from left shift operationon expression of signed type.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2862
Apparent: Implementation-defined value resulting from left shift opera-tion on expression of signed type.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2863
Suspicious: Implementation-defined value resulting from left shift oper-ation on expression of signed type.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 411 Programming Research Ltd.
Table 3.12 – continued from previous page
Msg. Id. Description
2870
Infinite loop construct with constant control expression.Ticket(s):24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2871
Infinite loop identified.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2872
This loop, if entered, will never terminate.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2877
This loop will never be executed more than once.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 412 Programming Research Ltd.
Table 3.12 – continued from previous page
Msg. Id. Description
2880
This code is unreachable.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2881
The code in this ’default’ clause is unreachable.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2882
This ’switch’ statement will bypass the initialization of local variables.Ticket(s):24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2883
This ’goto’ statement will always bypass the initialization of local vari-ables.Ticket(s):24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2887
Function ’main’ ends with an implicit ’return’ statement.Ticket(s):24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 413 Programming Research Ltd.
Table 3.12 – continued from previous page
Msg. Id. Description
2888
This function has been declared with a non-void ’return’ type but endswith an implicit ’return ;’ statement.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2889
This function has more than one ’return’ path.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2890
Constant: Negative value implicitly converted to an unsigned type.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
2891
Definite: Negative value implicitly converted to an unsigned type.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2892
Apparent: Negative value implicitly converted to an unsigned type.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 414 Programming Research Ltd.
Table 3.12 – continued from previous page
Msg. Id. Description
2893
Suspicious: Negative value implicitly converted to an unsigned type.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2895
Constant: Negative value cast to an unsigned type.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
2896
Definite: Negative value cast to an unsigned type.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2897
Apparent: Negative value cast to an unsigned type.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2898
Suspicious: Negative value cast to an unsigned type.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 415 Programming Research Ltd.
Table 3.12 – continued from previous page
Msg. Id. Description
2900
Constant: Positive integer value truncated by implicit conversion to asmaller unsigned type.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
2901
Definite: Positive integer value truncated by implicit conversion to asmaller unsigned type.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2902
Apparent: Positive integer value truncated by implicit conversion to asmaller unsigned type.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2903
Suspicious: Positive integer value truncated by implicit conversion to asmaller unsigned type.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2905
Constant: Positive integer value truncated by cast to a smaller unsignedtype.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializerscontinued on next page
RELEASE NOTES : QA·C 9.4.1 Page 416 Programming Research Ltd.
Table 3.12 – continued from previous page
Msg. Id. Description
2906
Definite: Positive integer value truncated by cast to a smaller unsignedtype.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2907
Apparent: Positive integer value truncated by cast to a smaller unsignedtype.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2908
Suspicious: Positive integer value truncated by cast to a smaller un-signed type.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2911
Definite: Wraparound in unsigned arithmetic operation.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 417 Programming Research Ltd.
Table 3.12 – continued from previous page
Msg. Id. Description
2912
Apparent: Wraparound in unsigned arithmetic operation.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2913
Suspicious: Wraparound in unsigned arithmetic operation.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2921
Definite: Left shift operation on expression of unsigned type results inloss of high order bits.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2922
Apparent: Left shift operation on expression of unsigned type results inloss of high order bits.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 418 Programming Research Ltd.
Table 3.12 – continued from previous page
Msg. Id. Description
2923
Suspicious: Left shift operation on expression of unsigned type resultsin loss of high order bits.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2931
Definite: Computing an invalid pointer value.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2932
Apparent: Computing an invalid pointer value.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2933
Suspicious: Computing an invalid pointer value.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 419 Programming Research Ltd.
Table 3.12 – continued from previous page
Msg. Id. Description
2934
Possible: Computing an invalid pointer value.Ticket(s):24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2940
Constant: Result of implicit conversion is only representable in a two’scomplement implementation.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
2941
Definite: Result of implicit conversion is only representable in a two’scomplement implementation.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2942
Apparent: Result of implicit conversion is only representable in a two’scomplement implementation.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2943
Suspicious: Result of implicit conversion is only representable in a two’scomplement implementation.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 420 Programming Research Ltd.
Table 3.12 – continued from previous page
Msg. Id. Description
2945
Constant: Result of cast is only representable in a two’s complementimplementation.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
2946
Definite: Result of cast is only representable in a two’s complementimplementation.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2947
Apparent: Result of cast is only representable in a two’s complementimplementation.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2948
Suspicious: Result of cast is only representable in a two’s complementimplementation.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 421 Programming Research Ltd.
Table 3.12 – continued from previous page
Msg. Id. Description
2951
Definite: Negative value used in array subscript or pointer arithmeticoperation.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2952
Apparent: Negative value used in array subscript or pointer arithmeticoperation.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2953
Suspicious: Negative value used in array subscript or pointer arithmeticoperation.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2956
Definite: Using object ’%s’ with tainted value.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 422 Programming Research Ltd.
Table 3.12 – continued from previous page
Msg. Id. Description
2959
Possible: Using object ’%s’ with tainted value.Ticket(s):24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2961
Definite: Using value of uninitialized automatic object ’%s’.Ticket(s):21192 Fixed false negatives for checking of unset variables for cases
where an uninitialized variable is used subsequently to beingpassed by reference to a function.
22873 Fixed false positive for message 2961 for cases when structureis passed as argument to a function with void pointer parameterand initialised within the function.
23458 Dataflow modelling of pointers and members of structures/u-nions has been improved in order to address false positives fora number of messages.
23576 QAC will now correctly handle constructs involving both gccstatement expressions and initialisers. See also ticket 24111.
23615 False negatives and postives as a result Ticket 22180. See FullSupport for Designated Initializers.
24111 Fixed false positive for message 2961 for constructs involvingboth gcc statement expressions and initialisers.
24152 The performance of Dataflow is improved for cases where anal-ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 423 Programming Research Ltd.
Table 3.12 – continued from previous page
Msg. Id. Description
2962
Apparent: Using value of uninitialized automatic object ’%s’.Ticket(s):21192 Fixed false negatives for checking of unset variables for cases
where an uninitialized variable is used subsequently to beingpassed by reference to a function.
23458 Dataflow modelling of pointers and members of structures/u-nions has been improved in order to address false positives fora number of messages.
23615 False negatives and postives as a result Ticket 22180. See FullSupport for Designated Initializers.
24152 The performance of Dataflow is improved for cases where anal-ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2963
Suspicious: Using value of uninitialized automatic object ’%s’.Ticket(s):23458 Dataflow modelling of pointers and members of structures/u-
nions has been improved in order to address false positives fora number of messages.
23615 False negatives and postives as a result Ticket 22180. See FullSupport for Designated Initializers.
24152 The performance of Dataflow is improved for cases where anal-ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2966
Definite: Some members of object ’%s’ are uninitialized.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 424 Programming Research Ltd.
Table 3.12 – continued from previous page
Msg. Id. Description
2967
Apparent: Some members of object ’%s’ are uninitialized.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2968
Suspicious: Some members of object ’%s’ are uninitialized.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2971
Definite: Passing address of uninitialized object ’%s’ to a function pa-rameter declared as a pointer to const.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.23912 Fixed false negative for message 2971 when the address of a
struct within a union is passed as an argument to a function forwhich the parameter is declared as a pointer to const.
24152 The performance of Dataflow is improved for cases where anal-ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2972
Apparent: Passing address of uninitialized object ’%s’ to a function pa-rameter declared as a pointer to const.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 425 Programming Research Ltd.
Table 3.12 – continued from previous page
Msg. Id. Description
2973
Suspicious: Passing address of uninitialized object ’%s’ to a functionparameter declared as a pointer to const.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2976
Definite: Passing address of partially initialized object ’%s’ to a functionparameter declared as a pointer to const.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2977
Apparent: Passing address of partially initialized object ’%s’ to a func-tion parameter declared as a pointer to const.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2978
Suspicious: Passing address of partially initialized object ’%s’ to a func-tion parameter declared as a pointer to const.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 426 Programming Research Ltd.
Table 3.12 – continued from previous page
Msg. Id. Description
2980
The value of this function parameter is never used before being modi-fied.Ticket(s):24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2981
This initialization is redundant. The value of this object is never usedbefore being modified.Ticket(s):24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2982
This assignment is redundant. The value of this object is never usedbefore being modified.Ticket(s):24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2983
This assignment is redundant. The value of this object is never subse-quently used.Ticket(s):22230 QAC will no longer incorrectly generate messages that relate to
objects not being used when those objects are actually used toinitialise members of structures/unions or elements of arrays.
24152 The performance of Dataflow is improved for cases where anal-ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 427 Programming Research Ltd.
Table 3.12 – continued from previous page
Msg. Id. Description
2984
This operation is redundant. The value of the result is always ’%1s’.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2985
This operation is redundant. The value of the result is always that of theleft-hand operand.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2986
This operation is redundant. The value of the result is always that of theright-hand operand.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2990
The value of this loop controlling expression is always ’true’.Ticket(s):23561 Fixed incorrect computation of address of structures that contain
a pointer to themselves.23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 428 Programming Research Ltd.
Table 3.12 – continued from previous page
Msg. Id. Description
2991
The value of this ’if’ controlling expression is always ’true’.Ticket(s):23561 Fixed incorrect computation of address of structures that contain
a pointer to themselves.23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2992
The value of this ’if’ controlling expression is always ’false’.Ticket(s):23561 Fixed incorrect computation of address of structures that contain
a pointer to themselves.23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2993
The value of this ’do - while’ loop controlling expression is always ’false’.The loop will only be executed once.Ticket(s):23561 Fixed incorrect computation of address of structures that contain
a pointer to themselves.23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 429 Programming Research Ltd.
Table 3.12 – continued from previous page
Msg. Id. Description
2994
The value of this ’while’ or ’for’ loop controlling expression is always’false’. The loop will not be entered.Ticket(s):23561 Fixed incorrect computation of address of structures that contain
a pointer to themselves.23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2995
The result of this logical operation is always ’true’.Ticket(s):23561 Fixed incorrect computation of address of structures that contain
a pointer to themselves.23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
2996
The result of this logical operation is always ’false’.Ticket(s):23561 Fixed incorrect computation of address of structures that contain
a pointer to themselves.23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.24152 The performance of Dataflow is improved for cases where anal-
ysis of header functions and inter-function analysis is enabledand the headers being analysed contain inline functions that callother functions. The syntax of the -po df::analyse_header_func-tions option has been changed, see Header Function Analysis
3003
This character constant is being interpreted as a NULL pointer con-stant.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializerscontinued on next page
RELEASE NOTES : QA·C 9.4.1 Page 430 Programming Research Ltd.
Table 3.12 – continued from previous page
Msg. Id. Description
3004
This integral constant expression is being interpreted as a NULL pointerconstant.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.
3106
This preprocessing directive has been ignored because it lies within a#pragma block. #pragma ’%s’ expected.Ticket(s):20272 Message locations have been improved as part of restructuring
to enable future use of a preprocessor common to both C andC++ analyzers.
3138
Null statement is located close to other code or comments.Ticket(s):24397 Tokens ignored using the _ignore*/_munch* annotations will be
considered for the purposes of layout checking, in particularwhen examining a null statement to see if it is obscured by texton the same line. In these circumstances any of message 3138,3139 and 3141 will be generated instead of message 3140.
3139
Null statement is obscured by code or comment on the same line.Ticket(s):24397 Tokens ignored using the _ignore*/_munch* annotations will be
considered for the purposes of layout checking, in particularwhen examining a null statement to see if it is obscured by texton the same line. In these circumstances any of message 3138,3139 and 3141 will be generated instead of message 3140.
3140
Null statement occurs on a line by itself.Ticket(s):24397 Tokens ignored using the _ignore*/_munch* annotations will be
considered for the purposes of layout checking, in particularwhen examining a null statement to see if it is obscured by texton the same line. In these circumstances any of message 3138,3139 and 3141 will be generated instead of message 3140.
3141
Null statement does not occur on a line by itself.Ticket(s):24397 Tokens ignored using the _ignore*/_munch* annotations will be
considered for the purposes of layout checking, in particularwhen examining a null statement to see if it is obscured by texton the same line. In these circumstances any of message 3138,3139 and 3141 will be generated instead of message 3140.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 431 Programming Research Ltd.
Table 3.12 – continued from previous page
Msg. Id. Description
3203
The variable ’%s’ is set but never used.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3204
The variable ’%s’ is only set once and so it could be declared with the’const’ qualifier.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.
3232
File scope static, ’%s’, is never modified. It could be declared const.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.23775 Fixed false positive for message 3232 for an assignment to a
non-const pointer member in initialisation of a structure.
3233
File scope static, ’%s’, is not explicitly initialized but its value is used.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.
3318
’#else’/’#elif’/’#endif’ in included file matched ’#if...’ in parent file. Thisis probably an error.Ticket(s):20272 Message locations have been improved as part of restructuring
to enable future use of a preprocessor common to both C andC++ analyzers.
3344
Controlling expression is not an ’essentially Boolean’ expression.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3403
This sequence of operators is difficult to read without interveningspaces.Ticket(s):24380 Message 3403 will be generated also when the ’!=’ operator is
directly followed by another operator, without white-spaces sep-arating the two operators.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 432 Programming Research Ltd.
Table 3.12 – continued from previous page
Msg. Id. Description
3410
Macro parameter not enclosed in ().Ticket(s):24376 Message 3410 will not be generated when the occurrence of a
macro parameter in a macro replacement list is preceded by theidentifier of a type, even if that type happens to be defined usinga typedef.
3412
Macro defines an unrecognized code-fragment.Ticket(s):24398 Message 3459 will be generated instead of message 3412
whenever a macro replacement list contains a do-while-zerostatement, even its loop body is a single statement (not enclosedin curly brackets). Message 1021 will be generated instead ofmessage 3412 when a macro replacement list contains a state-ment expression (note that statement expressions are a GCClanguage extension).
3415
Right hand operand of ’&&’ or ’||’ is an expression with possible sideeffects.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3416
Logical operation performed on expression with possible side effects.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3421
Expression with possible side effects is used in an initializer list.Ticket(s):23581 When a struct/union/array is initialised with an initialiser list,
messages 1291, 1398 and 3421 will be generated against theinitialiser’s expression they refer to, instead of the subsequenttoken (comma or curly bracket).
3429
A function-like macro is being defined.Ticket(s):20272 Message locations have been improved as part of restructuring
to enable future use of a preprocessor common to both C andC++ analyzers.
3430
Macro argument expression may require parentheses.Ticket(s):24399 Message 3430 will be generated against each applicable macro
argument instead of once only against the macro invocation.continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 433 Programming Research Ltd.
Table 3.12 – continued from previous page
Msg. Id. Description
3435
Parameter ’%s’ occurs more than once in the replacement list of thismacro.Ticket(s):20272 Message locations have been improved as part of restructuring
to enable future use of a preprocessor common to both C andC++ analyzers.
24381 Messages 3435 and 3456 will be generated against each appli-cable macro parameter, instead of only against the first applica-ble macro parameter encountered in the macro parameter list.Note that message 3435 is an obsolete message.
3436
Macro definition hides previously declared identifier.Ticket(s):20272 Message locations have been improved as part of restructuring
to enable future use of a preprocessor common to both C andC++ analyzers.
3439
Macro redefines a keyword.Ticket(s):20272 Message locations have been improved as part of restructuring
to enable future use of a preprocessor common to both C andC++ analyzers.
3443
Macro ’%s’ has a replacement list which appears recursive.Ticket(s):20272 Message locations have been improved as part of restructuring
to enable future use of a preprocessor common to both C andC++ analyzers.
3446
The 2nd or 3rd operand of this conditional operator is an expressionwith possible side effects.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3448
Declaration of typedef ’%s’ is not in a header file although it is used ina definition or declaration with external linkage.Ticket(s):24198 QAC analysis will no longer abort with a SIGSEGV fault under
certain circumstances, which involve the definition of functionswith parameters of pointer or array type, whose pointed-to typeor element type is defined using a typedef, which in turn involvesan array of pointers to a type that is also defined using a typedef.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 434 Programming Research Ltd.
Table 3.12 – continued from previous page
Msg. Id. Description
3456
Parameter ’%s’ will be evaluated more than once when this macro isused.Ticket(s):20272 Message locations have been improved as part of restructuring
to enable future use of a preprocessor common to both C andC++ analyzers.
24381 Messages 3435 and 3456 will be generated against each appli-cable macro parameter, instead of only against the first applica-ble macro parameter encountered in the macro parameter list.Note that message 3435 is an obsolete message.
3459
Macro defines a ’do-while-zero’ construct.Ticket(s):24398 Message 3459 will be generated instead of message 3412
whenever a macro replacement list contains a do-while-zerostatement, even its loop body is a single statement (not enclosedin curly brackets). Message 1021 will be generated instead ofmessage 3412 when a macro replacement list contains a state-ment expression (note that statement expressions are a GCClanguage extension).
3604
Using an initializer when defining an automatic object of struct, union orarray type.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3608
Using the ’#elif’ preprocessing directive.Ticket(s):20272 Message locations have been improved as part of restructuring
to enable future use of a preprocessor common to both C andC++ analyzers.
24382 Message 3608 will be generated against all occurrences of the’#elif’ preprocessing directive; in particular it will also be gener-ated in certain situations where ’#elif’ directive happens to bepreceded by another ’#if’ of ’#elif’ directive, whose expressionevaluates to zero and which is not located within an outer ’#elif”or ’#else’ section.
3614
Macro ’%s’ is being defined more than once without using #undef toremove the previous definition.Ticket(s):20272 Message locations have been improved as part of restructuring
to enable future use of a preprocessor common to both C andC++ analyzers.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 435 Programming Research Ltd.
Table 3.12 – continued from previous page
Msg. Id. Description
3615
Using ’entry’ as an identifier.Ticket(s):20272 Message locations have been improved as part of restructuring
to enable future use of a preprocessor common to both C andC++ analyzers.
3618
Whitespace used after ’#’ at the start of this preprocessing directive.Ticket(s):20272 Message locations have been improved as part of restructuring
to enable future use of a preprocessor common to both C andC++ analyzers.
24383 Messages 3618 and 3619 will be generated irrespective ofwhere the applicable directive is located; in particular they willalso be generated in certain situations where the directive is lo-cated in an ’#elif’ or ’#else’ section which is excluded becausethe expression of an earlier ’#if’ or ”#elif’ directive evaluates toone.,3618,3619„„„
3619
Whitespace used before ’#’ at the start of this preprocessing directive.Ticket(s):20272 Message locations have been improved as part of restructuring
to enable future use of a preprocessor common to both C andC++ analyzers.
24383 Messages 3618 and 3619 will be generated irrespective ofwhere the applicable directive is located; in particular they willalso be generated in certain situations where the directive is lo-cated in an ’#elif’ or ’#else’ section which is excluded becausethe expression of an earlier ’#if’ or ”#elif’ directive evaluates toone.,3618,3619„„„
3628
Octal escape sequences used in a character constant or string literal.Ticket(s):20272 Message locations have been improved as part of restructuring
to enable future use of a preprocessor common to both C andC++ analyzers.
3651
Using a typedef for an array of unknown size can lead to unexpectedresults.Ticket(s):23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.
3676
Designators are used to initialize an array of unspecified size.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializerscontinued on next page
RELEASE NOTES : QA·C 9.4.1 Page 436 Programming Research Ltd.
Table 3.12 – continued from previous page
Msg. Id. Description
3700
Implicit conversion: char to signed char.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3701
Implicit conversion: char to unsigned char.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3702
Implicit conversion: char to short.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3703
Implicit conversion: char to unsigned short.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3704
Implicit conversion: char to int.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3705
Implicit conversion: char to unsigned int.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3706
Implicit conversion: char to long.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3707
Implicit conversion: char to unsigned long.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3708
Implicit conversion: char to float.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3709
Implicit conversion: char to double.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializerscontinued on next page
RELEASE NOTES : QA·C 9.4.1 Page 437 Programming Research Ltd.
Table 3.12 – continued from previous page
Msg. Id. Description
3710
Implicit conversion: char to long double.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3711
Implicit conversion: unsigned char to char.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3712
Implicit conversion: unsigned char to signed char.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3713
Implicit conversion: unsigned char to short.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3715
Implicit conversion: unsigned char to int.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3717
Implicit conversion: unsigned char to long.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3719
Implicit conversion: unsigned char to float.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3720
Implicit conversion: unsigned char to double.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3721
Implicit conversion: unsigned char to long double.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3722
Implicit conversion: signed char to char.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializerscontinued on next page
RELEASE NOTES : QA·C 9.4.1 Page 438 Programming Research Ltd.
Table 3.12 – continued from previous page
Msg. Id. Description
3723
Implicit conversion: signed char to unsigned char.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3725
Implicit conversion: signed char to unsigned short.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3727
Implicit conversion: signed char to unsigned int.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3729
Implicit conversion: signed char to unsigned long.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3730
Implicit conversion: signed char to float.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3731
Implicit conversion: signed char to double.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3732
Implicit conversion: signed char to long double.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3733
Implicit conversion: short to char.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3734
Implicit conversion: short to signed char.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3735
Implicit conversion: short to unsigned char.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializerscontinued on next page
RELEASE NOTES : QA·C 9.4.1 Page 439 Programming Research Ltd.
Table 3.12 – continued from previous page
Msg. Id. Description
3736
Implicit conversion: short to unsigned short.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3738
Implicit conversion: short to unsigned int.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3740
Implicit conversion: short to unsigned long.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3741
Implicit conversion: short to float.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3742
Implicit conversion: short to double.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3743
Implicit conversion: short to long double.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3744
Implicit conversion: unsigned short to char.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3745
Implicit conversion: unsigned short to signed char.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3746
Implicit conversion: unsigned short to unsigned char.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3747
Implicit conversion: unsigned short to short.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializerscontinued on next page
RELEASE NOTES : QA·C 9.4.1 Page 440 Programming Research Ltd.
Table 3.12 – continued from previous page
Msg. Id. Description
3748
Implicit conversion: unsigned short to int.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3750
Implicit conversion: unsigned short to long.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3752
Implicit conversion: unsigned short to float.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3753
Implicit conversion: unsigned short to double.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3754
Implicit conversion: unsigned short to long double.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3755
Implicit conversion: int to char.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3756
Implicit conversion: int to signed char.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3757
Implicit conversion: int to unsigned char.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3758
Implicit conversion: int to short.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3759
Implicit conversion: int to unsigned short.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializerscontinued on next page
RELEASE NOTES : QA·C 9.4.1 Page 441 Programming Research Ltd.
Table 3.12 – continued from previous page
Msg. Id. Description
3760
Implicit conversion: int to unsigned int.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3762
Implicit conversion: int to unsigned long.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3763
Implicit conversion: int to float.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3764
Implicit conversion: int to double.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3765
Implicit conversion: int to long double.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3766
Implicit conversion: unsigned int to char.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3767
Implicit conversion: unsigned int to signed char.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3768
Implicit conversion: unsigned int to unsigned char.Ticket(s):23547 The analysis of initialiser lists which contain array identifiers (to
initialise members of pointer type) will be properly carried out,so that subsequent expressions in the initialiser list will not beaffected by rogue false positives, for instance of messages 0671,0674, 0684, 0703, 3768, 3892 and 4461, or false negatives, forinstance of message 0673.
3769
Implicit conversion: unsigned int to short.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializerscontinued on next page
RELEASE NOTES : QA·C 9.4.1 Page 442 Programming Research Ltd.
Table 3.12 – continued from previous page
Msg. Id. Description
3770
Implicit conversion: unsigned int to unsigned short.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3771
Implicit conversion: unsigned int to int.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3772
Implicit conversion: unsigned int to long.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3774
Implicit conversion: unsigned int to float.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3775
Implicit conversion: unsigned int to double.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3776
Implicit conversion: unsigned int to long double.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3777
Implicit conversion: long to char.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3778
Implicit conversion: long to signed char.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3779
Implicit conversion: long to unsigned char.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3780
Implicit conversion: long to short.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializerscontinued on next page
RELEASE NOTES : QA·C 9.4.1 Page 443 Programming Research Ltd.
Table 3.12 – continued from previous page
Msg. Id. Description
3781
Implicit conversion: long to unsigned short.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3782
Implicit conversion: long to int.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3783
Implicit conversion: long to unsigned int.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3784
Implicit conversion: long to unsigned long.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3785
Implicit conversion: long to float.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3786
Implicit conversion: long to double.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3787
Implicit conversion: long to long double.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3788
Implicit conversion: unsigned long to char.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3789
Implicit conversion: unsigned long to signed char.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3790
Implicit conversion: unsigned long to unsigned char.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 444 Programming Research Ltd.
Table 3.12 – continued from previous page
Msg. Id. Description
3791
Implicit conversion: unsigned long to short.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3792
Implicit conversion: unsigned long to unsigned short.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3793
Implicit conversion: unsigned long to int.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3794
Implicit conversion: unsigned long to unsigned int.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3795
Implicit conversion: unsigned long to long.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3796
Implicit conversion: unsigned long to float.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3797
Implicit conversion: unsigned long to double.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3798
Implicit conversion: unsigned long to long double.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3799
Implicit conversion: float to char.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3800
Implicit conversion: float to signed char.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializerscontinued on next page
RELEASE NOTES : QA·C 9.4.1 Page 445 Programming Research Ltd.
Table 3.12 – continued from previous page
Msg. Id. Description
3801
Implicit conversion: float to unsigned char.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3802
Implicit conversion: float to short.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3803
Implicit conversion: float to unsigned short.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3804
Implicit conversion: float to int.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3805
Implicit conversion: float to unsigned int.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3806
Implicit conversion: float to long.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3807
Implicit conversion: float to unsigned long.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3810
Implicit conversion: double to char.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3811
Implicit conversion: double to signed char.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3812
Implicit conversion: double to unsigned char.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializerscontinued on next page
RELEASE NOTES : QA·C 9.4.1 Page 446 Programming Research Ltd.
Table 3.12 – continued from previous page
Msg. Id. Description
3813
Implicit conversion: double to short.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3814
Implicit conversion: double to unsigned short.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3815
Implicit conversion: double to int.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3816
Implicit conversion: double to unsigned int.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3817
Implicit conversion: double to long.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3818
Implicit conversion: double to unsigned long.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3819
Implicit conversion: double to float.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3821
Implicit conversion: long double to char.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3822
Implicit conversion: long double to signed char.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3823
Implicit conversion: long double to unsigned char.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializerscontinued on next page
RELEASE NOTES : QA·C 9.4.1 Page 447 Programming Research Ltd.
Table 3.12 – continued from previous page
Msg. Id. Description
3824
Implicit conversion: long double to short.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3825
Implicit conversion: long double to unsigned short .Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3826
Implicit conversion: long double to int.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3827
Implicit conversion: long double to unsigned int.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3828
Implicit conversion: long double to long.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3829
Implicit conversion: long double to unsigned long.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3830
Implicit conversion: long double to float.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3831
Implicit conversion: long double to double.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3832
Implicit conversion: char to long long.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3833
Implicit conversion: char to unsigned long long.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializerscontinued on next page
RELEASE NOTES : QA·C 9.4.1 Page 448 Programming Research Ltd.
Table 3.12 – continued from previous page
Msg. Id. Description
3834
Implicit conversion: unsigned char to long long.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3837
Implicit conversion: signed char to unsigned long long.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3839
Implicit conversion: short to unsigned long long.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3840
Implicit conversion: unsigned short to long long.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3843
Implicit conversion: int to unsigned long long.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3844
Implicit conversion: unsigned int to long long.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3847
Implicit conversion: long to unsigned long long.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3848
Implicit conversion: unsigned long to long long.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3850
Implicit conversion: long long to char.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3851
Implicit conversion: long long to signed char.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializerscontinued on next page
RELEASE NOTES : QA·C 9.4.1 Page 449 Programming Research Ltd.
Table 3.12 – continued from previous page
Msg. Id. Description
3852
Implicit conversion: long long to unsigned char.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3853
Implicit conversion: long long to short.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3854
Implicit conversion: long long to unsigned short.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3855
Implicit conversion: long long to int.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3856
Implicit conversion: long long to unsigned int.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3857
Implicit conversion: long long to longTicket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3858
Implicit conversion: long long to unsigned long.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3859
Implicit conversion: long long to unsigned long long.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3860
Implicit conversion: long long to float.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3861
Implicit conversion: long long to double.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializerscontinued on next page
RELEASE NOTES : QA·C 9.4.1 Page 450 Programming Research Ltd.
Table 3.12 – continued from previous page
Msg. Id. Description
3862
Implicit conversion: long long to long double.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3863
Implicit conversion: unsigned long long to char.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3864
Implicit conversion: unsigned long long to signed char.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3865
Implicit conversion: unsigned long long to unsigned char.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3866
Implicit conversion: unsigned long long to short.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3867
Implicit conversion: unsigned long long to unsigned short.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3868
Implicit conversion: unsigned long long to int.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3869
Implicit conversion: unsigned long long to unsigned int.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3870
Implicit conversion: unsigned long long to long.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3871
Implicit conversion: unsigned long long to unsigned long.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializerscontinued on next page
RELEASE NOTES : QA·C 9.4.1 Page 451 Programming Research Ltd.
Table 3.12 – continued from previous page
Msg. Id. Description
3872
Implicit conversion: unsigned long long to long long.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3873
Implicit conversion: unsigned long long to float.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3874
Implicit conversion: unsigned long long to double.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3875
Implicit conversion: unsigned long long to long double.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3876
Implicit conversion: float to long long.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3877
Implicit conversion: float to unsigned long long.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3878
Implicit conversion: double to long long.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3879
Implicit conversion: double to unsigned long long.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3880
Implicit conversion: long double to long long.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3881
Implicit conversion: long double to unsigned long long.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializerscontinued on next page
RELEASE NOTES : QA·C 9.4.1 Page 452 Programming Research Ltd.
Table 3.12 – continued from previous page
Msg. Id. Description
3892
The result of this cast is implicitly converted to another type.Ticket(s):23547 The analysis of initialiser lists which contain array identifiers (to
initialise members of pointer type) will be properly carried out,so that subsequent expressions in the initialiser list will not beaffected by rogue false positives, for instance of messages 0671,0674, 0684, 0703, 3768, 3892 and 4461, or false negatives, forinstance of message 0673.
4301
An expression of ’essentially Boolean’ type (%1s) is being cast to char-acter type ’%2s’.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
4302
An expression of ’essentially Boolean’ type (%1s) is being cast to enumtype ’%2s’.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
4303
An expression of ’essentially Boolean’ type (%1s) is being cast tosigned type ’%2s’.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
4304
An expression of ’essentially Boolean’ type (%1s) is being cast to un-signed type ’%2s’.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
4305
An expression of ’essentially Boolean’ type (%1s) is being cast to float-ing type ’%2s’.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
4310
An expression of ’essentially character’ type (%1s) is being cast toBoolean type, ’%2s’.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializerscontinued on next page
RELEASE NOTES : QA·C 9.4.1 Page 453 Programming Research Ltd.
Table 3.12 – continued from previous page
Msg. Id. Description
4312
An expression of ’essentially character’ type (%1s) is being cast toenum type, ’%2s’.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
4315
An expression of ’essentially character’ type (%1s) is being cast to float-ing type, ’%2s’.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
4320
An expression of ’essentially enum’ type (%1s) is being cast to Booleantype, ’%2s’.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
4322
An expression of ’essentially enum’ type (%1s) is being cast to a differ-ent enum type, ’%2s’.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
4325
An expression of ’essentially enum’ type (%1s) is being cast to floatingtype, ’%2s’.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
4330
An expression of ’essentially signed’ type (%1s) is being cast toBoolean type ’%2s’.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
4332
An expression of ’essentially signed’ type (%1s) is being cast to enumtype, ’%2s’.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
4340
An expression of ’essentially unsigned’ type (%1s) is being cast toBoolean type ’%2s’.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializerscontinued on next page
RELEASE NOTES : QA·C 9.4.1 Page 454 Programming Research Ltd.
Table 3.12 – continued from previous page
Msg. Id. Description
4342
An expression of ’essentially unsigned’ type (%1s) is being cast toenum type ’%2s’.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
4350
An expression of ’essentially floating’ type (%1s) is being cast toBoolean type ’%2s’.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
4351
An expression of ’essentially floating’ type (%1s) is being cast to char-acter type ’%2s’.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
4352
An expression of ’essentially floating’ type (%1s) is being cast to enumtype, ’%2s’.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
4390
A composite expression of ’essentially signed’ type (%1s) is being castto a wider signed type, ’%2s’.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
4391
A composite expression of ’essentially unsigned’ type (%1s) is beingcast to a wider unsigned type, ’%2s’.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
4392
A composite expression of ’essentially floating’ type (%1s) is being castto a wider floating type, ’%2s’.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
4393
A composite expression of ’essentially signed’ type (%1s) is being castto a different type category, ’%2s’.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializerscontinued on next page
RELEASE NOTES : QA·C 9.4.1 Page 455 Programming Research Ltd.
Table 3.12 – continued from previous page
Msg. Id. Description
4394
A composite expression of ’essentially unsigned’ type (%1s) is beingcast to a different type category, ’%2s’.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
4395
A composite expression of ’essentially floating’ type (%1s) is being castto a different type category, ’%2s’.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
4401
An expression of ’essentially Boolean’ type (%1s) is being converted tocharacter type, ’%2s’ on assignment.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
4402
An expression of ’essentially Boolean’ type (%1s) is being converted toenum type, ’%2s’ on assignment.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
4403
An expression of ’essentially Boolean’ type (%1s) is being converted tosigned type, ’%2s’ on assignment.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
4404
An expression of ’essentially Boolean’ type (%1s) is being converted tounsigned type, ’%2s’ on assignment.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
4405
An expression of ’essentially Boolean’ type (%1s) is being converted tofloating type, ’%2s’ on assignment.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
4410
An expression of ’essentially character’ type (%1s) is being convertedto Boolean type, ’%2s’ on assignment.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializerscontinued on next page
RELEASE NOTES : QA·C 9.4.1 Page 456 Programming Research Ltd.
Table 3.12 – continued from previous page
Msg. Id. Description
4412
An expression of ’essentially character’ type (%1s) is being convertedto enum type, ’%2s’ on assignment.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
4413
An expression of ’essentially character’ type (%1s) is being convertedto signed type, ’%2s’ on assignment.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
4414
An expression of ’essentially character’ type (%1s) is being convertedto unsigned type, ’%2s’ on assignment.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
4415
An expression of ’essentially character’ type (%1s) is being convertedto floating type, ’%2s’ on assignment.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
4420
An expression of ’essentially enum’ type (%1s) is being converted toBoolean type, ’%2s’ on assignment.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
4421
An expression of ’essentially enum’ type (%1s) is being converted tocharacter type, ’%2s’ on assignment.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
4422
An expression of ’essentially enum’ type (%1s) is being converted to adifferent enum type, ’%2s’ on assignment.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
4423
An expression of ’essentially enum’ type (%1s) is being converted tosigned type, ’%2s’ on assignment.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializerscontinued on next page
RELEASE NOTES : QA·C 9.4.1 Page 457 Programming Research Ltd.
Table 3.12 – continued from previous page
Msg. Id. Description
4424
An expression of ’essentially enum’ type (%1s) is being converted tounsigned type, ’%2s’ on assignment.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers23615 False negatives and postives as a result Ticket 22180. See Full
Support for Designated Initializers.
4425
An expression of ’essentially enum’ type (%1s) is being converted tofloating type, ’%2s’ on assignment.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
4430
An expression of ’essentially signed’ type (%1s) is being converted toBoolean type, ’%2s’ on assignment.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
4431
An expression of ’essentially signed’ type (%1s) is being converted tocharacter type, ’%2s’ on assignment.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
4432
An expression of ’essentially signed’ type (%1s) is being converted toenum type, ’%2s’ on assignment.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
4434
A non-constant expression of ’essentially signed’ type (%1s) is beingconverted to unsigned type, ’%2s’ on assignment.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
4435
A non-constant expression of ’essentially signed’ type (%1s) is beingconverted to floating type, ’%2s’ on assignment.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
4436
A constant expression of ’essentially signed’ type (%1s) is being con-verted to unsigned type, ’%2s’ on assignment.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializerscontinued on next page
RELEASE NOTES : QA·C 9.4.1 Page 458 Programming Research Ltd.
Table 3.12 – continued from previous page
Msg. Id. Description
4437
A constant expression of ’essentially signed’ type (%1s) is being con-verted to floating type, ’%2s’ on assignment.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
4440
An expression of ’essentially unsigned’ type (%1s) is being convertedto Boolean type, ’%2s’ on assignment.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
4441
An expression of ’essentially unsigned’ type (%1s) is being convertedto character type, ’%2s’ on assignment.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
4442
An expression of ’essentially unsigned’ type (%1s) is being convertedto enum type, ’%2s’ on assignment.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
4443
A non-constant expression of ’essentially unsigned’ type (%1s) is beingconverted to a wider signed type, ’%2s’ on assignment.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
4445
An expression of ’essentially unsigned’ type (%1s) is being convertedto floating type, ’%2s’ on assignment.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
4446
A non-constant expression of ’essentially unsigned’ type (%1s) is beingconverted to signed type, ’%2s’ on assignment.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
4447
A constant expression of ’essentially unsigned’ type (%1s) is being con-verted to signed type, ’%2s’ on assignment.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializerscontinued on next page
RELEASE NOTES : QA·C 9.4.1 Page 459 Programming Research Ltd.
Table 3.12 – continued from previous page
Msg. Id. Description
4450
An expression of ’essentially floating’ type (%1s) is being converted toBoolean type, ’%2s’ on assignment.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
4451
An expression of ’essentially floating’ type (%1s) is being converted tocharacter type, ’%2s’ on assignment.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
4452
An expression of ’essentially floating’ type (%1s) is being converted toenum type, ’%2s’ on assignment.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
4453
An expression of ’essentially floating’ type (%1s) is being converted tosigned type, ’%2s’ on assignment.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
4454
An expression of ’essentially floating’ type (%1s) is being converted tounsigned type, ’%2s’ on assignment.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
4460
A non-constant expression of ’essentially signed’ type (%1s) is beingconverted to narrower signed type, ’%2s’ on assignment.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
4461
A non-constant expression of ’essentially unsigned’ type (%1s) is beingconverted to narrower unsigned type, ’%2s’ on assignment.Ticket(s):23547 The analysis of initialiser lists which contain array identifiers (to
initialise members of pointer type) will be properly carried out,so that subsequent expressions in the initialiser list will not beaffected by rogue false positives, for instance of messages 0671,0674, 0684, 0703, 3768, 3892 and 4461, or false negatives, forinstance of message 0673.
23615 False negatives and postives as a result Ticket 22180. See FullSupport for Designated Initializers.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 460 Programming Research Ltd.
Table 3.12 – continued from previous page
Msg. Id. Description
4462
A non-constant expression of ’essentially floating’ type (%1s) is beingconverted to narrower floating type, ’%2s’ on assignment.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
4463
A constant expression of ’essentially signed’ type (%1s) is being con-verted to narrower signed type, ’%2s’ on assignment.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
4464
A constant expression of ’essentially unsigned’ type (%1s) is being con-verted to narrower unsigned type, ’%2s’ on assignment.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
4465
A constant expression of ’essentially floating’ type (%1s) is being con-verted to narrower floating type, ’%2s’ on assignment.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
4490
A composite expression of ’essentially signed’ type (%1s) is being con-verted to wider signed type, ’%2s’ on assignment.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
4491
A composite expression of ’essentially unsigned’ type (%1s) is beingconverted to wider unsigned type, ’%2s’ on assignment.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
4492
A composite expression of ’essentially floating’ type (%1s) is being con-verted to wider floating type, ’%2s’ on assignment.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
4498
An expression which is the result of a ~ or << operation has been con-verted to a different essential type category on assignment.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializerscontinued on next page
RELEASE NOTES : QA·C 9.4.1 Page 461 Programming Research Ltd.
Table 3.12 – continued from previous page
Msg. Id. Description
4499
An expression which is the result of a ~ or << operation has been con-verted to a wider essential type on assignment.Ticket(s):23614 Location changes as a result of Ticket 22180. See Full Support
for Designated Initializers
3.5.3 Message Text Changes
The following table summarizes message text changes.
Table 3.13: Changed Message Text for QA·C 9.2.0
Msg.Id. Message Text Change Ticket
2796
QAC-9.2.0 Definite: Calling a standard library character handlingfunction with an invalid character value.
QAC-9.1.0 Definite: Calling a standard library function with an in-valid character value.
23615237942379624152
2797
QAC-9.2.0 Apparent: Calling a standard library character handlingfunction with an invalid character value.
QAC-9.1.0 Apparent: Calling a standard library function with an in-valid character value.
23615237942379624152
2798
QAC-9.2.0 Suspicious: Calling a standard library character han-dling function with an invalid character value.
QAC-9.1.0 Suspicious: Calling a standard library function with aninvalid character value.
23615237942379624152
2799
QAC-9.2.0 Possible: Calling a standard library character handlingfunction with an invalid character value.
QAC-9.1.0 Possible: Calling a standard library function with an in-valid character value.
237942379624152
3.6 Messages for QA·C 9.1.1
3.6.1 New Messages
The following table lists messages which are new in QA·C 9.1.1.
RELEASE NOTES : QA·C 9.4.1 Page 462 Programming Research Ltd.
Table 3.14: Messages Added for QA·C 9.1.1
Msg. Id. Description
4816Justification comments are not allowed in location annotations.23502 Ability to add Justification Reason to Comment Based Suppres-
sions and Include in Report
4817Justification comments are not allowed to be empty.23502 Ability to add Justification Reason to Comment Based Suppres-
sions and Include in Report
3.6.2 Messages with Modified Behavior
The following table summarizes the messages whose behavior has been modified as aresult of a change in specification.
Table 3.15: Messages Modified for QA·C 9.1.1
Msg. Id. Description
0907
[S] Unexpected token.24104 When the -ex asm configuration option is specified, the asm lan-
guage extension will be properly handled even if the source coderelies on additional language extensions for nested functions orstatement expressions. Consequently in these circumstancessyntax errors and recovery actions will no longer be reported.
0911
Inserted ’%s’ token in an attempt to continue parsing.24104 When the -ex asm configuration option is specified, the asm lan-
guage extension will be properly handled even if the source coderelies on additional language extensions for nested functions orstatement expressions. Consequently in these circumstancessyntax errors and recovery actions will no longer be reported.
0920
Source skipped to this point after error in expression.24104 When the -ex asm configuration option is specified, the asm lan-
guage extension will be properly handled even if the source coderelies on additional language extensions for nested functions orstatement expressions. Consequently in these circumstancessyntax errors and recovery actions will no longer be reported.
0926
[S] Expected:%s.24104 When the -ex asm configuration option is specified, the asm lan-
guage extension will be properly handled even if the source coderelies on additional language extensions for nested functions orstatement expressions. Consequently in these circumstancessyntax errors and recovery actions will no longer be reported.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 463 Programming Research Ltd.
Table 3.15 – continued from previous page
Msg. Id. Description
2200
Indentation of this line is to the left of the line above.23664 Indent checker reworked to remove false positives and clarify be-
havior of messages. 2200, 2201 and 2211 significantly changedby removing false positives/negatives; indent-related messagesare no longer emitted in the event of an unrecoverable parsefailure.
2201
This indentation is not consistent with previous indentation in this file.23664 Indent checker reworked to remove false positives and clarify be-
havior of messages. 2200, 2201 and 2211 significantly changedby removing false positives/negatives; indent-related messagesare no longer emitted in the event of an unrecoverable parsefailure.
2203
This closing brace is not aligned appropriately with the matching open-ing brace.23664 Indent checker reworked to remove false positives and clarify be-
havior of messages. 2200, 2201 and 2211 significantly changedby removing false positives/negatives; indent-related messagesare no longer emitted in the event of an unrecoverable parsefailure.
2204
’%s’ is not aligned to match its controlling ’switch’ statement.23664 Indent checker reworked to remove false positives and clarify be-
havior of messages. 2200, 2201 and 2211 significantly changedby removing false positives/negatives; indent-related messagesare no longer emitted in the event of an unrecoverable parsefailure.
2207
This brace style is not consistent with ’K&R’ style.23664 Indent checker reworked to remove false positives and clarify be-
havior of messages. 2200, 2201 and 2211 significantly changedby removing false positives/negatives; indent-related messagesare no longer emitted in the event of an unrecoverable parsefailure.
2208
This brace style is not consistent with ’indented’ style.23664 Indent checker reworked to remove false positives and clarify be-
havior of messages. 2200, 2201 and 2211 significantly changedby removing false positives/negatives; indent-related messagesare no longer emitted in the event of an unrecoverable parsefailure.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 464 Programming Research Ltd.
Table 3.15 – continued from previous page
Msg. Id. Description
2209
This brace style is not consistent with ’exdented’ style.23664 Indent checker reworked to remove false positives and clarify be-
havior of messages. 2200, 2201 and 2211 significantly changedby removing false positives/negatives; indent-related messagesare no longer emitted in the event of an unrecoverable parsefailure.
2211
’%s’ is not aligned with the previously declared identifier.23664 Indent checker reworked to remove false positives and clarify be-
havior of messages. 2200, 2201 and 2211 significantly changedby removing false positives/negatives; indent-related messagesare no longer emitted in the event of an unrecoverable parsefailure.
2212Body of control statement is not enclosed within braces.23611 Messages 2212 and 2214 restored to pre-9.1 behavior: no false
positive on braces contained within macros.
2213
Matching braces appear on the same line - proper indentation would bepreferred.23664 Indent checker reworked to remove false positives and clarify be-
havior of messages. 2200, 2201 and 2211 significantly changedby removing false positives/negatives; indent-related messagesare no longer emitted in the event of an unrecoverable parsefailure.
2214
Body of control statement is on the same line and is not enclosed withinbraces.23611 Messages 2212 and 2214 restored to pre-9.1 behavior: no false
positive on braces contained within macros.
2215
This indentation is not consistent with configured depth.23664 Indent checker reworked to remove false positives and clarify be-
havior of messages. 2200, 2201 and 2211 significantly changedby removing false positives/negatives; indent-related messagesare no longer emitted in the event of an unrecoverable parsefailure.
2753
As a result of error message ’%s’, dataflow analysis of the remainder ofthis function is not possible.23818 Dataflow no longer disabled for code that contains an instance
of diagnostics 3237 or 3238.
3237
[C] inline function ’%1s’ has external linkage and is defining an object,’%2s’, with static storage duration.23818 Dataflow no longer disabled for code that contains an instance
of diagnostics 3237 or 3238.continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 465 Programming Research Ltd.
Table 3.15 – continued from previous page
Msg. Id. Description
3238
[C] inline function ’%1s’ has external linkage and is referring to an ob-ject, ’%2s’, with internal linkage.23818 Dataflow no longer disabled for code that contains an instance
of diagnostics 3237 or 3238.
3.7 Messages for QA·C 9.1.0
3.7.1 New Messages
The following table lists messages which are new in QA·C 9.1.0.
Table 3.16: Messages Added for QA·C 9.1.0
Msg. Id. Description
0460
[C] The keyword static is used in the declaration of the index of an arraywhich is not a function parameter.20396 QAC will be able to parse the C99 syntax for the static key-
word and type qualifiers (const, volatile and restrict), which ap-plies to indexes in array declarations for function parameters,and instead of syntax errors it will generate new C99 portabilitymessages 1058 and 1059 and new constraint error messages0460, 0461, 0462 and 0463. Note that message 1058 will coverMISRA C:2012 Rule 17.6.
0461
[C] The keyword static is used in the declaration of an inner index of amulti-dimensional array.20396 QAC will be able to parse the C99 syntax for the static key-
word and type qualifiers (const, volatile and restrict), which ap-plies to indexes in array declarations for function parameters,and instead of syntax errors it will generate new C99 portabilitymessages 1058 and 1059 and new constraint error messages0460, 0461, 0462 and 0463. Note that message 1058 will coverMISRA C:2012 Rule 17.6.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 466 Programming Research Ltd.
Table 3.16 – continued from previous page
Msg. Id. Description
0462
[C] A type qualifier (const, volatile or restrict) is used in the declarationof the index of an array which is not a function parameter.20396 QAC will be able to parse the C99 syntax for the static key-
word and type qualifiers (const, volatile and restrict), which ap-plies to indexes in array declarations for function parameters,and instead of syntax errors it will generate new C99 portabilitymessages 1058 and 1059 and new constraint error messages0460, 0461, 0462 and 0463. Note that message 1058 will coverMISRA C:2012 Rule 17.6.
0463
[C] A type qualifier (const, volatile or restrict) is used in the declarationof an inner index of a multi-dimensional array.20396 QAC will be able to parse the C99 syntax for the static key-
word and type qualifiers (const, volatile and restrict), which ap-plies to indexes in array declarations for function parameters,and instead of syntax errors it will generate new C99 portabilitymessages 1058 and 1059 and new constraint error messages0460, 0461, 0462 and 0463. Note that message 1058 will coverMISRA C:2012 Rule 17.6.
0669
[C] The restrict qualifier can only be applied to pointer types derivedfrom object or incomplete types.14130 The C99 ’restrict’ type qualifier will be parsed and treated as
a keyword (consistently with e.g. ’inline’ and ’_Bool’). A newmessage 1057 will be generated to report occurrences of theC99 ’restrict’ type qualifier. Another new message 0669 will begenerated to report constraint errors in the usage of ’restrict’.Note: syntax errors may be generated for C90 source code ifthe token ’restrict’ happens to be used as an identifier insteadof a keyword. In this case either the source code should be up-dated or QAC should be configured to define ’restrict’ as a macrofor a C99 compliant identifier. Note: for source code that usesthe C99 ’restrict’ type qualifier it will no longer be necessary forQAC to be configured to define ’restrict’ as a blank macro. Note:MISRA C:2012 rule 8.14 requires the restrict type qualifier notto be used. However, MISRA rules do not apply to the StandardC Library. If message 1057 is used for the purpose of MISRAcompliance, it will be up to QAC configuration to suppress it forthe applicable files/functions.
20522 Initial restructuring to enable future use of a preprocessor com-mon to both C and C++ analyzers, see Messages LocationChanges.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 467 Programming Research Ltd.
Table 3.16 – continued from previous page
Msg. Id. Description
0681
[U] Assignment between two incompatible members of the same union.23067 A new message 0681 will be generated when an assignment
operation is performed between different members of the sameunion, except when (1) the two members have compatible typesand overlap exactly, or (2) either or both members are accessedvia pointers. Note: dataflow analysis is required to handle ac-cess via pointers, and these cases are already covered by com-plementary dataflow messages 2776, 2777 and 2778.
0701
Argument for memory size does not refer to ’sizeof (%s)’.15753 New message will be generated to report when a dynamic mem-
ory allocation function is called with an argument for memorysize that is inconsistent with the size of the type of object to al-locate, see Buffer Overflow Checking.
0784Identifier ’%s’ is also used as a macro name.15716 New messages 0784, 0785, 0786 & 0787 when identifiers are
not distinct from macro names.
0785Identifier matches other macro name(s) (e.g. ’%s’) in first 31 characters.15716 New messages 0784, 0785, 0786 & 0787 when identifiers are
not distinct from macro names.
0786Identifier matches other macro name(s) (e.g. ’%s’) in first 63 characters.15716 New messages 0784, 0785, 0786 & 0787 when identifiers are
not distinct from macro names.
0787
Identifier does not differ from other macro name(s) (e.g. ’%s’) within thespecified number of significant characters.15716 New messages 0784, 0785, 0786 & 0787 when identifiers are
not distinct from macro names.
0788
This identifier, ’%s’, is used as both a macro name and a function-likemacro parameter name.23210 Existing messages 0778 and 0779 will be extended and new
messages 0788 and 0789 will be generated to report conflictsinvolving macro identifiers which do not differ from each other (orfrom tokens that they should not replace) within the first 31 char-acters (C90), the first 63 characters (C99) or the specified num-ber of significant characters. Note that this upgrade will supportcoverage/enforcement of MISRA C:2012 Rule 5.4 and MISRAC-2004 Rule 5.1.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 468 Programming Research Ltd.
Table 3.16 – continued from previous page
Msg. Id. Description
0789
Identifier matches other identifier(s) (e.g. ’%s’) in first 63 characters -program does not conform strictly to ISO:C99.23210 Existing messages 0778 and 0779 will be extended and new
messages 0788 and 0789 will be generated to report conflictsinvolving macro identifiers which do not differ from each other (orfrom tokens that they should not replace) within the first 31 char-acters (C90), the first 63 characters (C99) or the specified num-ber of significant characters. Note that this upgrade will supportcoverage/enforcement of MISRA C:2012 Rule 5.4 and MISRAC-2004 Rule 5.1.
0892
This macro parameter is preceded by ’#’ and followed by ’##’.14127 A new message 0892 will be generated when the occurrence of
a macro parameter in a macro replacement list is immediatelypreceded by the stringify operator ’#’ and immediately followedby the glue operator ’##’.
0893
Macro parameter ’%s’ is inconsistently subject to macro replacement.14128 A new message 0893 will be generated when a macro param-
eter: (1) is used as an operand of the stringify ’#’ or glue ’##’operators, hence not subject to macro replacement, and (2) isalso used otherwise, hence subject to macro replacement, inthe same macro definition, and (3) the corresponding argumentin a macro invocation is subject to macro replacement.
0894
#%s directive controlling expression does not evaluate to zero or one.23298 A new message 0894 will be generated when the controlling ex-
pression of a #if or #elif preprocessing directive does not eval-uate to 0 or 1. Note that this upgrade will cover MISRA C:2012Rule 20.8.
1039[E] Treating array of length one as potentially flexible member.20747 Support for C99 flexible array feature will be improved.
1049
[E] Nested functions are a language extension.22691 The GCC extension to the C language for nested function will
be recognised, a new message 1049 will be generated for eachnested function definition, and syntax and constraint errors willnot be incorrectly generated. Another new message 1050 willbe generated when a nested function is declared with incorrectstorage class specifiers.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 469 Programming Research Ltd.
Table 3.16 – continued from previous page
Msg. Id. Description
1050
[C] Nested functions cannot be ’extern’ or ’static’.22691 The GCC extension to the C language for nested function will
be recognised, a new message 1049 will be generated for eachnested function definition, and syntax and constraint errors willnot be incorrectly generated. Another new message 1050 willbe generated when a nested function is declared with incorrectstorage class specifiers.
1057
[C99] The keyword ’restrict’ has been used.14130 The C99 ’restrict’ type qualifier will be parsed and treated as
a keyword (consistently with e.g. ’inline’ and ’_Bool’). A newmessage 1057 will be generated to report occurrences of theC99 ’restrict’ type qualifier. Another new message 0669 will begenerated to report constraint errors in the usage of ’restrict’.Note: syntax errors may be generated for C90 source code ifthe token ’restrict’ happens to be used as an identifier insteadof a keyword. In this case either the source code should be up-dated or QAC should be configured to define ’restrict’ as a macrofor a C99 compliant identifier. Note: for source code that usesthe C99 ’restrict’ type qualifier it will no longer be necessary forQAC to be configured to define ’restrict’ as a blank macro. Note:MISRA C:2012 rule 8.14 requires the restrict type qualifier notto be used. However, MISRA rules do not apply to the StandardC Library. If message 1057 is used for the purpose of MISRAcompliance, it will be up to QAC configuration to suppress it forthe applicable files/functions.
1058
[C99] The keyword ’static’ is used in the declaration of a function pa-rameter of array type.20396 QAC will be able to parse the C99 syntax for the static key-
word and type qualifiers (const, volatile and restrict), which ap-plies to indexes in array declarations for function parameters,and instead of syntax errors it will generate new C99 portabilitymessages 1058 and 1059 and new constraint error messages0460, 0461, 0462 and 0463. Note that message 1058 will coverMISRA C:2012 Rule 17.6.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 470 Programming Research Ltd.
Table 3.16 – continued from previous page
Msg. Id. Description
1059
[C99] A type qualifier (const, volatile or restrict) is used in the declara-tion of a function parameter of array type.20396 QAC will be able to parse the C99 syntax for the static key-
word and type qualifiers (const, volatile and restrict), which ap-plies to indexes in array declarations for function parameters,and instead of syntax errors it will generate new C99 portabilitymessages 1058 and 1059 and new constraint error messages0460, 0461, 0462 and 0463. Note that message 1058 will coverMISRA C:2012 Rule 17.6.
1060
[C99] A flexible array member has been declared.12042 A new message 1060 will be generated instead of constraint er-
ror message 0642 when a structure with a flexible array memberis declared. Flexible array members are a feature introduced bythe C99 standard. New messages 1061 and 1062 will also re-port constraint errors when a structure with a flexible array mem-ber (and any union containing, possibly recursively, a memberthat is such a structure) is a member of a structure or an ele-ment of an array.
1061
[C] Structure ’%1s’ with flexible array member ’%2s’ cannot be used inthe declaration of structure member ’%3s’.12042 A new message 1060 will be generated instead of constraint er-
ror message 0642 when a structure with a flexible array memberis declared. Flexible array members are a feature introduced bythe C99 standard. New messages 1061 and 1062 will also re-port constraint errors when a structure with a flexible array mem-ber (and any union containing, possibly recursively, a memberthat is such a structure) is a member of a structure or an ele-ment of an array.
1062
[C] Structure ’%1s’ with flexible array member ’%2s’ cannot be used inthe declaration of array elements.12042 A new message 1060 will be generated instead of constraint er-
ror message 0642 when a structure with a flexible array memberis declared. Flexible array members are a feature introduced bythe C99 standard. New messages 1061 and 1062 will also re-port constraint errors when a structure with a flexible array mem-ber (and any union containing, possibly recursively, a memberthat is such a structure) is a member of a structure or an ele-ment of an array.
1063[C99] ’%s’ is an automatically-allocated object of a type declared with aflexible array member.20747 Support for C99 flexible array feature will be improved.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 471 Programming Research Ltd.
Table 3.16 – continued from previous page
Msg. Id. Description
1064[C99] ’%s’ is a statically-allocated object of a type declared with a flexi-ble array member.20747 Support for C99 flexible array feature will be improved.
1065[E] ’%s’ is an automatically-allocated object of a type declared with apotentially-flexible array member.20747 Support for C99 flexible array feature will be improved.
1066[E] ’%s’ is a statically-allocated object of a type declared with apotentially-flexible array member.20747 Support for C99 flexible array feature will be improved.
1067[C99] Union member ’%s’ is a struct declared with a flexible array mem-ber.20747 Support for C99 flexible array feature will be improved.
1068[E] Union member ’%s’ is a struct declared with a potentially-flexiblearray member.20747 Support for C99 flexible array feature will be improved.
1069[C99] Taking sizeof a struct with a flexible array member without addingthe array size.20747 Support for C99 flexible array feature will be improved.
1070[E] Taking sizeof a struct with a potentially-flexible array member withoutexplicitly adding an array size.20747 Support for C99 flexible array feature will be improved.
1071[C99] Taking sizeof a struct with a flexible array member without explic-itly adding the array size in terms of element sizes.20747 Support for C99 flexible array feature will be improved.
1072[E] Taking sizeof a struct with a potentially-flexible array member withoutexplicitly adding an array size in terms of element sizes.20747 Support for C99 flexible array feature will be improved.
1073[C99] Taking sizeof a struct with a flexible array member while addingan array size based on the wrong element type.20747 Support for C99 flexible array feature will be improved.
1074[E] Taking sizeof a struct with a potentially-flexible array member whileadding an array size based on the wrong element type.20747 Support for C99 flexible array feature will be improved.
1321Operand of sizeof is a function parameter of array type.22781 A new message 1321 will be generated to report when the
operand of sizeof is a function parameter of array type.
1338
The parameter ’%s’ is being modified.15711 A new message 1338 will be generated when a function param-
eter is modified. When the address of operator ’&’ is applied toa function parameter, a new message 1339 will be generated ifthe resulting pointer is non const, and a new message 1340 willbe generated if the resulting pointer is const.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 472 Programming Research Ltd.
Table 3.16 – continued from previous page
Msg. Id. Description
1339
Evaluating the address of the parameter ’%s’.15711 A new message 1338 will be generated when a function param-
eter is modified. When the address of operator ’&’ is applied toa function parameter, a new message 1339 will be generated ifthe resulting pointer is non const, and a new message 1340 willbe generated if the resulting pointer is const.
1340
Storing the address of the parameter ’%s’ in a constant pointer.15711 A new message 1338 will be generated when a function param-
eter is modified. When the address of operator ’&’ is applied toa function parameter, a new message 1339 will be generated ifthe resulting pointer is non const, and a new message 1340 willbe generated if the resulting pointer is const.
1397
Array element ’%s’ has already been initialized.14118 New messages 1397, 1398 and 1399 will be generated to re-
port situations where the use of C99 designated initialisers re-sults in multiple initialisations of array elements or struct/unionmembers.
1398
Structure member ’%s’ has already been initialized.14118 New messages 1397, 1398 and 1399 will be generated to re-
port situations where the use of C99 designated initialisers re-sults in multiple initialisations of array elements or struct/unionmembers.
1399
A union member has already been initialized.14118 New messages 1397, 1398 and 1399 will be generated to re-
port situations where the use of C99 designated initialisers re-sults in multiple initialisations of array elements or struct/unionmembers.
1485
A pointer to a FILE object is dereferenced.20397 Two new messages 1485 and 1486 will be generated to report
respectively when an object of type pointer to FILE is derefer-enced and when it is explicitly or implicitly converted to a dif-ferent type. Note: these messages cover MISRA C:2012 Rule22.5, which bans the dereferencing of pointer to FILE objects.Rule 22.5 is classed as undecidable, however the combinationof messages 1485 and 1486 intentionally imposes stricter con-straints than Rule 22.5, so that their enforcement is decidable.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 473 Programming Research Ltd.
Table 3.16 – continued from previous page
Msg. Id. Description
1486
A pointer to a FILE object is converted to a different type.20397 Two new messages 1485 and 1486 will be generated to report
respectively when an object of type pointer to FILE is derefer-enced and when it is explicitly or implicitly converted to a dif-ferent type. Note: these messages cover MISRA C:2012 Rule22.5, which bans the dereferencing of pointer to FILE objects.Rule 22.5 is classed as undecidable, however the combinationof messages 1485 and 1486 intentionally imposes stricter con-straints than Rule 22.5, so that their enforcement is decidable.
1487
Comparing the representations of objects of different types.22779 A new message 1487 will be generated when the C standard
library function ’memcmp’ is used to compare objects of differ-ent types. A new message 1488 will be generated when the Cstandard library function ’memcmp’ is used to compare structobjects or arrays of struct objects. A new message 1489 willbe generated when the C standard library function ’memcmp’is used to compare union objects or arrays of union objects.A new message 1490 will be generated when the C standardlibrary function ’memcmp’ is used to compare floating point ob-jects or arrays of floating point objects. A new message 1491 willbe generated when the C standard library function ’memcmp’ isused to compare objects referenced via pointer to void.
1488
Comparison of a struct object representation.22779 A new message 1487 will be generated when the C standard
library function ’memcmp’ is used to compare objects of differ-ent types. A new message 1488 will be generated when the Cstandard library function ’memcmp’ is used to compare structobjects or arrays of struct objects. A new message 1489 willbe generated when the C standard library function ’memcmp’is used to compare union objects or arrays of union objects.A new message 1490 will be generated when the C standardlibrary function ’memcmp’ is used to compare floating point ob-jects or arrays of floating point objects. A new message 1491 willbe generated when the C standard library function ’memcmp’ isused to compare objects referenced via pointer to void.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 474 Programming Research Ltd.
Table 3.16 – continued from previous page
Msg. Id. Description
1489
Comparison of a union object representation.22779 A new message 1487 will be generated when the C standard
library function ’memcmp’ is used to compare objects of differ-ent types. A new message 1488 will be generated when the Cstandard library function ’memcmp’ is used to compare structobjects or arrays of struct objects. A new message 1489 willbe generated when the C standard library function ’memcmp’is used to compare union objects or arrays of union objects.A new message 1490 will be generated when the C standardlibrary function ’memcmp’ is used to compare floating point ob-jects or arrays of floating point objects. A new message 1491 willbe generated when the C standard library function ’memcmp’ isused to compare objects referenced via pointer to void.
1490
Comparison of a floating point object representation.22779 A new message 1487 will be generated when the C standard
library function ’memcmp’ is used to compare objects of differ-ent types. A new message 1488 will be generated when the Cstandard library function ’memcmp’ is used to compare structobjects or arrays of struct objects. A new message 1489 willbe generated when the C standard library function ’memcmp’is used to compare union objects or arrays of union objects.A new message 1490 will be generated when the C standardlibrary function ’memcmp’ is used to compare floating point ob-jects or arrays of floating point objects. A new message 1491 willbe generated when the C standard library function ’memcmp’ isused to compare objects referenced via pointer to void.
1491
Comparison of an object representation.22779 A new message 1487 will be generated when the C standard
library function ’memcmp’ is used to compare objects of differ-ent types. A new message 1488 will be generated when the Cstandard library function ’memcmp’ is used to compare structobjects or arrays of struct objects. A new message 1489 willbe generated when the C standard library function ’memcmp’is used to compare union objects or arrays of union objects.A new message 1490 will be generated when the C standardlibrary function ’memcmp’ is used to compare floating point ob-jects or arrays of floating point objects. A new message 1491 willbe generated when the C standard library function ’memcmp’ isused to compare objects referenced via pointer to void.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 475 Programming Research Ltd.
Table 3.16 – continued from previous page
Msg. Id. Description
1492
The result of library function ’%s’ is used to modify the referenced ob-ject.22782 New messages 1492 and 1493 will be generated when strings
from getenv, localeconv, setlocale and strerror are modified.
1493
The result of library function ’%s’ is used as a pointer to a modifiableobject.22782 New messages 1492 and 1493 will be generated when strings
from getenv, localeconv, setlocale and strerror are modified.
2500
Call to ’%s’ is not immediately preceded by the zeroing of ’errno’.22785 New messages 2500, 2501, 2502 and 2503 will be generated
when the zeroing of errno, the call to an errno setting func-tion and the testing of errno are not implemented in a strict se-quence. This analysis only applies to calls of C standard libraryfunctions which are by default errno setting functions, that is:ftell, strtoumax, strtod, wcstod, strtof, wcstof, strtoimax, strtol,wcstol, strtold, wcstold, strtoll, wcstoll, strtoul, wcstoul, strtoull,wcstoull, wcstoimax, wcstoumax, fgetpos, fsetpos, mbrtowc,mbsrtowcs, signal, wcrtomb, wcsrtombs, fgetwc and fputwc.
2501
Call to ’%s’ is not immediately followed by the testing of ’errno’.22785 New messages 2500, 2501, 2502 and 2503 will be generated
when the zeroing of errno, the call to an errno setting func-tion and the testing of errno are not implemented in a strict se-quence. This analysis only applies to calls of C standard libraryfunctions which are by default errno setting functions, that is:ftell, strtoumax, strtod, wcstod, strtof, wcstof, strtoimax, strtol,wcstol, strtold, wcstold, strtoll, wcstoll, strtoul, wcstoul, strtoull,wcstoull, wcstoimax, wcstoumax, fgetpos, fsetpos, mbrtowc,mbsrtowcs, signal, wcrtomb, wcsrtombs, fgetwc and fputwc.
2502
Zeroing of ’errno’ is not immediately followed by a call to an ’errno’setting function.22785 New messages 2500, 2501, 2502 and 2503 will be generated
when the zeroing of errno, the call to an errno setting func-tion and the testing of errno are not implemented in a strict se-quence. This analysis only applies to calls of C standard libraryfunctions which are by default errno setting functions, that is:ftell, strtoumax, strtod, wcstod, strtof, wcstof, strtoimax, strtol,wcstol, strtold, wcstold, strtoll, wcstoll, strtoul, wcstoul, strtoull,wcstoull, wcstoimax, wcstoumax, fgetpos, fsetpos, mbrtowc,mbsrtowcs, signal, wcrtomb, wcsrtombs, fgetwc and fputwc.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 476 Programming Research Ltd.
Table 3.16 – continued from previous page
Msg. Id. Description
2503
Testing of ’errno’ is not immediately preceded by a call to an ’errno’setting function.22785 New messages 2500, 2501, 2502 and 2503 will be generated
when the zeroing of errno, the call to an errno setting func-tion and the testing of errno are not implemented in a strict se-quence. This analysis only applies to calls of C standard libraryfunctions which are by default errno setting functions, that is:ftell, strtoumax, strtod, wcstod, strtof, wcstof, strtoimax, strtol,wcstol, strtold, wcstold, strtoll, wcstoll, strtoul, wcstoul, strtoull,wcstoull, wcstoimax, wcstoumax, fgetpos, fsetpos, mbrtowc,mbsrtowcs, signal, wcrtomb, wcsrtombs, fgetwc and fputwc.
2758
Query has exceeded the configured maximum: ’%1sms’. Dataflowanalysis continues with the next query.22813 A new message is generated when the time taken for Dataflow
analysis of a query within a function is greater than the timeoutlimit set using the ’-po df::query_timeout=’ option. This messageis generated when the option ’-po df::query_timeout_message’is enabled in the QAC configuration.
2781
Definite: Function argument has fewer elements than the array dimen-sion in the parameter declaration for non-inlined call.20191 New analysis to check array arguments passed to a function
when a sized array is used as a function parameter. A messagewill be generated if an array passed as an argument to the func-tion does not have as many elements as the array declarator ofthe function parameter.
2782
Apparent: Function argument has fewer elements than the array dimen-sion in the parameter declaration for non-inlined call.20191 New analysis to check array arguments passed to a function
when a sized array is used as a function parameter. A messagewill be generated if an array passed as an argument to the func-tion does not have as many elements as the array declarator ofthe function parameter.
2783
Suspicious: Function argument has fewer elements than the array di-mension in the parameter declaration for non-inlined call.20191 New analysis to check array arguments passed to a function
when a sized array is used as a function parameter. A messagewill be generated if an array passed as an argument to the func-tion does not have as many elements as the array declarator ofthe function parameter.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 477 Programming Research Ltd.
Table 3.16 – continued from previous page
Msg. Id. Description
2784
Possible: Function argument has fewer elements than the array dimen-sion in the parameter declaration for non-inlined call.20191 New analysis to check array arguments passed to a function
when a sized array is used as a function parameter. A messagewill be generated if an array passed as an argument to the func-tion does not have as many elements as the array declarator ofthe function parameter.
2796
Definite: Calling a standard library function with an invalid charactervalue.22790 A new message will be generated if: - a value not representable
as an "unsigned char" or EOF is passed to any function in<ctype.h> or the functions putc, putchar, and ungetc. - a valuenot representable as an "wchar_t" or WEOF is passed to anyfunction in <wctype.h> or the functions putwc, putwchar, andungetwc.
2797
Apparent: Calling a standard library function with an invalid charactervalue.22790 A new message will be generated if: - a value not representable
as an "unsigned char" or EOF is passed to any function in<ctype.h> or the functions putc, putchar, and ungetc. - a valuenot representable as an "wchar_t" or WEOF is passed to anyfunction in <wctype.h> or the functions putwc, putwchar, andungetwc.
2798
Suspicious: Calling a standard library function with an invalid charactervalue.22790 A new message will be generated if: - a value not representable
as an "unsigned char" or EOF is passed to any function in<ctype.h> or the functions putc, putchar, and ungetc. - a valuenot representable as an "wchar_t" or WEOF is passed to anyfunction in <wctype.h> or the functions putwc, putwchar, andungetwc.
2799
Possible: Calling a standard library function with an invalid charactervalue.22790 A new message will be generated if: - a value not representable
as an "unsigned char" or EOF is passed to any function in<ctype.h> or the functions putc, putchar, and ungetc. - a valuenot representable as an "wchar_t" or WEOF is passed to anyfunction in <wctype.h> or the functions putwc, putwchar, andungetwc.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 478 Programming Research Ltd.
Table 3.16 – continued from previous page
Msg. Id. Description
2956
Definite: Using object ’%s’ with tainted value.22791 A new message is generated when data from an external source
(e.g. command line input, file, socket etc) is not checked to de-termine if it is a valid value, with respect to the expected limits ofthe value, before the value is used in subsequent expressions.
2959
Possible: Using object ’%s’ with tainted value.22791 A new message is generated when data from an external source
(e.g. command line input, file, socket etc) is not checked to de-termine if it is a valid value, with respect to the expected limits ofthe value, before the value is used in subsequent expressions.
3213
The tag ’%s’ is not used and could be removed.15709 A new message 3213 will be generated to report an unused
struct/union/enum tag. A new message 3214 will be generatedto report an unused macro. Existing message 3205 will also begenerated for unused enum constants defined at file scope inthe source file.
3214
The macro ’%s’ is not used and could be removed.15709 A new message 3213 will be generated to report an unused
struct/union/enum tag. A new message 3214 will be generatedto report an unused macro. Existing message 3205 will also begenerated for unused enum constants defined at file scope inthe source file.
3310This ’goto’ statement involves a backward jump.21771 New message 3310 will be generated when a goto statement
jumps to a label declared earlier in the same function.
3421Expression with possible side effects is used in an initializer list.14117 A new message 3421 will be generated when expressions with
possible side effects are used in initialiser lists.
3636
Octal escape sequence ’%s’ is not terminated.14112 New messages 3636 and 3637 will be generated when octal
or hexadecimal escape sequences are not followed by anotherescape sequence or the end of the character constant or stringliteral.
3637
Hexadecimal escape sequence ’%s’ is not terminated.14112 New messages 3636 and 3637 will be generated when octal
or hexadecimal escape sequences are not followed by anotherescape sequence or the end of the character constant or stringliteral.
3676
Designators are used to initialize an array of unspecified size.14119 A new message 3676 will be generated when designated ini-
tialisers are used to initialise an array object whose size is notexplicitly specified.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 479 Programming Research Ltd.
Table 3.16 – continued from previous page
Msg. Id. Description
4599
Operands of binary operator ’%1s’ have the same type ’%2s’ but distincttype names ’%3s’ and ’%4s’.22496 A new message 4599 will be generated when a binary operator
’+’, ’-’, ’*’, ’/’, ’%’, ’&’, ’|’, ’^’, ’<’, ’<=’, ’>’, ’>=’, ’==’, ’!=’, ’?:’, ’=’,’+=’, ’-=’, ’*=’, ’/=’, ’%=’, ’&=’, ’|=’ or ’^=’ is applied to two operandswhich are derived from the same integer type but have differenttype names.
3.7.2 Messages with Modified Behavior
The following table summarizes the messages whose behavior has been modified as aresult of a change in specification.
Table 3.17: Messages Modified for QA·C 9.1.0
Msg. Id. Description
0040
[Q] Definition of size_t differs from configured type.20522 Initial restructuring to enable future use of a preprocessor com-
mon to both C and C++ analyzers, see Messages LocationChanges.
0041
[Q] Definition of ptrdiff_t differs from configured type.20522 Initial restructuring to enable future use of a preprocessor com-
mon to both C and C++ analyzers, see Messages LocationChanges.
0042
[Q] Definition of wchar_t differs from configured type.20522 Initial restructuring to enable future use of a preprocessor com-
mon to both C and C++ analyzers, see Messages LocationChanges.
0306
[I] Cast between a pointer to object and an integral type.11994 Support for semantics checks on statement expressions will be
extended, in accordance with the GCC compiler manual, seeSupport for GCC language extensions.
0311
Dangerous pointer cast results in loss of const qualification.23432 Fix to correct analysis of casts that change the const qualifica-
tion of pointers to qualified object types resulting in both falsepositive and false negative messages.
0312
Dangerous pointer cast results in loss of volatile qualification.23432 Fix to correct analysis of casts that change the const qualifica-
tion of pointers to qualified object types resulting in both falsepositive and false negative messages.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 480 Programming Research Ltd.
Table 3.17 – continued from previous page
Msg. Id. Description
0388
[L] ’#include "%s"’ causes nesting to exceed 15 levels - program doesnot conform strictly to ISO:C99.20522 Initial restructuring to enable future use of a preprocessor com-
mon to both C and C++ analyzers, see Messages LocationChanges.
0402
[U] ’%s’ is modified and accessed between sequence points - evalua-tion order unspecified.22555 Message 0402 will no longer be incorrectly generated in cer-
tain circumstances where the left hand side of an assignment isenclosed in parentheses and involves access to a struct/unionmember via the dot or arrow operator.
0434
[S] The identifier ’%s’ has not been declared.20522 Initial restructuring to enable future use of a preprocessor com-
mon to both C and C++ analyzers, see Messages LocationChanges.
0435
[C] The ’struct’/’union’ member ’%s’ does not exist.22606 Designated initialisers referring to members in nested stuctures
will be recognised even if their ordering does not reflect the or-dering in the structure definition. Consequently, under these cir-cumstances message 0435 will no longer be incorrectly gener-ated.
0436
[C] Left operand of ’.’ must be a ’struct’ or ’union’ object.11994 Support for semantics checks on statement expressions will be
extended, in accordance with the GCC compiler manual, seeSupport for GCC language extensions.
0563
[C] Right operand of assignment is not of compatible pointer type.11994 Support for semantics checks on statement expressions will be
extended, in accordance with the GCC compiler manual, seeSupport for GCC language extensions.
0570
This switch case label of ’essential type’ ’%1s’, is not consistent with acontrolling expression of essential type ’%2s’.23432 Fix to correct analysis of casts that change the const qualifica-
tion of pointers to qualified object types resulting in both falsepositive and false negative messages.
0589
[C] Enumeration constant must be an integral constant expression.22645 Messages 0589 and 0907 will no longer be incorrectly generated
when an enumeration type is declared and the first enumerationconstant to be initialised is initialised to an integer constant ex-pression that contains a cast to a type which is defined via atypedef.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 481 Programming Research Ltd.
Table 3.17 – continued from previous page
Msg. Id. Description
0594
Negative ’case’ label expression is incompatible with unsigned control-ling expression in ’switch’ statement.23432 Fix to correct analysis of casts that change the const qualifica-
tion of pointers to qualified object types resulting in both falsepositive and false negative messages.
0597
Type of ’case’ label expression is not consistent with type of controllingexpression in ’switch’ statement.23432 Fix to correct analysis of casts that change the const qualifica-
tion of pointers to qualified object types resulting in both falsepositive and false negative messages.
0642
[C] ’%s’ in ’struct’ or ’union’ type may not be an array of unknown size.12042 A new message 1060 will be generated instead of constraint er-
ror message 0642 when a structure with a flexible array memberis declared. Flexible array members are a feature introduced bythe C99 standard. New messages 1061 and 1062 will also re-port constraint errors when a structure with a flexible array mem-ber (and any union containing, possibly recursively, a memberthat is such a structure) is a member of a structure or an ele-ment of an array.
0670
[S] Function defined with invalid function header syntax.20522 Initial restructuring to enable future use of a preprocessor com-
mon to both C and C++ analyzers, see Messages LocationChanges.
0686
Array has fewer initializers than its declared size. Default initialization isapplied to the remainder of the array elements.20522 Initial restructuring to enable future use of a preprocessor com-
mon to both C and C++ analyzers, see Messages LocationChanges.
0687
Array has been initialized using concatenated strings and has fewerinitializers than its declared size.20522 Initial restructuring to enable future use of a preprocessor com-
mon to both C and C++ analyzers, see Messages LocationChanges.
0688
Array size determined by number of initializers which include concate-nated string literals.20522 Initial restructuring to enable future use of a preprocessor com-
mon to both C and C++ analyzers, see Messages LocationChanges.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 482 Programming Research Ltd.
Table 3.17 – continued from previous page
Msg. Id. Description
0744
[U] ’%s()’ has been declared with a non void return type but ends withan implicit ’return ;’ statement.20522 Initial restructuring to enable future use of a preprocessor com-
mon to both C and C++ analyzers, see Messages LocationChanges.
0769
A ’break’ statement has been used to terminate an iteration statement.11994 Support for semantics checks on statement expressions will be
extended, in accordance with the GCC compiler manual, seeSupport for GCC language extensions.
0770
A ’continue’ statement has been used.11994 Support for semantics checks on statement expressions will be
extended, in accordance with the GCC compiler manual, seeSupport for GCC language extensions.
0771
More than one ’break’ statement has been used to terminate this itera-tion statement.11994 Support for semantics checks on statement expressions will be
extended, in accordance with the GCC compiler manual, seeSupport for GCC language extensions.
0776
[L] External identifier matches other external identifier(s) (e.g. ’%s’) infirst 6 characters - program does not conform strictly to ISO:C90.20522 Initial restructuring to enable future use of a preprocessor com-
mon to both C and C++ analyzers, see Messages LocationChanges.
0777
[U] External identifier does not differ from other identifier(s) (e.g. ’%s’)within the specified number of significant characters.20522 Initial restructuring to enable future use of a preprocessor com-
mon to both C and C++ analyzers, see Messages LocationChanges.
0778
[L] Identifier matches other identifier(s) (e.g. ’%s’) in first 31 characters- program does not conform strictly to ISO:C90.23210 Existing messages 0778 and 0779 will be extended and new
messages 0788 and 0789 will be generated to report conflictsinvolving macro identifiers which do not differ from each other (orfrom tokens that they should not replace) within the first 31 char-acters (C90), the first 63 characters (C99) or the specified num-ber of significant characters. Note that this upgrade will supportcoverage/enforcement of MISRA C:2012 Rule 5.4 and MISRAC-2004 Rule 5.1.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 483 Programming Research Ltd.
Table 3.17 – continued from previous page
Msg. Id. Description
0779
[U] Identifier does not differ from other identifier(s) (e.g. ’%s’) within thespecified number of significant characters.23210 Existing messages 0778 and 0779 will be extended and new
messages 0788 and 0789 will be generated to report conflictsinvolving macro identifiers which do not differ from each other (orfrom tokens that they should not replace) within the first 31 char-acters (C90), the first 63 characters (C99) or the specified num-ber of significant characters. Note that this upgrade will supportcoverage/enforcement of MISRA C:2012 Rule 5.4 and MISRAC-2004 Rule 5.1.
0810
[L] ’#include "%s"’ causes nesting to exceed 8 levels - program doesnot conform strictly to ISO:C90.20522 Initial restructuring to enable future use of a preprocessor com-
mon to both C and C++ analyzers, see Messages LocationChanges.
0907
[S] Unexpected token.22645 Messages 0589 and 0907 will no longer be incorrectly generated
when an enumeration type is declared and the first enumerationconstant to be initialised is initialised to an integer constant ex-pression that contains a cast to a type which is defined via atypedef.
0930
[C99] Trailing comma at the end of an enumerator-list.20522 Initial restructuring to enable future use of a preprocessor com-
mon to both C and C++ analyzers, see Messages LocationChanges.
1021
[E] A statement expression is not supported in ISO C, and is treated asa language extension.11994 Support for semantics checks on statement expressions will be
extended, in accordance with the GCC compiler manual, seeSupport for GCC language extensions.
1252
Suffixed integer constant implicitly converted to different integer type.11994 Support for semantics checks on statement expressions will be
extended, in accordance with the GCC compiler manual, seeSupport for GCC language extensions.
1253
Unsuffixed integer constant implicitly converted to different integer type.11994 Support for semantics checks on statement expressions will be
extended, in accordance with the GCC compiler manual, seeSupport for GCC language extensions.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 484 Programming Research Ltd.
Table 3.17 – continued from previous page
Msg. Id. Description
1271
Using a non-int expression to define an enum constant.22645 Messages 0589 and 0907 will no longer be incorrectly generated
when an enumeration type is declared and the first enumerationconstant to be initialised is initialised to an integer constant ex-pression that contains a cast to a type which is defined via atypedef.
1276An integer constant is being converted to floating type on assignment.23185 False negatives for aggregate initializers not followed immedi-
ately by a comma.
1290
An integer constant of ’essentially signed’ type is being converted tounsigned type on assignment.23185 False negatives for aggregate initializers not followed immedi-
ately by a comma.
1291
An integer constant of ’essentially unsigned’ type is being converted tosigned type on assignment.11994 Support for semantics checks on statement expressions will be
extended, in accordance with the GCC compiler manual, seeSupport for GCC language extensions.
1292
An integer constant of ’essentially signed’ type is being converted totype char on assignment.23185 False negatives for aggregate initializers not followed immedi-
ately by a comma.
1294
An integer constant of ’essentially signed’ type is being converted totype _Bool on assignment.23185 False negatives for aggregate initializers not followed immedi-
ately by a comma.
1296
An integer constant of ’essentially signed’ type is being converted toenum type on assignment.23185 False negatives for aggregate initializers not followed immedi-
ately by a comma.
1298
An integer constant of ’essentially signed’ type is being converted tofloating type on assignment.23185 False negatives for aggregate initializers not followed immedi-
ately by a comma.
1476
Range of possible enum values suggests this test is always false.23250 The right argument of a comma expression will be evaluated, so
that if it is a constant expression, then the result of the commaoperation will also be handled as a constant expression. A num-ber of different messages may be affected by this update. Forinstance some false negatives of message 1476 will be cleared.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 485 Programming Research Ltd.
Table 3.17 – continued from previous page
Msg. Id. Description
1822
The %1s operand is non-constant and ’essentially signed’ (%2s) butwill be implicitly converted to an unsigned type (%3s) in this relationaloperation.23432 Fix to correct analysis of casts that change the const qualifica-
tion of pointers to qualified object types resulting in both falsepositive and false negative messages.
1823
The %1s operand is non-constant and ’essentially signed’ (%2s) butwill be implicitly converted to an unsigned type (%3s) in this equalityoperation.23432 Fix to correct analysis of casts that change the const qualifica-
tion of pointers to qualified object types resulting in both falsepositive and false negative messages.
1824
The %1s operand is non-constant and ’essentially signed’ (%2s) butwill be implicitly converted to an unsigned type (%3s) in this conditionaloperation.23432 Fix to correct analysis of casts that change the const qualifica-
tion of pointers to qualified object types resulting in both falsepositive and false negative messages.
1840
The %1s operand is constant, ’essentially signed’ (%2s) and non-negative but will be implicitly converted to an unsigned type (%3s) inthis arithmetic operation.11994 Support for semantics checks on statement expressions will be
extended, in accordance with the GCC compiler manual, seeSupport for GCC language extensions.
1842
The %1s operand is constant, ’essentially signed’ (%2s) and non-negative but will be implicitly converted to an unsigned type (%3s) inthis relational operation.23432 Fix to correct analysis of casts that change the const qualifica-
tion of pointers to qualified object types resulting in both falsepositive and false negative messages.
1843
The %1s operand is constant, ’essentially signed’ (%2s) and non-negative but will be implicitly converted to an unsigned type (%3s) inthis equality operation.23432 Fix to correct analysis of casts that change the const qualifica-
tion of pointers to qualified object types resulting in both falsepositive and false negative messages.
1844
The %1s operand is constant, ’essentially signed’ (%2s) and non-negative but will be implicitly converted to an unsigned type (%3s) inthis conditional operation.23432 Fix to correct analysis of casts that change the const qualifica-
tion of pointers to qualified object types resulting in both falsepositive and false negative messages.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 486 Programming Research Ltd.
Table 3.17 – continued from previous page
Msg. Id. Description
1852
The %1s operand is ’essentially unsigned’ (%2s) but will be implicitlyconverted to a signed type (%3s) in this relational operation.23432 Fix to correct analysis of casts that change the const qualifica-
tion of pointers to qualified object types resulting in both falsepositive and false negative messages.
1853
The %1s operand is ’essentially unsigned’ (%2s) but will be implicitlyconverted to a signed type (%3s) in this equality operation.23432 Fix to correct analysis of casts that change the const qualifica-
tion of pointers to qualified object types resulting in both falsepositive and false negative messages.
1854
The %1s operand is ’essentially unsigned’ (%2s) but will be implicitlyconverted to a signed type (%3s) in this conditional operation.23432 Fix to correct analysis of casts that change the const qualifica-
tion of pointers to qualified object types resulting in both falsepositive and false negative messages.
1862
The operands of this relational operator are of different ’essentialsignedness’ but will both be promoted to ’signed int’ for comparison.11994 Support for semantics checks on statement expressions will be
extended, in accordance with the GCC compiler manual, seeSupport for GCC language extensions.
1863
The operands of this equality operator are of different ’essential signed-ness’ but will both be promoted to ’signed int’ for comparison.23432 Fix to correct analysis of casts that change the const qualifica-
tion of pointers to qualified object types resulting in both falsepositive and false negative messages.
1864
The 2nd and 3rd operands of this conditional operator are of different’essential signedness’. The result will be in the promoted type ’signedint’.23432 Fix to correct analysis of casts that change the const qualifica-
tion of pointers to qualified object types resulting in both falsepositive and false negative messages.
1882
The 2nd and 3rd operands of this conditional operator are expressionsof different ’essential type’ categories (%1s and %2s).23432 Fix to correct analysis of casts that change the const qualifica-
tion of pointers to qualified object types resulting in both falsepositive and false negative messages.
2006
’%s()’ has more than one ’return’ path.20522 Initial restructuring to enable future use of a preprocessor com-
mon to both C and C++ analyzers, see Messages LocationChanges.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 487 Programming Research Ltd.
Table 3.17 – continued from previous page
Msg. Id. Description
2022
A tentative definition is being used. Is it appropriate to include an ex-plicit initializer ?20522 Initial restructuring to enable future use of a preprocessor com-
mon to both C and C++ analyzers, see Messages LocationChanges.
2110
Default argument promotion : unsigned char promoted to signed int.20522 Initial restructuring to enable future use of a preprocessor com-
mon to both C and C++ analyzers, see Messages LocationChanges.
2111
Default argument promotion : unsigned short promoted to signed int.20522 Initial restructuring to enable future use of a preprocessor com-
mon to both C and C++ analyzers, see Messages LocationChanges.
2112
Default argument promotion : unsigned char promoted to unsigned int.20522 Initial restructuring to enable future use of a preprocessor com-
mon to both C and C++ analyzers, see Messages LocationChanges.
2113
Default argument promotion : unsigned short promoted to unsigned int.20522 Initial restructuring to enable future use of a preprocessor com-
mon to both C and C++ analyzers, see Messages LocationChanges.
2114
Default argument promotion : signed char promoted to signed int.20522 Initial restructuring to enable future use of a preprocessor com-
mon to both C and C++ analyzers, see Messages LocationChanges.
2115
Default argument promotion : signed short promoted to signed int.20522 Initial restructuring to enable future use of a preprocessor com-
mon to both C and C++ analyzers, see Messages LocationChanges.
2116
Default argument promotion : plain char promoted to signed int.20522 Initial restructuring to enable future use of a preprocessor com-
mon to both C and C++ analyzers, see Messages LocationChanges.
2117
Default argument promotion : plain char promoted to unsigned int.20522 Initial restructuring to enable future use of a preprocessor com-
mon to both C and C++ analyzers, see Messages LocationChanges.
2118
Default argument promotion : float promoted to double.20522 Initial restructuring to enable future use of a preprocessor com-
mon to both C and C++ analyzers, see Messages LocationChanges.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 488 Programming Research Ltd.
Table 3.17 – continued from previous page
Msg. Id. Description
2119
Default argument promotion : _Bool promoted to signed int.20522 Initial restructuring to enable future use of a preprocessor com-
mon to both C and C++ analyzers, see Messages LocationChanges.
2205
More than one declaration or statement on the same line.11994 Support for semantics checks on statement expressions will be
extended, in accordance with the GCC compiler manual, seeSupport for GCC language extensions.
2212
Body of control statement is not enclosed within braces.11994 Support for semantics checks on statement expressions will be
extended, in accordance with the GCC compiler manual, seeSupport for GCC language extensions.
2741
This ’if’ controlling expression is a constant expression and its value is’true’.11994 Support for semantics checks on statement expressions will be
extended, in accordance with the GCC compiler manual, seeSupport for GCC language extensions.
2742
This ’if’ controlling expression is a constant expression and its value is’false’.11994 Support for semantics checks on statement expressions will be
extended, in accordance with the GCC compiler manual, seeSupport for GCC language extensions.
2751
This function is too complex. Dataflow analysis continues with the nextfunction.22702 Dataflow will no longer use excessive memory and exit unex-
pectedly when analysing functions that contain a conditional thatresults in a large number of branches e.g. a switch statementwith many case labels. Messages 2751 or 2752 will be gener-ated when the number of branches exceeds 200 and dataflowwill not analyze the remainder of the function. This applies toswitch statements, nested if-else statements and repeated con-ditional return/abort()/exit() statements.
2752
This ’%1s’ results in the function being too complex. Dataflow analysiscontinues with the next function.22702 Dataflow will no longer use excessive memory and exit unex-
pectedly when analysing functions that contain a conditional thatresults in a large number of branches e.g. a switch statementwith many case labels. Messages 2751 or 2752 will be gener-ated when the number of branches exceeds 200 and dataflowwill not analyze the remainder of the function. This applies toswitch statements, nested if-else statements and repeated con-ditional return/abort()/exit() statements.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 489 Programming Research Ltd.
Table 3.17 – continued from previous page
Msg. Id. Description
2757
Could not analyze function ’%1s’.20494 In the event of a Dataflow analysis failure, Dataflow will no longer
return error code 16 and instead produce a dataflow internaltimeout message so that analysis can continue.
2776
Definite: Copy between overlapping objects.23067 A new message 0681 will be generated when an assignment
operation is performed between different members of the sameunion, except when (1) the two members have compatible typesand overlap exactly, or (2) either or both members are accessedvia pointers. Note: dataflow analysis is required to handle ac-cess via pointers, and these cases are already covered by com-plementary dataflow messages 2776, 2777 and 2778.
2777
Apparent: Copy between overlapping objects.23067 A new message 0681 will be generated when an assignment
operation is performed between different members of the sameunion, except when (1) the two members have compatible typesand overlap exactly, or (2) either or both members are accessedvia pointers. Note: dataflow analysis is required to handle ac-cess via pointers, and these cases are already covered by com-plementary dataflow messages 2776, 2777 and 2778.
2778
Suspicious: Copy between overlapping objects.23067 A new message 0681 will be generated when an assignment
operation is performed between different members of the sameunion, except when (1) the two members have compatible typesand overlap exactly, or (2) either or both members are accessedvia pointers. Note: dataflow analysis is required to handle ac-cess via pointers, and these cases are already covered by com-plementary dataflow messages 2776, 2777 and 2778.
2830
Constant: Division by zero.20522 Initial restructuring to enable future use of a preprocessor com-
mon to both C and C++ analyzers, see Messages LocationChanges.
2841
Definite: Dereference of an invalid pointer value.15753 New message will be generated to report when a dynamic mem-
ory allocation function is called with an argument for memorysize that is inconsistent with the size of the type of object to al-locate, see Buffer Overflow Checking.
2842
Apparent: Dereference of an invalid pointer value.15753 New message will be generated to report when a dynamic mem-
ory allocation function is called with an argument for memorysize that is inconsistent with the size of the type of object to al-locate, see Buffer Overflow Checking.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 490 Programming Research Ltd.
Table 3.17 – continued from previous page
Msg. Id. Description
2843
Suspicious: Dereference of an invalid pointer value.15753 New message will be generated to report when a dynamic mem-
ory allocation function is called with an argument for memorysize that is inconsistent with the size of the type of object to al-locate, see Buffer Overflow Checking.
2844
Possible: Dereference of an invalid pointer value.15753 New message will be generated to report when a dynamic mem-
ory allocation function is called with an argument for memorysize that is inconsistent with the size of the type of object to al-locate, see Buffer Overflow Checking.
2931
Definite: Computing an invalid pointer value.15753 New message will be generated to report when a dynamic mem-
ory allocation function is called with an argument for memorysize that is inconsistent with the size of the type of object to al-locate, see Buffer Overflow Checking.
2932
Apparent: Computing an invalid pointer value.15753 New message will be generated to report when a dynamic mem-
ory allocation function is called with an argument for memorysize that is inconsistent with the size of the type of object to al-locate, see Buffer Overflow Checking.
2933
Suspicious: Computing an invalid pointer value.15753 New message will be generated to report when a dynamic mem-
ory allocation function is called with an argument for memorysize that is inconsistent with the size of the type of object to al-locate, see Buffer Overflow Checking.
2934
Possible: Computing an invalid pointer value.15753 New message will be generated to report when a dynamic mem-
ory allocation function is called with an argument for memorysize that is inconsistent with the size of the type of object to al-locate, see Buffer Overflow Checking.
3109
Null statement follows other code on the same line.20522 Initial restructuring to enable future use of a preprocessor com-
mon to both C and C++ analyzers, see Messages LocationChanges.
3111
Redundant comma at end of braced initializer will be ignored.20522 Initial restructuring to enable future use of a preprocessor com-
mon to both C and C++ analyzers, see Messages LocationChanges.
3112
This statement has no side-effect - it can be removed.11994 Support for semantics checks on statement expressions will be
extended, in accordance with the GCC compiler manual, seeSupport for GCC language extensions.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 491 Programming Research Ltd.
Table 3.17 – continued from previous page
Msg. Id. Description
3120
Hard-coded ’magic’ integer constant, ’%s’.20522 Initial restructuring to enable future use of a preprocessor com-
mon to both C and C++ analyzers, see Messages LocationChanges.
3139
Null statement is obscured by code or comment on the same line.20522 Initial restructuring to enable future use of a preprocessor com-
mon to both C and C++ analyzers, see Messages LocationChanges.
3141
Null statement does not occur on a line by itself.20522 Initial restructuring to enable future use of a preprocessor com-
mon to both C and C++ analyzers, see Messages LocationChanges.
3196
The variable ’%s’ is never set.11994 Support for semantics checks on statement expressions will be
extended, in accordance with the GCC compiler manual, seeSupport for GCC language extensions.
3200
’%s’ returns a value which is not being used.11994 Support for semantics checks on statement expressions will be
extended, in accordance with the GCC compiler manual, seeSupport for GCC language extensions.
3203
The variable ’%s’ is set but never used.11994 Support for semantics checks on statement expressions will be
extended, in accordance with the GCC compiler manual, seeSupport for GCC language extensions.
3204
The variable ’%s’ is only set once and so it could be declared with the’const’ qualifier.11994 Support for semantics checks on statement expressions will be
extended, in accordance with the GCC compiler manual, seeSupport for GCC language extensions.
3205
The identifier ’%s’ is not used and could be removed.15709 A new message 3213 will be generated to report an unused
struct/union/enum tag. A new message 3214 will be generatedto report an unused macro. Existing message 3205 will also begenerated for unused enum constants defined at file scope inthe source file.
3209
’%s()’ returns a value which is always ignored.20522 Initial restructuring to enable future use of a preprocessor com-
mon to both C and C++ analyzers, see Messages LocationChanges.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 492 Programming Research Ltd.
Table 3.17 – continued from previous page
Msg. Id. Description
3212
This cast is redundant.11994 Support for semantics checks on statement expressions will be
extended, in accordance with the GCC compiler manual, seeSupport for GCC language extensions.
3220
Identifier declared at a nested level of block scope.11994 Support for semantics checks on statement expressions will be
extended, in accordance with the GCC compiler manual, seeSupport for GCC language extensions.
20522 Initial restructuring to enable future use of a preprocessor com-mon to both C and C++ analyzers, see Messages LocationChanges.
3335
No function declaration. Implicit declaration inserted: ’extern int %s();’.20522 Initial restructuring to enable future use of a preprocessor com-
mon to both C and C++ analyzers, see Messages LocationChanges.
3345
Statement contains more than one access to objects that are volatile.11994 Support for semantics checks on statement expressions will be
extended, in accordance with the GCC compiler manual, seeSupport for GCC language extensions.
3408
’%s’ has external linkage and is being defined without any previousdeclaration.20522 Initial restructuring to enable future use of a preprocessor com-
mon to both C and C++ analyzers, see Messages LocationChanges.
3602
Using one of the keywords ’signed’, ’const’, ’volatile’ or ’enum’.20522 Initial restructuring to enable future use of a preprocessor com-
mon to both C and C++ analyzers, see Messages LocationChanges.
3618
Whitespace used after ’#’ at the start of this preprocessing directive.20522 Initial restructuring to enable future use of a preprocessor com-
mon to both C and C++ analyzers, see Messages LocationChanges.
3619
Whitespace used before ’#’ at the start of this preprocessing directive.20522 Initial restructuring to enable future use of a preprocessor com-
mon to both C and C++ analyzers, see Messages LocationChanges.
3713
Implicit conversion: unsigned char to short.11994 Support for semantics checks on statement expressions will be
extended, in accordance with the GCC compiler manual, seeSupport for GCC language extensions.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 493 Programming Research Ltd.
Table 3.17 – continued from previous page
Msg. Id. Description
3715
Implicit conversion: unsigned char to int.11994 Support for semantics checks on statement expressions will be
extended, in accordance with the GCC compiler manual, seeSupport for GCC language extensions.
3747
Implicit conversion: unsigned short to short.11994 Support for semantics checks on statement expressions will be
extended, in accordance with the GCC compiler manual, seeSupport for GCC language extensions.
3757
Implicit conversion: int to unsigned char.11994 Support for semantics checks on statement expressions will be
extended, in accordance with the GCC compiler manual, seeSupport for GCC language extensions.
3758
Implicit conversion: int to short.11994 Support for semantics checks on statement expressions will be
extended, in accordance with the GCC compiler manual, seeSupport for GCC language extensions.
3759
Implicit conversion: int to unsigned short.11994 Support for semantics checks on statement expressions will be
extended, in accordance with the GCC compiler manual, seeSupport for GCC language extensions.
3760
Implicit conversion: int to unsigned int.11994 Support for semantics checks on statement expressions will be
extended, in accordance with the GCC compiler manual, seeSupport for GCC language extensions.
3790
Implicit conversion: unsigned long to unsigned char.11994 Support for semantics checks on statement expressions will be
extended, in accordance with the GCC compiler manual, seeSupport for GCC language extensions.
3892
The result of this cast is implicitly converted to another type.23432 Fix to correct analysis of casts that change the const qualifica-
tion of pointers to qualified object types resulting in both falsepositive and false negative messages.
4102
Both operands of |operator are ’Boolean’ expressions.11994 Support for semantics checks on statement expressions will be
extended, in accordance with the GCC compiler manual, seeSupport for GCC language extensions.
4105
Right hand operand of arithmetic or bitwise operator is a ’Boolean’ ex-pression.11994 Support for semantics checks on statement expressions will be
extended, in accordance with the GCC compiler manual, seeSupport for GCC language extensions.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 494 Programming Research Ltd.
Table 3.17 – continued from previous page
Msg. Id. Description
4115
Operand of logical && or ||operator is not an ’essentially Boolean’ ex-pression.11994 Support for semantics checks on statement expressions will be
extended, in accordance with the GCC compiler manual, seeSupport for GCC language extensions.
4116
Operand of logical ! operator is not an ’essentially Boolean’ expression.11994 Support for semantics checks on statement expressions will be
extended, in accordance with the GCC compiler manual, seeSupport for GCC language extensions.
4131
Left shift operation on signed operand.11994 Support for semantics checks on statement expressions will be
extended, in accordance with the GCC compiler manual, seeSupport for GCC language extensions.
4304
An expression of ’essentially Boolean’ type (%1s) is being cast to un-signed type ’%2s’.11994 Support for semantics checks on statement expressions will be
extended, in accordance with the GCC compiler manual, seeSupport for GCC language extensions.
4393
A composite expression of ’essentially signed’ type (%1s) is being castto a different type category, ’%2s’.11994 Support for semantics checks on statement expressions will be
extended, in accordance with the GCC compiler manual, seeSupport for GCC language extensions.
4394
A composite expression of ’essentially unsigned’ type (%1s) is beingcast to a different type category, ’%2s’.11994 Support for semantics checks on statement expressions will be
extended, in accordance with the GCC compiler manual, seeSupport for GCC language extensions.
4404
An expression of ’essentially Boolean’ type (%1s) is being converted tounsigned type, ’%2s’ on assignment.11994 Support for semantics checks on statement expressions will be
extended, in accordance with the GCC compiler manual, seeSupport for GCC language extensions.
4424
An expression of ’essentially enum’ type (%1s) is being converted tounsigned type, ’%2s’ on assignment.11994 Support for semantics checks on statement expressions will be
extended, in accordance with the GCC compiler manual, seeSupport for GCC language extensions.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 495 Programming Research Ltd.
Table 3.17 – continued from previous page
Msg. Id. Description
4430
An expression of ’essentially signed’ type (%1s) is being converted toBoolean type, ’%2s’ on assignment.11994 Support for semantics checks on statement expressions will be
extended, in accordance with the GCC compiler manual, seeSupport for GCC language extensions.
4440
An expression of ’essentially unsigned’ type (%1s) is being convertedto Boolean type, ’%2s’ on assignment.11994 Support for semantics checks on statement expressions will be
extended, in accordance with the GCC compiler manual, seeSupport for GCC language extensions.
4443
A non-constant expression of ’essentially unsigned’ type (%1s) is beingconverted to a wider signed type, ’%2s’ on assignment.11994 Support for semantics checks on statement expressions will be
extended, in accordance with the GCC compiler manual, seeSupport for GCC language extensions.
4446
A non-constant expression of ’essentially unsigned’ type (%1s) is beingconverted to signed type, ’%2s’ on assignment.11994 Support for semantics checks on statement expressions will be
extended, in accordance with the GCC compiler manual, seeSupport for GCC language extensions.
4460
A non-constant expression of ’essentially signed’ type (%1s) is beingconverted to narrower signed type, ’%2s’ on assignment.11994 Support for semantics checks on statement expressions will be
extended, in accordance with the GCC compiler manual, seeSupport for GCC language extensions.
4470
A non-constant expression of ’essentially signed’ type (%1s) is beingpassed to a function parameter of wider signed type, ’%2s’.11994 Support for semantics checks on statement expressions will be
extended, in accordance with the GCC compiler manual, seeSupport for GCC language extensions.
4471
A non-constant expression of ’essentially unsigned’ type (%1s) is beingpassed to a function parameter of wider unsigned type, ’%2s’.11994 Support for semantics checks on statement expressions will be
extended, in accordance with the GCC compiler manual, seeSupport for GCC language extensions.
4538
An expression of ’essentially signed’ type (%1s) is being used as the%2s operand of this logical operator (%3s).11994 Support for semantics checks on statement expressions will be
extended, in accordance with the GCC compiler manual, seeSupport for GCC language extensions.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 496 Programming Research Ltd.
Table 3.17 – continued from previous page
Msg. Id. Description
4539
An expression of ’essentially signed’ type (%1s) is being used as thefirst operand of this conditional operator (%2s).11994 Support for semantics checks on statement expressions will be
extended, in accordance with the GCC compiler manual, seeSupport for GCC language extensions.
4558
An expression of ’essentially unsigned’ type (%1s) is being used as the%2s operand of this logical operator (%3s).11994 Support for semantics checks on statement expressions will be
extended, in accordance with the GCC compiler manual, seeSupport for GCC language extensions.
4559
An expression of ’essentially unsigned’ type (%1s) is being used as thefirst operand of this conditional operator (%2s).11994 Support for semantics checks on statement expressions will be
extended, in accordance with the GCC compiler manual, seeSupport for GCC language extensions.
4600
The macro ’%1s’ is also defined in ’<%2s>’.20522 Initial restructuring to enable future use of a preprocessor com-
mon to both C and C++ analyzers, see Messages LocationChanges.
4641
The identifier ’%1s’ could conflict in the future with the name of a macroin ’<%2s>’.20522 Initial restructuring to enable future use of a preprocessor com-
mon to both C and C++ analyzers, see Messages LocationChanges.
4643
The identifier ’%1s’ could conflict in the future with the name of a func-tion in ’<%2s>’.20522 Initial restructuring to enable future use of a preprocessor com-
mon to both C and C++ analyzers, see Messages LocationChanges.
RELEASE NOTES : QA·C 9.4.1 Page 497 Programming Research Ltd.
4 QA·C Ticket Summary
4.1 Ticket Summary for QA·C 9.4.1
The following table summarizes the tickets that were closed in QA·C 9.4.1.
Tickets are categorized into 3 types:
E – Enhancement to an existing feature.
F – A fix of a bug or problem feature.
N – New functionality has been introduced.
Note: Where there is a large number of messages, the text for the impacted items will notbe listed. Please see Messages with Modified Behavior to see the message text.
RELEASE NOTES : QA·C 9.4.1 Page 498 Programming Research Ltd.
Table 4.1: Ticket Summary for QA·C 9.4.1
Ticket Type Description
15746 N
Added new messages 3678, 3679 and 3695 to indicate when a local orstatic pointer variable could be declared with more const-qualification.Message(s):
0318 0454 0540 0701 0724 0746 0747 09411336 1487 1820 1821 1822 1823 1824 18301831 1832 1833 1834 1840 1841 1842 18431844 1850 1851 1852 1853 1854 1860 18611862 1863 1864 2211 3120 3212 3227 32283673 3675 3677 3678 3679 3695 3700 37013702 3703 3704 3705 3706 3707 3708 37093710 3711 3712 3713 3715 3717 3719 37203721 3722 3723 3725 3727 3729 3730 37313732 3733 3734 3735 3736 3738 3740 37413742 3743 3744 3745 3746 3747 3748 37503752 3753 3754 3755 3756 3757 3758 37593760 3762 3763 3764 3765 3766 3767 37683769 3770 3771 3772 3774 3775 3776 37773778 3779 3780 3781 3782 3783 3784 37853786 3787 3788 3789 3790 3791 3792 37933794 3795 3796 3797 3798 3799 3800 38013802 3803 3804 3805 3806 3807 3810 38113812 3813 3814 3815 3816 3817 3818 38193821 3822 3823 3824 3825 3826 3827 38283829 3830 3831 3832 3833 3834 3837 38393840 3843 3844 3848 3850 3851 3852 38533854 3855 3856 3857 3858 3859 3860 38613862 3863 3864 3865 3866 3867 3868 38693870 3871 3872 3873 3874 3875 3876 38773878 3879 3880 3881
23566 N
Added support for parsing of C99 hexadecimal floating constants.Message(s):0434 [S] The identifier ’%s’ has not been declared.0907 [S] Unexpected token.1076 [C99] Use of hexadecimal floating constant.
4.2 Ticket Summary for QA·C 9.4.0
The following table summarizes the tickets that were closed in QA·C 9.4.0.
RELEASE NOTES : QA·C 9.4.1 Page 499 Programming Research Ltd.
Tickets are categorized into 3 types:
E – Enhancement to an existing feature.
F – A fix of a bug or problem feature.
N – New functionality has been introduced.
Note: Where there is a large number of messages, the text for the impacted items will notbe listed. Please see Messages with Modified Behavior to see the message text.
Table 4.2: Ticket Summary for QA·C 9.4.0
Ticket Type Description
10998 F
Rework of QAC’s loop control variable detection to correctly recognizeloop control variables that are members of aggregates, and removefalse positives and negatives when the loop control variable is a pointer.Message(s):
0542 0702 2461 2462 2463 2464 2465 24662467 2468 2469 2470 2471 2472 2473 24742475 2481 2487 2488 2740 2741 2742 27443314 3323 3325 3329 3343 3346 3401 34073415 3416 3419 3420 3441 3446
14326 F
The analysis will no longer abort, and message 0618 will no longerbe incorrectly generated in certain situations involving a cast to volatilequalifier only (with an implicit ’int’ type).Message(s):0618 [C99] ’volatile’ qualifier has been duplicated.
21171 F
Message 0402 will no longer be incorrectly generated in certain situ-ations involving assignment between structure members, which are offunction pointer type and which are accessed through pointers.Message(s):0402 [U] ’%s’ is modified and accessed between sequence points
- evaluation order unspecified.
21292 F
The assignment of a local variable’s address of objects with longer life-time is not always detected.Message(s):2826 Definite: Use of an object after its lifetime has ended.2827 Apparent: Use of an object after its lifetime has ended.2828 Suspicious: Use of an object after its lifetime has ended.2916 Definite: Storing the address of an object in a pointer that
has greater lifetime.2917 Apparent: Storing the address of an object in a pointer that
has greater lifetime.2918 Suspicious: Storing the address of an object in a pointer that
has greater lifetime.continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 500 Programming Research Ltd.
Table 4.2 – continued from previous page
Ticket Type Description
21397 F
Messages 0838 and 0839 are issued inside the problematic header fileinstead of the source file, when applicable. This makes it possible tosuppress the message with the -q option.Message(s):0838 File ’%1s’ has already been included directly from within file
’%2s’.0839 File ’%1s’ has already been included indirectly from within
file ’%2s’.
21493 NAdded -size and -align options support for configuration of C99 _Booltype.
21553 N
New message 3677 to indicate when the element type of an array orpointer to array function parameter should be declared with const quali-fier. Also fixed false negative 3673 on operations which involve multiplepointer dereferences.Message(s):3673 The object addressed by the pointer parameter ’%s’ is not
modified and so the pointer could be of type ’pointer toconst’.
3677 The elements of the array parameter ’%s’ are not modifiedand so they could be qualified as ’const’.
21598 F
Messages 2207, 2208 and 2209 now also apply to the braces delimitingthe body of functions. In addition, indent and style checking is disabledin certain cases for ambiguous macro arguments and nonstandard lan-guage extensions. Message 2200 description improved.Message(s):
2200 2201 2203 2204 2207 2208 2209 22112212 2213 2214 2215
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 501 Programming Research Ltd.
Table 4.2 – continued from previous page
Ticket Type Description
24300 F
Added new messages to warn when jumps other than ’break’ are usedto terminate switch clauses, and reduced false negatives for switchstructure enforcement messages 2002, 2003, 2009 and 2012. Newmessage 2025 to warn of jumps over closure boundaries.Message(s):2002 No ’default’ label found in this ’switch’ statement.2003 The preceding ’switch’ clause is not empty and does not end
with a ’jump’ statement. Execution will fall through.2009 This ’default’ label is not the final ’case’ label within the
’switch’ block.2012 This ’default’ label is neither the first nor the last label within
the ’switch’ block.2020 Final ’switch’ clause does not end with an explicit ’jump’
statement.2023 The preceding ’switch’ clause is not empty and ends with a
jump statement other than ’break’.2024 Final ’switch’ clause ends with a ’jump’ statement other than
’break’.2025 This appears to jump across a nested function scope bound-
ary.
24414 N
Support added for Visual Studio push_macro/pop_macro feature.Message(s):3142 Unable to parse ’%1s_macro’ arguments; ignoring #pragma.3143 ’%1s_macro’ with non-macro identifier ’%2s’.3144 Ignoring ’pop_macro’ with empty macro stack for ’%1s’.
24695 N
Added new messages 2052 and 2053 to warn when a line or blockcomment respectively appears to contain commented-out code.Message(s):2052 This line comment appears to comment out source code.2053 This block comment appears to comment out source code.
24697 N
The implementation of this struct/union type should be hidden.Message(s):3630 The implementation of this struct/union type should be hid-
den.continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 502 Programming Research Ltd.
Table 4.2 – continued from previous page
Ticket Type Description
24715 N
New messages 3469, 3471, 3472, 3473 to indicate when a function-likemacro could be rewritten as an equivalent C function.Message(s):3410 Macro parameter not enclosed in ().3469 This usage of a function-like macro looks like it could be re-
placed by an equivalent function call.3471 Some uses of this function-like macro look like they could be
replaced by equivalent function calls.3472 All toplevel uses of this function-like macro look like they
could be replaced by equivalent function calls.3473 This usage of a function-like setter macro looks like it could
be replaced by a similar function call.
24745 F
Messages 0634 and 0635 have been clarified with the names of theaffected fields and relocated to point directly at the fields rather thanthe containing structs. In addition, the -intrinsictype option has beenextended with a new suboption, ’bitfield’, which accepts a comma-separated list of builtin types to accept as supported for use in bitfielddeclarations, which will suppress message 0625 when those types areused to declare bitfields.Message(s):
0634 0635 0654 0656 0676 0678 0680 10623659 3663 3665
24746 N
New message 0754 instead of 0556 and 0447 to identify a string literalbeing modified.Message(s):0556 [C] Left operand of assignment must be a modifiable object.0754 String literal is being modified.
24749 N
New message 3331 to indicate when the definition for an identifier withexternal linkage conflicts with a previous declaration in the same scope.Message(s):0627 [C] ’%s’ has different type to previous declaration in the same
scope.3331 The definition for identifier ’%s’ with external linkage conflicts
with a previous declaration in the same scope.
24783 F
False positive 2840 when accessing the last array element of struct typewith a _Bool member.Message(s):2840 Constant: Dereference of an invalid pointer value.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 503 Programming Research Ltd.
Table 4.2 – continued from previous page
Ticket Type Description
24801 N
New messages 3241 to warn when inline function declarations are im-plicitly static, and 3242 to warn when a plain inline function declarationrules out making defining it as static later. Also improves consistencyof related qualifier/specifier messages.Message(s):0774 [C] ’auto’ may not be specified on global declaration of ’%s’.0775 [C] ’register’ may not be specified on global declaration of
’%s’.2007 ’auto’ does not add information to a declaration, and is best
avoided.3236 [C] ’inline’ may not be applied to function ’main’.3240 inline function ’%s’ is being defined with external linkage.3241 This inline function declaration for ’%s’ is implicitly static.3242 This inline function declaration for ’%s’ prevents it from being
defined with internal linkage.3243 inline function ’%s’ is also an ’external definition’.3244 [C] ’inline’ may only be used in the declaration of a function
identifier.3620 ’register’ may be illegal on array and ’struct’ / ’union’ types in
some compilers.
24803 N
New analysis to highlight arrays with explicit initializers for some, butnot all, elements.Message(s):0691 Array initialized with designators has fewer initializers than its
declared size. Default initialization is applied to the remain-der of the array elements.
0704 Structure initialized with designators has fewer initializersthan its declared size. Default initialization is applied to theremainder of the members.
2500 Call to ’%s’ is not immediately preceded by the zero-ing of’errno’.
2502 Zero-ing of ’errno’ is not immediately followed by a call to an’errno’ setting function.
24805 N
QAC will generate message 1814 whenever an expression of essen-tially enum type is added or subtracted with an expression with essen-tially character type.Message(s):1814 An operand of ’essentially enum’ type is being added or sub-
tracted from an operand of ’essentially character’ type.continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 504 Programming Research Ltd.
Table 4.2 – continued from previous page
Ticket Type Description
24809 F
If a composite expression is the operand to the unary negate, unaryposate, or bitwise complement operator, the resulting unary expressionwill inherit that status and also be considered a composite expression.Message(s):1890 A composite expression of ’essentially signed’ type (%1s) is
being implicitly converted to a wider signed type, ’%2s’.1891 A composite expression of ’essentially unsigned’ type (%1s)
is being implicitly converted to a wider unsigned type, ’%2s’.1892 A composite expression of ’essentially floating’ type (%1s) is
being implicitly converted to a wider floating type, ’%2s’.1893 The 2nd and 3rd operands of this conditional operator are
both ’essentially signed’ (’%1s’ and ’%2s’) but one is a com-posite expression of a narrower type than the other.
1894 The 2nd and 3rd operands of this conditional operator areboth ’essentially unsigned’ (’%1s’ and ’%2s’) but one is acomposite expression of a narrower type than the other.
1895 The 2nd and 3rd operands of this conditional operator areboth ’essentially floating’ (’%1s’ and ’%2s’) but one is a com-posite expression of a narrower type than the other.
4490 A composite expression of ’essentially signed’ type (%1s) isbeing converted to wider signed type, ’%2s’ on assignment.
4491 A composite expression of ’essentially unsigned’ type (%1s)is being converted to wider unsigned type, ’%2s’ on assign-ment.
4492 A composite expression of ’essentially floating’ type (%1s) isbeing converted to wider floating type, ’%2s’ on assignment.
4499 An expression which is the result of a ~ or << operation hasbeen converted to a wider essential type on assignment.
24813 N
New messages 3433 and 3434 to indicate when sizeof or alignof arebeing used with a non-parenthesized expression operand.Message(s):3433 Expression operand to sizeof is not parenthesized.3434 Expression operand to alignof is not parenthesized.
24824 F
Message 0499 will be correctly generated in certain situations wherethe left hand side operand of the shift operator is a constant expression.Note that this update will clear some false negatives in the enforcementof MISRA C:2012 Rule 12.2.Message(s):0499 Right operand of shift operator is greater than or equal to the
width of the essential type of the left operand.continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 505 Programming Research Ltd.
Table 4.2 – continued from previous page
Ticket Type Description
24825 F
Messages relating to constant wraparound are no longer generated inunevaluated contexts. This change does not apply to overflow mes-sages.Message(s):0278 [C] Overflow in signed arithmetic operation on constant
operands.0684 [C] Too many initializers.2800 Constant: Overflow in signed arithmetic operation.2890 Constant: Negative value implicitly converted to an unsigned
type.2910 Constant: Wraparound in unsigned arithmetic operation.3302 Wraparound past zero in unsigned subtraction of constant
operands.3303 Wraparound past zero in unsigned addition of constant
operands.3304 Wraparound past zero in unsigned multiplication of constant
operands.
24835 N
New message 3387 to identify use of increment or decrement operatorin an expression that has another side effect. Detection of volatile ac-cess has also been improved, in particular when involving addresses ofvolatile objects.Message(s):3387 A full expression containing an increment (++) or decrement
(–) operator should have no potential side effects other thanthat caused by the increment or decrement operator.
3421 Expression with persistent side effects is used in an initializerlist.
24836 F
False positives for messages 3415, 3416, 3421 and 3446 when an ex-pression calls a function with no persistent side effect.Message(s):3415 Right hand operand of ’&&’ or ’||’ is an expression with per-
sistent side effects.3416 Logical operation performed on expression with persistent
side effects.3421 Expression with persistent side effects is used in an initializer
list.3446 The 2nd or 3rd operand of this conditional operator is an
expression with persistent side effects.continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 506 Programming Research Ltd.
Table 4.2 – continued from previous page
Ticket Type Description
24838 N
New message 3350 to highlight when a while loop is controlled by afloating-point comparison.Message(s):3339 Floating point variable used as ’while’ loop control variable.3340 Floating point variable used as ’for’ loop control variable.3342 Controlling expression of ’for’ loop is a floating point compar-
ison.3350 Controlling expression of ’while’ loop is a floating point com-
parison.
24843 N
New messages 0772 and 0773 to warn when a loop has multiple exitsincluding ’goto’ and ’return’ statements; adjusted the locations of 0769and 0771 and other loop-control related messages for better consis-tency.Message(s):
0708 0766 0767 0768 0769 0770 0771 07720773 2001 2005 3310 4397
24845 N
New option -warnmacroexpansion (-WME) and message 1007 to warnon expansion of the specified macro.Message(s):1007 The macro ’%s’ must not be expanded.1567 Macro ’%1s’ expanded here.
24849 F
Fixed false positive in 3260, 3261, 3262, 3263 that mistakenly treatedarrays as additional levels of pointer nesting. Improved consistency of0609.Message(s):0609 [L] More than 12 pointer, array or function declarators mod-
ifying a declaration - program does not conform strictly toISO:C90.
3260 Typedef defined with more than 2 levels of indirection.3261 Member of struct/union defined with more than 2 levels of
indirection.3262 Object defined or declared with more than 2 levels of indirec-
tion.3263 Function defined or declared with a return type which has
more than 2 levels of indirection.
24850 N
See 21292.Message(s):2919 Possible: Storing the address of an object in a pointer that
has greater lifetime.continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 507 Programming Research Ltd.
Table 4.2 – continued from previous page
Ticket Type Description
24856 N
New message 0895 to mark the point of declaration of a macro param-eter which is subjected to inconsistent expansion.Message(s):0893 Macro argument ’%s’ is both expanded as a macro and used
with the ’%s’ operator.0895 Macro parameter ’%s’ is inconsistently subject to macro re-
placement.
24863 N
New metric NPATH corresponding to a strict interpretation of Nejmeh’sexecution path complexity metric (i.e. including paths within expres-sions expressed via the short-circuiting operators). STPTH is un-changed.
24869 N
Message 2840-2844 range has been replaced by range 2935-2939for calls to strcpy, strncpy, strcat, strncat, sprintf, swprintf, snprintf,snprintf_s, and strftime.Message(s):2935 Constant: Dereference of an invalid char pointer value.2936 Definite: Dereference of an invalid char pointer value.2937 Apparent: Dereference of an invalid char pointer value.2938 Suspicious: Dereference of an invalid char pointer value.2939 Possible: Dereference of an invalid char pointer value.
24875 F
Certain messages that apply to initializer expressions will be generatedagainst those expressions instead of being generated at the end of theinitialiser list. A number of related messages will also have their lo-cations improved as part of a general message location improvementacross QAC.Message(s):
0304 0544 0545 0546 0673 0701 0974 13311482 2118 2800 2910 2940 3401 4443 44464447 4460 4461 4462 4463 4464 4465 44704471 4472 4480 4481 4482 4491 4492 4498
24876 E
Messages 2500 and 2501 are no longer generated when ’errno’ hasbeen tested against zero for the current path.Message(s):2504 Call to ’%s’ is not immediately preceded by the explicit zero-
ing of ’errno’. However, ’errno’ is implicitly zero because ofthe context.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 508 Programming Research Ltd.
Table 4.2 – continued from previous page
Ticket Type Description
25045 F
Reduced false positives and negatives for several messages relatingto variable modification in expressions involving statement expressionsand nested functions. (Using a variable in a statement expression is nolonger considered a modification.)Message(s):
0400 0401 0402 0403 0404 0405 2981 29822983 3197 3198 3199 3202 3203 3204 32053206
25067 F
Fixed false positive 2212 when brace occurs hidden by a macro in sameplace in header and main file.Message(s):2212 Body of control statement is not enclosed within braces.
25268 F
Reduced overall QAC memory usage; significantly reduced memoryusage of array initializers.Message(s):1324 Function ’main’ cannot be called or have its address taken in
C++.
25281 F
Analysis of unused values returned from a function call now includescalls made through pointer to functions.Message(s):3200 ’%s’ returns a value which is not being used.3208 ’%s()’ returns a value which is sometimes ignored.3209 ’%s()’ returns a value which is always ignored.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 509 Programming Research Ltd.
Table 4.2 – continued from previous page
Ticket Type Description
25282 F
Fixed false positive 0375/0410 when parenthesized expressions arecast. Locations for parenthesis/volatile messages tightened up.Message(s):0375 [L] Nesting of parenthesized expressions exceeds 63 - pro-
gram does not conform strictly to ISO:C99.0400 [U] ’%s’ is modified more than once between sequence
points - evaluation order unspecified.0401 [U] ’%s’ may be modified more than once between sequence
points - evaluation order unspecified.0402 [U] ’%s’ is modified and accessed between sequence points
- evaluation order unspecified.0403 [U] ’%s’ may be modified and accessed between sequence
points - evaluation order unspecified.0404 More than one read access to volatile objects between se-
quence points.0405 More than one modification of volatile objects between se-
quence points.0410 [L] Nesting of parentheses exceeds 32 - program does not
conform strictly to ISO:C90.3345 Statement contains more than one access to objects that are
volatile.3442 Operator other than & (address-of) or = (assignment) applied
to a volatile object.
25292 F
Fixed false positive 1330 on expressions involving a cast to functionpointer.Message(s):1330 The parameter identifiers in this function declaration differ
from those in a previous declaration.1334 The parameter identifiers in the prototypes of these function-
s/function pointers are different.
25294 F
False Positive 2961 is no longer generated when dereferencing a mem-ber of type pointer to function through an array subscript.Message(s):2961 Definite: Using value of uninitialized automatic object ’%s’.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 510 Programming Research Ltd.
Table 4.2 – continued from previous page
Ticket Type Description
25305 E
Dataflow has been improved to model side effects of pointer assign-ment less conservatively.Message(s):
2668 2669 2671 2674 2676 2678 2681 26822683 2686 2687 2688 2691 2692 2693 26962697 2698 2701 2702 2703 2706 2707 27082711 2712 2713 2716 2717 2718 2721 27222723 2726 2727 2728 2731 2732 2733 27362737 2738 2743 2746 2747 2748 2750 27512752 2755 2756 2757 2758 2761 2763 27662767 2768 2771 2772 2773 2776 2777 27782785 2786 2789 2791 2792 2793 2796 27972798 2799 2800 2801 2802 2803 2806 28072808 2809 2810 2811 2812 2813 2814 28162817 2818 2819 2820 2821 2822 2823 28242831 2832 2833 2834 2835 2836 2839 28402841 2842 2843 2844 2845 2846 2847 28482849 2850 2851 2852 2853 2856 2857 28582860 2861 2862 2863 2865 2866 2867 28682869 2870 2871 2872 2877 2880 2881 28822883 2887 2888 2889 2890 2891 2892 28932895 2896 2897 2898 2900 2901 2902 29032905 2906 2907 2908 2910 2911 2912 29132920 2921 2922 2923 2930 2931 2932 29332934 2940 2941 2942 2943 2945 2946 29472948 2950 2951 2952 2953 2956 2959 29612962 2963 2966 2967 2968 2971 2972 29732976 2977 2978 2980 2981 2982 2983 29842985 2986 2987 2990 2991 2992 2993 29942995 2996 2997 2998
25308 N New met file record, <R>U, generated on expansion of a macro.
25310 NNew met file record, <R>U, generated for use of a typedef. See alsoticket 25308.
25447 F
Restored behaviour of message 0240 to warn when a carriage-return isdetected at the end of a line on a platform which uses only line feeds tomark end-of-line. Added new message 0242 to warn when a carriage-return is detected in a different context.Message(s):0240 [E] This file contains the control-M character at the end of a
line.0242 [E] This file contains the control-M character in the middle of
a line.continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 511 Programming Research Ltd.
Table 4.2 – continued from previous page
Ticket Type Description
25465 F
Fixed false positives due to incorrect constant folding of casts to _Bool.Message(s):2741 This ’if’ controlling expression is a constant expression and
its value is ’true’.2742 This ’if’ controlling expression is a constant expression and
its value is ’false’.
25549 F
Message 2776 will no longer be incorrectly generated when a struc-ture with bit-fields is wrapped in a union and an assignment is madebetween bit-fields in that structure that are at either side of an 8-bitboundary.Message(s):2776 Definite: Copy between overlapping objects.
25592 F
Fixed crashes seen on certain uses of the default parameter value ex-tension; added new message 1080 to warn when the extension be-comes a constraint violation.Message(s):1080 [C] A typedef or pointer to function is being declared with
default argument syntax. This is not allowed.
25604 NCommand line definitinos of __QAC_MAJOR__ and __QAC_MINOR_-_ macros no longer take priority over those implicitly defined by QAC.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 512 Programming Research Ltd.
Table 4.2 – continued from previous page
Ticket Type Description
25655 F
Minor performance improvements, and bug fixes due to improved mod-elling of constants and declaration scope in dataflow.Message(s):
2668 2669 2671 2674 2676 2678 2681 26822683 2686 2687 2688 2691 2692 2693 26962697 2698 2701 2702 2703 2706 2707 27082711 2712 2713 2716 2717 2718 2721 27222723 2726 2727 2728 2731 2732 2733 27362737 2738 2740 2741 2742 2743 2744 27462747 2748 2750 2751 2752 2753 2754 27552756 2757 2758 2761 2763 2766 2767 27682771 2772 2773 2776 2777 2778 2781 27822783 2784 2785 2786 2789 2790 2791 27922793 2796 2797 2798 2799 2800 2801 28022803 2806 2807 2808 2809 2810 2811 28122813 2814 2816 2817 2818 2819 2820 28212822 2823 2824 2830 2831 2832 2833 28342835 2836 2839 2840 2841 2842 2843 28442845 2846 2847 2848 2849 2850 2851 28522853 2855 2856 2857 2858 2860 2861 28622863 2865 2866 2867 2868 2869 2870 28712872 2877 2880 2881 2882 2883 2887 28882889 2890 2891 2892 2893 2895 2896 28972898 2900 2901 2902 2903 2905 2906 29072908 2910 2911 2912 2913 2920 2921 29222923 2930 2931 2932 2933 2934 2940 29412942 2943 2945 2946 2947 2948 2950 29512952 2953 2956 2959 2961 2962 2963 29662967 2968 2971 2972 2973 2976 2977 29782980 2981 2982 2983 2984 2985 2986 29872990 2991 2992 2993 2994 2995 2996 29972998
25802 F
Internal refactoring of flow graph analysis.Message(s):2811 Definite: Dereference of NULL pointer.2814 Possible: Dereference of NULL pointer.2916 Definite: Storing the address of an object in a pointer that
has greater lifetime.2918 Suspicious: Storing the address of an object in a pointer that
has greater lifetime.continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 513 Programming Research Ltd.
Table 4.2 – continued from previous page
Ticket Type Description
25815 F
The message status of QAC preprocessing messages has beenbrought into line with QAC++. Also fixes an error in the handling ofmalformed #include directives.Message(s):
0268 0803 0804 0817 0818 0821 0846 08510852 0887 1033
25896 F
QAC failed to return for code containing a braced initializer to an arrayof incomplete type.Message(s):0434 [S] The identifier ’%s’ has not been declared.0453 [C] An array subscript must have integral type.0621 [C] The struct/union ’%s’ cannot be initialized because it has
unknown size.0680 [u] Array element is ’void’ or an incomplete ’struct’ or ’union’.
Arrays cannot be constructed from incomplete types.0691 Array initialized with designators has fewer initializers than its
declared size. Default initialization is applied to the remain-der of the array elements.
0790 This translation unit makes use of floating types.1269 Floating constant cast to integral type.1840 The %1s operand is constant, ’essentially signed’ (%2s) and
non-negative but will be implicitly converted to an unsignedtype (%3s) in this arithmetic operation.
3313 No definition has been found for structure/union tag ’%s’.
25909 FQAC will not double-expand recursive macros when they are reused ina function-like macro replacement list.
4.3 Ticket Summary for QA·C 9.3.1
The following table summarizes the tickets that were closed in QA·C 9.3.1.
Tickets are categorized into 3 types:
E – Enhancement to an existing feature.
F – A fix of a bug or problem feature.
N – New functionality has been introduced.
Note: Where there is a large number of messages, the text for the impacted items will notbe listed. Please see Messages with Modified Behavior to see the message text.
RELEASE NOTES : QA·C 9.4.1 Page 514 Programming Research Ltd.
Table 4.3: Ticket Summary for QA·C 9.3.1
Ticket Type Description
25154 F
QAC no longer fails during analysis of complex resource usage, whilstalso addressing false positives where resources may be releasedthrough calls to external functions.Message(s):2706 Definite: Allocated memory is not deallocated.2707 Apparent: Allocated memory is not deallocated.2708 Suspicious: Allocated memory is not deallocated.
25312 F
QAC no longer fails for translation units that call ’fopen’ or ’freopen’where the return type is not used.Message(s):2686 Definite: Writing to a file opened for reading.2687 Apparent: Writing to a file opened for reading.2688 Suspicious: Writing to a file opened for reading.2691 Definite: The same file will be open with write access and an-
other mode.2692 Apparent: The same file will be open with write access and an-
other mode.2693 Suspicious: The same file will be open with write access and
another mode.
25381 EThe section on the legacy use of command line tools has been re-moved.
25407 FQAC no longer fails on Windows when processing contain-ers(std::vector).
25415 FQAC no longer fails after recovery from syntax errors results in an in-valid internal state.
25417 FQAC shows full header paths by default when printing preprocessedsource with -ppf, unless disabled with -ef-.
25452 F
QAC no longer fails when checking loop variables for use before initial-ization in infinite loops.Message(s):
2961 2962 2963 2966 2967 2968 2971 2972 29732976 2977 2978
25461 F
QAC no longer fails when issuing message 1061 for unnamed structand members.Message(s):1061 [C] Structure ’%1s’ with flexible array member ’%2s’ cannot be
used in the declaration of structure member ’%3s’.continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 515 Programming Research Ltd.
Table 4.3 – continued from previous page
Ticket Type Description
25503 E
The severity level of the following messages is restored to the level theyhad in QAC 9.2: 0268, 0803, 0804, 0817, 0821, 0846, 0887, 1033.Message 0852 is recategorized from constraint error to syntax error.Note that all the message severity changes introduced in QAC 9.3.0through Ticket 25160 are undone, except for messages 0852 and 3104.Message(s):0268 [S] Comment open at end of translation unit.0803 [C] The ’#’ operator may only appear before a macro parameter.0804 [C] Macro parameter ’%s’ is not unique.0817 [S] Closing quote or bracket ’>’ missing from include filename.0821 [C] ’#include’ does not identify a header or source file that can
be processed.0846 [S] ’#define’ must be followed by an identifier.0852 [C] Unable to find the ’)’ that marks the end of the macro call.0887 [U] Use of ’defined’ must match either ’defined(identifier)’ or ’de-
fined identifier’.1033 [C] The identifier __VA_ARGS__ may only be used in the re-
placement list of a variadic macro.
4.4 Ticket Summary for QA·C 9.3.0
The following table summarizes the tickets that were closed in QA·C 9.3.0.
Tickets are categorized into 3 types:
E – Enhancement to an existing feature.
F – A fix of a bug or problem feature.
N – New functionality has been introduced.
Note: Where there is a large number of messages, the text for the impacted items will notbe listed. Please see Messages with Modified Behavior to see the message text.
Table 4.4: Ticket Summary for QA·C 9.3.0
Ticket Type Description
10985 EQAC shall no longer treat ’\\’ character placed at the end of the line asa line continuation character.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 516 Programming Research Ltd.
Table 4.4 – continued from previous page
Ticket Type Description
11200 E
QAC will provide option to specify typdef names that will be treated asessentially boolean when performing analysis.Message(s):
1317 1318 1410 1412 1477 1881 2109 3344 38924101 4105 4115 4130 4402 4403 4430 4432 45014502 4532 4538 4599
13417 E
QAC will recognize control variable of floating type in while loops. QACwill generate message 2463 if variable is increased in for loop thirdexpression along loop control variable.Message(s):2463 The variable incremented in the third expression of this ’for’
statement is not the variable identified as the ’loop control vari-able’ (%s).
2464 Loop control variable, %s, modified twice in for-loop header.3339 Floating point variable used as ’while’ loop control variable.
14126 N
New message to highlight where the default label of a switch statementis not the first or last labelMessage(s):2012 This ’default’ label is neither the first nor the last label within the
’switch’ block.
14489 N
New messages to identify use of an invariant expression as the firstoperand of a conditional operatorMessage(s):2997 The first operand of this conditional operator is always ’true’.2998 The first operand of this conditional operator is always ’false’.3493 The first operand of this conditional operator is always constant
’true’.3494 The first operand of this conditional operator is always constant
’false’.
21205 E
New message 751 has been added, to handle casts to char pointers,for which 310 won’t be generated anymore.Message(s):0310 Casting to different object pointer type.0751 Casting to char pointer type.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 517 Programming Research Ltd.
Table 4.4 – continued from previous page
Ticket Type Description
21587 E
Dataflow has been improved to model multiple levels of pointer indirec-tion. Since it allows more analysis to be done, all dataflow messagescould be impactedMessage(s):
2668 2669 2671 2674 2676 2678 2681 2682 26832686 2687 2688 2691 2692 2693 2696 2697 26982701 2702 2703 2706 2707 2708 2711 2712 27132716 2717 2718 2721 2722 2723 2726 2727 27282731 2732 2733 2736 2737 2738 2740 2741 27422743 2744 2746 2747 2748 2750 2751 2752 27532754 2755 2756 2757 2758 2761 2763 2766 27672768 2771 2772 2773 2776 2777 2778 2781 27822783 2784 2785 2786 2789 2790 2791 2792 27932796 2797 2798 2799 2800 2801 2802 2803 28062807 2808 2809 2810 2811 2812 2813 2814 28162817 2818 2819 2820 2821 2822 2823 2824 28302831 2832 2833 2834 2835 2836 2839 2840 28412842 2843 2844 2845 2846 2847 2848 2849 28502851 2852 2853 2856 2857 2858 2860 2861 28622863 2865 2866 2867 2868 2869 2870 2871 28722877 2880 2881 2882 2883 2887 2888 2889 28902891 2892 2893 2895 2896 2897 2898 2900 29012902 2903 2905 2906 2907 2908 2910 2911 29122913 2920 2921 2922 2923 2930 2931 2932 29332934 2940 2941 2942 2943 2945 2946 2947 29482950 2951 2952 2953 2956 2959 2961 2962 29632966 2967 2968 2971 2972 2973 2976 2977 29782980 2981 2982 2983 2984 2985 2986 2987 29902991 2992 2993 2994 2995 2996 2997 2998
22288 E C++ only
22583 E
QAC will generate new messages to identify situations when there ismore than one read or more than one write to a volatile type betweensequence points.Message(s):0400 [U] ’%s’ is modified more than once between sequence points -
evaluation order unspecified.0402 [U] ’%s’ is modified and accessed between sequence points -
evaluation order unspecified.0404 More than one read access to volatile objects between se-
quence points.0405 More than one modification of volatile objects between se-
quence points.continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 518 Programming Research Ltd.
Table 4.4 – continued from previous page
Ticket Type Description
23418 E
A new message 0613 will be generated when the C99 translation limit’65535 bytes in an object (in a hosted environment only)’ is exceeded.Message(s):0613 [L] Size of object ’%s’ exceeds 65535 bytes - program does not
conform strictly to ISO:C99.
23438 F
Message 3344 will no longer be incorrectly generated when the con-trolling expression is an element of a _Bool array.Message(s):3212 This cast is redundant.3344 Controlling expression is not an ’essentially Boolean’ expres-
sion.
23497 F
Messages 1820, 1821, 1822, 1823, 1824, 1850, 1851, 1852, 1853,1854, 1880, 1881, 1882, 4390 and 4393 will be generated also whenthe applicable operands happen to be structure/union members, arrayelements, pointer dereferences, results of function calls, etc.Message(s):
1820 1821 1822 1823 1824 1850 1851 1852 18531854 1880 1881 1882 4390 4393
23530 E
Message 0570 will no longer be generated for non negative constantexprsesions of signed type if the value can be represented in the targettype.Message(s):0570 This switch case label of ’essential type’ ’%1s’, is not consistent
with a controlling expression of essential type ’%2s’.
23542 E
Message 3108 will no longer be generated to report the occurrence ofa // character sequence within a // comment.Message(s):3108 Nested comments are not recognized in the ISO standard.
23544 E
New message 2987 to highlight a function call that is redundant and socan be removed.Message(s):2987 This function call produces no side effects and is redundant.
23572 FThe -intrinsictype (-it) configuration option will be extended so that it willbe possible to specify a list of underlying types that a compiler may usefor enumeration types
23574 E
A new message 0615 will be generated when the C99 translation limit’511 identifiers with block scope declared in one block’ is exceeded.Message(s):0615 [L] More than 511 block scope identifiers defined within a block
- program does not conform strictly to ISO:C99.continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 519 Programming Research Ltd.
Table 4.4 – continued from previous page
Ticket Type Description
23603 E
QAC will no longer generate messagess 0301, 0303 and 0306 whenpointer to void is involved. QAC will generate messages 0326 and 0327to identify casting between pointer to void and arithmetic type.Message(s):0301 [u] Cast between a pointer to object and a floating type.0303 [I] Cast between a pointer to volatile object and an integral type.0306 [I] Cast between a pointer to object and an integral type.0326 [I] Cast between a pointer to void and an integral type.0327 [I] Cast between a pointer to void and an floating type.
23605 E
The text of message 1398 will refer to the name of the structure mem-ber that has already been initialised, instead of its zero-based positionwithin the structure.Message(s):1398 Structure member ’%s’ has already been initialized.
23823 E
New messages 0794, 0795 and 0796 will be generated to report iden-tifiers in inner scopes that hide identifiers in outer scopes because theyare not distinct within the required number of significant characters.Message(s):0778 [L] Identifier matches other identifier(s) (e.g. ’%s’) in first 31
characters - program does not conform strictly to ISO:C90.0779 [U] Identifier does not differ from other identifier(s) (e.g. ’%s’)
within the specified number of significant characters.0789 [L] Identifier matches other identifier(s) (e.g. ’%s’) in first 63
characters - program does not conform strictly to ISO:C99.0794 Identifier matches other identifier(s) (e.g. ’%s’) in an outer scope
within the ISO:C90 limit of 31 significant characters.0795 Identifier matches other identifier(s) (e.g. ’%s’) in an outer scope
within the specified number of significant characters.0796 Identifier matches other identifier(s) (e.g. ’%s’) in an outer scope
within the ISO:C99 limit of 63 significant characters
23955 E
The following messages have changed their behavior slightly, fixing anumber of false positives and negativesMessage(s):
2961 2962 2963 2966 2967 2968 2971 2972 29732976 2977 2978 2980 2981 2982 2983
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 520 Programming Research Ltd.
Table 4.4 – continued from previous page
Ticket Type Description
24146 F
QAC will generate message 1493 whenever result of localeconv,getenv, setlocale or strerror is implicitly assigned to a pointer to a mod-ifiable object. QAC will generate message 1494 whenerver result oflocaleconv, getenv, setlocale or strerror might have been modified via apointer.Message(s):1493 The result of library function ’%s’ is used as a pointer to a modi-
fiable object.1494 The result of library function ’%s’ might be modified.
24175 E
The handling of statement expressions and nested function parametershas been improved to stop the generation of message 2752.Message(s):
2668 2669 2671 2674 2676 2678 2681 2682 26832686 2687 2688 2691 2692 2693 2696 2697 26982701 2702 2703 2706 2707 2708 2711 2712 27132716 2717 2718 2721 2722 2723 2726 2727 27282731 2732 2733 2736 2737 2738 2740 2741 27422743 2744 2746 2747 2748 2750 2751 2752 27532754 2755 2756 2757 2758 2761 2763 2766 27672768 2771 2772 2773 2776 2777 2778 2781 27822783 2784 2785 2786 2789 2790 2791 2792 27932796 2797 2798 2799 2800 2801 2802 2803 28062807 2808 2809 2810 2811 2812 2813 2814 28162817 2818 2819 2820 2821 2822 2823 2824 28302831 2832 2833 2834 2835 2836 2839 2840 28412842 2843 2844 2845 2846 2847 2848 2849 28502851 2852 2853 2855 2856 2857 2858 2860 28612862 2863 2865 2866 2867 2868 2869 2870 28712872 2877 2880 2881 2882 2883 2887 2888 28892890 2891 2892 2893 2895 2896 2897 2898 29002901 2902 2903 2905 2906 2907 2908 2910 29112912 2913 2920 2921 2922 2923 2930 2931 29322933 2934 2940 2941 2942 2943 2945 2946 29472948 2950 2951 2952 2953 2956 2959 2961 29622963 2966 2967 2968 2971 2972 2973 2976 29772978 2980 2981 2982 2983 2984 2985 2986 29872990 2991 2992 2993 2994 2995 2996 2997 2998
24199 F
The behavior of message 3315 has been fixed, removing some falsenegatives.Message(s):3315 This ’switch’ statement is redundant.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 521 Programming Research Ltd.
Table 4.4 – continued from previous page
Ticket Type Description
24211 E
Messages 2501 and 2502 will be generated even if the expected state-ment is not encountered because the end of the translation unit isreached. Messages 2501 will not be generated when the return valueof an errno setting function can be used to determine if an error hasoccured.Message(s):2501 Call to ’%s’ is not immediately followed by the testing of ’errno’.2502 Zeroing of ’errno’ is not immediately followed by a call to an ’er-
rno’ setting function.
24296 E
Message 2016 has been split to distinguish switch default blocks thatare empty with a comment from those without comments.Message(s):2014 This ’switch’ statement ’default’ clause is empty and contains
comments.2016 This ’switch’ statement ’default’ clause is empty.
24302 E
Unnamed bitfields affect the padding between members but are notcounted as members for initialization, QAC will no longer incorrectlyconsider them for initialization.Message(s):0703 Structure has fewer initializers than its declared size. Default
initialization is applied to the remainder of the members.
24309 E
Messages 2777, 2778 and 2779 are now generated for assignmentinvolving an element of an array that is a union member, and anotheroverlapping member of the same union.Message(s):2776 Definite: Copy between overlapping objects.2777 Apparent: Copy between overlapping objects.2778 Suspicious: Copy between overlapping objects.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 522 Programming Research Ltd.
Table 4.4 – continued from previous page
Ticket Type Description
24326 E
New messages 0791, 0792 and 0793 will be generated instead of, re-spectively, existing messages 0779, 0778 and 0789 if the conflict arisesbetween two macro identifiers.Message(s):0778 [L] Identifier matches other identifier(s) (e.g. ’%s’) in first 31
characters - program does not conform strictly to ISO:C90.0779 [U] Identifier does not differ from other identifier(s) (e.g. ’%s’)
within the specified number of significant characters.0789 [L] Identifier matches other identifier(s) (e.g. ’%s’) in first 63
characters - program does not conform strictly to ISO:C99.0791 [U] Macro identifier does not differ from other macro identifier(s)
(e.g. ’%s’) within the specified number of significant characters.0792 [L] Macro identifier matches other macro identifier(s) (e.g. ’%s’)
in first 31 characters - program does not conform strictly toISO:C90.
0793 [L] Macro identifier matches other macro identifier(s) (e.g. ’%s’)in first 63 characters - program does not conform strictly toISO:C99.
24406 F C++ only
24424 E
Message 3421 will also be generated when the initializing expressioninvolves a dereference of a pointer to a volatile object, array accessto a volatile object, or access of a struct or union volatile member viathe dot or arrow operator. Message 3421 will no longer be incorrectlygenerated against an initializing expression that contains addresses ofvolatile objects which are not dereferenced.Message(s):3421 Expression with possible side effects is used in an initializer list.
24434 N
New analysis to detect resourecs, including memory and files, that areacquired but not released.Message(s):
2701 2702 2703 2706 2707 2708 2711 2712 27132726 2727 2728 2731 2732 2733 2736 2737 27382746 2747 2748
24435 N
New analysis to detect use of ’free’ to memory that was not allocateddynamicallyMessage(s):2716 Definite: Memory deallocated multiple times.2717 Apparent: Memory deallocated multiple times.2718 Suspicious: Memory deallocated multiple times.2721 Definite: Deallocation of non dynamic memory.2722 Apparent: Deallocation of non dynamic memory.2723 Suspicious: Deallocation of non dynamic memory.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 523 Programming Research Ltd.
Table 4.4 – continued from previous page
Ticket Type Description
24436 N
New analysis to identify an attempt to write to a FILE that was openedfor reading.Message(s):2686 Definite: Writing to a file opened for reading.2687 Apparent: Writing to a file opened for reading.2688 Suspicious: Writing to a file opened for reading.2691 Definite: The same file will be open with write access and an-
other mode.2692 Apparent: The same file will be open with write access and an-
other mode.2693 Suspicious: The same file will be open with write access and
another mode.
24439 N
New analysis to detect usage of a FILE pointer after the stream hasbeen closedMessage(s):2696 Definite: Attempt to access a file which has been closed.2697 Apparent: Attempt to access a file which has been closed.2698 Suspicious: Attempt to access a file which has been closed.
24451 F
Support for designated initialization of union member other than thefirst, reducing false positives and negatives where these values areused. Also addressed failure for aggregate union member subse-quently overwritten by a designated initializer other than the first mem-ber.Message(s):
1397 1398 1399 2671 2676 2761 2766 2771 27762786 2791 2796 2801 2806 2811 2816 2821 28312836 2841 2846 2851 2856 2861 2891 2896 29012906 2911 2921 2931 2941 2946 2951
24460 E
QAC will generate message 0945 only if expression, used as anoperand of sizeof operator, has side effects.Message(s):0945 [C99] Operand of sizeof is an expression of variable length array
type with side effects.
24467 E
QAC will generate message 2013 for empty else statement in ’if .. elseif’ constructs.Message(s):2013 This ’if .. else if ’ construct ’else’ statement is empty.
24469 FAll SMT delayed messages may be modified, due to new analysis oc-curing in array initializers
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 524 Programming Research Ltd.
Table 4.4 – continued from previous page
Ticket Type Description
24507 E
Removed dependency on the legacy configuration file ’qac.cfg’.Message(s):0160 [U] Using unsupported conversion specifier number %s.0190 [U] Using unsupported conversion specifier number %s.
24614 E See 14126
24667 E
Message 3006 will recognize encapsulation of assembly in macros,supported by new message 3008Message(s):3006 This function contains a mixture of in-line assembler statements
and C statements.3008 This function contains a mixture of in-line assembler statements
and C code.
24688 F
Message 0883 will be generated for files where there is no code toprotect. #elif and #else are no longer considered part of a valid includeguard.Message(s):0883 Include file code is not protected against repeated inclusion
24724 F
QAC will generate new message 840 in case of #include directive fol-lowed by extra tokens.Message(s):0818 [Q] Cannot find ’%s’ - Perhaps the appropriate search path was
not given ?0821 [C] ’#include’ does not identify a header or source file that can
be processed.0840 [E] Extra tokens at end of #include directive.0917 [S] Unable to recover from syntax errors in this source file.
24727 E
QAC will generate new message 0603 whenever macro identifier be-ginning with an underscore is defined or undefined.Message(s):0603 [U] The macro identifier ’%s’ is reserved.4600 The macro ’%1s’ is also defined in ’<%2s>’.4601 The macro ’%1s’ is the name of an identifier in ’<%2s>’.4620 The macro ’%1s’ may also be defined as a macro in ’<%2s>’.4621 The macro ’%1s’ may also be defined as a typedef in ’<%2s>’.4640 The macro ’%1s’ could conflict in the future with the name of a
macro in ’<%2s>’.4642 The macro ’%1s’ could conflict in the future with the name of a
function in ’<%2s>’.4644 The macro ’%1s’ could conflict in the future with the name of a
typedef in ’<%2s>’.continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 525 Programming Research Ltd.
Table 4.4 – continued from previous page
Ticket Type Description
24765 E
QAC will generate messages 3003 and 3004 correctly when the condi-tional operator is involved in expression.Message(s):3003 This character constant is being interpreted as a NULL pointer
constant.3004 This integral constant expression is being interpreted as a NULL
pointer constant.
24771 E
QAC will generate message 3432 for simple (precedence-safe) argu-ments to macros if they are not parenthesizedMessage(s):3430 Macro argument expression may require parentheses.3432 Simple macro argument expression is not parenthesized.
24774 E
New messages 3462,3463,3464,3465,3466,3467 added to warn whena side-effecting expression passed as an argument to a function-likemacro is not consistently evaluated exactly once; fixed false negativefor 3456 when non-parenthesizedMessage(s):3456 Parameter ’%s’ will be evaluated more than once when this
macro is used.3462 Argument to macro ’%s’ appears to contain a side effect, but it
is not used.3463 Argument to macro ’%s’ contains a side effect that will not be
evaluated at runtime.3464 Argument to macro ’%s’ contains a side effect that will be evalu-
ated more than once.3465 Argument to macro ’%s’ contains a side effect that might not be
evaluated at runtime.3466 Variable argument list to macro ’%s’ appears to contain an ex-
pression with side effects.3467 Variable argument list to macro ’%s’ appears to contain an ex-
pression with side effects that will be used more than once.
24782 N
New analysis to detect where the size argument of certain standardlibrary functions has value of 0.Message(s):2865 Constant: Using 0 as size parameter of a function call.2866 Definite: Using 0 as size parameter of a function call.2867 Apparent: Using 0 as size parameter of a function call.2868 Suspicious: Using 0 as size parameter of a function call.2869 Possible: Using 0 as size parameter of a function call.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 526 Programming Research Ltd.
Table 4.4 – continued from previous page
Ticket Type Description
24822 E
New messages 2218 and 2219 have been added, to handle the switchstatements without braces, following the model of 2212 and 2214.Message(s):2218 Body of switch statement is not enclosed within braces.2219 Body of switch statement is on the same line and is not enclosed
within braces.
24830 F
QAC will generate message 4389 whenever a composite expression ofessentially character type has been cast to a different essential typecategory.Message(s):4389 A composite expression of ’essentially char’ type (%1s) is being
cast to a different type category, ’%2s’.
24839 E
QAC will generate new messages 0323 and 0324 to report cast be-tween pointer to incomplete type and a type. Messages 0301 and 0306will no longer be generated for casts mentioned above.Message(s):0301 [u] Cast between a pointer to object and a floating type.0306 [I] Cast between a pointer to object and an integral type.0323 [u] Cast between a pointer to incomplete type and a floating type.0324 [u] Cast between a pointer to incomplete type and an integral
type.
24848 E
QAC will generate message 2668 or 2669 respectively where a pointerto an array is subtracted or compared to a pointer that does not refer toan array.Message(s):2668 Subtraction of a pointer to an array and a pointer to a non array.2669 Comparison of a pointer to an array and a pointer to a non array.
24853 E
QAC will generate message 0325 to report cast between pointer toa function and a pointer to incomplete type, or vice a versa. Mes-sage 0307 will no longer be generated under circumstances describedabove.Message(s):0307 [u] Cast between a pointer to object and a pointer to function.0325 [u] Cast between a pointer to incomplete type and a pointer to
function.continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 527 Programming Research Ltd.
Table 4.4 – continued from previous page
Ticket Type Description
24855 E
QAC will take into account function parameter names when generatingmessages 0778, 0779, 0789, 0794, 0795, 0796.Message(s):0778 [L] Identifier matches other identifier(s) (e.g. ’%s’) in first 31
characters - program does not conform strictly to ISO:C90.0779 [U] Identifier does not differ from other identifier(s) (e.g. ’%s’)
within the specified number of significant characters.0789 [L] Identifier matches other identifier(s) (e.g. ’%s’) in first 63
characters - program does not conform strictly to ISO:C99.0794 Identifier matches other identifier(s) (e.g. ’%s’) in an outer scope
within the ISO:C90 limit of 31 significant characters.0795 Identifier matches other identifier(s) (e.g. ’%s’) in an outer scope
within the specified number of significant characters.0796 Identifier matches other identifier(s) (e.g. ’%s’) in an outer scope
within the ISO:C99 limit of 63 significant characters
24877 E
Messages 2501 will not be generated when the return value of an errnosetting function is used to determine if an error has occurred.Message(s):2501 Call to ’%s’ is not immediately followed by the testing of ’errno’.
24886 E
QAC will generate message 3449 to warn about multiple external dec-larations ofa same variable or function.Message(s):3449 Multiple declarations of external object or function.
24890 E
QAC will generate new messages 3383,3384,3385,3386 when it is un-able to detect an unsigned arithmetic wraparound guardMessage(s):3383 Cannot identify wraparound guard for unsigned arithmetic ex-
pression.3384 Cannot identify wraparound guard for dependent unsigned arith-
metic expression.3385 Cannot identify wraparound guard for sizeof-VLA expression.3386 Cannot identify wraparound guard for dependent sizeof-VLA ex-
pression.
24894 E
New messages 2140-2155 will be generated on implicit or explicit con-version of plain or signed char to a type of potentially-higher rankMessage(s):
2140 2141 2142 2143 2144 2145 2146 2147 21482149 2150 2151 2152 2153 2154 2155
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 528 Programming Research Ltd.
Table 4.4 – continued from previous page
Ticket Type Description
24906 E
Messages 3238 and 3237 won’t cancel dataflow analysis anymore(message 2753 won’t be generated subsequently to these two ones).Message(s):2753 As a result of error message ’%s’, dataflow analysis of the re-
mainder of this function is not possible.3237 [C] inline function ’%1s’ has external linkage and is defining an
object, ’%2s’, with static storage duration.3238 [C] inline function ’%1s’ has external linkage and is referring to
an object, ’%2s’, with internal linkage.
24975 EMessage 0883 is now generated once per include per translation unit.Message(s):0883 Include file code is not protected against repeated inclusion
24995 F
False negatives removed for message 3204Message(s):3204 The variable ’%s’ is only set once and so it could be declared
with the ’const’ qualifier.
25044 E
Message 3421 will no longer be generated for calls to functions definedin the current translation unit that do not result in any form of side-effect.Message(s):3421 Expression with possible side effects is used in an initializer list.
25048 E
QAC will generate message 0328 to identify casts between pointer toobject and an essential type other than signed/unsigned.Message(s):0328 [u] Cast between a pointer to object and an essential type other
than signed/unsigned.
25051 E
New message 3468 added to highlight C90 reserved identifiers that arenow keywords in C99. Note: _Bool will now generate 3468 and not3439.Message(s):3439 Macro redefines a keyword.3468 The name of this macro is a reserved identifier in C90 and a
keyword in C99.
25080 E
QAC will generate message 0735 whenever switch expression is of es-sentially Boolean type.Message(s):0735 Switch expression is of essentially Boolean type.
25088 E
QAC will not count unnamed bitfields when generating message 0703.Message(s):0703 Structure has fewer initializers than its declared size. Default
initialization is applied to the remainder of the members.continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 529 Programming Research Ltd.
Table 4.4 – continued from previous page
Ticket Type Description
25094 F
QAC will generate message 0553 when it would previously have beenobscured by declarations eliciting message 0709, 0625, or similar link-age constraint violationsMessage(s):0553 Translation unit contains no object or function definitions with
external linkage.25127 F Return code 18 added to component file.
25140 F
Change status of messages 245, 249, and 259 to more accurately re-flect standard (syntax error to undefined behavior).Message(s):0245 [S] Empty character constant.0249 [S] Character constant contains a new-line character.0259 [S] String literal is not terminated.
25143 F
Token-based analysis messages will now be emitted within asm blocks,making the behavior consistent between asm and _ignoreMessage(s):0249 [S] Character constant contains a new-line character.0259 [S] String literal is not terminated.0285 [I] Character constant contains character which is not a member
of the basic source character set.0286 [I] String literal contains character which is not a member of the
basic source character set.0811 [C] The glue operator ’##’ may only appear in a ’#define’ prepro-
cessing directive.0812 [C] Header name token ’<text>’ found outside ’#include’ prepro-
cessing directive.0849 [S] Preprocessing directive appears in the middle of a line.0873 [C] Preprocessing token cannot be converted to an actual token.0899 [E] Unrecognized preprocessing directive has been ignored - as-
sumed to be a language extension.continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 530 Programming Research Ltd.
Table 4.4 – continued from previous page
Ticket Type Description
25148 E
The following messages will have their locations slightly adjusted toimprove accuracy and compatibility with QAC++: 0231, 0232, 0233,0235, 0244, 0245, 0249, 0250, 0258, 0259, 0284, 0388, 0500, 0501,0502, 0580, 0602, 0605, 0788, 0791, 0792, 0793, 0804, 0807, 0810,0813, 0814, 0815, 0816, 0818, 0821, 0823, 0824, 0826, 0827, 0830,0831, 0832, 0833, 0836, 0837, 0838, 0841, 0842, 0843, 0846, 0847,0848, 0850, 0853, 0854, 0861, 0868, 0873, 0877, 0879, 0880, 0881,0883, 0884, 0885, 0886, 0887, 0888, 0889, 0894, 0896, 0897, 0898,0899, 1001, 1009, 1010, 1028, 1030, 1035, 1251, 1252, 1253, 1254,1255, 1272, 1277, 1278, 1279, 1281, 2830, 2910, 2920, 3101, 3102,3104, 3107, 3108, 3115, 3116, 3117, 3218, 3409, 3411, 3412, 3413,3414, 3428, 3431, 3438, 3443, 3452, 3453, 3457, 3458, 3459, 3460,3461, 3609, 3610, 3613, 3616, 4101-4116, 4580, 4581, 4582, 4583,4584, 4585, 4586, 4587, 4588, 4589, 4590, 4600-4608, 4620-4624,4540-4645, 4700, 4810-4817, 4820-4828Message(s):
0231 0232 0233 0235 0244 0245 0249 0250 02580259 0284 0388 0500 0501 0502 0580 0602 06050788 0791 0792 0793 0804 0807 0810 0813 08140815 0816 0818 0821 0823 0824 0826 0827 08300831 0832 0833 0836 0837 0838 0841 0842 08430846 0847 0848 0850 0853 0854 0861 0868 08730877 0879 0880 0881 0883 0884 0885 0886 08870888 0889 0894 0896 0897 0898 0899 1001 10091010 1028 1030 1035 1251 1252 1253 1254 12551272 1277 1278 1279 1281 2830 2910 2920 31013102 3104 3107 3108 3115 3116 3117 3218 34093411 3412 3413 3414 3428 3431 3438 3443 34523453 3457 3458 3459 3460 3461 3609 3610 36133616 4101 4102 4103 4104 4105 4106 4107 41084109 4110 4111 4112 4113 4114 4115 4116 45804581 4582 4583 4584 4585 4586 4587 4588 45894590 4600 4601 4602 4603 4604 4605 4606 46074608 4620 4621 4622 4623 4624 4640 4641 46424643 4644 4645 4700 4810 4811 4812 4813 48144815 4816 4817 4820 4821 4822 4823 4824 48254826 4827 4828
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 531 Programming Research Ltd.
Table 4.4 – continued from previous page
Ticket Type Description
25149 E
The following messages have been removed from QAC 9.3 and theirfunctionality merged into existing checks: 0257, 0251, 0261, 0269,0809, 0807, 0806, 0847, 0856Message(s):0251 [S] Character constant contains a trigraph representation of a
single backslash character.0257 [S] String literal is not terminated. A trigraph has been used in
the construction of an escape sequence.0261 [C] Comment still open at end of included file.0269 [S] Unexpected end of file.0806 [S] Comma missing in macro parameter list.0807 [S] Identifier missing in macro parameter list.0809 [U] The ’#include’ preprocessing directive has not been followed
by <h-char-sequence> or "s-char-sequence".0847 [S] ’#undef’ must be followed by an identifier.0856 [C] Fewer arguments in macro call than specified in definition.
25150 E
The following metrics have changed their behavior slightly: <DE-FINE>, <EXTN>, <LIT>, <PRAGMA>, <R>I, STBME, STBMO, STBMS,STBUG, STCCB, STCDN, STDEV, STDIF, STEFF, STFDN, STFDT,STFN1, STFN2, STHAL, STKDN, STM20, STM21, STM28, STM33,STOPN, STOPT, STPDN, STSHN, STTDE, STTDO, STTDS, STTOT,STTPP, STVAR, STVOL, STXLN, STZIP
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 532 Programming Research Ltd.
Table 4.4 – continued from previous page
Ticket Type Description
25151 E
The following messages have changed their behavior slightly, fixing anumber of false positives and negatives and improving consistency:241, 245, 259, 268, 285, 286, 287, 288, 289, 337, 0339, 0372, 828,0380, 0857, 0553, 0784, 785, 786, 0787, 0804, 0805, 0808, 0811,0812, 0814, 0818, 0821, 0822, 0823, 0827, 0829, 0830, 0842, 0846,0849, 0850, 0850, 1035, 0851, 0852, 0853, 0855, 0862, 0869, 0872,0873, 0894, 0896, 0897, 0898, 0899, 0914, 0925, 1002, 1005, 1006,1011, 1033, 2211, 2217, 3108, 3120, 3121, 3122, 3123, 3317, 3318,3431, 3601, 4700, 4810-4817, 4820-4835Message(s):
0241 0245 0259 0268 0285 0286 0287 0288 02890337 0339 0372 0380 0553 0784 0785 0786 07870804 0805 0808 0811 0812 0814 0818 0821 08220823 0827 0828 0829 0830 0842 0846 0849 08500850 0851 0852 0853 0855 0857 0862 0869 08720873 0894 0896 0897 0898 0899 0914 0925 10021005 1006 1011 1033 1035 2211 2217 3108 31203121 3122 3123 3317 3318 3431 3601 4700 48104811 4812 4813 4814 4815 4816 4817 4820 48214822 4823 4824 4825 4826 4827 4828 4829 48304831 4832 4833 4834 4835
25160 E
The following messages have had their severity level increased: 0803,0804, 0821, 0852, 0887, 1033. The following messages have had theirseverity level decreased: 0268, 0817, 0846, 3104.Message(s):
0159 0268 0803 0804 0817 0821 0846 0852 08871033 3104
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 533 Programming Research Ltd.
Table 4.4 – continued from previous page
Ticket Type Description
25189 F
The modeling of member objects first defined in quieted header fileshas been updated. The result is a removal of related false negativedataflow messages on these members.Message(s):
2668 2669 2671 2674 2676 2678 2681 2682 26832686 2687 2688 2691 2692 2693 2696 2697 26982701 2702 2703 2706 2707 2708 2711 2712 27132716 2717 2718 2721 2722 2723 2726 2727 27282731 2732 2733 2736 2737 2738 2740 2741 27422743 2744 2746 2747 2748 2750 2751 2752 27532754 2755 2756 2757 2758 2761 2763 2766 27672768 2771 2772 2773 2776 2777 2778 2781 27822783 2784 2785 2786 2789 2790 2791 2792 27932796 2797 2798 2799 2800 2801 2802 2803 28062807 2808 2809 2810 2811 2812 2813 2814 28162817 2818 2819 2820 2821 2822 2823 2824 28302831 2832 2833 2834 2835 2836 2839 2840 28412842 2843 2844 2845 2846 2847 2848 2849 28502851 2852 2853 2856 2857 2858 2860 2861 28622863 2865 2866 2867 2868 2869 2870 2871 28722877 2880 2881 2882 2883 2887 2888 2889 28902891 2892 2893 2895 2896 2897 2898 2900 29012902 2903 2905 2906 2907 2908 2910 2911 29122913 2920 2921 2922 2923 2930 2931 2932 29332934 2940 2941 2942 2943 2945 2946 2947 29482950 2951 2952 2953 2956 2959 2961 2962 29632966 2967 2968 2971 2972 2973 2976 2977 29782980 2981 2982 2983 2984 2985 2986 2987 29902991 2992 2993 2994 2995 2996 2997 2998
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 534 Programming Research Ltd.
Table 4.4 – continued from previous page
Ticket Type Description
25262 F
Fixed inconsistencies between the number of parameter text placehold-ers(%s) and the number of parameters written for the diagnostic.Message(s):0821 [C] ’#include’ does not identify a header or source file that can
be processed.1005 [S] End-of-file encountered when expecting ’#endif’ preprocess-
ing directive.1067 [C99] Union member is a struct declared with a flexible array
member.1068 [E] Union member is a struct declared with a potentially-flexible
array member.1495 Destination and source objects have incompatible types.1496 Destination and source objects may have incompatible types.3199 This assignment is redundant. The value of this object is never
used before being modified.
4.5 Ticket Summary for QA·C 9.2.0
The following table summarizes the tickets that were closed in QA·C 9.2.0.
Tickets are categorized into 3 types:
E – Enhancement to an existing feature.
F – A fix of a bug or problem feature.
N – New functionality has been introduced.
Note: Where there is a large number of messages, the text for the impacted items will notbe listed. Please see Messages with Modified Behavior to see the message text.
Table 4.5: Ticket Summary for QA·C 9.2.0
Ticket Type Description
14125 N
A new message 3327 will be generated when a goto statement refer-ences a label which is not declared in the same block, or in any blockenclosing that goto statement. Note: message 3327 can be used toenforce MISRA C:2012 Rule 15.3.Message(s):3327 This goto statement references a label that is declared in a sep-
arate block.continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 535 Programming Research Ltd.
Table 4.5 – continued from previous page
Ticket Type Description
20272 E
Message locations have been improved as part of restructuring to en-able future use of a preprocessor common to both C and C++ analyz-ers.Message(s):
0340 0341 0342 0343 0352 0372 0784 0801 08020803 0812 0824 0825 0830 0834 0835 0842 08440845 0849 0855 0858 0863 0864 0865 0866 08670873 0874 0875 0878 0880 0881 0883 0884 08900891 0899 1002 1003 1004 1008 1018 1036 10421045 1327 1690 1691 2211 3106 3318 3429 34353436 3439 3443 3456 3608 3614 3615 3618 36193628
20327 F
The performance of QAC will be improved when a file is repeatedlyincluded. This performance improvement will be negligible in most sit-uations, however it will be quite significant in certain cases of automat-ically generated code, where repeated inclusion is both intended andintensive. As part of this update, messages 0838 and 0839 will be gen-erated only once against the applicable inclusion, even if the file hasalready been previously included multiple times.Message(s):0838 File ’%1s’ has already been included directly from within file
’%2s’.0839 File ’%1s’ has already been included indirectly from within file
’%2s’.
20341 F
Fixed false negatives for Dataflow messages for cases involving use ofC99 non-constant initializers for struct/union/array type objects.Message(s):2831 Definite: Division by zero.
21192 E
Fixed false negatives for checking of unset variables for cases where anuninitialized variable is used subsequently to being passed by referenceto a function.Message(s):2961 Definite: Using value of uninitialized automatic object ’%s’.2962 Apparent: Using value of uninitialized automatic object ’%s’.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 536 Programming Research Ltd.
Table 4.5 – continued from previous page
Ticket Type Description
21451 E
Location of sub-messages related to Dataflow inter-function analysishas been improved to point to the location where variables are setrather than the function parameter.Message(s):1570 Called from here.1575 Variable ’%1s’ previously seen here. (Specimen value: ’%2s’).1579 Referenced here.1580 Function ’%1s’ calls ’%2s’ here.1582 Previously seen here.1586 Previously set here.1590 Offending operand.1592 ’%1s’ declared in %2s ’%3s’.1594 ’%1s’ declared here.
22098 F
Message 0435 will no longer be incorrectly generated for designatorsof structure members under certain circumstances where the membersare part of a nested structure and their designators are preceded by achain of partially designated initialisers.Message(s):0435 [C] The ’struct’/’union’ member ’%s’ does not exist.
22180 E
QAC will no longer incorrectly generate messages 435, 693 and 904 forinitialisation of nested objects using designated initialisers under certaincircumstances where preceding nested objects are initialised with des-ignated initialisers that do not reflect the order in the declaration of theobject type. See Full Support for Designated InitializersMessage(s):0435 [C] The ’struct’/’union’ member ’%s’ does not exist.0693 Struct initializer is missing the optional {.0904 [S] Invalid designator.
22230 F
QAC will no longer incorrectly generate messages that relate to objectsnot being used when those objects are actually used to initialise mem-bers of structures/unions or elements of arrays.Message(s):2983 This assignment is redundant. The value of this object is never
subsequently used.
22653 F
Fixed false negative for message 2831 on structure members foraliased structures when passed as argument to a function.Message(s):2831 Definite: Division by zero.
22690 FQAC will no longer abort with a SIGSEGV fault when analysing ini-tialisers containing GCC extension statement expressions which returnstruct objects.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 537 Programming Research Ltd.
Table 4.5 – continued from previous page
Ticket Type Description
22788 N
A new message is generated when Dataflow detects incorrect use ofStandard Library string handling functions that results in access beyondthe bounds of an object passed as an argument to the function.Message(s):2835 Constant: Non null terminated string used in a string function.2836 Definite: Non null terminated string used in a string function.2839 Possible: Non null terminated string used in a string function.
22789 N
New messages 2676 and 2678 are generated when Dataflow detectsthat the value returned from a Standard Library function that can re-turn EOF is modified before being compared to macro EOF. In addition,new messages 2671 and 2674 are generated when a value being com-pared with macro EOF is seen as not having originated from am EOFreturning function.Message(s):2671 Definite: The value being compared with macro EOF does not
originate from an EOF returning function.2674 Possible: The value being compared with macro EOF does not
originate from an EOF returning function.2676 Definite: The value originating from an EOF returning function
was modified before being compared with macro EOF.2678 Suspicious: The value originating from an EOF returning func-
tion was modified before being compared with macro EOF.
22832 N
A new message will be generated when Dataflow detects that the Stan-dard Library function memcmp is being used to compare null terminatedstrings.Message(s):2785 Constant: Null terminated string is being passed as argument to
Standard Library function memcmp.2786 Definite: Null terminated string is being passed as argument to
Standard Library function memcmp.2789 Possible: Null terminated string is being passed as argument to
Standard Library function memcmp.
22873 F
Fixed false positive for message 2961 for cases when structure ispassed as argument to a function with void pointer parameter and ini-tialised within the function.Message(s):2961 Definite: Using value of uninitialized automatic object ’%s’.
23374 FImproved memory usage when analysing some translation units whichinclude the same header multiple times.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 538 Programming Research Ltd.
Table 4.5 – continued from previous page
Ticket Type Description
23393 F
Messages 0380 and 0857 will be generated against the macro definitionin the main source file that causes the applicable ISO C limit to beexceeded. If instead that macro definition happens to be located in anincluded header, then message 0380 or 0857 will be generated againstthe ’#include’ directive in the main source file that leads to the inclusionof that macro definition. Since messages 0380 and 0857 will no longerbe incorrectly generated at the non-existent line 0, it will be possible tosuppress them.Message(s):0380 [L] Number of macro definitions exceeds 4095 - program does
not conform strictly to ISO:C99.0857 [L] Number of macro definitions exceeds 1024 - program does
not conform strictly to ISO:C90.
23458 E
Dataflow modelling of pointers and members of structures/unions hasbeen improved in order to address false positives for a number of mes-sages.Message(s):2961 Definite: Using value of uninitialized automatic object ’%s’.2962 Apparent: Using value of uninitialized automatic object ’%s’.2963 Suspicious: Using value of uninitialized automatic object ’%s’.
23471 E
A new message 1496 will be generated when the destination and/orsource argument of memcpy or memmove is a pointer to void. Other-wise, a new message 1495 will be generated when the destination andsource arguments of memcpy or memmove are not pointers to qualifiedor unqualified versions of compatible types. Existing message 1487 willalso be extended, so that array arguments to memcmp will be handledas pointer arguments. Consequently message 1487 will no longer beincorrectly generated in certain situations involving array parameters.Message(s):1487 Comparing the representations of objects of different types.1495 %s destination and source objects have incompatible types.1496 %s destination and source objects may have incompatible types.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 539 Programming Research Ltd.
Table 4.5 – continued from previous page
Ticket Type Description
23547 F
The analysis of initialiser lists which contain array identifiers (to initialisemembers of pointer type) will be properly carried out, so that subse-quent expressions in the initialiser list will not be affected by rogue falsepositives, for instance of messages 0671, 0674, 0684, 0703, 3768,3892 and 4461, or false negatives, for instance of message 0673.Message(s):0671 [C] Initializer for object of arithmetic type is not of arithmetic type.0673 [C] Initializer points to a more heavily qualified type.0674 [C] Initializer for pointer is of incompatible type.0684 [C] Too many initializers.0703 Structure has fewer initializers than its declared size. Default
initialization is applied to the remainder of the members.3768 Implicit conversion: unsigned int to unsigned char.3892 The result of this cast is implicitly converted to another type.4461 A non-constant expression of ’essentially unsigned’ type (%1s)
is being converted to narrower unsigned type, ’%2s’ on assign-ment.
23548 F
Message 0403 will no longer be incorrectly generated is situationswhere a statement expression is used as an operand of an operatorwhose order of evaluation is unspecified, and the other operand in-cludes the identifier of a local object, and the statement expressiondoes not use or modify that local object.Message(s):0403 [U] ’%s’ may be modified and accessed between sequence
points - evaluation order unspecified.
23561 F
Fixed incorrect computation of address of structures that contain apointer to themselves.Message(s):2990 The value of this loop controlling expression is always ’true’.2991 The value of this ’if’ controlling expression is always ’true’.2992 The value of this ’if’ controlling expression is always ’false’.2993 The value of this ’do - while’ loop controlling expression is always
’false’. The loop will only be executed once.2994 The value of this ’while’ or ’for’ loop controlling expression is
always ’false’. The loop will not be entered.2995 The result of this logical operation is always ’true’.2996 The result of this logical operation is always ’false’.
23576 F
QAC will now correctly handle constructs involving both gcc statementexpressions and initialisers. See also ticket 24111.Message(s):2961 Definite: Using value of uninitialized automatic object ’%s’.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 540 Programming Research Ltd.
Table 4.5 – continued from previous page
Ticket Type Description
23579 F
When the warncall option is used to enable the reporting of calls to the’exit’ function, QAC will no longer generate default message 2010 (orany other alternative message specified by the warncall option) againststatement expressions that do not contain calls to the ’exit’ function.In these situations M3CM will also no longer incorrectly generate mes-sage 5126 to report violations of MISRA C:2012 Rule 21.8. Note thatstatement expressions are a GCC language extension, and that func-tion ’exit’ is defined in the standard library header <stdlib.h>.Message(s):2010 The function ’%s()’ must not be called.
23580 FNo changes to QAC functionality have been implemented for this ticket,which is to be considered internal.
23581 E
When a struct/union/array is initialised with an initialiser list, messages1291, 1398 and 3421 will be generated against the initialiser’s expres-sion they refer to, instead of the subsequent token (comma or curlybracket).Message(s):1291 An integer constant of ’essentially unsigned’ type is being con-
verted to signed type on assignment.1398 Structure member ’%s’ has already been initialized.3421 Expression with possible side effects is used in an initializer list.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 541 Programming Research Ltd.
Table 4.5 – continued from previous page
Ticket Type Description
23614 F
Location changes as a result of Ticket 22180. See Full Support forDesignated InitializersMessage(s):
0428 0436 0702 1073 1256 1257 1264 1265 12661276 1290 1292 1293 1294 1295 1296 1297 12981299 1312 1317 1334 1397 1399 1402 1412 14221432 1442 2850 2855 2890 2895 2900 2905 29402945 3003 3004 3203 3204 3344 3415 3416 34463604 3676 3700 3701 3702 3703 3704 3705 37063707 3708 3709 3710 3711 3712 3713 3715 37173719 3720 3721 3722 3723 3725 3727 3729 37303731 3732 3733 3734 3735 3736 3738 3740 37413742 3743 3744 3745 3746 3747 3748 3750 37523753 3754 3755 3756 3757 3758 3759 3760 37623763 3764 3765 3766 3767 3769 3770 3771 37723774 3775 3776 3777 3778 3779 3780 3781 37823783 3784 3785 3786 3787 3788 3789 3790 37913792 3793 3794 3795 3796 3797 3798 3799 38003801 3802 3803 3804 3805 3806 3807 3810 38113812 3813 3814 3815 3816 3817 3818 3819 38213822 3823 3824 3825 3826 3827 3828 3829 38303831 3832 3833 3834 3837 3839 3840 3843 38443847 3848 3850 3851 3852 3853 3854 3855 38563857 3858 3859 3860 3861 3862 3863 3864 38653866 3867 3868 3869 3870 3871 3872 3873 38743875 3876 3877 3878 3879 3880 3881 4301 43024303 4304 4305 4310 4312 4315 4320 4322 43254330 4332 4340 4342 4350 4351 4352 4390 43914392 4393 4394 4395 4401 4402 4403 4404 44054410 4412 4413 4414 4415 4420 4421 4422 44234424 4425 4430 4431 4432 4434 4435 4436 44374440 4441 4442 4443 4445 4446 4447 4450 44514452 4453 4454 4460 4462 4463 4464 4465 44904491 4492 4498 4499
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 542 Programming Research Ltd.
Table 4.5 – continued from previous page
Ticket Type Description
23615 F
False negatives and postives as a result Ticket 22180. See Full Supportfor Designated Initializers.Message(s):
0478 0671 0674 0675 0682 0683 0684 0685 06860690 0692 0694 0698 0699 0701 0703 0753 10311037 1053 1056 1317 2761 2762 2763 2766 27672768 2771 2772 2773 2776 2777 2778 2781 27822783 2791 2792 2793 2796 2797 2798 2801 28022803 2811 2812 2813 2821 2822 2823 2831 28322833 2841 2842 2843 2846 2847 2848 2851 28522853 2856 2857 2858 2861 2862 2863 2871 28722877 2880 2881 2888 2889 2891 2892 2893 28962897 2898 2901 2902 2903 2906 2907 2908 29112912 2913 2921 2922 2923 2931 2932 2933 29412942 2943 2946 2947 2948 2951 2952 2953 29562961 2962 2963 2966 2967 2968 2971 2972 29732976 2977 2978 2984 2985 2986 2990 2991 29922993 2994 2995 2996 3004 3204 3232 3233 36513790 4424 4461
23775 F
Fixed false positive for message 3232 for an assignment to a non-constpointer member in initialisation of a structure.Message(s):3232 File scope static, ’%s’, is never modified. It could be declared
const.
23780 F
Message 1487 will no longer be incorrectly generated in cases wherethe arguments of library function ’memcmp’ refer to objects that are de-clared with a storage class specifier (e.g. ’extern’, ’static’, etc). Note thatmessage 1487 contributes to the the enforcement of MISRA C:2012Amendment 1 Rule 21.15.Message(s):1487 Comparing the representations of objects of different types.
23781 E
A new message 1497 will be generated when the memcmp function isused to compare string objects. Note: message 1497 contributes to theenforcement of MISRA C:2012 Amendment 1 Rule 21.16.Message(s):1497 Comparison of a string object representation.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 543 Programming Research Ltd.
Table 4.5 – continued from previous page
Ticket Type Description
23788 F
A new message 1498 will be generated to report situations wherea string referenced by a member of an object of type struct lconvis directly modified. Message 1498 will be generated irrespective ofwhether the object is obtained from a call to library function ’locale-conv’ in <locale.h>. Members of struct lconv that refer to strings areof type ’char *’, however they should be treated as being of type ’constchar *’, to avoid undefined behaviour. Message 1498 contributes toenforce this restriction, and therefore contributes to the enforcementof MISRA C:2012 Amendment 1 Rule 21.19. As a consequence ofthis upgrade, the behaviour of message 1492 will also be refined andextended: message 1492 will no longer be generated against modifi-cation of struct lconv strings, but it will still be generated in all othercircumstances, and not only when direct modifications to library ob-jects are made via simple assignment, but also when they are madevia composite assignments and prefix/postfix increment/decrement op-erators. As part of this upgrade, the definition of struct lconv in PRQA’sdefault header <locale.h> will also be extended to comply with the C99and C11 standards, by adding members int_p_cs_precedes, int_n_cs_-precedes, int_p_sep_by_space, int_n_sep_by_space, int_p_sign_posnand int_n_sign_posn.Message(s):1492 The result of library function ’%s’ is used to modify the refer-
enced object.1498 The string referenced by <locale.h> type ’struct lconv’ member
’%s’ is being modified.continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 544 Programming Research Ltd.
Table 4.5 – continued from previous page
Ticket Type Description
23789 E
A new configuration option ’-errnosettingfunction’ or ’-esf’, which is fol-lowed by the identifier of a function, will be recognised. The specifiedfunction will be handled as a function that returns error information us-ing ’errno’. Note that according to the C standard the following functionsare errno setting functions, and QAC will by default handle them assuch: ftell, fgetpos, fsetpos, fgetwc, fputwc, strtoimax, strtoumax, str-tol, strtoul, strtoll, strtoull, strtof, strtod, strtold wcstoimax, wcstoumax,wcstol, wcstoul, wcstoll, wcstoull, wcstof, wcstod, wcstold, wcrtomb,wcsrtombs, mbrtowc. The configuration option is intended to identifyany additional functions that are also to be considered errno setting.This option will affect the behaviour of messages 2500, 2501, 2502 and2503 and will contribute to the enforcement of MISRA C:2012 Amend-ment 1 Rules 22.8, 22.9 and 22.10.Message(s):2500 Call to ’%s’ is not immediately preceded by the zeroing of ’errno’.2501 Call to ’%s’ is not immediately followed by the testing of ’errno’.2502 Zeroing of ’errno’ is not immediately followed by a call to an ’er-
rno’ setting function.2503 Testing of ’errno’ is not immediately preceded by a call to an
’errno’ setting function.
23793 F
Messages 2500, 2501, 2502 and 2503 will be extended to enforce theintended sequence of actions in the handling of errno also in situationswhere e.g. those actions span across (1) an ’if’, ’while’ or ’do while’statement whose body is not enclosed in curly brackets, or (2) a condi-tional operator.Message(s):2500 Call to ’%s’ is not immediately preceded by the zeroing of ’errno’.2501 Call to ’%s’ is not immediately followed by the testing of ’errno’.2502 Zeroing of ’errno’ is not immediately followed by a call to an ’er-
rno’ setting function.2503 Testing of ’errno’ is not immediately preceded by a call to an
’errno’ setting function.continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 545 Programming Research Ltd.
Table 4.5 – continued from previous page
Ticket Type Description
23794 E
Messages 2796, 2797, 2798 and 2799 will no longer be generated forwide character handling functions. New messages 2806, 2807, 2808and 2809 have been added to cover these wide character functions in<wctype.h>.Message(s):2796 Definite: Calling a standard library character handling function
with an invalid character value.2797 Apparent: Calling a standard library character handling function
with an invalid character value.2798 Suspicious: Calling a standard library character handling func-
tion with an invalid character value.2799 Possible: Calling a standard library character handling function
with an invalid character value.2806 Definite: Calling a standard library wide character handling func-
tion with an invalid character value.2807 Apparent: Calling a standard library wide character handling
function with an invalid character value.2808 Suspicious: Calling a standard library wide character handling
function with an invalid character value.2809 Possible: Calling a standard library wide character handling
function with an invalid character value.
23796 E
Messages 2796, 2797, 2798 and 2799 will no longer be generated forcharacter input/output functions in <stdio.h> and <wchar.h>. New mes-sages 2816, 2817, 2818 and 2819 have been added to cover thesecharacter input/output functions.Message(s):2796 Definite: Calling a standard library character handling function
with an invalid character value.2797 Apparent: Calling a standard library character handling function
with an invalid character value.2798 Suspicious: Calling a standard library character handling func-
tion with an invalid character value.2799 Possible: Calling a standard library character handling function
with an invalid character value.2816 Definite: Calling a standard library character input/output func-
tion with an invalid character value.2817 Apparent: Calling a standard library character input/output func-
tion with an invalid character value.2818 Suspicious: Calling a standard library character input/output
function with an invalid character value.2819 Possible: Calling a standard library character input/output func-
tion with an invalid character value.continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 546 Programming Research Ltd.
Table 4.5 – continued from previous page
Ticket Type Description
23820 F
Typedef declarations where the source type is omitted (e.g. ’type-def my_new_type;’) will be intrepreted as having an implicit type int(e.g. ’typedef int my_new_type’). In these cases a number of mes-sages incorrectly reporting syntax errors, constraint errors, undefinedbehaviour, etc., as well as ensuing duplicate occurrences of message2051, will no longer be generated.Message(s):0434 [S] The identifier ’%s’ has not been declared.0622 [C] The identifier ’%s’ has been declared both with and without
linkage in the same scope.0631 [C] More than one declaration of ’%s’ (with no linkage).0667 [U] ’%s’ is declared as a typedef and may not be redeclared as
an object at an inner scope without an explicit type specifier.0911 Inserted ’%s’ token in an attempt to continue parsing.0926 [S] Expected:%s.2051 The ’int’ type specifier has been omitted from an object declara-
tion.
23912 F
Fixed false negative for message 2971 when the address of a structwithin a union is passed as an argument to a function for which theparameter is declared as a pointer to const.Message(s):2971 Definite: Passing address of uninitialized object ’%s’ to a func-
tion parameter declared as a pointer to const.
23941 N
A new message will be generated when Dataflow detects that thepointer returned by a call to one of the functions asctime, ctime, gm-time, localtime, localeconv, getenv, setlocale or strerror is used follow-ing a subsequent call to that same function.Message(s):2681 Definite: Using an invalidated value ’%s’ returned from a Stan-
dard Library function.2682 Apparent: Using an invalidated value ’%s’ returned from a Stan-
dard Library function.2683 Suspicious: Using an invalidated value ’%s’ returned from a
Standard Library function.
24111 F
Fixed false positive for message 2961 for constructs involving both gccstatement expressions and initialisers.Message(s):2961 Definite: Using value of uninitialized automatic object ’%s’.
24114 FQAC will no longer crash for constructs involving both gcc statementexpressions and initialisers.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 547 Programming Research Ltd.
Table 4.5 – continued from previous page
Ticket Type Description
24148 F
The calculation of metrics STM22 will be updated to: (1) Fix a problemintroduced in QAC 9.1, which leads to incorrect STM22 values, includ-ing negative ones, being calculated in certain situations, for instance ifa file is included which contains a #define directive whose replacementlist contains semicolons(2) Reflect the metric’s description in the QAC manual: semicolonsfound in preprocessor directives will not contribute to the calculationof STM22 in any circumstances, and neither will semicolons expandedinto code from macro definitions.
24152 E
The performance of Dataflow is improved for cases where analysis ofheader functions and inter-function analysis is enabled and the head-ers being analysed contain inline functions that call other functions.The syntax of the -po df::analyse_header_functions option has beenchanged, see Header Function AnalysisMessage(s):
2755 2758 2761 2762 2763 2766 2767 2768 27712772 2773 2776 2777 2778 2781 2782 2783 27842786 2789 2791 2792 2793 2796 2797 2798 27992801 2802 2803 2806 2807 2808 2809 2811 28122813 2814 2816 2817 2818 2819 2821 2822 28232824 2831 2832 2833 2834 2836 2839 2841 28422843 2844 2846 2847 2848 2849 2851 2852 28532856 2857 2858 2861 2862 2863 2870 2871 28722877 2880 2881 2882 2883 2887 2888 2889 28912892 2893 2896 2897 2898 2901 2902 2903 29062907 2908 2911 2912 2913 2921 2922 2923 29312932 2933 2934 2941 2942 2943 2946 2947 29482951 2952 2953 2956 2959 2961 2962 2963 29662967 2968 2971 2972 2973 2976 2977 2978 29802981 2982 2983 2984 2985 2986 2990 2991 29922993 2994 2995 2996
24198 F
QAC analysis will no longer abort with a SIGSEGV fault under certaincircumstances, which involve the definition of functions with parame-ters of pointer or array type, whose pointed-to type or element type isdefined using a typedef, which in turn involves an array of pointers to atype that is also defined using a typedef.Message(s):0624 Function ’%s’ is declared using typedefs which are different to
those in a previous declaration.3448 Declaration of typedef ’%s’ is not in a header file although it is
used in a definition or declaration with external linkage.continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 548 Programming Research Ltd.
Table 4.5 – continued from previous page
Ticket Type Description
24256 FQAC manual updated to correct reference to metrics that are generatedwhen Dataflow analysis is enabled
24373 F
Message 0284 will no longer be incorrectly generated when the glueoperator ’##’ is used in a macro to produce a wide character constantfrom a single character.,0284„„„,Message(s):0284 [I] Multiple character constants have implementation defined val-
ues.
24374 E
Message 0285 will only be generated once per character constant,against the leftmost character applicable.Message(s):0285 [I] Character constant contains character which is not a member
of the basic source character set.
24375 F
Message 0859 will no longer be incorrectly generated when a function-like macro call contains exactly 31 arguments. Also, when the function-like macro call contains more than 31 arguments, message 0859 willbe generated against the 32nd and not the 31st argument.Message(s):0859 [L] Number of arguments in macro call exceeds 31 - program
does not conform strictly to ISO:C90.
24376 E
Message 3410 will not be generated when the occurrence of a macroparameter in a macro replacement list is preceded by the identifier of atype, even if that type happens to be defined using a typedef.Message(s):3410 Macro parameter not enclosed in ().
24377 F
Multiple definitions of the same macro performed via configuration op-tions will be properly handled. As a result, message behaviour relatedto these macros may improve under certain circumstances. For exam-ple, message 0841 will be generated when a multiply defined macro isthen used and undefined in the source code.Message(s):0841 Using ’#undef’.
24378 F
Messages 0801 and 0802 will be generated even if the macro happensto be redefined.,0801,0802„„„Message(s):0801 [C] The ’##’ operator may not be the first token in a macro re-
placement list.0802 [C] The ’##’ operator may not be the last token in a macro re-
placement list.continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 549 Programming Research Ltd.
Table 4.5 – continued from previous page
Ticket Type Description
24379 F
Message 1691 will be correctly generated and message 1690 will nolonger be incorrectly generated in certain situations that may involve forinstance excluded section of code being on #elif or #else branches, ofthe null preprocessing directive not being followed by a comment.Message(s):1690 Null preprocessing directive used.1691 Null preprocessing directive used in an excluded section of
code.
24380 E
Message 3403 will be generated also when the ’!=’ operator is directlyfollowed by another operator, without white-spaces separating the twooperators.Message(s):3403 This sequence of operators is difficult to read without intervening
spaces.
24381 E
Messages 3435 and 3456 will be generated against each applicablemacro parameter, instead of only against the first applicable macro pa-rameter encountered in the macro parameter list. Note that message3435 is an obsolete message.Message(s):3435 Parameter ’%s’ occurs more than once in the replacement list of
this macro.3456 Parameter ’%s’ will be evaluated more than once when this
macro is used.
24382 F
Message 3608 will be generated against all occurrences of the ’#elif’preprocessing directive; in particular it will also be generated in certainsituations where ’#elif’ directive happens to be preceded by another ’#if’of ’#elif’ directive, whose expression evaluates to zero and which is notlocated within an outer ’#elif” or ’#else’ section.Message(s):3608 Using the ’#elif’ preprocessing directive.
24383 F
Messages 3618 and 3619 will be generated irrespective of where theapplicable directive is located; in particular they will also be generatedin certain situations where the directive is located in an ’#elif’ or ’#else’section which is excluded because the expression of an earlier ’#if’ or”#elif’ directive evaluates to one.,3618,3619„„„Message(s):3618 Whitespace used after ’#’ at the start of this preprocessing di-
rective.3619 Whitespace used before ’#’ at the start of this preprocessing
directive.continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 550 Programming Research Ltd.
Table 4.5 – continued from previous page
Ticket Type Description
24384 F
Message 0811 will no longer be incorrectly generated in certain situ-ations where a glue operator ’##’ is constructed during preprocessingand used on a further series of macro expansions, but it is neither ap-plied nor ends up being part of the preprocessed source code.Message(s):0811 [C] The glue operator ’##’ may only appear in a ’#define’ prepro-
cessing directive.24385 F Improvements to the calculation of metrics, see Metric Improvements24386 F Improvements to the calculation of metrics, see Metric Improvements24387 F Improvements to the calculation of metrics, see Metric Improvements
24389 F
Messages 0380 and 0857 will be generated when the macro identifiersthat are ’simultaneously’ defined exceeds the applicable limit. Morespecifically, an ’#undef’ preprocessing directive applied to a macroidentifier which is defined at that point, will decrease the running countof macro identifiers being compared against the limits.Message(s):0380 [L] Number of macro definitions exceeds 4095 - program does
not conform strictly to ISO:C99.0857 [L] Number of macro definitions exceeds 1024 - program does
not conform strictly to ISO:C90.
24393 F
Message 2201 will be generated even if the first token of the line withthe inconsistent indentation happens to be a macro that expands tonothing. Note that the false positives and many of the false negativesof message 2201 in QAC 9.1.0 have been cleared in QAC 9.1.1 throughticket 23664 and that this ticket will clear a small number of remainingfalse negatives.,2201„„„,Message(s):2201 This indentation is not consistent with previous indentation in
this file.continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 551 Programming Research Ltd.
Table 4.5 – continued from previous page
Ticket Type Description
24394 F
The handling of ignore/munch annotations in any of their forms (_ig-nore, _ignore_N, _ignore_paren, _ignore_semi, _ignore_at, _munch,_munch_N, _munch_paren, _munch_semi, _munch_at) will be up-dated to prevent them from expanding in unintended ways. This willalso make their behaviour more consistent with QAC++. If these an-notations are being used as intended, this upgrade will not affect thebehaviour of any messages, otherwise various messages may be af-fected, as the source code will be parsed in a different way. The ignore/-munch annotations are expected to be defined as object-like macros:the _ignore*/_munch* keywords are only expected to occur in macro re-placement lists. The macro replacement list is not expected to be usedfor anything except to identify the macro as a user-defined skip instruc-tion. For example it is not expected to include any additional tokens tobe extracted into the source code.
24396 E
Message 0338 will be consistently generated against each applicableescape sequence irrespective of the form and remaining content of theincluding string literal and irrespective of whether the escape sequenceis octal or hexadecimal.,0338„„„,
24397 E
Tokens ignored using the _ignore*/_munch* annotations will be consid-ered for the purposes of layout checking, in particular when examininga null statement to see if it is obscured by text on the same line. In thesecircumstances any of message 3138, 3139 and 3141 will be generatedinstead of message 3140.Message(s):3138 Null statement is located close to other code or comments.3139 Null statement is obscured by code or comment on the same
line.3140 Null statement occurs on a line by itself.3141 Null statement does not occur on a line by itself.
24398 E
Message 3459 will be generated instead of message 3412 whenevera macro replacement list contains a do-while-zero statement, even itsloop body is a single statement (not enclosed in curly brackets). Mes-sage 1021 will be generated instead of message 3412 when a macroreplacement list contains a statement expression (note that statementexpressions are a GCC language extension).Message(s):1021 [E] A statement expression is not supported in ISO C, and is
treated as a language extension.3412 Macro defines an unrecognized code-fragment.3459 Macro defines a ’do-while-zero’ construct.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 552 Programming Research Ltd.
Table 4.5 – continued from previous page
Ticket Type Description
24399 E
Message 3430 will be generated against each applicable macro argu-ment instead of once only against the macro invocation.Message(s):3430 Macro argument expression may require parentheses.
24400 F
A bug will be fixed, which causes in certain circumstances message0844 to be generated with an incorrect reference for the macro identi-fier.Message(s):0844 [C] Macro ’%s’ is being redefined with a different replacement
list.
4.6 Ticket Summary for QA·C 9.1.1
The following table summarizes the tickets that were closed in QA·C 9.1.1.
Tickets are categorized into 3 types:
E – Enhancement to an existing feature.
F – A fix of a bug or problem feature.
N – New functionality has been introduced.
Note: Where there is a large number of messages, the text for the impacted items will notbe listed. Please see Messages with Modified Behavior to see the message text.
Table 4.6: Ticket Summary for QA·C 9.1.1
Ticket Type Description
23502 N
Ability to add Justification Reason to Comment Based Suppressionsand Include in Report4816 Justification comments are not allowed in location annotations.4817 Justification comments are not allowed to be empty.
23562 F Forward slash no longer removed from quoted suppression label.
23611 F
Messages 2212 and 2214 restored to pre-9.1 behavior: no false posi-tive on braces contained within macros.2212 Body of control statement is not enclosed within braces.2214 Body of control statement is on the same line and is not enclosed
within braces.continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 553 Programming Research Ltd.
Table 4.6 – continued from previous page
Ticket Type Description
23664 F
Indent checker reworked to remove false positives and clarify behaviorof messages. 2200, 2201 and 2211 significantly changed by removingfalse positives/negatives; indent-related messages are no longer emit-ted in the event of an unrecoverable parse failure.2200 Indentation of this line is to the left of the line above.2201 This indentation is not consistent with previous indentation in
this file.2203 This closing brace is not aligned appropriately with the matching
opening brace.2204 ’%s’ is not aligned to match its controlling ’switch’ statement.2207 This brace style is not consistent with ’K&R’ style.2208 This brace style is not consistent with ’indented’ style.2209 This brace style is not consistent with ’exdented’ style.2211 ’%s’ is not aligned with the previously declared identifier.2213 Matching braces appear on the same line - proper indentation
would be preferred.2215 This indentation is not consistent with configured depth.
23818 F
Dataflow no longer disabled for code that contains an instance of diag-nostics 3237 or 3238.3237 [C] inline function ’%1s’ has external linkage and is defining an
object, ’%2s’, with static storage duration.3238 [C] inline function ’%1s’ has external linkage and is referring to
an object, ’%2s’, with internal linkage.2753 As a result of error message ’%s’, dataflow analysis of the re-
mainder of this function is not possible.
24104 F
When the -ex asm configuration option is specified, the asm languageextension will be properly handled even if the source code relies on ad-ditional language extensions for nested functions or statement expres-sions. Consequently in these circumstances syntax errors and recoveryactions will no longer be reported.0907 [S] Unexpected token.0911 Inserted ’%s’ token in an attempt to continue parsing.0920 Source skipped to this point after error in expression.0926 [S] Expected:%s.
24105 FQAC failure when invalid ’-forceinclude option’ or an invalid output pathwas specified.
4.7 Ticket Summary for QA·C 9.1.0
The following table summarizes the tickets that were closed in QA·C 9.1.0.
RELEASE NOTES : QA·C 9.4.1 Page 554 Programming Research Ltd.
Tickets are categorized into 3 types:
E – Enhancement to an existing feature.
F – A fix of a bug or problem feature.
N – New functionality has been introduced.
Note: Where there is a large number of messages, the text for the impacted items will notbe listed. Please see Messages with Modified Behavior to see the message text.
Table 4.7: Ticket Summary for QA·C 9.1.0
Ticket Type Description
11994 E
Support for semantics checks on statement expressions will be ex-tended, in accordance with the GCC compiler manual, see Supportfor GCC language extensions.
0306 0436 0563 0769 0770 0771 1021 1252 12531291 1840 1862 2205 2212 2741 2742 3112 31963200 3203 3204 3212 3220 3345 3713 3715 37473757 3758 3759 3760 3790 4102 4105 4115 41164131 4304 4393 4394 4404 4424 4430 4440 44434446 4460 4470 4471 4538 4539 4558 4559
12042 E
A new message 1060 will be generated instead of constraint error mes-sage 0642 when a structure with a flexible array member is declared.Flexible array members are a feature introduced by the C99 standard.New messages 1061 and 1062 will also report constraint errors when astructure with a flexible array member (and any union containing, pos-sibly recursively, a member that is such a structure) is a member of astructure or an element of an array.1060 [C99] A flexible array member has been declared.1061 [C] Structure ’%1s’ with flexible array member ’%2s’ cannot be
used in the declaration of structure member ’%3s’.1062 [C] Structure ’%1s’ with flexible array member ’%2s’ cannot be
used in the declaration of array elements.0642 [C] ’%s’ in ’struct’ or ’union’ type may not be an array of unknown
size.
14112 N
New messages 3636 and 3637 will be generated when octal or hex-adecimal escape sequences are not followed by another escape se-quence or the end of the character constant or string literal.3636 Octal escape sequence ’%s’ is not terminated.3637 Hexadecimal escape sequence ’%s’ is not terminated.
14117 NA new message 3421 will be generated when expressions with possibleside effects are used in initialiser lists.3421 Expression with possible side effects is used in an initializer list.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 555 Programming Research Ltd.
Table 4.7 – continued from previous page
Ticket Type Description
14118 N
New messages 1397, 1398 and 1399 will be generated to report situ-ations where the use of C99 designated initialisers results in multipleinitialisations of array elements or struct/union members.1397 Array element ’%s’ has already been initialized.1398 Structure member ’%s’ has already been initialized.1399 A union member has already been initialized.
14119 NA new message 3676 will be generated when designated initialisers areused to initialise an array object whose size is not explicitly specified.3676 Designators are used to initialize an array of unspecified size.
14127 N
A new message 0892 will be generated when the occurrence of amacro parameter in a macro replacement list is immediately precededby the stringify operator ’#’ and immediately followed by the glue oper-ator ’##’.0892 This macro parameter is preceded by ’#’ and followed by ’##’.
14128 N
A new message 0893 will be generated when a macro parameter: (1) isused as an operand of the stringify ’#’ or glue ’##’ operators, hence notsubject to macro replacement, and (2) is also used otherwise, hencesubject to macro replacement, in the same macro definition, and (3)the corresponding argument in a macro invocation is subject to macroreplacement.0893 Macro parameter ’%s’ is inconsistently subject to macro replace-
ment.
14130 N
The C99 ’restrict’ type qualifier will be parsed and treated as a keyword(consistently with e.g. ’inline’ and ’_Bool’). A new message 1057 willbe generated to report occurrences of the C99 ’restrict’ type qualifier.Another new message 0669 will be generated to report constraint errorsin the usage of ’restrict’. Note: syntax errors may be generated for C90source code if the token ’restrict’ happens to be used as an identifierinstead of a keyword. In this case either the source code should beupdated or QAC should be configured to define ’restrict’ as a macrofor a C99 compliant identifier. Note: for source code that uses theC99 ’restrict’ type qualifier it will no longer be necessary for QAC to beconfigured to define ’restrict’ as a blank macro. Note: MISRA C:2012rule 8.14 requires the restrict type qualifier not to be used. However,MISRA rules do not apply to the Standard C Library. If message 1057is used for the purpose of MISRA compliance, it will be up to QACconfiguration to suppress it for the applicable files/functions.0669 [C] The restrict qualifier can only be applied to pointer types de-
rived from object or incomplete types.1057 [C99] The keyword ’restrict’ has been used.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 556 Programming Research Ltd.
Table 4.7 – continued from previous page
Ticket Type Description
15709 N
A new message 3213 will be generated to report an unused struct/u-nion/enum tag. A new message 3214 will be generated to report anunused macro. Existing message 3205 will also be generated for un-used enum constants defined at file scope in the source file.3213 The tag ’%s’ is not used and could be removed.3214 The macro ’%s’ is not used and could be removed.3205 The identifier ’%s’ is not used and could be removed.
15711 N
A new message 1338 will be generated when a function parameter ismodified. When the address of operator ’&’ is applied to a function pa-rameter, a new message 1339 will be generated if the resulting pointeris non const, and a new message 1340 will be generated if the resultingpointer is const.1338 The parameter ’%s’ is being modified.1339 Evaluating the address of the parameter ’%s’.1340 Storing the address of the parameter ’%s’ in a constant pointer.
15716 N
New messages 0784, 0785, 0786 & 0787 when identifiers are not dis-tinct from macro names.0784 Identifier ’%s’ is also used as a macro name.0785 Identifier matches other macro name(s) (e.g. ’%s’) in first 31
characters.0786 Identifier matches other macro name(s) (e.g. ’%s’) in first 63
characters.0787 Identifier does not differ from other macro name(s) (e.g. ’%s’)
within the specified number of significant characters.
15753 N
New message will be generated to report when a dynamic memoryallocation function is called with an argument for memory size that isinconsistent with the size of the type of object to allocate, see BufferOverflow Checking.0701 Argument for memory size does not refer to ’sizeof (%s)’.2841 Definite: Dereference of an invalid pointer value.2842 Apparent: Dereference of an invalid pointer value.2843 Suspicious: Dereference of an invalid pointer value.2844 Possible: Dereference of an invalid pointer value.2931 Definite: Computing an invalid pointer value.2932 Apparent: Computing an invalid pointer value.2933 Suspicious: Computing an invalid pointer value.2934 Possible: Computing an invalid pointer value.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 557 Programming Research Ltd.
Table 4.7 – continued from previous page
Ticket Type Description
20191 N
New analysis to check array arguments passed to a function when asized array is used as a function parameter. A message will be gener-ated if an array passed as an argument to the function does not haveas many elements as the array declarator of the function parameter.2781 Definite: Function argument has fewer elements than the array
dimension in the parameter declaration for non-inlined call.2782 Apparent: Function argument has fewer elements than the array
dimension in the parameter declaration for non-inlined call.2783 Suspicious: Function argument has fewer elements than the ar-
ray dimension in the parameter declaration for non-inlined call.2784 Possible: Function argument has fewer elements than the array
dimension in the parameter declaration for non-inlined call.
20396 N
QAC will be able to parse the C99 syntax for the static keyword and typequalifiers (const, volatile and restrict), which applies to indexes in arraydeclarations for function parameters, and instead of syntax errors it willgenerate new C99 portability messages 1058 and 1059 and new con-straint error messages 0460, 0461, 0462 and 0463. Note that message1058 will cover MISRA C:2012 Rule 17.6.0460 [C] The keyword static is used in the declaration of the index of
an array which is not a function parameter.0461 [C] The keyword static is used in the declaration of an inner index
of a multi-dimensional array.0462 [C] A type qualifier (const, volatile or restrict) is used in the decla-
ration of the index of an array which is not a function parameter.0463 [C] A type qualifier (const, volatile or restrict) is used in the dec-
laration of an inner index of a multi-dimensional array.1058 [C99] The keyword ’static’ is used in the declaration of a function
parameter of array type.1059 [C99] A type qualifier (const, volatile or restrict) is used in the
declaration of a function parameter of array type.
20397 N
Two new messages 1485 and 1486 will be generated to report respec-tively when an object of type pointer to FILE is dereferenced and whenit is explicitly or implicitly converted to a different type. Note: thesemessages cover MISRA C:2012 Rule 22.5, which bans the dereferenc-ing of pointer to FILE objects. Rule 22.5 is classed as undecidable,however the combination of messages 1485 and 1486 intentionally im-poses stricter constraints than Rule 22.5, so that their enforcement isdecidable.1485 A pointer to a FILE object is dereferenced.1486 A pointer to a FILE object is converted to a different type.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 558 Programming Research Ltd.
Table 4.7 – continued from previous page
Ticket Type Description
20494 F
In the event of a Dataflow analysis failure, Dataflow will no longer returnerror code 16 and instead produce a dataflow internal timeout messageso that analysis can continue.2757 Could not analyze function ’%1s’.
20522 E
Initial restructuring to enable future use of a preprocessor common toboth C and C++ analyzers, see Messages Location Changes.
0040 0041 0042 0388 0434 0669 0670 0686 06870688 0744 0776 0777 0810 0930 2006 2022 21102111 2112 2113 2114 2115 2116 2117 2118 21192830 3109 3111 3120 3139 3141 3209 3220 33353408 3602 3618 3619 4600 4641 4643
20747 FSupport for C99 flexible array feature will be improved.
1039 1063 1064 1065 1066 1067 1068 1069 10701071 1072 1073 1074
21771 ENew message 3310 will be generated when a goto statement jumps toa label declared earlier in the same function.3310 This ’goto’ statement involves a backward jump.
22094 FQAC will not abort with a SIGABRT fatal error when analysing the cast-ing of an object to a struct/union type directly followed by access to amember of that type.
22496 E
A new message 4599 will be generated when a binary operator ’+’, ’-’,’*’, ’/’, ’%’, ’&’, ’|’, ’^’, ’<’, ’<=’, ’>’, ’>=’, ’==’, ’!=’, ’?:’, ’=’, ’+=’, ’-=’, ’*=’, ’/=’,’%=’, ’&=’, ’|=’ or ’^=’ is applied to two operands which are derived fromthe same integer type but have different type names.4599 Operands of binary operator ’%1s’ have the same type ’%2s’ but
distinct type names ’%3s’ and ’%4s’.
22555 F
Message 0402 will no longer be incorrectly generated in certain cir-cumstances where the left hand side of an assignment is enclosed inparentheses and involves access to a struct/union member via the dotor arrow operator.0402 [U] ’%s’ is modified and accessed between sequence points -
evaluation order unspecified.
22606 F
Designated initialisers referring to members in nested stuctures will berecognised even if their ordering does not reflect the ordering in thestructure definition. Consequently, under these circumstances mes-sage 0435 will no longer be incorrectly generated.0435 [C] The ’struct’/’union’ member ’%s’ does not exist.
22643 EThe HTML help for messages 2777 and 2778 has been updated to beconsistent with that of 2776.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 559 Programming Research Ltd.
Table 4.7 – continued from previous page
Ticket Type Description
22645 F
Messages 0589 and 0907 will no longer be incorrectly generated whenan enumeration type is declared and the first enumeration constant tobe initialised is initialised to an integer constant expression that containsa cast to a type which is defined via a typedef.0589 [C] Enumeration constant must be an integral constant expres-
sion.0907 [S] Unexpected token.1271 Using a non-int expression to define an enum constant.
22691 E
The GCC extension to the C language for nested function will be recog-nised, a new message 1049 will be generated for each nested functiondefinition, and syntax and constraint errors will not be incorrectly gen-erated. Another new message 1050 will be generated when a nestedfunction is declared with incorrect storage class specifiers.1049 [E] Nested functions are a language extension.1050 [C] Nested functions cannot be ’extern’ or ’static’.
22702 F
Dataflow will no longer use excessive memory and exit unexpectedlywhen analysing functions that contain a conditional that results in alarge number of branches e.g. a switch statement with many case la-bels. Messages 2751 or 2752 will be generated when the number ofbranches exceeds 200 and dataflow will not analyze the remainder ofthe function. This applies to switch statements, nested if-else state-ments and repeated conditional return/abort()/exit() statements.2752 This ’%1s’ results in the function being too complex. Dataflow
analysis continues with the next function.2751 This function is too complex. Dataflow analysis continues with
the next function.
22758 F
Dataflow analysis will not be run on functions defined in headers thatare subject to the -quiet option even if those functions are qualified asinline. Because of the -quiet option, messages resulting from this anal-ysis are already suppressed, so there will be no change in the mes-sages produced by QAC. However there will be an improvement in per-formance when headers containing inline functions are quieted, andmetrics STRET and STUNR will no longer be incorrectly calculated forthose inline functions.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 560 Programming Research Ltd.
Table 4.7 – continued from previous page
Ticket Type Description
22779 N
A new message 1487 will be generated when the C standard libraryfunction ’memcmp’ is used to compare objects of different types. A newmessage 1488 will be generated when the C standard library function’memcmp’ is used to compare struct objects or arrays of struct objects.A new message 1489 will be generated when the C standard libraryfunction ’memcmp’ is used to compare union objects or arrays of unionobjects. A new message 1490 will be generated when the C standardlibrary function ’memcmp’ is used to compare floating point objects orarrays of floating point objects. A new message 1491 will be generatedwhen the C standard library function ’memcmp’ is used to compareobjects referenced via pointer to void.1487 Comparing the representations of objects of different types.1488 Comparison of a struct object representation.1489 Comparison of a union object representation.1490 Comparison of a floating point object representation.1491 Comparison of an object representation.
22781 NA new message 1321 will be generated to report when the operand ofsizeof is a function parameter of array type.1321 Operand of sizeof is a function parameter of array type.
22782 N
New messages 1492 and 1493 will be generated when strings fromgetenv, localeconv, setlocale and strerror are modified.1492 The result of library function ’%s’ is used to modify the refer-
enced object.1493 The result of library function ’%s’ is used as a pointer to a modi-
fiable object.
22785 N
New messages 2500, 2501, 2502 and 2503 will be generated when thezeroing of errno, the call to an errno setting function and the testingof errno are not implemented in a strict sequence. This analysis onlyapplies to calls of C standard library functions which are by default errnosetting functions, that is: ftell, strtoumax, strtod, wcstod, strtof, wcstof,strtoimax, strtol, wcstol, strtold, wcstold, strtoll, wcstoll, strtoul, wcstoul,strtoull, wcstoull, wcstoimax, wcstoumax, fgetpos, fsetpos, mbrtowc,mbsrtowcs, signal, wcrtomb, wcsrtombs, fgetwc and fputwc.2500 Call to ’%s’ is not immediately preceded by the zeroing of ’errno’.2501 Call to ’%s’ is not immediately followed by the testing of ’errno’.2502 Zeroing of ’errno’ is not immediately followed by a call to an ’er-
rno’ setting function.2503 Testing of ’errno’ is not immediately preceded by a call to an
’errno’ setting function.continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 561 Programming Research Ltd.
Table 4.7 – continued from previous page
Ticket Type Description
22790 N
A new message will be generated if: - a value not representable asan "unsigned char" or EOF is passed to any function in <ctype.h> orthe functions putc, putchar, and ungetc. - a value not representable asan "wchar_t" or WEOF is passed to any function in <wctype.h> or thefunctions putwc, putwchar, and ungetwc.2796 Definite: Calling a standard library function with an invalid char-
acter value.2797 Apparent: Calling a standard library function with an invalid char-
acter value.2798 Suspicious: Calling a standard library function with an invalid
character value.2799 Possible: Calling a standard library function with an invalid char-
acter value.
22791 N
A new message is generated when data from an external source (e.g.command line input, file, socket etc) is not checked to determine if it isa valid value, with respect to the expected limits of the value, before thevalue is used in subsequent expressions.2956 Definite: Using object ’%s’ with tainted value.2959 Possible: Using object ’%s’ with tainted value.
22799 D Updates and clarifications to manuals.
22813 F
A new message is generated when the time taken for Dataflow analysisof a query within a function is greater than the timeout limit set usingthe ’-po df::query_timeout=’ option. This message is generated whenthe option ’-po df::query_timeout_message’ is enabled in the QAC con-figuration.2758 Query has exceeded the configured maximum: ’%1sms’.
Dataflow analysis continues with the next query.
22913 F
STFDN counter will be computed using all unique identifiers, and eachinstance of literal. Not only those present in an operation. STFDTcounter will no longer count values coming from outside the functionbody.
continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 562 Programming Research Ltd.
Table 4.7 – continued from previous page
Ticket Type Description
23067 N
A new message 0681 will be generated when an assignment opera-tion is performed between different members of the same union, exceptwhen (1) the two members have compatible types and overlap exactly,or (2) either or both members are accessed via pointers. Note: dataflowanalysis is required to handle access via pointers, and these cases arealready covered by complementary dataflow messages 2776, 2777 and2778.0681 [U] Assignment between two incompatible members of the same
union.2776 Definite: Copy between overlapping objects.2777 Apparent: Copy between overlapping objects.2778 Suspicious: Copy between overlapping objects.
23185 F
False negatives for aggregate initializers not followed immediately by acomma.1276 An integer constant is being converted to floating type on as-
signment.1290 An integer constant of ’essentially signed’ type is being con-
verted to unsigned type on assignment.1292 An integer constant of ’essentially signed’ type is being con-
verted to type char on assignment.1294 An integer constant of ’essentially signed’ type is being con-
verted to type _Bool on assignment.1296 An integer constant of ’essentially signed’ type is being con-
verted to enum type on assignment.1298 An integer constant of ’essentially signed’ type is being con-
verted to floating type on assignment.
23210 E
Existing messages 0778 and 0779 will be extended and new messages0788 and 0789 will be generated to report conflicts involving macroidentifiers which do not differ from each other (or from tokens that theyshould not replace) within the first 31 characters (C90), the first 63 char-acters (C99) or the specified number of significant characters. Note thatthis upgrade will support coverage/enforcement of MISRA C:2012 Rule5.4 and MISRA C-2004 Rule 5.1.0778 [L] Identifier matches other identifier(s) (e.g. ’%s’) in first 31
characters - program does not conform strictly to ISO:C90.0779 [U] Identifier does not differ from other identifier(s) (e.g. ’%s’)
within the specified number of significant characters.0788 This identifier, ’%s’, is used as both a macro name and a
function-like macro parameter name.0789 Identifier matches other identifier(s) (e.g. ’%s’) in first 63 char-
acters - program does not conform strictly to ISO:C99.continued on next page
RELEASE NOTES : QA·C 9.4.1 Page 563 Programming Research Ltd.
Table 4.7 – continued from previous page
Ticket Type Description
23250 F
The right argument of a comma expression will be evaluated, so thatif it is a constant expression, then the result of the comma operationwill also be handled as a constant expression. A number of differentmessages may be affected by this update. For instance some falsenegatives of message 1476 will be cleared.1476 Range of possible enum values suggests this test is always
false.
23298 N
A new message 0894 will be generated when the controlling expressionof a #if or #elif preprocessing directive does not evaluate to 0 or 1. Notethat this upgrade will cover MISRA C:2012 Rule 20.8.0894 #%s directive controlling expression does not evaluate to zero
or one.
23304 EWhen -v or –version option is enabled, the version number for QAC isprinted to standard out.
23351 DQAC manual has been updated to clarify the output generated by QACwhen the -metrics option is disabled
23413 FQAC performance degredation for projects with large numbers ofheader files.
23416 F QAC performance degredation due to hash table collions since 8.1.2
23432 F
Fix to correct analysis of casts that change the const qualification ofpointers to qualified object types resulting in both false positive andfalse negative messages.
0311 0312 0570 0594 0597 1822 1823 1824 18421843 1844 1852 1853 1854 1863 1864 1882 3892
23541 F
Fixes to modeling of paths by QAC to address two issues: incorrect’out of date’ check in Framework GUI for a file including signal.h andsuppressions not working for files included with relative paths or pathswith different case to that of the file stored on disk.
RELEASE NOTES : QA·C 9.4.1 Page 564 Programming Research Ltd.