User Details
- User Since
- Jun 21 2022, 2:03 PM (39 w, 3 d)
Yesterday
Address comments.
Thu, Mar 23
Wed, Mar 22
The template specialization information is still available but we may need to print it by ourselves.
I will add a FIXME there and we will deal with it in a follow-up patch.
Tue, Mar 21
Current tests are mostly fine except that some notes with message "in instantiation of ... " are missing. Although these notes are not emitted by our analysis, we better understand why things change.
This sounds familiar, I think @usama54321 ran into a similar problem from inside clang-tidy: https://discourse.llvm.org/t/clang-tidy-diagnostics-for-template-code/62909
Mon, Mar 20
Address comments
Fri, Mar 17
Thu, Mar 16
Address comments
Tue, Mar 14
I have one general question: suppose we have two variables A and B in the same group. So fix-its emitted for A includes fix-its for B and vice verse, right? Does it mean that we cannot apply all fix-its at once from the command line?
Mon, Mar 13
Address comments
Fri, Mar 10
Thu, Mar 9
Rebased and addressed comments.
Tue, Mar 7
Thanks for the valuable discussion about the philosophy on the ideal forms of fix-its. In this case, I think &DRE.data()[any] and (DRE.data() + any) are both straightforward enough for the user to tell what has been changed and why we change that. And I believe both forms are idiomatic so that the user are likely happy with the form. I will keep this discussion in mind as we have other cases whose fix-its may be less idiomatic, such as D144304.
Mon, Mar 6
Still work in progress (but comments are very welcomed) ---there are several problems need to be solved:
- To conservatively detect any overload of the function whose parameter is being fixed. Thus far, the analysis cannot see any overload declared after the analyzing function.
- Fix-its conflict. Insertions of #include<span> and [[clang::unsafe_buffer_usage]] can conflict if both are inserted at the beginning of a file.
- There are many unsupported cases.
- Do we really want to fix parameters one at a time?
- As the fix-its become more complicated, tests now are harder to read.
Taking care of this patch on behalf of @jkorous
Thu, Feb 23
Feb 22 2023
Address some of the comments.
Add handling for both *(ptr + n) and *(n + ptr).
Add handling for *((..(ptr + n) .. )
Remove the white space handling
Taking care of this revision on behalf of @jkorous
Feb 21 2023
Addressing comments
Taking care of this patch on behalf of @jkorous.
Feb 20 2023
Feb 17 2023
Now we have different FixableGadgets that may match the same Stmt (representing a context).
So in order to discover all "Fixable"s, we can no longer match anyOf FixableGadgets' matchers. Instead, we match eachOf them.
Feb 16 2023
Feb 14 2023
Feb 13 2023
Rebased.
Rebased
Feb 9 2023
Feb 8 2023
Feb 7 2023
Feb 6 2023
Let fixUPCAddressofArraySubscriptWithSpan return std::nullopt instead of an empty list when we should give up on the fix-it.
To avoid emitting incorrect fix-its for array subscripts on span objects:
- For unsafe operations of the form s[e] where s is being transformed to be a span, we only emit fix-its for s[e] when e is a non-negative integer literal or e has an unsigned integer type.
Fixed a bug in manipulating source locations:
Feb 3 2023
Change the fix-it test style
address comments
Feb 1 2023
rebase
To attach fix-its to notes instead of warnings.
Fix the ending '\0' issue raised by @jkorous
Jan 27 2023
Rebase the change
Addressing comments
Jan 24 2023
Put the implementation of the opt-out pragma completely in Preprocessor.
Add an opt-out pragma test for fix-its.
Addressed the minor comments
Jan 23 2023
Refactored the fix-it generation code to stop using the pretty-printer.
Jan 19 2023
Rebased the code w.r.t. a series of refactoring in [-Wunsafe-buffer-usage].
Added a FixableGadget for array subscripts of the form DRE[*] in the context of lvalue-to-rvalue casting.