JavaScript is not currently enabled, but is required for full CodeSonar manual search and browse functionality.

If you are viewing this file in your hub's Web GUI, enable JavaScript in your browser: you will also need it for GUI functionality.

If you opened this file directly from disk, your browser may be directly suppressing JavaScript functionality: certain browsers perform this suppression on local files (but not files delivered by web servers) for security reasons.

CodeSonar® 9.2p0 CONFIDENTIAL CodeSecure Inc
C and C++


LANG.FUNCS.PCRSMARTP : Parameter is const Reference to Smart Pointer

Summary

The type of a function parameter is a const reference to one of the following smart pointer types:

Properties

Class Name Parameter is const Reference to Smart Pointer
Significance style
Mnemonic LANG.FUNCS.PCRSMARTP
Categories
AUTOSARC++14 AUTOSARC++14:A8-4-12 A std::unique_ptr shall be passed to a function as: (1) a copy to express the function assumes ownership (2) an lvalue reference to express that the function replaces the managed object.
Availability Available for C++ only (not C).
Enabling Checks for this warning class are disabled by default, and require the unnormalized C ASTs for the project. To enable them, add the following WARNING_FILTER rule and RETAIN_UNNORMALIZED_C_AST specification to the project configuration file.
RETAIN_UNNORMALIZED_C_AST = Yes
WARNING_FILTER += allow class="Parameter is const Reference to Smart Pointer"
Note that retaining the unnormalized ASTs will increase the disk space used to store the project representation, and may make the analysis take longer.

Example

#include <memory>

int defined_func(const std::unique_ptr<int> &ptr){  // 'Parameter is const Reference to Smart Pointer' warning issued here
    return 1;
}

int declared_func(const std::unique_ptr<int> &ptr); // 'Parameter is const Reference to Smart Pointer' warning issued here

int notref(const std::unique_ptr<int> ptr) {                       // parameter not a reference
    return 1;
}

int notconst(std::unique_ptr<int> &ptr) {                          // parameter not const
    return 1;
}

typedef int * myptr;

int notsmart(const myptr &ptr){ return 2;}                         // pointer not smart

Relevant Configuration File Parameters

The following configuration file parameters affect checks for this warning class.

 

To report problems with this documentation, please visit https://support.codesecure.com/.