QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare...

569
RELEASE NOTES QA·C 9.4.1 February, 2018 Documentation Version 1.3

Transcript of QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare...

Page 1: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

RELEASE NOTES

QA·C 9.4.1

February, 2018

Documentation Version 1.3

Page 2: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 3: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 4: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 5: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 6: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 7: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 8: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 9: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 10: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 11: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 12: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 13: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 14: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 15: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

-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.

Page 16: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 17: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 18: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 19: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 20: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 21: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 22: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 23: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 24: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 25: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 26: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 27: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 28: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 29: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 30: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 31: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 32: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 33: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 34: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 35: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 36: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 37: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 38: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 39: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 40: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 41: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 42: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 43: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 44: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 45: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 46: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 47: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 48: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 49: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 50: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 51: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 52: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 53: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 54: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 55: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 56: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 57: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 58: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 59: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 60: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 61: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 62: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 63: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 64: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 65: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 66: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 67: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 68: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 69: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 70: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 71: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 72: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 73: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 74: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 75: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 76: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 77: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 78: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 79: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 80: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 81: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 82: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 83: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 84: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 85: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 86: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 87: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 88: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 89: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 90: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 91: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 92: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 93: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 94: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 95: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 96: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 97: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 98: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 99: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 100: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 101: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 102: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 103: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 104: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 105: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 106: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 107: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 108: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 109: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 110: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 111: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 112: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 113: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 114: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 115: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 116: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 117: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 118: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 119: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 120: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 121: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 122: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 123: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 124: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 125: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 126: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 127: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 128: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 129: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 130: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 131: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 132: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 133: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 134: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 135: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 136: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 137: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 138: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 139: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 140: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 141: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 142: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 143: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 144: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 145: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 146: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 147: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 148: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 149: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 150: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 151: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 152: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 153: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 154: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 155: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 156: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 157: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 158: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 159: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 160: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 161: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 162: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 163: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 164: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 165: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 166: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 167: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 168: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 169: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 170: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 171: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 172: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 173: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 174: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 175: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 176: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 177: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 178: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 179: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 180: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 181: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 182: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 183: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 184: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 185: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 186: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 187: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 188: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 189: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 190: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 191: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 192: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 193: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 194: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 195: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 196: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 197: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 198: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 199: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 200: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 201: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 202: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 203: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 204: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 205: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 206: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 207: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 208: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 209: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 210: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 211: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 212: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 213: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 214: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 215: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 216: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 217: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 218: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 219: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 220: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 221: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 222: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 223: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 224: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 225: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 226: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 227: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 228: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 229: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 230: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 231: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 232: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 233: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 234: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 235: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 236: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 237: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 238: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 239: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 240: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 241: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 242: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 243: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 244: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 245: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 246: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 247: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 248: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 249: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 250: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 251: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 252: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 253: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 254: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 255: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 256: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 257: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 258: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 259: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 260: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 261: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 262: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 263: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 264: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 265: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 266: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 267: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 268: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 269: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 270: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 271: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 272: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 273: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 274: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 275: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 276: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 277: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 278: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 279: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 280: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 281: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 282: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 283: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 284: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 285: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 286: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 287: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 288: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 289: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 290: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 291: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 292: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 293: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 294: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 295: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 296: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 297: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 298: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 299: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 300: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 301: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 302: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 303: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 304: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 305: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 306: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 307: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 308: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 309: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 310: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 311: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 312: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 313: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 314: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 315: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 316: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 317: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 318: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 319: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 320: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 321: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 322: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 323: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 324: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 325: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 326: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 327: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 328: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 329: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 330: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 331: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 332: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 333: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 334: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 335: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 336: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 337: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 338: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 339: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 340: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 341: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 342: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 343: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 344: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 345: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 346: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 347: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 348: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 349: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 350: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 351: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 352: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 353: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 354: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 355: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 356: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 357: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 358: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 359: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 360: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 361: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 362: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 363: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 364: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 365: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 366: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 367: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 368: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 369: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 370: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 371: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 372: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 373: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 374: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 375: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 376: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 377: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 378: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 379: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 380: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 381: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 382: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 383: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 384: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 385: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 386: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 387: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 388: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 389: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 390: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 391: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 392: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 393: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 394: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 395: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 396: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 397: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 398: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 399: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 400: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 401: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 402: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 403: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 404: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 405: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 406: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 407: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 408: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 409: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 410: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 411: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 412: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 413: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 414: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 415: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 416: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 417: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 418: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 419: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 420: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 421: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 422: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 423: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 424: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 425: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 426: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 427: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 428: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 429: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 430: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 431: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 432: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 433: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 434: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 435: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 436: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 437: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 438: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 439: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 440: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 441: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 442: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 443: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 444: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 445: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 446: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 447: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 448: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 449: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 450: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 451: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 452: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 453: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 454: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 455: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 456: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 457: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 458: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 459: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 460: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 461: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 462: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 463: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 464: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 465: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 466: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 467: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 468: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 469: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 470: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 471: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 472: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 473: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 474: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 475: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 476: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 477: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 478: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 479: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 480: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 481: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 482: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 483: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 484: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 485: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 486: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 487: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 488: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 489: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 490: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 491: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 492: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 493: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 494: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 495: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 496: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 497: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 498: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 499: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 500: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 501: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 502: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 503: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 504: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 505: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 506: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 507: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 508: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 509: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 510: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 511: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 512: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 513: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 514: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 515: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 516: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 517: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 518: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 519: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 520: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 521: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 522: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 523: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 524: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 525: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 526: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 527: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 528: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 529: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 530: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 531: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 532: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 533: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 534: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 535: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 536: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 537: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 538: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 539: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 540: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 541: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 542: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 543: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 544: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 545: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 546: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 547: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 548: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 549: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 550: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 551: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 552: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 553: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 554: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 555: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 556: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 557: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 558: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 559: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 560: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 561: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 562: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 563: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 564: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 565: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 566: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 567: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 568: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.

Page 569: QA·C RELEASE NOTESproducts.prqa.com/Unix/Linux/QAC_PRQAF/QAC-9.4.1... · message help) to compare the comments against a table of "common code sequences" gathered from real-world,

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.