whisperity added inline comments.
================ Comment at: clang-tools-extra/clang-tidy/bugprone/EasilySwappableParametersCheck.cpp:402-403 + + // Unfortunately, undersquiggly highlights are for some reason chewed up + // and not respected by diagnostics from Clang-Tidy. :( + diag(First->getLocation(), "the first parameter in the range is '%0'", ---------------- aaron.ballman wrote: > whisperity wrote: > > whisperity wrote: > > > aaron.ballman wrote: > > > > whisperity wrote: > > > > > aaron.ballman wrote: > > > > > > Can you post a screenshot of what you mean? > > > > > Given > > > > > > > > > > ``` > > > > > Diag << SourceRange{First->getSourceRange().getBegin(), > > > > > Last->getSourceRange().getEnd()}; > > > > > ``` > > > > > > > > > > The diagnostic is still produced with only a `^` at the original > > > > > `diag(Location)`, ignoring the fed `SourceRange`: > > > > > > > > > > ``` > > > > > /home/whisperity/LLVM/Build/../llvm-project/clang-tools-extra/test/clang-tidy/checkers/bugprone-easily-swappable-parameters-len2.cpp:21:18: > > > > > warning: 3 adjacent parameters of 'redeclChain' of similar type > > > > > ('int') are easily swapped by mistake > > > > > [bugprone-easily-swappable-parameters] > > > > > void redeclChain(int I, int J, int K) {} > > > > > ^ > > > > > ``` > > > > > > > > > > Instead of putting all the squigglies in as the range-location > > > > > highlight, like how `Sema` can diagnose: > > > > > > > > > > ``` > > > > > /home/whisperity/LLVM/Build/../llvm-project/clang-tools-extra/test/clang-tidy/checkers/bugprone-easily-swappable-parameters-len2.cpp:21:18: > > > > > warning: 3 adjacent parameters of 'redeclChain' of similar type > > > > > ('int') are easily swapped by mistake > > > > > [bugprone-easily-swappable-parameters] > > > > > void redeclChain(int I, int J, int K) {} > > > > > ^~~~~~~~~~~~~~~~~~~ > > > > > ``` > > > > > > > > > > I would not want to put additional note tags in an otherwise already > > > > > verbose output. > > > > > > > > > > Back in 2019 I was investigating this issue specifically for another > > > > > checker I was working on, but hit the wall... Somewhere deep inside > > > > > where Tidy diagnostic stuff is translated and consumed to Clang > > > > > stuff, it goes away. It shouldn't, because there are statements that > > > > > seemingly copy the `Diag.Ranges` array over, but it still does not > > > > > come out. > > > > > > > > > > ... EDIT: I found [[ > > > > > http://lists.llvm.org/pipermail/cfe-dev/2019-October/063676.html | > > > > > the relevant mailing list post ]]. > > > > > ... EDIT: I found the relevant mailing list post. > > > > > > > > Oh wow, I had no idea! That's a rather unfortunate bug. :-( > > > Speaking of bugs, shall I put it up on Bugzilla, or see if anyone > > > reported already? Would require me digging into that "where are the data > > > structures copied" kind of thing to figure it out again. > > Nevermind, this is worth [[ http://bugzilla.llvm.org/show_bug.cgi?id=49000 > > | a bug report ]] just so we can track it in the proper location. > If you don't mind doing that effort, it'd be appreciated! Even if you don't > root cause the issue, having the report (or pinging an existing one) is still > useful. And I managed to post a broken link originally... Here's the right one: https://bugs.llvm.org/show_bug.cgi?id=49000 Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D69560/new/ https://reviews.llvm.org/D69560 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits