RCMA RELEASE NOTES - Helix QACproducts.prqa.com/Unix/Linux/RCMA/RCMA-1.7.1-ReleaseNotes.pdf · RCMA...

21
RELEASE NOTES RCMA 1.7.1 February, 2018 Documentation Version 1.0

Transcript of RCMA RELEASE NOTES - Helix QACproducts.prqa.com/Unix/Linux/RCMA/RCMA-1.7.1-ReleaseNotes.pdf · RCMA...

Page 1: RCMA RELEASE NOTES - Helix QACproducts.prqa.com/Unix/Linux/RCMA/RCMA-1.7.1-ReleaseNotes.pdf · RCMA 1.0.0 was a complete re-implementation of CMA (Cross-Module Analysis) using a database

RELEASE NOTES

RCMA 1.7.1

February, 2018

Documentation Version 1.0

Page 2: RCMA RELEASE NOTES - Helix QACproducts.prqa.com/Unix/Linux/RCMA/RCMA-1.7.1-ReleaseNotes.pdf · RCMA 1.0.0 was a complete re-implementation of CMA (Cross-Module Analysis) using a database

IMPORTANT NOTICE

DISCLAIMER OF WARRANTY

This document should only be used in conjunction with RCMA 1.7.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 : RCMA 1.7.1 Page i Programming Research Ltd.

Page 3: RCMA RELEASE NOTES - Helix QACproducts.prqa.com/Unix/Linux/RCMA/RCMA-1.7.1-ReleaseNotes.pdf · RCMA 1.0.0 was a complete re-implementation of CMA (Cross-Module Analysis) using a database

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 : RCMA 1.7.1 Page ii Programming Research Ltd.

Page 4: RCMA RELEASE NOTES - Helix QACproducts.prqa.com/Unix/Linux/RCMA/RCMA-1.7.1-ReleaseNotes.pdf · RCMA 1.0.0 was a complete re-implementation of CMA (Cross-Module Analysis) using a database

Contents1 Introduction 1

2 RCMA 22.1 Functional Changes in RCMA 1.7.1 . . . . . . . . . . . . . . . . . . . . . . . 22.2 Functional Changes in RCMA 1.7.0 . . . . . . . . . . . . . . . . . . . . . . . 22.3 Functional Changes in RCMA 1.6.0 . . . . . . . . . . . . . . . . . . . . . . . 22.4 Functional Changes in RCMA 1.5.0 . . . . . . . . . . . . . . . . . . . . . . . 22.5 Functional Changes in RCMA 1.4.0 . . . . . . . . . . . . . . . . . . . . . . . 22.6 Functional Changes in RCMA 1.3.0 . . . . . . . . . . . . . . . . . . . . . . . 22.7 Functional Changes in RCMA 1.2.0 . . . . . . . . . . . . . . . . . . . . . . . 22.8 Functional Changes in RCMA 1.1.0 . . . . . . . . . . . . . . . . . . . . . . . 3

3 RCMA Messages 43.1 Messages for RCMA 1.7.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

3.1.1 New Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43.2 Messages for RCMA 1.7.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

3.2.1 New Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43.2.2 Messages with Modified Behavior . . . . . . . . . . . . . . . . . . . 5

3.3 Messages for RCMA 1.6.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53.3.1 New Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53.3.2 Messages with Modified Behavior . . . . . . . . . . . . . . . . . . . 6

3.4 Messages for RCMA 1.5.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63.4.1 New Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73.4.2 Messages with Modified Behavior . . . . . . . . . . . . . . . . . . . 7

3.5 Messages for RCMA 1.4.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73.5.1 Messages with Modified Behavior . . . . . . . . . . . . . . . . . . . 8

3.6 Messages for RCMA 1.3.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83.6.1 Messages with Modified Behavior . . . . . . . . . . . . . . . . . . . 8

3.7 Messages for RCMA 1.2.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93.7.1 Messages with Modified Behavior . . . . . . . . . . . . . . . . . . . 9

