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.STRUCT.CUP : Comparison of Unrelated Pointers

要旨

Pointers to different objects are compared.

Pointer comparison should only be performed between pointers that point at different elements of the same array. Comparing pointers (using <, <=, >, >=) that point at different variables or allocations is undefined behavior according to the C and C++ standards.

プロパティ

クラス名 Comparison of Unrelated Pointers
日本語クラス名 Comparison of Unrelated Pointers
クラス分類 信頼性 (reliability)
ニーモニック LANG.STRUCT.CUP
カテゴリー
MisraC2025 MisraC2025:18.3 The relational operators >, >=, < and <= shall not be applied to expressions of pointer type except where they point into the same object
MisraC2023 MisraC2023:18.3 The relational operators >, >=, < and <= shall not be applied to expressions of pointer type except where they point into the same object
Misra2012 Misra2012:18.3 The relational operators >, >=, < and <= shall not be applied to expressions of pointer type except where they point into the same object
Misra2004 Misra2004:17.3 >, >=, <, <= shall not be applied to pointer types except where they point to the same array
AUTOSARC++14 AUTOSARC++14:M5-0-18 >, >=, <, <= shall not be applied to objects of pointer type, except where they point to the same array.
MisraC++2008 MisraC++2008:5-0-18 > , >= , < , <= shall not be applied to objects of pointer type, except where they point to the same array.
MisraC++2023 MisraC++2023:0.3.2 A function call shall not violate the function's preconditions
  MisraC++2023:8.9.1 The built-in relational operators >, >=, < and <= shall not be applied to objects of pointer type, except where they point to elements of the same array
TS17961 TS17961:5.35-ptrobj Subtracting or comparing two pointers that do not refer to the same array
CERT-C CERT-C:ARR36-C Do not subtract or compare two pointers that do not refer to the same array
  CERT-C:EXP08-C Ensure pointer arithmetic is used correctly
CERT-CPP CERT-CPP:CTR54-CPP Do not subtract iterators that do not refer to the same container
JSF++ JSF++:171 Relational operators shall not be applied to pointer types except where both operands are of the same type and point to the same entity.
対応言語 C および C++ で利用可能です。
有効/無効設定 このワーニングクラスのチェックはデフォルトで有効になっています。チェックを無効にするにはプロジェクト設定ファイル (configuration file)に以下の WARNING_FILTER ルールを追加してください。
WARNING_FILTER += discard class="Comparison of Unrelated Pointers"

int lang_struct_cup(void)
{
    int i, j;
    return &i < &j;  /* 'Comparison of Unrelated Pointers' warning issued here */
}

関連のある設定ファイルパラメータ

設定ファイルの以下のパラメータがこのワーニングクラスのチェックに影響します。

 

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