These are the top level rules for each rule group (i.e. these rules are primary rules that are not sub-rules used to enforce parent rules).
The table presents the violation counts for each top-level rule. Note that a message may be used to enforce more than one rule. In such a case, one diagnostic will result in multiple violations (i.e. one for each rule that the message is used to enforce).
Diagnostic counts are available in File Status table.
QA·C
Files | Rule 0 | Rule 1 | Rule 2 | Rule 3 | Rule 4 | Rule 5 | Rule 6 | Rule 7 | Rule 8 | Rule 9 | Total Violations |
---|---|---|---|---|---|---|---|---|---|---|---|
getopt.c | 0 | 20 | 442 | 14 | 0 | 0 | 10 | 2 | 0 | 0 | 488 |
file.h | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
dir.c | 0 | 11 | 167 | 13 | 0 | 0 | 1 | 0 | 0 | 0 | 192 |
regex.h | 0 | 0 | 54 | 0 | 0 | 0 | 5 | 2 | 0 | 0 | 61 |
context.c | 0 | 24 | 373 | 15 | 0 | 0 | 5 | 1 | 0 | 0 | 418 |
version.c | 0 | 0 | 5 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 5 |
ed.c | 0 | 3 | 172 | 9 | 0 | 0 | 4 | 0 | 0 | 0 | 188 |
getopt.h | 0 | 0 | 23 | 0 | 0 | 0 | 4 | 0 | 0 | 0 | 27 |
stat.h | 0 | 0 | 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 4 |
ifdef.c | 0 | 0 | 61 | 2 | 0 | 0 | 1 | 0 | 0 | 0 | 64 |
strings.h | 0 | 0 | 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 4 |
alloca.c | 0 | 2 | 94 | 6 | 0 | 0 | 2 | 0 | 0 | 0 | 104 |
io.c | 0 | 81 | 901 | 45 | 0 | 1 | 1 | 0 | 0 | 0 | 1029 |
diff3.c | 1 | 112 | 1630 | 140 | 0 | 0 | 13 | 0 | 0 | 0 | 1896 |
getopt1.c | 0 | 2 | 32 | 2 | 0 | 0 | 1 | 0 | 0 | 0 | 37 |
analyze.c | 0 | 108 | 992 | 75 | 0 | 2 | 7 | 0 | 0 | 0 | 1184 |
diff.h | 0 | 5 | 164 | 29 | 0 | 0 | 18 | 0 | 0 | 0 | 216 |
normal.c | 0 | 0 | 62 | 3 | 0 | 0 | 2 | 0 | 0 | 0 | 67 |
util.c | 1 | 31 | 636 | 47 | 0 | 3 | 2 | 2 | 0 | 0 | 722 |
dir.h | 0 | 0 | 12 | 0 | 0 | 0 | 2 | 0 | 0 | 0 | 14 |
diff.c | 1 | 26 | 703 | 76 | 0 | 0 | 1 | 1 | 0 | 0 | 808 |
Total Violations | 3 | 425 | 6532 | 476 | 0 | 6 | 79 | 8 | 0 | 0 | 7529 |
RCMA
Files | Rule 0 | Rule 2 | Rule 5 | Rule 7 | Rule 8 | Total Violations |
---|---|---|---|---|---|---|
getopt.c | 0 | 2 | 0 | 0 | 0 | 2 |
dir.c | 0 | 1 | 0 | 0 | 0 | 1 |
diff.c | 0 | 3 | 0 | 0 | 0 | 3 |
context.c | 0 | 2 | 0 | 0 | 0 | 2 |
ed.c | 0 | 3 | 0 | 0 | 0 | 3 |
alloca.c | 0 | 2 | 0 | 0 | 0 | 2 |
getopt1.c | 0 | 2 | 0 | 0 | 0 | 2 |
ifdef.c | 0 | 1 | 0 | 0 | 0 | 1 |
version.c | 0 | 1 | 0 | 0 | 0 | 1 |
io.c | 0 | 5 | 0 | 0 | 0 | 5 |
diff3.c | 0 | 24 | 0 | 0 | 0 | 24 |
analyze.c | 0 | 6 | 0 | 0 | 0 | 6 |
diff.h | 0 | 2 | 0 | 0 | 0 | 2 |
normal.c | 0 | 2 | 0 | 0 | 0 | 2 |
util.c | 0 | 5 | 0 | 0 | 0 | 5 |
Total Violations | 0 | 61 | 0 | 0 | 0 | 61 |
These are the most violated rules that are directly enforced (i.e. these rules have messages directly mapped to them and are not being enforced solely by sub-rules).
Again, the table presents the violation counts. Note that a message may be used to enforce more than one rule. In such a case, one diagnostic will result in multiple violations (i.e. one for each rule that the message is used to enforce).
Diagnostic counts are available in File Status table.
QA·C
Files | Rule 2.22 | Rule 2.9 | Rule 2.2 | Rule 2.17 | Rule 2.23 | Rule 2.15 | Rule 2.14 | Rule 2.13 | Rule 2.24 |
---|---|---|---|---|---|---|---|---|---|
diff.h | 0 | 0 | 0 | 18 | 25 | 58 | 0 | 2 | 0 |
getopt.h | 0 | 0 | 0 | 4 | 8 | 2 | 0 | 0 | 0 |
regex.h | 0 | 0 | 0 | 8 | 29 | 7 | 0 | 0 | 0 |
strings.h | 0 | 0 | 0 | 1 | 1 | 2 | 0 | 0 | 0 |
dir.h | 0 | 0 | 0 | 7 | 1 | 3 | 0 | 0 | 0 |
file.h | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 |
stat.h | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 |
alloca.c | 12 | 13 | 0 | 4 | 7 | 30 | 4 | 1 | 2 |
analyze.c | 111 | 177 | 38 | 38 | 44 | 166 | 61 | 59 | 74 |
context.c | 23 | 71 | 8 | 48 | 20 | 45 | 27 | 29 | 36 |
diff.c | 89 | 145 | 29 | 62 | 28 | 66 | 41 | 89 | 49 |
diff3.c | 145 | 233 | 6 | 175 | 96 | 221 | 94 | 139 | 134 |
dir.c | 14 | 29 | 0 | 16 | 7 | 26 | 20 | 5 | 12 |
ed.c | 7 | 33 | 0 | 34 | 6 | 16 | 13 | 16 | 11 |
getopt.c | 80 | 57 | 9 | 23 | 24 | 50 | 27 | 35 | 27 |
getopt1.c | 2 | 2 | 0 | 2 | 2 | 14 | 2 | 0 | 4 |
ifdef.c | 4 | 17 | 0 | 11 | 2 | 6 | 7 | 3 | 1 |
io.c | 96 | 98 | 271 | 14 | 26 | 43 | 44 | 39 | 62 |
normal.c | 2 | 12 | 0 | 11 | 3 | 9 | 6 | 7 | 1 |
util.c | 37 | 79 | 15 | 89 | 25 | 110 | 48 | 39 | 34 |
version.c | 1 | 0 | 0 | 0 | 0 | 3 | 0 | 1 | 0 |
RCMA
Active Diagnostics refers to diagnostics that are not suppressed (note: no suppressed diagnostics have been taken into account for the calculation of information in this document).
Analysis Status as of: 01 Feb, 2019 at 09:54:45
Files | Active Diagnostics | Violated Rules | Violation Count | Compliance Index |
---|---|---|---|---|
getopt.c | 490 | 28 | 490 | 89.89% |
file.h | 1 | 1 | 1 | 99.64% |
dir.c | 193 | 26 | 193 | 90.61% |
diff.c | 811 | 31 | 811 | 88.81% |
context.c | 420 | 23 | 420 | 91.70% |
strings.h | 4 | 3 | 4 | 98.92% |
ed.c | 191 | 19 | 191 | 93.14% |
alloca.c | 106 | 21 | 106 | 92.42% |
getopt1.c | 39 | 14 | 39 | 94.95% |
ifdef.c | 65 | 15 | 65 | 94.58% |
getopt.h | 27 | 7 | 27 | 97.47% |
stat.h | 4 | 2 | 4 | 99.28% |
version.c | 6 | 4 | 6 | 98.56% |
io.c | 1034 | 31 | 1034 | 88.81% |
diff3.c | 1920 | 39 | 1920 | 85.92% |
analyze.c | 1190 | 33 | 1190 | 88.09% |
diff.h | 218 | 14 | 218 | 94.95% |
normal.c | 69 | 14 | 69 | 94.95% |
util.c | 727 | 32 | 727 | 88.45% |
dir.h | 14 | 6 | 14 | 97.83% |
regex.h | 61 | 8 | 61 | 97.11% |
Total | 7768 | 7768 | 94.64% |
Analyzed File | Settings 1 | Settings 2 | Settings 3 | Settings 4 |
---|---|---|---|---|
regex.h | None | None | None | None |
types.h | None | None | None | None |
getopt1.c | getopt1.c.qac.via | None | None | None |
diff3.c | diff3.c.qac.via | None | None | None |
file.h | None | None | None | None |
context.c | context.c.qac.via | None | None | None |
alloca.c | alloca.c.qac.via | None | None | None |
wait.h | None | None | None | None |
ifdef.c | ifdef.c.qac.via | None | None | None |
version.c | version.c.qac.via | None | None | None |
normal.c | normal.c.qac.via | None | None | None |
time.h | None | None | None | None |
diff.c | diff.c.qac.via | None | None | None |
stat.h | None | None | None | None |
io.c | io.c.qac.via | None | None | None |
util.c | util.c.qac.via | None | None | None |
dir.h | None | None | None | None |
cma [C:/diff/prqa/configs/Initial_Config/output/_SOURCE_ROOT/cma] | None | None | None | None |
getopt.c | getopt.c.qac.via | None | None | None |
dir.c | dir.c.qac.via | None | None | None |
ed.c | ed.c.qac.via | None | None | None |
getopt.h | None | None | None | None |
strings.h | None | None | None | None |
analyze.c | analyze.c.qac.via | None | None | None |
diff.h | None | None | None | None |
Note that headers in suppressed directories are ignored in the following statistics.
The number of files is the number of source files in the project, plus the number of header files included by those source files.
The Lines of Code is the sum of the metric STTLN for each source (header files are not included)
The total number of diagnostics is the sum of all diagnostics appearing in all files. Diagnostics in header files are only counted once, even if they are included in more than one source file.
The number of violated rules is the number of rules in the project Rule Configuration File that have at least one one diagnostic appearing in the files. The number of Compliant groups is the difference between the total number of rules and the number of rules groups.
Since a message can be used to enforce one or more rules in the Rule Configuration File, violation counts are not the same as diagnostic counts. Total Diagnostics is a count of atomic message instances appearing in the files, whereas one diagnostic may infringe more than one rule, possibly resulting in multiple violations. These metrics are not the same. Therefore, it is possible that violation counts may differ from diagnostic counts, depending on how the user has organised the Rule Configuration File.
Calculation of Compliance Index
The Compliance Index is the percentage of groups which have no messages in them.
For each file it is calculated as follows:
( Ntotal - Nerror
) / Ntotal
x 100
Ntotal
is the total number of enforced rules (i.e. the number of rules that have at least one message mapped to it directly).
Nerror
is the number of rules for which messages appear in that file.
The File Compliance Index is the mean of all the individual file compliances.
The Project Compliance Index is calculated in a similar way but with Nerror
as the number of rules for which messages appear in all analysed files.
A high File Compliance Index and low Project Compliance Index indicates that each file violates only a small number of rules but each file violates a different rule.
If the Compliance Indices are close then each file is violating more or less the same rules.