4 RCMA Ticket Summary 114.1 Ticket Summary for RCMA 1.7.1 . . . . . . . . . . . . . . . . . . . . . . . . 114.2 Ticket Summary for RCMA 1.7.0 . . . . . . . . . . . . . . . . . . . . . . . . 114.3 Ticket Summary for RCMA 1.6.0 . . . . . . . . . . . . . . . . . . . . . . . . 124.4 Ticket Summary for RCMA 1.5.0 . . . . . . . . . . . . . . . . . . . . . . . . 134.5 Ticket Summary for RCMA 1.4.0 . . . . . . . . . . . . . . . . . . . . . . . . 144.6 Ticket Summary for RCMA 1.3.0 . . . . . . . . . . . . . . . . . . . . . . . . 154.7 Ticket Summary for RCMA 1.2.0 . . . . . . . . . . . . . . . . . . . . . . . . 16

RELEASE NOTES : RCMA 1.7.1 Page iii Programming Research Ltd.

Page 5: RCMA RELEASE NOTES - Helix QACproducts.prqa.com/Unix/Linux/RCMA/RCMA-1.7.1-ReleaseNotes.pdf · RCMA 1.0.0 was a complete re-implementation of CMA (Cross-Module Analysis) using a database

1 Introduction

RCMA 1.7.1 is a patch release of the Cross-Module Analysis component.

RCMA 1.0.0 was a complete re-implementation of CMA (Cross-Module Analysis) using adatabase (as opposed to the previous memory-based implementation), and introduced aselectable component in PRQA Framework called "RCMA" (the "R" is for Relational).

The result is that it is now possible to run CMA over any size of C or C++ project ("SingleProject CMA"), or any combination of C and/or C++ projects ("Multi-Project CMA").

Note: For the configuration of projects for CMA in PRQA Framework, using the RCMAcomponent, please refer to the PRQA Framework Component Manual.

RCMA 1.7.1 builds on the above mentioned database style of implementation.

RELEASE NOTES : RCMA 1.7.1 Page 1 Programming Research Ltd.

Page 6: RCMA RELEASE NOTES - Helix QACproducts.prqa.com/Unix/Linux/RCMA/RCMA-1.7.1-ReleaseNotes.pdf · RCMA 1.0.0 was a complete re-implementation of CMA (Cross-Module Analysis) using a database

2 RCMA

2.1 Functional Changes in RCMA 1.7.1

RCMA 1.7.1 is the same as the previous 1.7.0 version, with the exception of two fixes(tickets 25947 and 25948 - refer to RCMA Ticket Summary).

2.2 Functional Changes in RCMA 1.7.0

RCMA 1.7.0 is similar to the previous 1.6.0 version, with some new messages and changesto existing messages.

2.3 Functional Changes in RCMA 1.6.0

RCMA 1.6.0 is similar to the previous 1.5.0 version, with changes in messages only.

2.4 Functional Changes in RCMA 1.5.0

RCMA 1.5.0 is similar to the previous 1.4.0 version, with changes in messages only.

2.5 Functional Changes in RCMA 1.4.0

Further performance improvements have been introduced in RCMA 1.4.0, particularly forlarge and complex C++ projects, which had long analysis times due to disk I/O limitations.

2.6 Functional Changes in RCMA 1.3.0

RCMA 1.3.0 builds on the previous 1.2.0 version, with a significant performance improve-ment when processing large files.

In addition, the metric STNGV has been added which provides the count of the number ofglobal variables in the project.

2.7 Functional Changes in RCMA 1.2.0

RCMA 1.2.0 builds on the previous 1.1.0 version with significant improvements to thedatabase population step. This change has resulted in a significant reduction in the time

RELEASE NOTES : RCMA 1.7.1 Page 2 Programming Research Ltd.

Page 7: RCMA RELEASE NOTES - Helix QACproducts.prqa.com/Unix/Linux/RCMA/RCMA-1.7.1-ReleaseNotes.pdf · RCMA 1.0.0 was a complete re-implementation of CMA (Cross-Module Analysis) using a database

required for population, as well as a reduction in the amount of space required for theresultant database.

In addition, many of the checks and metric calculations have been updated to improve thequality of the analysis.

2.8 Functional Changes in RCMA 1.1.0

RCMA 1.1.0 is identical to the previous 1.0.0 version, the only minor changes being toaddress a problem with the creation of met files in a Japanese environment (Ticket 22081)and new analysis message to detect global objects that are non-const but can be madeconst (Ticket 11159).

