Issue 143216
Summary clang error report missing location
Labels clang
Assignees
Reporter jurahul
    See https://godbolt.org/z/szcWh6Mqa

For this small program which uses macros,

```
#define ODD_NUMBERS \
       1 \
  case 3: \
  case 5

#define EVEN_NUMBERS \
       0: \
  case 2: \
  case 4


int classify(int x) {
  switch (x) {
  case 1:
  //case 1
  case 3:
  case 5: return 0;
  case 0:
  case 2:
  case 4: return 1;
  default: return 2;
  }
}

int classify1(int x) {
  switch (x) {
  case ODD_NUMBERS: return 0;
  case EVEN_NUMBERS: return 1;
  default: return 2;
 }
}

int main() {
  return classify(0) + classify1(1);
}
```

The missing `:` after case 1 in the non-macro version is reported with proper location:

```
<source>:15:9: error: expected ':' after 'case'
   15 | case 1
      |         ^
      |         :
```

However, the missing `:` for the case in macro is just reported as:

```
error: expected ':' after 'case'
```

with no line information.
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to