Commit 0b07b06
authored
[Sema] Use underlying type of scoped enum for -Wformat diagnostics (#67378)
Right now, `-Wformat` for a scoped enum will suggest a cast based on the
format specifier being used. This can lead to incorrect results, e.g.
attempting to format a scoped enum with `%s` would suggest casting to
`char *` instead of fixing the specifier. Change the logic to treat the
scoped enum's underlying type as the intended type to be printed, and
suggest format specifier changes and casts based on that.1 parent e0f86ca commit 0b07b06
File tree
4 files changed
+68
-15
lines changed- clang
- docs
- lib/Sema
- test/FixIt
4 files changed
+68
-15
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
213 | 213 | | |
214 | 214 | | |
215 | 215 | | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
216 | 219 | | |
217 | 220 | | |
218 | 221 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
11356 | 11356 | | |
11357 | 11357 | | |
11358 | 11358 | | |
| 11359 | + | |
11359 | 11360 | | |
11360 | 11361 | | |
11361 | 11362 | | |
| 11363 | + | |
11362 | 11364 | | |
| 11365 | + | |
11363 | 11366 | | |
11364 | | - | |
| 11367 | + | |
11365 | 11368 | | |
11366 | 11369 | | |
11367 | 11370 | | |
| |||
11373 | 11376 | | |
11374 | 11377 | | |
11375 | 11378 | | |
11376 | | - | |
11377 | 11379 | | |
11378 | 11380 | | |
11379 | 11381 | | |
| |||
11409 | 11411 | | |
11410 | 11412 | | |
11411 | 11413 | | |
11412 | | - | |
11413 | | - | |
| 11414 | + | |
| 11415 | + | |
| 11416 | + | |
| 11417 | + | |
11414 | 11418 | | |
11415 | 11419 | | |
11416 | 11420 | | |
| |||
11465 | 11469 | | |
11466 | 11470 | | |
11467 | 11471 | | |
11468 | | - | |
| 11472 | + | |
11469 | 11473 | | |
11470 | 11474 | | |
11471 | 11475 | | |
11472 | | - | |
11473 | | - | |
11474 | | - | |
11475 | | - | |
11476 | | - | |
11477 | | - | |
| 11476 | + | |
11478 | 11477 | | |
11479 | 11478 | | |
11480 | 11479 | | |
11481 | | - | |
| 11480 | + | |
11482 | 11481 | | |
11483 | 11482 | | |
11484 | 11483 | | |
| |||
11506 | 11505 | | |
11507 | 11506 | | |
11508 | 11507 | | |
11509 | | - | |
| 11508 | + | |
11510 | 11509 | | |
11511 | 11510 | | |
11512 | 11511 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
15 | 18 | | |
16 | 19 | | |
17 | 20 | | |
18 | 21 | | |
19 | 22 | | |
20 | 23 | | |
21 | | - | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
22 | 27 | | |
23 | 28 | | |
24 | | - | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
25 | 32 | | |
26 | 33 | | |
27 | 34 | | |
28 | 35 | | |
29 | 36 | | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
30 | 42 | | |
31 | 43 | | |
32 | 44 | | |
| |||
58 | 70 | | |
59 | 71 | | |
60 | 72 | | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
61 | 77 | | |
0 commit comments