int i = 0; // 'i' can be constint foo(void){

return i; // 'i' read but not written}

RELEASE NOTES : RCMA 1.7.1 Page 3 Programming Research Ltd.

Page 8: RCMA RELEASE NOTES - Helix QACproducts.prqa.com/Unix/Linux/RCMA/RCMA-1.7.1-ReleaseNotes.pdf · RCMA 1.0.0 was a complete re-implementation of CMA (Cross-Module Analysis) using a database

3 RCMA Messages

3.1 Messages for RCMA 1.7.1

3.1.1 New Messages

The following table lists messages which are new in RCMA 1.7.1.

Table 3.1: Messages Added for RCMA 1.7.1

Msg. Id. Description

1755

The tag ’%1s’ is declared but not used within this project.Ticket(s):25948 Message 1755 is now generated more quickly for large projects

(that is to say, projects with more than 30,000 tags).

3.2 Messages for RCMA 1.7.0

3.2.1 New Messages

The following table lists messages which are new in RCMA 1.7.0.

Table 3.2: Messages Added for RCMA 1.7.0

Msg. Id. Description

1534

The macro ’%1s’ is declared but not used within this project.Ticket(s):23529 MC3 R 2.5 - New messages to report unused macros that are

defined in headers.

1535

The typedef ’%1s’ is declared but not used within this project.Ticket(s):23522 MC3 R 2.3 - New message for unused type declarations at file

scope in headers.

1536The tag ’%1s’ is declared but not used within this project.Ticket(s):25429 MC3 R 2.4 - RCMA 1755 not generated for tag in typedef.

continued on next page

RELEASE NOTES : RCMA 1.7.1 Page 4 Programming Research Ltd.

Page 9: RCMA RELEASE NOTES - Helix QACproducts.prqa.com/Unix/Linux/RCMA/RCMA-1.7.1-ReleaseNotes.pdf · RCMA 1.0.0 was a complete re-implementation of CMA (Cross-Module Analysis) using a database

Table 3.2 – continued from previous page

Msg. Id. Description

1757

Shared global data shall be provided through static local objects insteadof ’%1s’.Ticket(s):25720 RePhrase rule 3.7: Shared global data shall be provided through

static local objects.

1758

Locks sequence shall form a DAG.Ticket(s):24566 If two locks are nested, then the nesting sequence shall form a

DAG.

1759

No static path shall result in a lock of the same mutex ’%1s’.Ticket(s):24565 In the scope of a lock, no static path shall result in a lock of the

same mutex.

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.3: Messages Modified for RCMA 1.7.0

Msg. Id. Description

1557

Function ’%1s’ refers to ’%2s’, which is defined within a different trans-lation unit and is statically initialized.Ticket(s):25457 False positive Message 1557 is no longer generated when func-

tions are referenced, but not called, during variable initialization.

3.3 Messages for RCMA 1.6.0

3.3.1 New Messages

The following table lists messages which are new in RCMA 1.6.0.

RELEASE NOTES : RCMA 1.7.1 Page 5 Programming Research Ltd.

Page 10: RCMA RELEASE NOTES - Helix QACproducts.prqa.com/Unix/Linux/RCMA/RCMA-1.7.1-ReleaseNotes.pdf · RCMA 1.0.0 was a complete re-implementation of CMA (Cross-Module Analysis) using a database

Table 3.4: Messages Added for RCMA 1.6.0

Msg. Id. Description

1756

External identifier ’%1s’ shall be unique.Ticket(s):23836 MC3 R 5.8 - uniqueness of external identifiers needs to be en-

forced across all namespaces.

3.3.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.5: Messages Modified for RCMA 1.6.0

Msg. Id. Description

1514

The object ’%1s’ is only referenced by function ’%2s’, in the translationunit where it is defined.Ticket(s):23186 Message 1514’s object and function parameters are now cor-

rectly referenced.

1527

Object/function with internal linkage has same identifier as another ob-ject/function with internal linkage.Ticket(s):25092 False positive Message 1527 is no longer generated when a

function has a separate declaration and definition in the sameheader file.

