mirror of
https://github.com/Next-Flip/Momentum-Firmware.git
synced 2026-05-03 04:49:59 -07:00
* Git: set git attributes to automatically manage line endings. * Git: cleanup gitignore file
8868 lines
323 KiB
HTML
Executable File
8868 lines
323 KiB
HTML
Executable File
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
|
||
<head>
|
||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||
<style type="text/css">
|
||
|
||
html {
|
||
height:100%; /* fix height to 100% for IE */
|
||
width: 100%;
|
||
max-height:100%; /* fix height for other browsers */
|
||
padding:0; /*remove padding */
|
||
margin:0; /* remove margins */
|
||
border:0; /* remove borders */
|
||
}
|
||
|
||
.ptitle h2 {
|
||
text-align: center
|
||
}
|
||
|
||
.stitle {
|
||
font-size: 100%;
|
||
font-weight: bold;
|
||
text-align: left;
|
||
}
|
||
|
||
.headcontent {
|
||
font-size: 90%;
|
||
max-height: 200px;
|
||
}
|
||
|
||
.toc {
|
||
display: inline-block;
|
||
}
|
||
|
||
.summary {
|
||
margin:0;
|
||
padding:0;
|
||
background:transparent;
|
||
height:100%;
|
||
margin-right:100px;
|
||
padding-right:100px;
|
||
padding-top:10px;
|
||
display: inline-block;
|
||
float:right;
|
||
}
|
||
|
||
.toc ol {
|
||
margin:0;
|
||
padding:0;
|
||
background:transparent;
|
||
height:100%;
|
||
margin-left:50px;
|
||
padding-left:10px;
|
||
padding-top:10px;
|
||
}
|
||
|
||
.toc ol li a { padding-left:20px; color: #0000EE;; text-decoration:none;}
|
||
.toc ol li a:hover { color:#BABABA; }
|
||
a:hover { color:#BABABA; }
|
||
.diagrams { display: inline-block;}
|
||
|
||
.rgtable td { width:70px; text-align:center;}
|
||
|
||
|
||
td {
|
||
font-family:Consolas,Monaco,Lucida Console,Liberation Mono,DejaVu Sans Mono,Bitstream Vera Sans Mono,Courier New, monospace;
|
||
}
|
||
|
||
.pie-container {
|
||
box-sizing: border-box;
|
||
width: 850px;
|
||
height: 450px;
|
||
padding: 20px 15px 15px 15px;
|
||
margin: 15px auto 30px auto;
|
||
border: 1px solid #ddd;
|
||
background: #fff;
|
||
background: linear-gradient(#f6f6f6 0, #fff 50px);
|
||
background: -o-linear-gradient(#f6f6f6 0, #fff 50px);
|
||
background: -ms-linear-gradient(#f6f6f6 0, #fff 50px);
|
||
background: -moz-linear-gradient(#f6f6f6 0, #fff 50px);
|
||
background: -webkit-linear-gradient(#f6f6f6 0, #fff 50px);
|
||
box-shadow: 0 3px 10px rgba(0,0,0,0.15);
|
||
-o-box-shadow: 0 3px 10px rgba(0,0,0,0.1);
|
||
-ms-box-shadow: 0 3px 10px rgba(0,0,0,0.1);
|
||
-moz-box-shadow: 0 3px 10px rgba(0,0,0,0.1);
|
||
-webkit-box-shadow: 0 3px 10px rgba(0,0,0,0.1);
|
||
}
|
||
|
||
.pie-placeholder {
|
||
width: 100%;
|
||
height: 100%;
|
||
font-size: 14px;
|
||
line-height: 1.2em;
|
||
}
|
||
|
||
.metricstable,table,td,th
|
||
{
|
||
border-style: none;
|
||
border-color: white;
|
||
border-collapse: collapse;
|
||
border-width: 1px;
|
||
padding: 0px;
|
||
}
|
||
|
||
.padded { padding: 0 10px; }
|
||
|
||
.paddedleft { padding: 0 10px; text-align: left; }
|
||
.paddedright { padding: 0 10px; text-align: right; }
|
||
|
||
.lightheader { background-color: lightgreen; }
|
||
.boldheader { background-color: lime; }
|
||
|
||
.docTable,table,th
|
||
{
|
||
border-style: solid;
|
||
border-color: black;
|
||
border-width: 1px;
|
||
background: lightgray;
|
||
}
|
||
.docTable,table,td
|
||
{
|
||
border-style: solid;
|
||
border-color: black;
|
||
border-width: 1px;
|
||
background: white;
|
||
}
|
||
.docCellGreen
|
||
{
|
||
border-style: solid;
|
||
border-color: black;
|
||
border-width: 1px;
|
||
background: green;
|
||
}
|
||
.docCellRed
|
||
{
|
||
border-style: solid;
|
||
border-color: black;
|
||
border-width: 1px;
|
||
background: red;
|
||
}
|
||
.docCellOrange
|
||
{
|
||
border-style: solid;
|
||
border-color: black;
|
||
border-width: 1px;
|
||
background: orange;
|
||
}
|
||
.docCellBlue
|
||
{
|
||
border-style: solid;
|
||
border-color: black;
|
||
border-width: 1px;
|
||
background: DeepSkyBlue;
|
||
}
|
||
</style>
|
||
<title>PRQA GEP/GCS/GRP Report</title>
|
||
</head>
|
||
<body>
|
||
<div id="head">
|
||
<div class="ptitle"><h2>PRQA GEP/GCS/GRP Report</h2></div>
|
||
<div class="stitle"><h4><i>Note: This report is generated using the software (PRQA Framework) of Programming Research Limited and is the Intellectual Property of Programming Research Limited.</i></h4></div>
|
||
<div class="stitle">Project : .../ST25R3916_nucleo/nucleo/Firmware/nucleo/X-NUCLEO-NFC06A1/STM32<br/>Status at: 20 May, 2020 at 18:40:07<br/><i>MISRA report script last update: 01/07/19</i></div>
|
||
<div class="headcontent">
|
||
<div class="toc">
|
||
<ol>
|
||
<li><a href="#GEP">GEP - Guideline Enforcement Plan</a></li>
|
||
<ol>
|
||
<li><a href="#Tools">Tools version</a></li>
|
||
<li><a href="#Configuration">Configuration files</a></li>
|
||
<li><a href="#Assistance">Assistance/Enforcement</a></li>
|
||
</ol>
|
||
<li><a href="#GRP">GRP - Guideline Recategorization Plan</a></li>
|
||
<li><a href="#GCS">GCS - Guideline Compliance Summary</a></li>
|
||
<li><a href="#Permits">Deviation Permits</a></li>
|
||
<li><a href="#Records">Deviation Records</a></li>
|
||
<ol>
|
||
<li><a href="#SuppressionsByFile">Suppressions by File</a></li>
|
||
<li><a href="#SuppressionsByGroup">Suppressions by Group</a></li>
|
||
<li><a href="#RedundantSuppressions">Redundant Suppressions</a></li>
|
||
<li><a href="#ContinuousSuppressionsByFile">Continuous Suppressions by File</a></li>
|
||
<li><a href="#FileStatus">File Status</a></li>
|
||
</ol>
|
||
</ol>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<br>
|
||
<br>
|
||
<br>
|
||
<div id="content">
|
||
<div class="GEP">
|
||
<div class="sec"><h2><a name="GEP">GEP - Guideline Enforcement Plan</a></h2></div>
|
||
This section targets to provide an overview of Guidelines Enforcement Plan (GEP).<br>
|
||
<br>
|
||
This document will only focus on STMicroelectronics NFC RF Abstraction Layer (RFAL).<br>
|
||
<br>
|
||
The project has been designed to comply with the standard ISO/IEC 9899:1999 ([C99]).
|
||
<br>
|
||
<br>
|
||
<h3><a name="Tools">1. Tools version</a></h3>
|
||
The tool used for MISRA compliance is:<br>
|
||
<br>
|
||
<b>PRQA Framework - v2.2.2</b><br>
|
||
<br><br>
|
||
It is composed of the following subcomponents:
|
||
<br><br>
|
||
<ul>
|
||
<li><h4>Component: qacpp</h4></li>
|
||
<ul>Version: 4.2.0</ul>
|
||
<ul>Target: C++</ul>
|
||
<li><h4>Component: rcma</h4></li>
|
||
<ul>Version: 1.6.0</ul>
|
||
<ul>Target: C_CPP</ul>
|
||
<li><h4>Component: m3cm</h4></li>
|
||
<ul>Version: 2.3.1</ul>
|
||
<ul>Target: C</ul>
|
||
<li><h4>Component: qac</h4></li>
|
||
<ul>Version: 9.3.1</ul>
|
||
<ul>Target: C</ul>
|
||
<ul>
|
||
<li><h5>Options:</h5></li>
|
||
<ul>-d : __schedule_barrier=_ignore_semi</ul>
|
||
<ul>-namelength : 63</ul>
|
||
</ul>
|
||
</ul>
|
||
<h3><a name="Configuration">2. Configuration</a></h3>
|
||
This section targets to provide the main configuration options used for MISRA compliance.<br>
|
||
<br>
|
||
The project complies to [C99],<br>
|
||
the variables length has been consequently set to a dedicated value (cf 'namelength' option in table above).
|
||
<br>
|
||
<br>
|
||
<b>Repository/components:</b><br>
|
||
<ul>
|
||
<li>MCU target:</li>
|
||
<ul>STM32</ul><br>
|
||
<li>Parent repository:</li>
|
||
<ul>ST25R3916_nucleo</ul><br>
|
||
<li>RFAL informations:</li>
|
||
<ul>Path: .../ST25R3916_nucleo/rfal</ul>
|
||
<ul>Version: v2.1.2</ul>
|
||
<br> <li>Project repositories SHA1:</li>
|
||
<ul><b>.../ST25R3916_nucleo</b>: 959b80e</ul>
|
||
<ul><b>.../ST25R3916_nucleo/common</b>: 09bc5ef</ul>
|
||
<ul><b>.../ST25R3916_nucleo/nucleo</b>: 22a04ae</ul>
|
||
<ul><b>.../ST25R3916_nucleo/rfal</b>: f08099c</ul>
|
||
<br>
|
||
</ul>
|
||
<h3><a name="Assistance">3. Assistance/Enforcement</a></h3>
|
||
<center><table class="docTable" width=98%>
|
||
<colgroup span="10" class="columns"></colgroup>
|
||
<tr><th>Guideline</th><th>Category</th><th>Description</th><th>Assistance/Enforcement Sub Rules</th></tr>
|
||
<tr>
|
||
<td width=2%>Dir-1.1</td>
|
||
<td width=2%>Required</td>
|
||
<td width=50%>Any implementation-defined behaviour on which the output of the program depends shall be documented and understood</td>
|
||
<td><center><table width=100%>
|
||
<tr><th>Qac</th><th>Description</th></tr>
|
||
<tr>
|
||
<td width=5%>0202</td>
|
||
<td width=95%> [I] '-' character in '[]' conversion specification is implementation defined.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0284</td>
|
||
<td width=95%> [I] Multiple character constants have implementation defined values.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0285</td>
|
||
<td width=95%> [I] Character constant contains character which is not a member of the basic source character set.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0286</td>
|
||
<td width=95%> [I] String literal contains character which is not a member of the basic source character set.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0287</td>
|
||
<td width=95%> [I] Header name contains character which is not a member of the basic source character set.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0288</td>
|
||
<td width=95%> [I] Source file '%s' has comments containing characters which are not members of the basic source character set.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0289</td>
|
||
<td width=95%> [I] Source file '%s' has preprocessing tokens containing characters which are not members of the basic source character set.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0292</td>
|
||
<td width=95%> [I] Source file '%s' has comments containing one of the characters '$', '@' or '`'.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0299</td>
|
||
<td width=95%> [I] Source file '%s' includes #pragma directives containing characters which are not members of the basic source character set.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0314</td>
|
||
<td width=95%> [I] Cast from a pointer to object type to a pointer to void.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0315</td>
|
||
<td width=95%> [I] Implicit conversion from a pointer to object type to a pointer to void.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0371</td>
|
||
<td width=95%> [L] Nesting levels of blocks exceeds 127 - program does not conform strictly to ISO:C99.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0372</td>
|
||
<td width=95%> [L] More than 63 levels of nested conditional inclusion - program does not conform strictly to ISO:C99.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0375</td>
|
||
<td width=95%> [L] Nesting of parenthesized expressions exceeds 63 - program does not conform strictly to ISO:C99.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0380</td>
|
||
<td width=95%> [L] Number of macro definitions exceeds 4095 - program does not conform strictly to ISO:C99.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0388</td>
|
||
<td width=95%> [L] '#include "%s"' causes nesting to exceed 15 levels - program does not conform strictly to ISO:C99.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0390</td>
|
||
<td width=95%> [L] Number of members in 'struct' or 'union' exceeds 1023 - program does not conform strictly to ISO:C99.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0391</td>
|
||
<td width=95%> [L] Number of enumeration constants exceeds 1023 - program does not conform strictly to ISO:C99.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0392</td>
|
||
<td width=95%> [L] Nesting of 'struct' or 'union' types exceeds 63 - program does not conform strictly to ISO:C99.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0581</td>
|
||
<td width=95%> [I] Floating-point constant may be too small to be representable.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0634</td>
|
||
<td width=95%> [I] Bit-fields in this struct/union have not been declared explicitly as unsigned or signed.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>2850</td>
|
||
<td width=95%> Constant: Implicit conversion to a signed integer type of insufficient size.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>2851</td>
|
||
<td width=95%> Definite: Implicit conversion to a signed integer type of insufficient size.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>2852</td>
|
||
<td width=95%> Apparent: Implicit conversion to a signed integer type of insufficient size.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>2855</td>
|
||
<td width=95%> Constant: Casting to a signed integer type of insufficient size.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>2856</td>
|
||
<td width=95%> Definite: Casting to a signed integer type of insufficient size.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>2857</td>
|
||
<td width=95%> Apparent: Casting to a signed integer type of insufficient size.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>2860</td>
|
||
<td width=95%> Constant: Implementation-defined value resulting from left shift operation on expression of signed type.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>2861</td>
|
||
<td width=95%> Definite: Implementation-defined value resulting from left shift operation on expression of signed type.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>2862</td>
|
||
<td width=95%> Apparent: Implementation-defined value resulting from left shift operation on expression of signed type.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>2895</td>
|
||
<td width=95%> Constant: Negative value cast to an unsigned type.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>2896</td>
|
||
<td width=95%> Definite: Negative value cast to an unsigned type.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>2897</td>
|
||
<td width=95%> Apparent: Negative value cast to an unsigned type.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>3116</td>
|
||
<td width=95%> Unrecognized #pragma arguments '%s' This #pragma directive has been ignored.</td>
|
||
</tr>
|
||
</table></center>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=2%>Dir-2.1</td>
|
||
<td width=2%>Required</td>
|
||
<td width=50%>All source files shall compile without any compilation errors</td>
|
||
<td class="docCellBlue">Unassisted<br><br>
|
||
Remarks:<br>
|
||
Dedicated checks deployed in Jenkins.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=2%>Dir-3.1</td>
|
||
<td width=2%>Required</td>
|
||
<td width=50%>All code shall be traceable to documented requirements</td>
|
||
<td class="docCellBlue">Unassisted<br><br>
|
||
Remarks:<br>
|
||
Limited management of requirements.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=2%>Dir-4.1</td>
|
||
<td width=2%>Required</td>
|
||
<td width=50%>Run-time failures shall be minimized</td>
|
||
<td><center><table width=100%>
|
||
<tr><th>Qac</th><th>Description</th></tr>
|
||
<tr>
|
||
<td width=5%>2791</td>
|
||
<td width=95%> Definite: Right hand operand of shift operator is negative or too large.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>2792</td>
|
||
<td width=95%> Apparent: Right hand operand of shift operator is negative or too large.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>2801</td>
|
||
<td width=95%> Definite: Overflow in signed arithmetic operation.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>2802</td>
|
||
<td width=95%> Apparent: Overflow in signed arithmetic operation.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>2811</td>
|
||
<td width=95%> Definite: Dereference of NULL pointer.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>2812</td>
|
||
<td width=95%> Apparent: Dereference of NULL pointer.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>2821</td>
|
||
<td width=95%> Definite: Arithmetic operation on NULL pointer.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>2822</td>
|
||
<td width=95%> Apparent: Arithmetic operation on NULL pointer.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>2831</td>
|
||
<td width=95%> Definite: Division by zero.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>2832</td>
|
||
<td width=95%> Apparent: Division by zero.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>2841</td>
|
||
<td width=95%> Definite: Dereference of an invalid pointer value.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>2842</td>
|
||
<td width=95%> Apparent: Dereference of an invalid pointer value.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>2845</td>
|
||
<td width=95%> Constant: Maximum number of characters to be written is larger than the target buffer size.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>2846</td>
|
||
<td width=95%> Definite: Maximum number of characters to be written is larger than the target buffer size.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>2847</td>
|
||
<td width=95%> Apparent: Maximum number of characters to be written is larger than the target buffer size.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>2871</td>
|
||
<td width=95%> Infinite loop identified.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>2872</td>
|
||
<td width=95%> This loop, if entered, will never terminate.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>2877</td>
|
||
<td width=95%> This loop will never be executed more than once.</td>
|
||
</tr>
|
||
</table></center>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=2%>Dir-4.10</td>
|
||
<td width=2%>Required</td>
|
||
<td width=50%>Precautions shall be taken in order to prevent the contents of a header file being included more then once</td>
|
||
<td><center><table width=100%>
|
||
<tr><th>Qac</th><th>Description</th></tr>
|
||
<tr>
|
||
<td width=5%>0883</td>
|
||
<td width=95%> Include file code is not protected against repeated inclusion</td>
|
||
</tr>
|
||
</table></center>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=2%>Dir-4.11</td>
|
||
<td width=2%>Required</td>
|
||
<td width=50%>The validity of values passed to library functions shall be checked</td>
|
||
<td class="docCellBlue">Unassisted<br><br>
|
||
Remarks:<br>
|
||
No automated check deployed.<br>
|
||
Manual checks done by developers.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=2%>Dir-4.12</td>
|
||
<td width=2%>Required</td>
|
||
<td width=50%>Dynamic memory allocation shall not be used</td>
|
||
<td class="docCellBlue">Unassisted<br><br>
|
||
Remarks:<br>
|
||
No memory allocation functions (malloc(), calloc(), realloc()) being called in RFAL.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=2%>Dir-4.13</td>
|
||
<td width=2%>Advisory</td>
|
||
<td width=50%>Functions which are designed to provide operations on a resource should be called in an appropriate sequence</td>
|
||
<td class="docCellBlue">Unassisted</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=2%>Dir-4.14</td>
|
||
<td width=2%>Required</td>
|
||
<td width=50%>The validity of values received from external sources shall be checked</td>
|
||
<td><center><table width=100%>
|
||
<tr><th>Qac</th><th>Description</th></tr>
|
||
<tr>
|
||
<td width=5%>2956</td>
|
||
<td width=95%> Definite: Using object '%s' with tainted value.</td>
|
||
</tr>
|
||
</table></center>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=2%>Dir-4.2</td>
|
||
<td width=2%>Advisory</td>
|
||
<td width=50%>All usage of assembly language should be documented</td>
|
||
<td><center><table width=100%>
|
||
<tr><th>Qac</th><th>Description</th></tr>
|
||
<tr>
|
||
<td width=5%>1003</td>
|
||
<td width=95%> [E] '#%s' is a language extension for in-line assembler. All statements located between #asm and #endasm will be ignored.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1006</td>
|
||
<td width=95%> [E] This in-line assembler construct is a language extension. The code has been ignored.</td>
|
||
</tr>
|
||
</table></center>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=2%>Dir-4.3</td>
|
||
<td width=2%>Required</td>
|
||
<td width=50%>Assembly language shall be encapsulated and isolated</td>
|
||
<td><center><table width=100%>
|
||
<tr><th>Qac</th><th>Description</th></tr>
|
||
<tr>
|
||
<td width=5%>3006</td>
|
||
<td width=95%> This function contains a mixture of in-line assembler statements and C statements.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>3008</td>
|
||
<td width=95%> This function contains a mixture of in-line assembler statements and C code.</td>
|
||
</tr>
|
||
</table></center>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=2%>Dir-4.4</td>
|
||
<td width=2%>Advisory</td>
|
||
<td width=50%>Sections of code should not be "commented out"</td>
|
||
<td class="docCellBlue">Unassisted</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=2%>Dir-4.5</td>
|
||
<td width=2%>Advisory</td>
|
||
<td width=50%>Identifiers in the same name space with overlapping visibility should be typographically unambiguous</td>
|
||
<td class="docCellBlue">Unassisted</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=2%>Dir-4.6</td>
|
||
<td width=2%>Advisory</td>
|
||
<td width=50%>typedefs that indicate size and signedness should be used in place of the basic numerical types</td>
|
||
<td><center><table width=100%>
|
||
<tr><th>Qac</th><th>Description</th></tr>
|
||
<tr>
|
||
<td width=5%>5209</td>
|
||
<td width=95%> Use of basic type '%s'.</td>
|
||
</tr>
|
||
</table></center>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=2%>Dir-4.7</td>
|
||
<td width=2%>Required</td>
|
||
<td width=50%>If a function returns error information, then that error information shall be tested</td>
|
||
<td class="docCellBlue">Unassisted<br><br>
|
||
Remarks:<br>
|
||
Dir-4.7 is similar to Rule-17.7 which is currently dismissed.<br>
|
||
This directive is consequently considered as disapplied.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=2%>Dir-4.8</td>
|
||
<td width=2%>Advisory</td>
|
||
<td width=50%>If a pointer to a structure or union is never dereferenced within a translation unit, then the implementation of the object should be hidden</td>
|
||
<td class="docCellBlue">Unassisted</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=2%>Dir-4.9</td>
|
||
<td width=2%>Advisory</td>
|
||
<td width=50%>A function should be used in preference to a function-like macro where they are interchangeable</td>
|
||
<td><center><table width=100%>
|
||
<tr><th>Qac</th><th>Description</th></tr>
|
||
<tr>
|
||
<td width=5%>3453</td>
|
||
<td width=95%> A function could probably be used instead of this function-like macro.</td>
|
||
</tr>
|
||
</table></center>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=2%>Rule-1.1</td>
|
||
<td width=2%>Required</td>
|
||
<td width=50%>The program shall contain no violations of the standard C syntax and constraints, and shall not exceed the implementation's translation limits</td>
|
||
<td><center><table width=100%>
|
||
<tr><th>Qac</th><th>Description</th></tr>
|
||
<tr>
|
||
<td width=5%>0232</td>
|
||
<td width=95%> [C] Value of hex escape sequence is not representable in type 'unsigned char'.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0233</td>
|
||
<td width=95%> [C] Value of octal escape sequence is not representable in type 'unsigned char'.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0244</td>
|
||
<td width=95%> [C] Value of character constant is not representable in type 'int'.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0268</td>
|
||
<td width=95%> [S] Comment open at end of translation unit.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0321</td>
|
||
<td width=95%> [C] Declaration within 'for' statement defines an identifier '%s' which is not an object.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0322</td>
|
||
<td width=95%> [C] Illegal storage class specifier used in 'for' statement declaration.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0338</td>
|
||
<td width=95%> [C] Octal or hex escape sequence value is too large for 'unsigned char' or 'wchar_t' type.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0422</td>
|
||
<td width=95%> [C] Function call contains fewer arguments than prototype specifies.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0423</td>
|
||
<td width=95%> [C] Function call contains more arguments than prototype specifies.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0426</td>
|
||
<td width=95%> [C] Called function has incomplete return type.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0427</td>
|
||
<td width=95%> [C] Object identifier used as if it were a function or a function pointer identifier.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0429</td>
|
||
<td width=95%> [C] Function argument is not of arithmetic type.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0430</td>
|
||
<td width=95%> [C] Function argument is not of compatible 'struct'/'union' type.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0431</td>
|
||
<td width=95%> [C] Function argument points to a more heavily qualified type.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0432</td>
|
||
<td width=95%> [C] Function argument is not of compatible pointer type.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0435</td>
|
||
<td width=95%> [C] The 'struct'/'union' member '%s' does not exist.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0436</td>
|
||
<td width=95%> [C] Left operand of '.' must be a 'struct' or 'union' object.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0437</td>
|
||
<td width=95%> [C] Left operand of '->' must be a pointer to a 'struct' or 'union' object.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0446</td>
|
||
<td width=95%> [C] Operand of ++/-- must have scalar (arithmetic or pointer) type.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0447</td>
|
||
<td width=95%> [C] Operand of ++/-- must be a modifiable object.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0448</td>
|
||
<td width=95%> [C] Operand of ++/-- must not be a pointer to an object of unknown size.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0449</td>
|
||
<td width=95%> [C] Operand of ++/-- must not be a pointer to a function.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0450</td>
|
||
<td width=95%> [C] An expression of array type cannot be cast.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0451</td>
|
||
<td width=95%> [C] Subscripting requires a pointer (or array lvalue).</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0452</td>
|
||
<td width=95%> [C] Cannot subscript a pointer to an object of unknown size.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0453</td>
|
||
<td width=95%> [C] An array subscript must have integral type.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0454</td>
|
||
<td width=95%> [C] The address-of operator '&' cannot be applied to an object declared with 'register'.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0456</td>
|
||
<td width=95%> [C] This expression does not have an address - '&' may only be applied to an lvalue or a function designator.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0457</td>
|
||
<td width=95%> [C] The address-of operator '&' cannot be applied to a bit-field.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0458</td>
|
||
<td width=95%> [C] Indirection operator '*' requires operand of pointer type.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0460</td>
|
||
<td width=95%> [C] The keyword static is used in the declaration of the index of an array which is not a function parameter.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0461</td>
|
||
<td width=95%> [C] The keyword static is used in the declaration of an inner index of a multi-dimensional array.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0462</td>
|
||
<td width=95%> [C] A type qualifier (const, volatile or restrict) is used in the declaration of the index of an array which is not a function parameter.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0463</td>
|
||
<td width=95%> [C] A type qualifier (const, volatile or restrict) is used in the declaration of an inner index of a multi-dimensional array.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0466</td>
|
||
<td width=95%> [C] Unary '+' requires arithmetic operand.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0467</td>
|
||
<td width=95%> [C] Operand of '!' must have scalar (arithmetic or pointer) type.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0468</td>
|
||
<td width=95%> [C] Unary '-' requires arithmetic operand.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0469</td>
|
||
<td width=95%> [C] Bitwise not '~' requires integral operand.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0476</td>
|
||
<td width=95%> [C] 'sizeof' cannot be applied to a bit-field.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0477</td>
|
||
<td width=95%> [C] 'sizeof' cannot be applied to a function.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0478</td>
|
||
<td width=95%> [C] 'sizeof' cannot be applied to an object of unknown size.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0481</td>
|
||
<td width=95%> [C] Only scalar expressions may be cast to other types.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0482</td>
|
||
<td width=95%> [C] Expressions may only be cast to 'void' or scalar types.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0483</td>
|
||
<td width=95%> [C] A pointer to an object of unknown size cannot be the operand of an addition operator.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0484</td>
|
||
<td width=95%> [C] A pointer to an object of unknown size cannot be the operand of a subtraction operator.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0485</td>
|
||
<td width=95%> [C] Only integral expressions may be added to pointers.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0486</td>
|
||
<td width=95%> [C] Only integral expressions and compatible pointers may be subtracted from pointers.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0487</td>
|
||
<td width=95%> [C] If two pointers are subtracted, they must be pointers that address compatible types.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0493</td>
|
||
<td width=95%> [C] Type of left operand is not compatible with this operator.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0494</td>
|
||
<td width=95%> [C] Type of right operand is not compatible with this operator.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0495</td>
|
||
<td width=95%> [C] Left operand of '%', '<<', '>>', '&', '^' or '|' must have integral type.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0496</td>
|
||
<td width=95%> [C] Right operand of '%', '<<', '>>', '&', '^' or '|' must have integral type.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0513</td>
|
||
<td width=95%> [C] Relational operator used to compare pointers to incompatible types.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0514</td>
|
||
<td width=95%> [C] Relational operator used to compare a pointer with an incompatible operand.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0515</td>
|
||
<td width=95%> [C] Equality operator used to compare a pointer with an incompatible operand.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0536</td>
|
||
<td width=95%> [C] First operand of '&&', '||' or '?' must have scalar (arithmetic or pointer) type.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0537</td>
|
||
<td width=95%> [C] Second operand of '&&' or '||' must have scalar (arithmetic or pointer) type.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0540</td>
|
||
<td width=95%> [C] 2nd and 3rd operands of conditional operator '?' must have compatible types.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0541</td>
|
||
<td width=95%> [C] Argument no. %s does not have object type.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0542</td>
|
||
<td width=95%> [C] Controlling expression must have scalar (arithmetic or pointer) type.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0546</td>
|
||
<td width=95%> [C] 'enum %s' has unknown content. Use of an enum tag with undefined content is not permitted.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0547</td>
|
||
<td width=95%> [C] This declaration of tag '%s' conflicts with a previous declaration.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0550</td>
|
||
<td width=95%> [C] Left operand of '+=' or '-=' is a pointer to an object of unknown size.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0554</td>
|
||
<td width=95%> [C] 'static %s()' has been declared and called but no definition has been given.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0555</td>
|
||
<td width=95%> [C] Invalid assignment to object of void type or array type.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0556</td>
|
||
<td width=95%> [C] Left operand of assignment must be a modifiable object.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0557</td>
|
||
<td width=95%> [C] Right operand of assignment is not of arithmetic type.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0558</td>
|
||
<td width=95%> [C] Right operand of '+=' or '-=' must have integral type when left operand is a pointer.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0559</td>
|
||
<td width=95%> [C] Right operand of '<<=', '>>=', '&=', '|=', '^=' or '%=' must have integral type.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0560</td>
|
||
<td width=95%> [C] Left operand of '<<=', '>>=', '&=', '|=', '^=' or '%=' must have integral type.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0561</td>
|
||
<td width=95%> [C] Right operand of assignment is not of compatible 'struct'/'union' type.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0562</td>
|
||
<td width=95%> [C] Right operand of assignment points to a more heavily qualified type.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0563</td>
|
||
<td width=95%> [C] Right operand of assignment is not of compatible pointer type.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0564</td>
|
||
<td width=95%> [C] Left operand of assignment must be an lvalue (it must designate an object).</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0565</td>
|
||
<td width=95%> [C] Left operand of '+=' or '-=' must be of arithmetic or pointer to object type.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0580</td>
|
||
<td width=95%> [C] Constant is too large to be representable.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0588</td>
|
||
<td width=95%> [C] Width of bit-field must be an integral constant expression.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0589</td>
|
||
<td width=95%> [C] Enumeration constant must be an integral constant expression.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0590</td>
|
||
<td width=95%> [C] Array bound must be an integral constant expression.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0591</td>
|
||
<td width=95%> [C] A 'case' label must be an integral constant expression.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0605</td>
|
||
<td width=95%> [C] A declaration must declare a tag or an identifier.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0616</td>
|
||
<td width=95%> [C] Illegal combination of type specifiers or storage class specifiers.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0619</td>
|
||
<td width=95%> [C] The identifier '%s' has already been defined in the current scope within the ordinary identifier namespace.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0620</td>
|
||
<td width=95%> [C] Cannot initialize '%s' because it has unknown size.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0621</td>
|
||
<td width=95%> [C] The struct/union '%s' cannot be initialized because it has unknown size.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0622</td>
|
||
<td width=95%> [C] The identifier '%s' has been declared both with and without linkage in the same scope.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0627</td>
|
||
<td width=95%> [C] '%s' has different type to previous declaration in the same scope.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0628</td>
|
||
<td width=95%> [C] '%s' has different type to previous declaration at wider scope.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0629</td>
|
||
<td width=95%> [C] More than one definition of '%s' (with internal linkage).</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0631</td>
|
||
<td width=95%> [C] More than one declaration of '%s' (with no linkage).</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0638</td>
|
||
<td width=95%> [C] Duplicate member name '%s' in 'struct' or 'union'.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0640</td>
|
||
<td width=95%> [C] '%s' in 'struct' or 'union' type may not have 'void' type.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0641</td>
|
||
<td width=95%> [C] '%s' in 'struct' or 'union' type may not have function type.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0642</td>
|
||
<td width=95%> [C] '%s' in 'struct' or 'union' type may not be an array of unknown size.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0643</td>
|
||
<td width=95%> [C] '%s' in 'struct' or 'union' type may not be a 'struct' or 'union' with unknown content.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0644</td>
|
||
<td width=95%> [C] Width of bit-field must be no bigger than the width of an 'int'.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0645</td>
|
||
<td width=95%> [C] A zero width bit-field cannot be given a name.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0646</td>
|
||
<td width=95%> [C] Enumeration constants must have values representable as 'int's.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0649</td>
|
||
<td width=95%> [C] K&R style declaration of parameters is not legal after a function header that includes a parameter list.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0650</td>
|
||
<td width=95%> [C] Illegal storage class specifier on named function parameter.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0651</td>
|
||
<td width=95%> [C] Missing type specifiers in function declaration.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0653</td>
|
||
<td width=95%> [C] Duplicate definition of 'struct', 'union' or 'enum' tag '%s'.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0655</td>
|
||
<td width=95%> [C] Illegal storage class specifier on unnamed function parameter.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0656</td>
|
||
<td width=95%> [C] Function return type cannot be function or array type, or an incomplete struct/union (for function definition).</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0657</td>
|
||
<td width=95%> [C] Unnamed parameter specified in function definition.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0659</td>
|
||
<td width=95%> [C] The identifier '%s' was not given in the parameter list.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0664</td>
|
||
<td width=95%> [C] Parameter specified with type 'void'.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0665</td>
|
||
<td width=95%> [C] Two parameters have been declared with the same name '%s'.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0669</td>
|
||
<td width=95%> [C] The restrict qualifier can only be applied to pointer types derived from object or incomplete types.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0671</td>
|
||
<td width=95%> [C] Initializer for object of arithmetic type is not of arithmetic type.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0673</td>
|
||
<td width=95%> [C] Initializer points to a more heavily qualified type.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0674</td>
|
||
<td width=95%> [C] Initializer for pointer is of incompatible type.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0675</td>
|
||
<td width=95%> [C] Initializer is not of compatible 'struct'/'union' type.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0677</td>
|
||
<td width=95%> [C] Array size is negative, or unrepresentable.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0682</td>
|
||
<td width=95%> [C] Initializer for object of a character type is a string literal.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0683</td>
|
||
<td width=95%> [C] Initializer for object of a character type is a wide string literal.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0684</td>
|
||
<td width=95%> [C] Too many initializers.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0685</td>
|
||
<td width=95%> [C] Initializer for any object with static storage duration must be a constant expression.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0690</td>
|
||
<td width=95%> [C] String literal contains too many characters to initialize object.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0698</td>
|
||
<td width=95%> [C] String literal used to initialize an object of incompatible type.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0699</td>
|
||
<td width=95%> [C] String literal used to initialize a pointer of incompatible type.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0708</td>
|
||
<td width=95%> [C] No definition found for the label '%s' in this function.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0709</td>
|
||
<td width=95%> [C] Initialization of locally declared 'extern %s' is illegal.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0736</td>
|
||
<td width=95%> [C] 'case' label does not have unique value within this 'switch' statement.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0737</td>
|
||
<td width=95%> [C] More than one 'default' label found in 'switch' statement.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0738</td>
|
||
<td width=95%> [C] Controlling expression in a 'switch' statement must have integral type.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0746</td>
|
||
<td width=95%> [C] 'return exp;' found in '%s()' whose return type is 'void'.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0747</td>
|
||
<td width=95%> [C] 'return exp;' found in '%s()' whose return type is qualified 'void'.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0755</td>
|
||
<td width=95%> [C] 'return' expression is not of arithmetic type.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0756</td>
|
||
<td width=95%> [C] 'return' expression is not of compatible 'struct'/'union' type.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0757</td>
|
||
<td width=95%> [C] 'return' expression points to a more heavily qualified type.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0758</td>
|
||
<td width=95%> [C] 'return' expression is not of compatible pointer type.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0766</td>
|
||
<td width=95%> [C] 'continue' statement found outside an iteration statement.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0767</td>
|
||
<td width=95%> [C] 'break' statement found outside a 'switch' or iteration statement.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0768</td>
|
||
<td width=95%> [C] 'case' or 'default' found outside a 'switch' statement.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0774</td>
|
||
<td width=95%> [C] 'auto' may not be specified on global declaration of '%s'.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0775</td>
|
||
<td width=95%> [C] 'register' may not be specified on global declaration of '%s'.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0801</td>
|
||
<td width=95%> [C] The '##' operator may not be the first token in a macro replacement list.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0802</td>
|
||
<td width=95%> [C] The '##' operator may not be the last token in a macro replacement list.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0803</td>
|
||
<td width=95%> [C] The '#' operator may only appear before a macro parameter.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0804</td>
|
||
<td width=95%> [C] Macro parameter '%s' is not unique.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0811</td>
|
||
<td width=95%> [C] The glue operator '##' may only appear in a '#define' preprocessing directive.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0812</td>
|
||
<td width=95%> [C] Header name token '<text>' found outside '#include' preprocessing directive.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0817</td>
|
||
<td width=95%> [S] Closing quote or bracket '>' missing from include filename.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0818</td>
|
||
<td width=95%> [Q] Cannot find '%s' - Perhaps the appropriate search path was not given ?</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0821</td>
|
||
<td width=95%> [C] '#include' does not identify a header or source file that can be processed.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0834</td>
|
||
<td width=95%> [C] Function-like macro '%s()' is being redefined as an object-like macro.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0835</td>
|
||
<td width=95%> [C] Macro '%s' is being redefined with different parameter names.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0844</td>
|
||
<td width=95%> [C] Macro '%s' is being redefined with a different replacement list.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0845</td>
|
||
<td width=95%> [C] Object-like macro '%s' is being redefined as a function-like macro.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0851</td>
|
||
<td width=95%> [C] More arguments in macro call than specified in definition.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0852</td>
|
||
<td width=95%> [S] Unable to find the ')' that marks the end of the macro call.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0866</td>
|
||
<td width=95%> [C] The string literal in a '#line' directive cannot be a 'wide string literal'.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0873</td>
|
||
<td width=95%> [C] Preprocessing token cannot be converted to an actual token.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0877</td>
|
||
<td width=95%> [C] '#if' and '#elif' expressions may contain only integral constants.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0940</td>
|
||
<td width=95%> [C] Illegal usage of a variably modified type.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0941</td>
|
||
<td width=95%> [C] A variable length array may not be initialized.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0943</td>
|
||
<td width=95%> [C] Jump to label '%s' is a jump into the scope of an identifier with variably modified type.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0944</td>
|
||
<td width=95%> [C] The label '%s' is inside the scope of an identifier with variably modified type.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1023</td>
|
||
<td width=95%> [C] Using '__alignof__' on function types is illegal.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1024</td>
|
||
<td width=95%> [C] Using '__alignof__' on incomplete types is illegal.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1025</td>
|
||
<td width=95%> [C] Using '__alignof__' on bit-fields is illegal.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1033</td>
|
||
<td width=95%> [C] The identifier __VA_ARGS__ may only be used in the replacement list of a variadic macro.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1047</td>
|
||
<td width=95%> [C] Function is being declared with default argument syntax after a previous call to the function. This is not allowed.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1048</td>
|
||
<td width=95%> [C] Default argument values are missing for some parameters in this function declaration. This is not allowed.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1050</td>
|
||
<td width=95%> [C] Nested functions cannot be 'extern' or 'static'.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1061</td>
|
||
<td width=95%> [C] Structure '%1s' with flexible array member '%2s' cannot be used in the declaration of structure member '%3s'.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1062</td>
|
||
<td width=95%> [C] Structure '%1s' with flexible array member '%2s' cannot be used in the declaration of array elements.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>3236</td>
|
||
<td width=95%> [C] 'inline' may not be applied to function 'main'.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>3237</td>
|
||
<td width=95%> [C] inline function '%1s' has external linkage and is defining an object, '%2s', with static storage duration.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>3238</td>
|
||
<td width=95%> [C] inline function '%1s' has external linkage and is referring to an object, '%2s', with internal linkage.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>3244</td>
|
||
<td width=95%> [C] 'inline' may only be used in the declaration of a function identifier.</td>
|
||
</tr>
|
||
</table></center>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=2%>Rule-1.2</td>
|
||
<td width=2%>Advisory</td>
|
||
<td width=50%>Language extensions should not be used</td>
|
||
<td><center><table width=100%>
|
||
<tr><th>Qac</th><th>Description</th></tr>
|
||
<tr>
|
||
<td width=5%>0240</td>
|
||
<td width=95%> [E] This file contains the control-M character at the end of a line.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0241</td>
|
||
<td width=95%> [E] This file contains the control-Z character - was this transferred from a PC?</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0246</td>
|
||
<td width=95%> [E] Binary integer constants are a language extension.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0551</td>
|
||
<td width=95%> [E] Cast may not operate on the left operand of the assignment operator.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0601</td>
|
||
<td width=95%> [E] Function 'main()' is not of type 'int (void)' or 'int (int, char *[])'.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0633</td>
|
||
<td width=95%> [E] Empty structures and unions are a language extension.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0635</td>
|
||
<td width=95%> [E] Bit-fields in this struct/union have been declared with types other than int, signed int, unsigned int or _Bool.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0660</td>
|
||
<td width=95%> [E] Defining an unnamed member in a struct or union. This is a language extension.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0662</td>
|
||
<td width=95%> [E] Accessing a member of an unnamed struct or union member in this way is a language extension.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0830</td>
|
||
<td width=95%> [E] Unrecognized text encountered after a preprocessing directive.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0831</td>
|
||
<td width=95%> [E] Use of '\\' in this '#include' line is a PC extension - this usage is non-portable.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0840</td>
|
||
<td width=95%> [E] Extra tokens at end of #include directive.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0883</td>
|
||
<td width=95%> Include file code is not protected against repeated inclusion</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0899</td>
|
||
<td width=95%> [E] Unrecognized preprocessing directive has been ignored - assumed to be a language extension.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0981</td>
|
||
<td width=95%> [E] Redundant semicolon in 'struct' or 'union' member declaration list is a language extension.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1001</td>
|
||
<td width=95%> [E] '#include %s' is a VMS extension.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1002</td>
|
||
<td width=95%> [E] '%s' is not a legal identifier in ISO C.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1003</td>
|
||
<td width=95%> [E] '#%s' is a language extension for in-line assembler. All statements located between #asm and #endasm will be ignored.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1006</td>
|
||
<td width=95%> [E] This in-line assembler construct is a language extension. The code has been ignored.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1008</td>
|
||
<td width=95%> [E] '#%s' is not a legal ISO C preprocessing directive.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1012</td>
|
||
<td width=95%> [E] Use of a C++ reference type ('type &') will be treated as a language extension.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1014</td>
|
||
<td width=95%> [E] Non-standard type specifier - this will be treated as a language extension.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1015</td>
|
||
<td width=95%> [E] '%s' is not a legal keyword in ISO C - this will be treated as a language extension.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1019</td>
|
||
<td width=95%> [E] '@ address' is not supported in ISO C - this will be treated as a language extension.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1020</td>
|
||
<td width=95%> [E] '__typeof__' is not supported in ISO C, and is treated as a language extension.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1021</td>
|
||
<td width=95%> [E] A statement expression is not supported in ISO C, and is treated as a language extension.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1022</td>
|
||
<td width=95%> [E] '__alignof__' is not supported in ISO C, and is treated as a language extension.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1026</td>
|
||
<td width=95%> [E] The indicated @word construct has been ignored.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1028</td>
|
||
<td width=95%> [E] Use of the sizeof operator in a preprocessing directive is a language extension.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1029</td>
|
||
<td width=95%> [E] Whitespace encountered between backslash and new-line has been ignored.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1034</td>
|
||
<td width=95%> [E] Macro defined with named variable argument list. This is a language extension.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1035</td>
|
||
<td width=95%> [E] No macro arguments supplied for variable argument list. This is a language extension.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1036</td>
|
||
<td width=95%> [E] Comma before ## ignored in expansion of variadic macro. This is a language extension.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1037</td>
|
||
<td width=95%> [E] Arrays of length zero are a language extension.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1038</td>
|
||
<td width=95%> [E] The sequence ", ##__VA_ARGS__" is a language extension.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1039</td>
|
||
<td width=95%> [E] Treating array of length one as potentially flexible member.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1041</td>
|
||
<td width=95%> [E] Empty aggregate initializers are a language extension.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1042</td>
|
||
<td width=95%> [E] Using I64 or UI64 as an integer constant suffix. This is a language extension.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1043</td>
|
||
<td width=95%> [E] Defining an anonymous union object. This is a language extension.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1044</td>
|
||
<td width=95%> [E] Defining an anonymous struct object. This is a language extension.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1045</td>
|
||
<td width=95%> [E] Use of the #include_next preprocessing directive is a language extension.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1046</td>
|
||
<td width=95%> [E] Function is being declared with default argument syntax. This is a language extension.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1049</td>
|
||
<td width=95%> [E] Nested functions are a language extension.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>3445</td>
|
||
<td width=95%> [E] Conditional expression with middle operand omitted is a language extension.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>3664</td>
|
||
<td width=95%> [E] Using a dot operator to access an individual bit is a language extension.</td>
|
||
</tr>
|
||
</table></center>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=2%>Rule-1.3</td>
|
||
<td width=2%>Required</td>
|
||
<td width=50%>There shall be no occurrence of undefined or critical unspecified behaviour</td>
|
||
<td><center><table width=100%>
|
||
<tr><th>Qac</th><th>Description</th></tr>
|
||
<tr>
|
||
<td width=5%>0160</td>
|
||
<td width=95%> [U] Using unsupported conversion specifier number %s.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0161</td>
|
||
<td width=95%> [U] Unknown length modifier used with 'i' or 'd' conversion specifier, number %s.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0162</td>
|
||
<td width=95%> [U] Unknown length modifier used with 'o' conversion specifier, number %s.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0163</td>
|
||
<td width=95%> [U] Unknown length modifier used with 'u' conversion specifier, number %s.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0164</td>
|
||
<td width=95%> [U] Unknown length modifier used with 'x' conversion specifier, number %s.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0165</td>
|
||
<td width=95%> [U] Unknown length modifier used with 'X' conversion specifier, number %s.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0166</td>
|
||
<td width=95%> [U] Unknown length modifier used with 'f' conversion specifier, number %s.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0167</td>
|
||
<td width=95%> [U] Unknown length modifier used with 'e' conversion specifier, number %s.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0168</td>
|
||
<td width=95%> [U] Unknown length modifier used with 'E' conversion specifier, number %s.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0169</td>
|
||
<td width=95%> [U] Unknown length modifier used with 'g' conversion specifier, number %s.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0170</td>
|
||
<td width=95%> [U] Unknown length modifier used with 'G' conversion specifier, number %s.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0171</td>
|
||
<td width=95%> [U] Unknown length modifier used with 'c' conversion specifier, number %s.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0172</td>
|
||
<td width=95%> [U] Unknown length modifier used with '%%' conversion specifier, number %s.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0173</td>
|
||
<td width=95%> [U] Unknown length modifier used with 's' conversion specifier, number %s.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0174</td>
|
||
<td width=95%> [U] Unknown length modifier used with 'n' conversion specifier, number %s.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0175</td>
|
||
<td width=95%> [U] Unknown length modifier used with 'p' conversion specifier, number %s.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0176</td>
|
||
<td width=95%> [U] Incomplete conversion specifier, number %s.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0177</td>
|
||
<td width=95%> [U] Field width of format conversion specifier exceeds 509 characters.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0178</td>
|
||
<td width=95%> [U] Precision of format conversion specifier exceeds 509 characters.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0179</td>
|
||
<td width=95%> [U] Argument type does not match conversion specifier number %s.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0184</td>
|
||
<td width=95%> [U] Insufficient arguments to satisfy conversion specifier, number %s.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0185</td>
|
||
<td width=95%> [U] Call contains more arguments than conversion specifiers.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0186</td>
|
||
<td width=95%> [U] A call to this function must include at least one argument.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0190</td>
|
||
<td width=95%> [U] Using unsupported conversion specifier number %s.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0191</td>
|
||
<td width=95%> [U] Unknown length modifier used with 'd/i/n' conversion specifier, number %s.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0192</td>
|
||
<td width=95%> [U] Unknown length modifier used with 'o' conversion specifier, number %s.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0193</td>
|
||
<td width=95%> [U] Unknown length modifier used with 'u' conversion specifier, number %s.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0194</td>
|
||
<td width=95%> [U] Unknown length modifier used with 'x/X' conversion specifier, number %s.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0195</td>
|
||
<td width=95%> [U] Unknown length modifier used with 'e/E/f/F/g/G' conversion specifier, number %s.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0196</td>
|
||
<td width=95%> [U] Unknown length modifier used with 's' conversion specifier, number %s.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0197</td>
|
||
<td width=95%> [U] Unknown length modifier used with 'p' conversion specifier, number %s.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0198</td>
|
||
<td width=95%> [U] Unknown length modifier used with '%%' conversion specifier, number %s.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0199</td>
|
||
<td width=95%> [U] Unknown length modifier used with '[' conversion specifier, number %s.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0200</td>
|
||
<td width=95%> [U] Unknown length modifier used with 'c' conversion specifier, number %s.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0201</td>
|
||
<td width=95%> [U] Incomplete conversion specifier, number %s.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0203</td>
|
||
<td width=95%> [U] Value of character prior to '-' in '[]' is greater than following character.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0204</td>
|
||
<td width=95%> [U] Field width of format conversion specifier exceeds 509 characters.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0206</td>
|
||
<td width=95%> [U] Argument type does not match conversion specifier number %s.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0207</td>
|
||
<td width=95%> [U] 'scanf' expects address of objects being stored into.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0208</td>
|
||
<td width=95%> [U] Same character occurs in scanset more than once.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0235</td>
|
||
<td width=95%> [U] Unknown escape sequence.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0275</td>
|
||
<td width=95%> [U] Floating value is out of range for conversion to destination type.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0301</td>
|
||
<td width=95%> [u] Cast between a pointer to object and a floating type.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0302</td>
|
||
<td width=95%> [u] Cast between a pointer to function and a floating type.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0304</td>
|
||
<td width=95%> [U] The address of an array declared 'register' may not be computed.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0307</td>
|
||
<td width=95%> [u] Cast between a pointer to object and a pointer to function.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0309</td>
|
||
<td width=95%> [U] Integral type is not large enough to hold a pointer value.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0327</td>
|
||
<td width=95%> [I] Cast between a pointer to void and an floating type.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0337</td>
|
||
<td width=95%> [U] String literal has undefined value. This may be a result of using '#' on \\.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0400</td>
|
||
<td width=95%> [U] '%s' is modified more than once between sequence points - evaluation order unspecified.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0401</td>
|
||
<td width=95%> [U] '%s' may be modified more than once between sequence points - evaluation order unspecified.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0402</td>
|
||
<td width=95%> [U] '%s' is modified and accessed between sequence points - evaluation order unspecified.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0403</td>
|
||
<td width=95%> [U] '%s' may be modified and accessed between sequence points - evaluation order unspecified.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0404</td>
|
||
<td width=95%> More than one read access to volatile objects between sequence points.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0405</td>
|
||
<td width=95%> More than one modification of volatile objects between sequence points.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0475</td>
|
||
<td width=95%> [u] Operand of 'sizeof' is an expression designating a bit-field.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0543</td>
|
||
<td width=95%> [U] 'void' expressions have no value and may not be used in expressions.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0544</td>
|
||
<td width=95%> [U] The value of an incomplete 'union' may not be used.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0545</td>
|
||
<td width=95%> [U] The value of an incomplete 'struct' may not be used.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0602</td>
|
||
<td width=95%> [U] The identifier '%s' is reserved for use by the library.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0603</td>
|
||
<td width=95%> [U] The macro identifier '%s' is reserved.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0623</td>
|
||
<td width=95%> [U] '%s' has incomplete type and no linkage - this is undefined.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0625</td>
|
||
<td width=95%> [U] '%s' has been declared with both internal and external linkage - the behaviour is undefined.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0626</td>
|
||
<td width=95%> [U] '%s' has different type to previous declaration (which is no longer in scope).</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0630</td>
|
||
<td width=95%> [U] More than one definition of '%s' (with external linkage).</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0632</td>
|
||
<td width=95%> [U] Tentative definition of '%s' with internal linkage cannot have unknown size.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0636</td>
|
||
<td width=95%> [U] There are no named members in this 'struct' or 'union'.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0654</td>
|
||
<td width=95%> [U] Using 'const' or 'volatile' in a function return type is undefined.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0658</td>
|
||
<td width=95%> [U] Parameter cannot have 'void' type.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0661</td>
|
||
<td width=95%> [U] '%s()' may not have a storage class specifier of 'static' when declared at block scope.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0667</td>
|
||
<td width=95%> [U] '%s' is declared as a typedef and may not be redeclared as an object at an inner scope without an explicit type specifier.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0668</td>
|
||
<td width=95%> [U] '%s' is declared as a typedef and may not be redeclared as a member of a 'struct' or 'union' without an explicit type specifier.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0672</td>
|
||
<td width=95%> [U] The initializer for a 'struct', 'union' or array is not enclosed in braces.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0676</td>
|
||
<td width=95%> [u] Array element is of function type. Arrays cannot be constructed from function types.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0678</td>
|
||
<td width=95%> [u] Array element is array of unknown size. Arrays cannot be constructed from incomplete types.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0680</td>
|
||
<td width=95%> [u] Array element is 'void' or an incomplete 'struct' or 'union'. Arrays cannot be constructed from incomplete types.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0706</td>
|
||
<td width=95%> [U] Label '%s' is not unique within this function.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0745</td>
|
||
<td width=95%> [U] 'return;' found in '%s()', which has been defined with a non-'void' return type.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0777</td>
|
||
<td width=95%> [U] External identifier does not differ from other identifier(s) (e.g. '%s') within the specified number of significant characters.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0779</td>
|
||
<td width=95%> [U] Identifier does not differ from other identifier(s) (e.g. '%s') within the specified number of significant characters.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0813</td>
|
||
<td width=95%> [U] Using any of the characters ' " or /* in '#include <%s>' gives undefined behaviour.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0814</td>
|
||
<td width=95%> [U] Using the characters ' or /* in '#include "%s"' gives undefined behaviour.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0836</td>
|
||
<td width=95%> [U] Definition of macro named 'defined'.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0837</td>
|
||
<td width=95%> [U] Use of '#undef' to remove the operator 'defined'.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0840</td>
|
||
<td width=95%> [E] Extra tokens at end of #include directive.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0848</td>
|
||
<td width=95%> [U] Attempting to #undef '%s', which is a predefined macro name.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0853</td>
|
||
<td width=95%> [U] Macro arguments contain a sequence of tokens that has the form of a preprocessing directive.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0854</td>
|
||
<td width=95%> [U] Attempting to #define '%s', which is a predefined macro name.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0864</td>
|
||
<td width=95%> [U] '#line' directive specifies line number which is not in the range 1 to 32767.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0865</td>
|
||
<td width=95%> [U] '#line' directive is badly formed.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0867</td>
|
||
<td width=95%> [U] '#line' has not been followed by a line number.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0872</td>
|
||
<td width=95%> [U] Result of '##' operator is not a legal preprocessing token.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0874</td>
|
||
<td width=95%> [U] Character string literal and wide character string literal are adjacent.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0885</td>
|
||
<td width=95%> [U] The token 'defined' is generated in the expansion of this macro.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0887</td>
|
||
<td width=95%> [U] Use of 'defined' must match either 'defined(identifier)' or 'defined identifier'.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0888</td>
|
||
<td width=95%> [U] 'defined' requires an identifier as an argument.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0914</td>
|
||
<td width=95%> [U] Source file does not end with a newline character.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0915</td>
|
||
<td width=95%> [U] Source file ends with a backslash character followed by a newline.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0942</td>
|
||
<td width=95%> [U] A * can only be used to specify array size within function prototype scope.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1331</td>
|
||
<td width=95%> Type or number of arguments doesn't match previous use of the function.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1332</td>
|
||
<td width=95%> Type or number of arguments doesn't match prototype found later.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1333</td>
|
||
<td width=95%> Type or number of arguments doesn't match function definition found later.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>2800</td>
|
||
<td width=95%> Constant: Overflow in signed arithmetic operation.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>2810</td>
|
||
<td width=95%> Constant: Dereference of NULL pointer.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>2820</td>
|
||
<td width=95%> Constant: Arithmetic operation on NULL pointer.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>2830</td>
|
||
<td width=95%> Constant: Division by zero.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>2840</td>
|
||
<td width=95%> Constant: Dereference of an invalid pointer value.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>3113</td>
|
||
<td width=95%> [U] 'return' statement includes no expression but function '%s()' is implicitly of type 'int'.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>3114</td>
|
||
<td width=95%> [U] Function '%s()' is implicitly of type 'int' but ends without returning a value.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>3239</td>
|
||
<td width=95%> [U] inline function '%1s' has external linkage, but is not defined within this translation unit.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>3311</td>
|
||
<td width=95%> [u] An earlier jump to this statement will bypass the initialization of local variables.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>3312</td>
|
||
<td width=95%> [u] This goto statement will jump into a previous block and bypass the initialization of local variables.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>3319</td>
|
||
<td width=95%> [U] Function called with number of arguments which differs from number of parameters in definition.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>3320</td>
|
||
<td width=95%> Type of argument no. %s differs from its type in definition of function.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>3437</td>
|
||
<td width=95%> [u] The assert macro has been suppressed to call a function of that name.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>3438</td>
|
||
<td width=95%> [U] #undef'ing the assert macro to call a function of that name causes undefined behaviour.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1509</td>
|
||
<td width=95%> '%1s' has external linkage and has multiple definitions.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1510</td>
|
||
<td width=95%> '%1s' has external linkage and has incompatible declarations.</td>
|
||
</tr>
|
||
</table></center>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=2%>Rule-10.1</td>
|
||
<td width=2%>Required</td>
|
||
<td width=50%>Operands shall not be of an inappropriate essential type.</td>
|
||
<td><center><table width=100%>
|
||
<tr><th>Qac</th><th>Description</th></tr>
|
||
<tr>
|
||
<td width=5%>3101</td>
|
||
<td width=95%> Unary '-' applied to an operand of type unsigned int or unsigned long gives an unsigned result.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>3102</td>
|
||
<td width=95%> Unary '-' applied to an operand whose underlying type is unsigned.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4500</td>
|
||
<td width=95%> An expression of 'essentially Boolean' type (%1s) is being used as an array subscript.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4501</td>
|
||
<td width=95%> An expression of 'essentially Boolean' type (%1s) is being used as the %2s operand of this arithmetic operator (%3s).</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4502</td>
|
||
<td width=95%> An expression of 'essentially Boolean' type (%1s) is being used as the %2s operand of this bitwise operator (%3s).</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4503</td>
|
||
<td width=95%> An expression of 'essentially Boolean' type (%1s) is being used as the left-hand operand of this shift operator (%2s).</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4504</td>
|
||
<td width=95%> An expression of 'essentially Boolean' type (%1s) is being used as the right-hand operand of this shift operator (%2s).</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4505</td>
|
||
<td width=95%> An expression of 'essentially Boolean' type (%1s) is being used as the %2s operand of this relational operator (%3s).</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4507</td>
|
||
<td width=95%> An expression of 'essentially Boolean' type (%1s) is being used as the operand of this increment/decrement operator (%2s).</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4510</td>
|
||
<td width=95%> An expression of 'essentially character' type (%1s) is being used as an array subscript.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4511</td>
|
||
<td width=95%> An expression of 'essentially character' type (%1s) is being used as the %2s operand of this arithmetic operator (%3s).</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4512</td>
|
||
<td width=95%> An expression of 'essentially character' type (%1s) is being used as the %2s operand of this bitwise operator (%3s).</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4513</td>
|
||
<td width=95%> An expression of 'essentially character' type (%1s) is being used as the left-hand operand of this shift operator (%2s).</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4514</td>
|
||
<td width=95%> An expression of 'essentially character' type (%1s) is being used as the right-hand operand of this shift operator (%2s).</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4518</td>
|
||
<td width=95%> An expression of 'essentially character' type (%1s) is being used as the %2s operand of this logical operator (%3s).</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4519</td>
|
||
<td width=95%> An expression of 'essentially character' type (%1s) is being used as the first operand of this conditional operator (%2s).</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4521</td>
|
||
<td width=95%> An expression of 'essentially enum' type (%1s) is being used as the %2s operand of this arithmetic operator (%3s).</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4522</td>
|
||
<td width=95%> An expression of 'essentially enum' type (%1s) is being used as the %2s operand of this bitwise operator (%3s).</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4523</td>
|
||
<td width=95%> An expression of 'essentially enum' type (%1s) is being used as the left-hand operand of this shift operator (%2s).</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4524</td>
|
||
<td width=95%> An expression of 'essentially enum' type (%1s) is being used as the right-hand operand of this shift operator (%2s).</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4527</td>
|
||
<td width=95%> An expression of 'essentially enum' type is being used as the operand of this increment/decrement operator.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4528</td>
|
||
<td width=95%> An expression of 'essentially enum' type (%1s) is being used as the %2s operand of this logical operator (%3s).</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4529</td>
|
||
<td width=95%> An expression of 'essentially enum' type (%1s) is being used as the first operand of this conditional operator (%2s).</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4532</td>
|
||
<td width=95%> An expression of 'essentially signed' type (%1s) is being used as the %2s operand of this bitwise operator (%3s).</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4533</td>
|
||
<td width=95%> An expression of 'essentially signed' type (%1s) is being used as the left-hand operand of this shift operator (%2s).</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4534</td>
|
||
<td width=95%> An expression of 'essentially signed' type (%1s) is being used as the right-hand operand of this shift operator (%2s).</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4538</td>
|
||
<td width=95%> An expression of 'essentially signed' type (%1s) is being used as the %2s operand of this logical operator (%3s).</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4539</td>
|
||
<td width=95%> An expression of 'essentially signed' type (%1s) is being used as the first operand of this conditional operator (%2s).</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4542</td>
|
||
<td width=95%> A non-negative constant expression of 'essentially signed' type (%1s) is being used as the %2s operand of this bitwise operator (%3s).</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4543</td>
|
||
<td width=95%> A non-negative constant expression of 'essentially signed' type (%1s) is being used as the left-hand operand of this shift operator (%2s).</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4548</td>
|
||
<td width=95%> A non-negative constant expression of 'essentially signed' type (%1s) is being used as the %2s operand of this logical operator (%3s).</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4549</td>
|
||
<td width=95%> A non-negative constant expression of 'essentially signed' type (%1s) is being used as the first operand of this conditional operator (%2s).</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4558</td>
|
||
<td width=95%> An expression of 'essentially unsigned' type (%1s) is being used as the %2s operand of this logical operator (%3s).</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4559</td>
|
||
<td width=95%> An expression of 'essentially unsigned' type (%1s) is being used as the first operand of this conditional operator (%2s).</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4568</td>
|
||
<td width=95%> An expression of 'essentially floating' type (%1s) is being used as the %2s operand of this logical operator (%3s).</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4569</td>
|
||
<td width=95%> An expression of 'essentially floating' type (%1s) is being used as the first operand of this conditional operator (%2s).</td>
|
||
</tr>
|
||
</table></center>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=2%>Rule-10.2</td>
|
||
<td width=2%>Required</td>
|
||
<td width=50%>Expressions of essentially character type shall not be used inappropriately in addition and subtraction operations</td>
|
||
<td><center><table width=100%>
|
||
<tr><th>Qac</th><th>Description</th></tr>
|
||
<tr>
|
||
<td width=5%>1810</td>
|
||
<td width=95%> An operand of 'essentially character' type is being added to another operand of 'essentially character' type.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1811</td>
|
||
<td width=95%> An operand of 'essentially character' type is being subtracted from an operand of 'essentially signed' type.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1812</td>
|
||
<td width=95%> An operand of 'essentially character' type is being subtracted from an operand of 'essentially unsigned' type.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1813</td>
|
||
<td width=95%> An operand of 'essentially character' type is being balanced with an operand of 'essentially floating' type in this arithmetic operation.</td>
|
||
</tr>
|
||
</table></center>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=2%>Rule-10.3</td>
|
||
<td width=2%>Required</td>
|
||
<td width=50%>The value of an expression shall not be assigned to an object with a narrower essential type or of a different essential type category.</td>
|
||
<td><center><table width=100%>
|
||
<tr><th>Qac</th><th>Description</th></tr>
|
||
<tr>
|
||
<td width=5%>0570</td>
|
||
<td width=95%> This switch case label of 'essential type' '%1s', is not consistent with a controlling expression of essential type '%2s'.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0572</td>
|
||
<td width=95%> This switch case label of 'essential type' '%1s' is not consistent with a controlling expression which has an essential type of lower rank (%2s).</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1257</td>
|
||
<td width=95%> An integer constant suffixed with L or LL is being converted to a type of lower rank on assignment.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1264</td>
|
||
<td width=95%> A suffixed floating constant is being converted to a different floating type on assignment.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1265</td>
|
||
<td width=95%> An unsuffixed floating constant is being converted to a different floating type on assignment.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1266</td>
|
||
<td width=95%> A floating constant is being converted to integral type on assignment.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1291</td>
|
||
<td width=95%> An integer constant of 'essentially unsigned' type is being converted to signed type on assignment.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1292</td>
|
||
<td width=95%> An integer constant of 'essentially signed' type is being converted to type char on assignment.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1293</td>
|
||
<td width=95%> An integer constant of 'essentially unsigned' type is being converted to type char on assignment.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1294</td>
|
||
<td width=95%> An integer constant of 'essentially signed' type is being converted to type _Bool on assignment.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1295</td>
|
||
<td width=95%> An integer constant of 'essentially unsigned' type is being converted to type _Bool on assignment.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1296</td>
|
||
<td width=95%> An integer constant of 'essentially signed' type is being converted to enum type on assignment.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1297</td>
|
||
<td width=95%> An integer constant of 'essentially unsigned' type is being converted to enum type on assignment.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1298</td>
|
||
<td width=95%> An integer constant of 'essentially signed' type is being converted to floating type on assignment.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1299</td>
|
||
<td width=95%> An integer constant of 'essentially unsigned' type is being converted to floating type on assignment.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>2850</td>
|
||
<td width=95%> Constant: Implicit conversion to a signed integer type of insufficient size.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>2890</td>
|
||
<td width=95%> Constant: Negative value implicitly converted to an unsigned type.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>2900</td>
|
||
<td width=95%> Constant: Positive integer value truncated by implicit conversion to a smaller unsigned type.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4401</td>
|
||
<td width=95%> An expression of 'essentially Boolean' type (%1s) is being converted to character type, '%2s' on assignment.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4402</td>
|
||
<td width=95%> An expression of 'essentially Boolean' type (%1s) is being converted to enum type, '%2s' on assignment.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4403</td>
|
||
<td width=95%> An expression of 'essentially Boolean' type (%1s) is being converted to signed type, '%2s' on assignment.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4404</td>
|
||
<td width=95%> An expression of 'essentially Boolean' type (%1s) is being converted to unsigned type, '%2s' on assignment.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4405</td>
|
||
<td width=95%> An expression of 'essentially Boolean' type (%1s) is being converted to floating type, '%2s' on assignment.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4410</td>
|
||
<td width=95%> An expression of 'essentially character' type (%1s) is being converted to Boolean type, '%2s' on assignment.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4412</td>
|
||
<td width=95%> An expression of 'essentially character' type (%1s) is being converted to enum type, '%2s' on assignment.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4413</td>
|
||
<td width=95%> An expression of 'essentially character' type (%1s) is being converted to signed type, '%2s' on assignment.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4414</td>
|
||
<td width=95%> An expression of 'essentially character' type (%1s) is being converted to unsigned type, '%2s' on assignment.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4415</td>
|
||
<td width=95%> An expression of 'essentially character' type (%1s) is being converted to floating type, '%2s' on assignment.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4420</td>
|
||
<td width=95%> An expression of 'essentially enum' type (%1s) is being converted to Boolean type, '%2s' on assignment.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4421</td>
|
||
<td width=95%> An expression of 'essentially enum' type (%1s) is being converted to character type, '%2s' on assignment.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4422</td>
|
||
<td width=95%> An expression of 'essentially enum' type (%1s) is being converted to a different enum type, '%2s' on assignment.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4423</td>
|
||
<td width=95%> An expression of 'essentially enum' type (%1s) is being converted to signed type, '%2s' on assignment.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4424</td>
|
||
<td width=95%> An expression of 'essentially enum' type (%1s) is being converted to unsigned type, '%2s' on assignment.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4425</td>
|
||
<td width=95%> An expression of 'essentially enum' type (%1s) is being converted to floating type, '%2s' on assignment.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4430</td>
|
||
<td width=95%> An expression of 'essentially signed' type (%1s) is being converted to Boolean type, '%2s' on assignment.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4431</td>
|
||
<td width=95%> An expression of 'essentially signed' type (%1s) is being converted to character type, '%2s' on assignment.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4432</td>
|
||
<td width=95%> An expression of 'essentially signed' type (%1s) is being converted to enum type, '%2s' on assignment.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4434</td>
|
||
<td width=95%> A non-constant expression of 'essentially signed' type (%1s) is being converted to unsigned type, '%2s' on assignment.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4435</td>
|
||
<td width=95%> A non-constant expression of 'essentially signed' type (%1s) is being converted to floating type, '%2s' on assignment.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4437</td>
|
||
<td width=95%> A constant expression of 'essentially signed' type (%1s) is being converted to floating type, '%2s' on assignment.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4440</td>
|
||
<td width=95%> An expression of 'essentially unsigned' type (%1s) is being converted to Boolean type, '%2s' on assignment.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4441</td>
|
||
<td width=95%> An expression of 'essentially unsigned' type (%1s) is being converted to character type, '%2s' on assignment.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4442</td>
|
||
<td width=95%> An expression of 'essentially unsigned' type (%1s) is being converted to enum type, '%2s' on assignment.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4443</td>
|
||
<td width=95%> A non-constant expression of 'essentially unsigned' type (%1s) is being converted to a wider signed type, '%2s' on assignment.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4445</td>
|
||
<td width=95%> An expression of 'essentially unsigned' type (%1s) is being converted to floating type, '%2s' on assignment.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4446</td>
|
||
<td width=95%> A non-constant expression of 'essentially unsigned' type (%1s) is being converted to signed type, '%2s' on assignment.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4447</td>
|
||
<td width=95%> A constant expression of 'essentially unsigned' type (%1s) is being converted to signed type, '%2s' on assignment.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4450</td>
|
||
<td width=95%> An expression of 'essentially floating' type (%1s) is being converted to Boolean type, '%2s' on assignment.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4451</td>
|
||
<td width=95%> An expression of 'essentially floating' type (%1s) is being converted to character type, '%2s' on assignment.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4452</td>
|
||
<td width=95%> An expression of 'essentially floating' type (%1s) is being converted to enum type, '%2s' on assignment.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4453</td>
|
||
<td width=95%> An expression of 'essentially floating' type (%1s) is being converted to signed type, '%2s' on assignment.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4454</td>
|
||
<td width=95%> An expression of 'essentially floating' type (%1s) is being converted to unsigned type, '%2s' on assignment.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4460</td>
|
||
<td width=95%> A non-constant expression of 'essentially signed' type (%1s) is being converted to narrower signed type, '%2s' on assignment.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4461</td>
|
||
<td width=95%> A non-constant expression of 'essentially unsigned' type (%1s) is being converted to narrower unsigned type, '%2s' on assignment.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4462</td>
|
||
<td width=95%> A non-constant expression of 'essentially floating' type (%1s) is being converted to narrower floating type, '%2s' on assignment.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4463</td>
|
||
<td width=95%> A constant expression of 'essentially signed' type (%1s) is being converted to narrower signed type, '%2s' on assignment.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4464</td>
|
||
<td width=95%> A constant expression of 'essentially unsigned' type (%1s) is being converted to narrower unsigned type, '%2s' on assignment.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4465</td>
|
||
<td width=95%> A constant expression of 'essentially floating' type (%1s) is being converted to narrower floating type, '%2s' on assignment.</td>
|
||
</tr>
|
||
</table></center>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=2%>Rule-10.4</td>
|
||
<td width=2%>Required</td>
|
||
<td width=50%>Both operands of an operator in which the usual arithmetic conversions are performed shall have the same essential type category</td>
|
||
<td><center><table width=100%>
|
||
<tr><th>Qac</th><th>Description</th></tr>
|
||
<tr>
|
||
<td width=5%>1800</td>
|
||
<td width=95%> The %1s operand (essential type: '%2s') will be implicitly converted to a floating type, '%3s', in this arithmetic operation.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1802</td>
|
||
<td width=95%> The %1s operand (essential type: '%2s') will be implicitly converted to a floating type, '%3s', in this relational operation.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1803</td>
|
||
<td width=95%> The %1s operand (essential type: '%2s') will be implicitly converted to a floating type, '%3s', in this equality operation.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1804</td>
|
||
<td width=95%> The %1s operand (essential type: '%2s') will be implicitly converted to a floating type, '%3s', in this conditional operation.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1820</td>
|
||
<td width=95%> The %1s operand is non-constant and 'essentially signed' (%2s) but will be implicitly converted to an unsigned type (%3s) in this arithmetic operation.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1821</td>
|
||
<td width=95%> The %1s operand is non-constant and 'essentially signed' (%2s) but will be implicitly converted to an unsigned type (%3s) in this bitwise operation.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1822</td>
|
||
<td width=95%> The %1s operand is non-constant and 'essentially signed' (%2s) but will be implicitly converted to an unsigned type (%3s) in this relational operation.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1823</td>
|
||
<td width=95%> The %1s operand is non-constant and 'essentially signed' (%2s) but will be implicitly converted to an unsigned type (%3s) in this equality operation.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1824</td>
|
||
<td width=95%> The %1s operand is non-constant and 'essentially signed' (%2s) but will be implicitly converted to an unsigned type (%3s) in this conditional operation.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1830</td>
|
||
<td width=95%> The %1s operand is constant, 'essentially signed' (%2s) and negative but will be implicitly converted to an unsigned type (%3s) in this arithmetic operation.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1831</td>
|
||
<td width=95%> The %1s operand is constant, 'essentially signed' (%2s) and negative but will be implicitly converted to an unsigned type (%3s) in this bitwise operation.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1832</td>
|
||
<td width=95%> The %1s operand is constant, 'essentially signed' (%2s) and negative but will be implicitly converted to an unsigned type (%3s) in this relational operation.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1833</td>
|
||
<td width=95%> The %1s operand is constant, 'essentially signed' (%2s) and negative but will be implicitly converted to an unsigned type (%3s) in this equality operation.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1834</td>
|
||
<td width=95%> The %1s operand is constant, 'essentially signed' (%2s) and negative but will be implicitly converted to an unsigned type (%3s) in this conditional operation.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1840</td>
|
||
<td width=95%> The %1s operand is constant, 'essentially signed' (%2s) and non-negative but will be implicitly converted to an unsigned type (%3s) in this arithmetic operation.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1841</td>
|
||
<td width=95%> The %1s operand is constant, 'essentially signed' (%2s) and non-negative but will be implicitly converted to an unsigned type (%3s) in this bitwise operation.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1842</td>
|
||
<td width=95%> The %1s operand is constant, 'essentially signed' (%2s) and non-negative but will be implicitly converted to an unsigned type (%3s) in this relational operation.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1843</td>
|
||
<td width=95%> The %1s operand is constant, 'essentially signed' (%2s) and non-negative but will be implicitly converted to an unsigned type (%3s) in this equality operation.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1844</td>
|
||
<td width=95%> The %1s operand is constant, 'essentially signed' (%2s) and non-negative but will be implicitly converted to an unsigned type (%3s) in this conditional operation.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1850</td>
|
||
<td width=95%> The %1s operand is 'essentially unsigned' (%2s) but will be implicitly converted to a signed type (%3s) in this arithmetic operation.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1851</td>
|
||
<td width=95%> The %1s operand is 'essentially unsigned' (%2s) but will be implicitly converted to a signed type (%3s) in this bitwise operation.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1852</td>
|
||
<td width=95%> The %1s operand is 'essentially unsigned' (%2s) but will be implicitly converted to a signed type (%3s) in this relational operation.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1853</td>
|
||
<td width=95%> The %1s operand is 'essentially unsigned' (%2s) but will be implicitly converted to a signed type (%3s) in this equality operation.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1854</td>
|
||
<td width=95%> The %1s operand is 'essentially unsigned' (%2s) but will be implicitly converted to a signed type (%3s) in this conditional operation.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1860</td>
|
||
<td width=95%> The operands of this arithmetic operator are of different 'essential signedness' but will generate a result of type 'signed int'.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1861</td>
|
||
<td width=95%> The operands of this bitwise operator are of different 'essential signedness' but will generate a result of type 'signed int'.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1862</td>
|
||
<td width=95%> The operands of this relational operator are of different 'essential signedness' but will both be promoted to 'signed int' for comparison.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1863</td>
|
||
<td width=95%> The operands of this equality operator are of different 'essential signedness' but will both be promoted to 'signed int' for comparison.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1864</td>
|
||
<td width=95%> The 2nd and 3rd operands of this conditional operator are of different 'essential signedness'. The result will be in the promoted type 'signed int'.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1880</td>
|
||
<td width=95%> The operands of this relational operator are expressions of different 'essential type' categories (%1s and %2s).</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1881</td>
|
||
<td width=95%> The operands of this equality operator are expressions of different 'essential type' categories (%1s and %2s).</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1882</td>
|
||
<td width=95%> The 2nd and 3rd operands of this conditional operator are expressions of different 'essential type' categories (%1s and %2s).</td>
|
||
</tr>
|
||
</table></center>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=2%>Rule-10.5</td>
|
||
<td width=2%>Advisory</td>
|
||
<td width=50%>The value of an expression should not be cast to an inappropriate essential type</td>
|
||
<td><center><table width=100%>
|
||
<tr><th>Qac</th><th>Description</th></tr>
|
||
<tr>
|
||
<td width=5%>4301</td>
|
||
<td width=95%> An expression of 'essentially Boolean' type (%1s) is being cast to character type '%2s'.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4302</td>
|
||
<td width=95%> An expression of 'essentially Boolean' type (%1s) is being cast to enum type '%2s'.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4303</td>
|
||
<td width=95%> An expression of 'essentially Boolean' type (%1s) is being cast to signed type '%2s'.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4304</td>
|
||
<td width=95%> An expression of 'essentially Boolean' type (%1s) is being cast to unsigned type '%2s'.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4305</td>
|
||
<td width=95%> An expression of 'essentially Boolean' type (%1s) is being cast to floating type '%2s'.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4310</td>
|
||
<td width=95%> An expression of 'essentially character' type (%1s) is being cast to Boolean type, '%2s'.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4312</td>
|
||
<td width=95%> An expression of 'essentially character' type (%1s) is being cast to enum type, '%2s'.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4315</td>
|
||
<td width=95%> An expression of 'essentially character' type (%1s) is being cast to floating type, '%2s'.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4320</td>
|
||
<td width=95%> An expression of 'essentially enum' type (%1s) is being cast to Boolean type, '%2s'.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4322</td>
|
||
<td width=95%> An expression of 'essentially enum' type (%1s) is being cast to a different enum type, '%2s'.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4330</td>
|
||
<td width=95%> An expression of 'essentially signed' type (%1s) is being cast to Boolean type '%2s'.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4332</td>
|
||
<td width=95%> An expression of 'essentially signed' type (%1s) is being cast to enum type, '%2s'.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4340</td>
|
||
<td width=95%> An expression of 'essentially unsigned' type (%1s) is being cast to Boolean type '%2s'.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4342</td>
|
||
<td width=95%> An expression of 'essentially unsigned' type (%1s) is being cast to enum type '%2s'.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4350</td>
|
||
<td width=95%> An expression of 'essentially floating' type (%1s) is being cast to Boolean type '%2s'.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4351</td>
|
||
<td width=95%> An expression of 'essentially floating' type (%1s) is being cast to character type '%2s'.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4352</td>
|
||
<td width=95%> An expression of 'essentially floating' type (%1s) is being cast to enum type, '%2s'.</td>
|
||
</tr>
|
||
</table></center>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=2%>Rule-10.6</td>
|
||
<td width=2%>Required</td>
|
||
<td width=50%>The value of a composite expression shall not be assigned to an object with wider essential type</td>
|
||
<td><center><table width=100%>
|
||
<tr><th>Qac</th><th>Description</th></tr>
|
||
<tr>
|
||
<td width=5%>4490</td>
|
||
<td width=95%> A composite expression of 'essentially signed' type (%1s) is being converted to wider signed type, '%2s' on assignment.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4491</td>
|
||
<td width=95%> A composite expression of 'essentially unsigned' type (%1s) is being converted to wider unsigned type, '%2s' on assignment.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4492</td>
|
||
<td width=95%> A composite expression of 'essentially floating' type (%1s) is being converted to wider floating type, '%2s' on assignment.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4499</td>
|
||
<td width=95%> An expression which is the result of a ~ or << operation has been converted to a wider essential type on assignment.</td>
|
||
</tr>
|
||
</table></center>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=2%>Rule-10.7</td>
|
||
<td width=2%>Required</td>
|
||
<td width=50%>If a composite expression is used as one operand of an operator in which the usual arithmetic conversions are performed then the other operand shall not have wider essential type</td>
|
||
<td><center><table width=100%>
|
||
<tr><th>Qac</th><th>Description</th></tr>
|
||
<tr>
|
||
<td width=5%>1890</td>
|
||
<td width=95%> A composite expression of 'essentially signed' type (%1s) is being implicitly converted to a wider signed type, '%2s'.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1891</td>
|
||
<td width=95%> A composite expression of 'essentially unsigned' type (%1s) is being implicitly converted to a wider unsigned type, '%2s'.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1892</td>
|
||
<td width=95%> A composite expression of 'essentially floating' type (%1s) is being implicitly converted to a wider floating type, '%2s'.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1893</td>
|
||
<td width=95%> The 2nd and 3rd operands of this conditional operator are both 'essentially signed' ('%1s' and '%2s') but one is a composite expression of a narrower type than the other.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1894</td>
|
||
<td width=95%> The 2nd and 3rd operands of this conditional operator are both 'essentially unsigned' ('%1s' and '%2s') but one is a composite expression of a narrower type than the other.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>1895</td>
|
||
<td width=95%> The 2nd and 3rd operands of this conditional operator are both 'essentially floating' ('%1s' and '%2s') but one is a composite expression of a narrower type than the other.</td>
|
||
</tr>
|
||
</table></center>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=2%>Rule-10.8</td>
|
||
<td width=2%>Required</td>
|
||
<td width=50%>The value of a composite expression shall not be cast to a different essential type category or a wider essential type</td>
|
||
<td><center><table width=100%>
|
||
<tr><th>Qac</th><th>Description</th></tr>
|
||
<tr>
|
||
<td width=5%>4389</td>
|
||
<td width=95%> A composite expression of 'essentially char' type (%1s) is being cast to a different type category, '%2s'.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4390</td>
|
||
<td width=95%> A composite expression of 'essentially signed' type (%1s) is being cast to a wider signed type, '%2s'.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4391</td>
|
||
<td width=95%> A composite expression of 'essentially unsigned' type (%1s) is being cast to a wider unsigned type, '%2s'.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4392</td>
|
||
<td width=95%> A composite expression of 'essentially floating' type (%1s) is being cast to a wider floating type, '%2s'.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4393</td>
|
||
<td width=95%> A composite expression of 'essentially signed' type (%1s) is being cast to a different type category, '%2s'.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4394</td>
|
||
<td width=95%> A composite expression of 'essentially unsigned' type (%1s) is being cast to a different type category, '%2s'.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4395</td>
|
||
<td width=95%> A composite expression of 'essentially floating' type (%1s) is being cast to a different type category, '%2s'.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4398</td>
|
||
<td width=95%> An expression which is the result of a ~ or << operation has been cast to a different essential type category.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>4399</td>
|
||
<td width=95%> An expression which is the result of a ~ or << operation has been cast to a wider type.</td>
|
||
</tr>
|
||
</table></center>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=2%>Rule-11.1</td>
|
||
<td width=2%>Required</td>
|
||
<td width=50%>Conversions shall not be performed between a pointer to a function and any other type</td>
|
||
<td><center><table width=100%>
|
||
<tr><th>Qac</th><th>Description</th></tr>
|
||
<tr>
|
||
<td width=5%>0302</td>
|
||
<td width=95%> [u] Cast between a pointer to function and a floating type.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0305</td>
|
||
<td width=95%> [I] Cast between a pointer to function and an integral type.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0307</td>
|
||
<td width=95%> [u] Cast between a pointer to object and a pointer to function.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0313</td>
|
||
<td width=95%> Casting to different function pointer type.</td>
|
||
</tr>
|
||
</table></center>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=2%>Rule-11.2</td>
|
||
<td width=2%>Required</td>
|
||
<td width=50%>Conversions shall not be performed between a pointer to an incomplete type and any other type</td>
|
||
<td><center><table width=100%>
|
||
<tr><th>Qac</th><th>Description</th></tr>
|
||
<tr>
|
||
<td width=5%>0308</td>
|
||
<td width=95%> Non-portable cast involving pointer to an incomplete type.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0323</td>
|
||
<td width=95%> [u] Cast between a pointer to incomplete type and a floating type.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0324</td>
|
||
<td width=95%> [u] Cast between a pointer to incomplete type and an integral type.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0325</td>
|
||
<td width=95%> [u] Cast between a pointer to incomplete type and a pointer to function.</td>
|
||
</tr>
|
||
</table></center>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=2%>Rule-11.3</td>
|
||
<td width=2%>Required</td>
|
||
<td width=50%>A cast shall not be performed between a pointer to object type and a pointer to a different object type</td>
|
||
<td><center><table width=100%>
|
||
<tr><th>Qac</th><th>Description</th></tr>
|
||
<tr>
|
||
<td width=5%>0310</td>
|
||
<td width=95%> Casting to different object pointer type.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>3305</td>
|
||
<td width=95%> Pointer cast to stricter alignment.</td>
|
||
</tr>
|
||
</table></center>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=2%>Rule-11.4</td>
|
||
<td width=2%>Advisory</td>
|
||
<td width=50%>A conversion should not be performed between a pointer to object and an integer type</td>
|
||
<td><center><table width=100%>
|
||
<tr><th>Qac</th><th>Description</th></tr>
|
||
<tr>
|
||
<td width=5%>0303</td>
|
||
<td width=95%> [I] Cast between a pointer to volatile object and an integral type.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0306</td>
|
||
<td width=95%> [I] Cast between a pointer to object and an integral type.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0360</td>
|
||
<td width=95%> An expression of pointer type is being converted to type _Bool on assignment.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0361</td>
|
||
<td width=95%> An expression of pointer type is being cast to type _Bool.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0362</td>
|
||
<td width=95%> An expression of essentially Boolean type is being cast to a pointer.</td>
|
||
</tr>
|
||
</table></center>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=2%>Rule-11.5</td>
|
||
<td width=2%>Advisory</td>
|
||
<td width=50%>A conversion should not be performed from pointer to void into pointer to object</td>
|
||
<td><center><table width=100%>
|
||
<tr><th>Qac</th><th>Description</th></tr>
|
||
<tr>
|
||
<td width=5%>0316</td>
|
||
<td width=95%> [I] Cast from a pointer to void to a pointer to object type.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0317</td>
|
||
<td width=95%> [I] Implicit conversion from a pointer to void to a pointer to object type.</td>
|
||
</tr>
|
||
</table></center>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=2%>Rule-11.6</td>
|
||
<td width=2%>Required</td>
|
||
<td width=50%>A cast shall not be performed between pointer to void and an arithmetic type</td>
|
||
<td><center><table width=100%>
|
||
<tr><th>Qac</th><th>Description</th></tr>
|
||
<tr>
|
||
<td width=5%>0326</td>
|
||
<td width=95%> [I] Cast between a pointer to void and an integral type.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0327</td>
|
||
<td width=95%> [I] Cast between a pointer to void and an floating type.</td>
|
||
</tr>
|
||
</table></center>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=2%>Rule-11.7</td>
|
||
<td width=2%>Required</td>
|
||
<td width=50%>A cast shall not be performed between pointer to object and a non-integer arithmetic type</td>
|
||
<td><center><table width=100%>
|
||
<tr><th>Qac</th><th>Description</th></tr>
|
||
<tr>
|
||
<td width=5%>0301</td>
|
||
<td width=95%> [u] Cast between a pointer to object and a floating type.</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=5%>0328</td>
|
||
<td width=95%> [u] Cast between a pointer to object and an essential type other than signed/unsigned.</td>
|
||
</tr>
|
||
</table></center>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td width=2%>Rule-11.8</td>
|
||
<td width=2%>Required</td>
|
||
<td width=50%>A cast shall not remove any const or volatile qualification from the type pointed to by a pointer</td>
|
||
<td><center><table width=100% |