C++: Add more MaD models for ATL string classes#18261
C++: Add more MaD models for ATL string classes#18261MathiasVP merged 16 commits intogithub:mainfrom
Conversation
dbartol
left a comment
There was a problem hiding this comment.
Looks good, at least from what I can remember from 25 years ago. I noted one trivial missing model, not blocking.
| - ["", "CSimpleStringT", True, "operator+=", "(wchar_t)", "", "Argument[-1]", "ReturnValue[*]", "taint", "manual"] | ||
| - ["", "CSimpleStringT", True, "operator+=", "(wchar_t)", "", "Argument[0]", "ReturnValue[*]", "taint", "manual"] | ||
| - ["", "CSimpleStringT", True, "operator+=", "(wchar_t)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] | ||
| - ["", "CSimpleStringT", True, "operator=", "", "", "Argument[*0]", "Argument[-1]", "value", "manual"] |
There was a problem hiding this comment.
Does operator= return a CSimpleStringT&? If so, Argument[*0] should propagate to ReturnValue[*] as well.
There was a problem hiding this comment.
Indeed it does: https://learn.microsoft.com/en-us/cpp/atl-mfc-shared/reference/csimplestringt-class?view=msvc-170#operator_eq. Turns out I actually forgot that flow in a bunch of other models. I've included all of those in e777377. Thanks!
geoffw0
left a comment
There was a problem hiding this comment.
Minor corrections / comments, otherwise LGTM. Thanks for addressing the missing operator= return value models in addition to the main purpose of this PR.
Co-authored-by: Geoffrey White <40627776+geoffw0@users.noreply.github.com>
Yet another round of 🦅-eyed reviewing, Geoffry! Thanks a lot. I've responded to all the comments now 🙇 |
Follow-up to #18136
Note that I also fixed another MaD bug: we didn't handle varargs. This has been fixed in c5bb907