1599

Included from here.Ticket(s):25153 The submessage has been corrected so as to point to the cor-

rect header file during RCMA analysis.

1750

’%1s’ has multiple definitions.Ticket(s):25029 False negative Message 1750 is no longer generated when a

class/struct name is reused in an enumeration in the same file.

3.4 Messages for RCMA 1.5.0

RELEASE NOTES : RCMA 1.7.1 Page 6 Programming Research Ltd.

Page 11: RCMA RELEASE NOTES - Helix QACproducts.prqa.com/Unix/Linux/RCMA/RCMA-1.7.1-ReleaseNotes.pdf · RCMA 1.0.0 was a complete re-implementation of CMA (Cross-Module Analysis) using a database

3.4.1 New Messages

The following table lists messages which are new in RCMA 1.5.0.

Table 3.6: Messages Added for RCMA 1.5.0

Msg. Id. Description

1752

The object ’%1s’ with external linkange is declared but not definedwithin this project.Ticket(s):24751 New analysis to identify objects and functions that are neither

defined nor used in the project.

1753

The function ’%1s’ with external linkange is declared but not definedwithin this project.Ticket(s):24751 New analysis to identify objects and functions that are neither

defined nor used in the project.

1755The tag ’%1s’ is declared but not used within this project.Ticket(s):24233 New analysis to identify unused tag declarations.

4700Metric value out of threshold range: %1s = %2sTicket(s):24671 Message 4700, unintentionally removed in version 1.4.0.

3.4.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.7: Messages Modified for RCMA 1.5.0

Msg. Id. Description

1506

The identifier ’%1s’ is declared as a typedef and is used elsewhere fora different kind of declaration.Ticket(s):20820 Remove false positive for typedef of tag with the same identifier.

3.5 Messages for RCMA 1.4.0

RELEASE NOTES : RCMA 1.7.1 Page 7 Programming Research Ltd.

Page 12: RCMA RELEASE NOTES - Helix QACproducts.prqa.com/Unix/Linux/RCMA/RCMA-1.7.1-ReleaseNotes.pdf · RCMA 1.0.0 was a complete re-implementation of CMA (Cross-Module Analysis) using a database

3.5.1 Messages with Modified Behavior

The following table summarizes the messages whose behavior has been modified as aresult of a change in specification.

Table 3.8: Messages Modified for RCMA 1.4.0

Msg. Id. Description

1512

Identifier ’%1s’ with external linkage has separate declarations in multi-ple translation units.Ticket(s):24192 Fixed issue with duplicated messages and false positives when

relative include paths with a case that differs from the actual filepath on disk were used in multiple translation units.

1513

Identifier ’%1s’ with external linkage has separate non-defining decla-rations in more than one location.Ticket(s):24192 Fixed issue with duplicated messages and false positives when

relative include paths with a case that differs from the actual filepath on disk were used in multiple translation units.

1515

Different files are being used which have the same filename ’%1s’.Ticket(s):24192 Fixed issue with duplicated messages and false positives when

relative include paths with a case that differs from the actual filepath on disk were used in multiple translation units.

3.6 Messages for RCMA 1.3.0

3.6.1 Messages with Modified Behavior

The following table summarizes the messages whose behavior has been modified as aresult of a change in specification.

Table 3.9: Messages Modified for RCMA 1.3.0

Msg. Id. Description

1751The global object ’%1s’ is not modified in this project.23077 Change to the behaviour of message 1751 to correct false posi-

tive for an array to constant element type.continued on next page

RELEASE NOTES : RCMA 1.7.1 Page 8 Programming Research Ltd.

Page 13: RCMA RELEASE NOTES - Helix QACproducts.prqa.com/Unix/Linux/RCMA/RCMA-1.7.1-ReleaseNotes.pdf · RCMA 1.0.0 was a complete re-implementation of CMA (Cross-Module Analysis) using a database

Table 3.9 – continued from previous page

Msg. Id. Description

1520

Functions are indirectly recursive.22460 Message 1520 will be generated for all occurences of recursive

call paths when a function contains calls to other functions thatresult in mutiple recursive paths. Previously, message 1520 wasonly generated for the first recursive call path.

3.7 Messages for RCMA 1.2.0

3.7.1 Messages with Modified Behavior

The following table summarizes the messages whose behavior has been modified as aresult of a change in specification.

Table 3.10: Messages Modified for RCMA 1.2.0

Msg. Id. Description

1504

The object ’%1s’ is only referenced in the translation unit where it isdefined.22202 False positive messages relating to visibility for declarations/def-

initions only appearing in header files.

1505

The function ’%1s’ is only referenced in the translation unit where it isdefined.22202 False positive messages relating to visibility for declarations/def-

initions only appearing in header files.

1512

Identifier ’%1s’ with external linkage has separate declarations in multi-ple translation units.22210 Using the preprocessor it is possible for an object or function to

be defined in a header file in one translation unit and declared inall other translation units. This resulted in false positive duplicatedeclaration messages.

1513

Identifier ’%1s’ with external linkage has separate non-defining decla-rations in more than one location.22210 Using the preprocessor it is possible for an object or function to

be defined in a header file in one translation unit and declared inall other translation units. This resulted in false positive duplicatedeclaration messages.

1514

The object ’%2s’ is only referenced by function ’%1s’, in the translationunit where it is defined22202 False positive messages relating to visibility for declarations/def-

initions only appearing in header files.continued on next page

RELEASE NOTES : RCMA 1.7.1 Page 9 Programming Research Ltd.

Page 14: RCMA RELEASE NOTES - Helix QACproducts.prqa.com/Unix/Linux/RCMA/RCMA-1.7.1-ReleaseNotes.pdf · RCMA 1.0.0 was a complete re-implementation of CMA (Cross-Module Analysis) using a database

Table 3.10 – continued from previous page

Msg. Id. Description

1531

The object ’%1s’ is referenced in only one translation unit - but not theone in which it is defined.22202 False positive messages relating to visibility for declarations/def-

initions only appearing in header files.

1532

The function ’%1s’ is only referenced in one translation unit - but not theone in which it is defined.22202 False positive messages relating to visibility for declarations/def-

initions only appearing in header files.

1594

’%1s’ declared here.22211 A header file included into multiple translation units generated

multiple declared here sub messages for the same location.These are now deduplicated.

1750’%1s’ has multiple definitions.22104 False positive for multiple definitions at exactly the same loca-

tion.

RELEASE NOTES : RCMA 1.7.1 Page 10 Programming Research Ltd.

Page 15: RCMA RELEASE NOTES - Helix QACproducts.prqa.com/Unix/Linux/RCMA/RCMA-1.7.1-ReleaseNotes.pdf · RCMA 1.0.0 was a complete re-implementation of CMA (Cross-Module Analysis) using a database

4 RCMA Ticket Summary

4.1 Ticket Summary for RCMA 1.7.1

The following table summarizes the tickets that were closed in RCMA 1.7.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 for RCMA 1.7.1 to see the message text.

Table 4.1: Ticket Summary for RCMA 1.7.1

Ticket Type Description

25947 FRCMA count can now de-serialize very large types (that is to say, typesof length greater than 8,000).

25948 F

Message 1755 is now generated more quickly for large projects (that isto say, projects with more than 30,000 tags).Message(s):1755 The tag ’%1s’ is declared but not used within this project.

4.2 Ticket Summary for RCMA 1.7.0

The following table summarizes the tickets that were closed in RCMA 1.7.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.

RELEASE NOTES : RCMA 1.7.1 Page 11 Programming Research Ltd.

Page 16: RCMA RELEASE NOTES - Helix QACproducts.prqa.com/Unix/Linux/RCMA/RCMA-1.7.1-ReleaseNotes.pdf · RCMA 1.0.0 was a complete re-implementation of CMA (Cross-Module Analysis) using a database

Table 4.2: Ticket Summary for RCMA 1.7.0

Ticket Type Description

23522 N

MC3 R 2.3 - New message for unused type declarations at file scope inheaders.Message(s):1535 The typedef ’%1s’ is declared but not used within this project.

23529 N

MC3 R 2.5 - New messages to report unused macros that are definedin headers.Message(s):1534 The macro ’%1s’ is declared but not used within this project.

24565 N

In the scope of a lock, no static path shall result in a lock of the samemutex.Message(s):1759 No static path shall result in a lock of the same mutex ’%1s’.

24566 NIf two locks are nested, then the nesting sequence shall form a DAG.Message(s):1758 Locks sequence shall form a DAG.

25429 NMC3 R 2.4 - RCMA 1755 not generated for tag in typedef.Message(s):1536 The tag ’%1s’ is declared but not used within this project.

25457 F

False positive Message 1557 is no longer generated for functions refer-enced, but not called, during variable initialization.Message(s):1557 Function ’%1s’ refers to ’%2s’ which is defined within a different

translation unit and is statically initialized.

25720 N

RePhrase rule 3.7: Shared global data shall be provided through staticlocal objects.Message(s):1757 Shared global data shall be provided through static local objects

instead of ’%1s’.

4.3 Ticket Summary for RCMA 1.6.0

The following table summarizes the tickets that were closed in RCMA 1.6.0.

RELEASE NOTES : RCMA 1.7.1 Page 12 Programming Research Ltd.

Page 17: RCMA RELEASE NOTES - Helix QACproducts.prqa.com/Unix/Linux/RCMA/RCMA-1.7.1-ReleaseNotes.pdf · RCMA 1.0.0 was a complete re-implementation of CMA (Cross-Module Analysis) using a database

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.3: Ticket Summary for RCMA 1.6.0

Ticket Type Description

23186 F

Message 1514’s object and function parameters are now correctly ref-erenced.Message(s):1514 The object ’%1s’ is only referenced by function ’%2s’, in the

translation unit where it is defined.

23836 N

The uniqueness of external identifiers is now enforced across allnamespaces.Message(s):1756 External identifier ’%1s’ shall be unique.

25029 F

False negative Message 1750 is no longer generated when aclass/struct name is reused in an enumeration in the same file.Message(s):1750 ’%1s’ has multiple definitions.

25092 F

False positive Message 1527 is no longer generated when a functionhas a separate declaration and definition in the same header file.Message(s):1527 Object/function with internal linkage has same identifier as an-

other object/function with internal linkage.

25153 F

The submessage has been corrected so as to lead to the correct headerfile during RCMA analysis.Message(s):1599 Included from here.

4.4 Ticket Summary for RCMA 1.5.0

The following table summarizes the tickets that were closed in RCMA 1.5.0.

RELEASE NOTES : RCMA 1.7.1 Page 13 Programming Research Ltd.

Page 18: RCMA RELEASE NOTES - Helix QACproducts.prqa.com/Unix/Linux/RCMA/RCMA-1.7.1-ReleaseNotes.pdf · RCMA 1.0.0 was a complete re-implementation of CMA (Cross-Module Analysis) using a database

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 RCMA 1.5.0

Ticket Type Description

20820 F

Remove false positive for typedef of tag with the same identifier.Message(s):1506 The identifier ’%1s’ is declared as a typedef and is used else-

where for a different kind of declaration.

23590 NNew analysis to identify unused tag declarations.Message(s):1755 The tag ’%1s’ is declared but not used within this project.

24671 FMessage 4700, unintentionally removed in version 1.4.0.Message(s):4700 Metric value out of threshold range: %1s = %2s

24751 N

New analysis to identify objects and functions that are neither definednor used in the project.Message(s):1752 The object ’%1s’ with external linkange is declared but not de-

fined within this project.1753 The function ’%1s’ with external linkange is declared but not de-

fined within this project.

4.5 Ticket Summary for RCMA 1.4.0

The following table summarizes the tickets that were closed in RCMA 1.4.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.

RELEASE NOTES : RCMA 1.7.1 Page 14 Programming Research Ltd.

Page 19: RCMA RELEASE NOTES - Helix QACproducts.prqa.com/Unix/Linux/RCMA/RCMA-1.7.1-ReleaseNotes.pdf · RCMA 1.0.0 was a complete re-implementation of CMA (Cross-Module Analysis) using a database

Table 4.5: Ticket Summary for RCMA 1.4.0

Ticket Type Description

24192 F

Fixed issue with duplicated messages and false positives when relativeinclude paths with a case that differs from the actual file path on diskwere used in multiple translation units.Message(s):1512 Identifier ’%1s’ with external linkage has separate declarations

