Issue 130760
Summary [Coverage][MC/DC] Condition position reported at macro position
Labels new issue
Assignees
Reporter ManuelvOK
    When using macros in conditions, the MC/DC report sais the position of those conditions is where the macro is.

Example:

```cpp
#define ID(exp) exp

int main(void) {
    int a = 1;
    int b = 1;

    if (ID(a == 1) && b == 1) {
        return 0;
 }
    return 1;
}
```

The condition `ID(a == 1)` is located in line 7 but the MC/DC report will say it is in line 1:

```
    1|      2|#define ID(exp) exp
    2|       |
    3|      1|int main(void) {
    4|      1| int a = 1;
    5|      1|    int b = 1;
    6|       |
    7|      1| if (ID(a == 1) && b == 1) {
  ------------------
  |---> MC/DC Decision Region (7:9) to (7:29)
  |
  |  Number of Conditions: 2
  |     Condition C1 --> (1:17)
  |     Condition C2 --> (7:23)
  |
  |  Executed MC/DC Test Vectors:
  |
  |     C1, C2    Result
  |  1 { T,  T  = T      }
  |
  | C1-Pair: not covered
  |  C2-Pair: not covered
  |  MC/DC Coverage for Decision: 0.00%
  |
  ------------------
    8|      1|        return 0;
 9|      1|    }
   10|      0|    return 1;
   11|      1|}
```

I would expect the report to refer to the actual position inside the decision.
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to