in multiple translation units.1513 Identifier ’%1s’ with external linkage has separate non-defining

declarations in more than one location.1515 Different files are being used which have the same filename

’%1s’.

24195 FThe performance of RCMA is improved for analysis of large projectswhich were previously causing very long analysis times due to disk I/Olimitations.

24269 FFixed issue related to identifiers with a $ in their name causing RCMAto fail when processing the identifiers and querying the internal model.

24369 E

RCMA will no longer fail to read .met files corresponding to source filesthat contain use of string literals. This will resolve false negatives andpositives for cases where this failure prevented these files from beingused in cross-module analysis.

4.6 Ticket Summary for RCMA 1.3.0

The following table summarizes the tickets that were closed in RCMA 1.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.6: Ticket Summary for RCMA 1.3.0

Ticket Type Description

21302 ENew metric STNGV that provides a count of the number of global vari-ables across the project i.e. total number of definitions of variables withexternal linkage in a project

continued on next page

RELEASE NOTES : RCMA 1.7.1 Page 15 Programming Research Ltd.

Page 20: RCMA RELEASE NOTES - Helix QACproducts.prqa.com/Unix/Linux/RCMA/RCMA-1.7.1-ReleaseNotes.pdf · RCMA 1.0.0 was a complete re-implementation of CMA (Cross-Module Analysis) using a database

Table 4.6 – continued from previous page

Ticket Type Description

22460 F

Message 1520 will be generated for all occurences of recursive callpaths when a function contains calls to other functions that result inmutiple recursive paths. Previously, message 1520 was only generatedfor the first recursive call path.1520 Functions are indirectly recursive.

23077 FChange to the behaviour of message 1751 to correct false positive foran array to constant element type.1751 The global object ’%1s’ is not modified in this project.

23147 F Addressed failure to complete analysis when processing large projects.

4.7 Ticket Summary for RCMA 1.2.0

The following table summarizes the tickets that were closed in RCMA 1.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.7: Ticket Summary for RCMA 1.2.0

Ticket Type Description22081 F Failure to create project metric file in non ASCII environments.

22104 FFalse positive for multiple definitions at exactly the same location.1750 ’%1s’ has multiple definitions.

22108 FThe architecture used when populating the database has beenchanged resulting in improved performance for large projects.

22126 FFixed discrepancies in calculation of metrics: STM29 STNEA STCBOSTLCM STNOC STRCF and STWMC.

continued on next page

RELEASE NOTES : RCMA 1.7.1 Page 16 Programming Research Ltd.

Page 21: RCMA RELEASE NOTES - Helix QACproducts.prqa.com/Unix/Linux/RCMA/RCMA-1.7.1-ReleaseNotes.pdf · RCMA 1.0.0 was a complete re-implementation of CMA (Cross-Module Analysis) using a database

Table 4.7 – continued from previous page

Ticket Type Description

22202 F

False positive messages relating to visibility for declarations/definitionsonly appearing in header files.1504 The object ’%1s’ is only referenced in the translation unit where

it is defined.1505 The function ’%1s’ is only referenced in the translation unit

where it is defined.1514 The object ’%2s’ is only referenced by function ’%1s’, in the

translation unit where it is defined1531 The object ’%1s’ is referenced in only one translation unit - but

not the one in which it is defined.1532 The function ’%1s’ is only referenced in one translation unit - but

not the one in which it is defined.

22209 EInclude trees for diagnostics are now built using the lexical order offilenames starting with the name of the translation units main sourcefile.

22210 F

Using the preprocessor it is possible for an object or function to bedefined in a header file in one translation unit and declared in all othertranslation units. This resulted in false positive duplicate declarationmessages.1512 Identifier ’%1s’ with external linkage has separate declarations

in multiple translation units.1513 Identifier ’%1s’ with external linkage has separate non-defining

declarations in more than one location.

22211 E

A header file included into multiple translation units generated multipledeclared here sub messages for the same location. These are nowdeduplicated.1594 ’%1s’ declared here.

RELEASE NOTES : RCMA 1.7.1 Page 17 Programming Research Ltd.