inclyc added a comment.

In D131314#3710331 <https://reviews.llvm.org/D131314#3710331>, @aaron.ballman 
wrote:

> In D131314#3707131 <https://reviews.llvm.org/D131314#3707131>, @inclyc wrote:
>
>> ping
>
> FWIW, we usually only ping a review that hasn't had any activity in a week or 
> more (it's not uncommon for reviews to sit for a few days while people think 
> about them or reviewers are busy on other stuff).
>
> I've not had the chance to do an in-depth review yet, but I have two thoughts 
> I can share early on. I think you can simplify the patch a little bit by 
> treating a string literal and an initializer list the same way (using an 
> iterator to walk over the elements) instead of ginning up a fake 
> `StringLiteral` AST node (that's a very heavy handed way to implement this). 
> However, even with that simplification, I'm not certain the use cases for the 
> diagnostic happen enough to warrant this large of a change in how we process 
> format strings. I had encouraged such a diagnostic given the equivalence of 
> the construct with string literals, but I was imagining that the support 
> would be a few lines of code rather than anything substantial like this. 
> Perhaps you can find a way to make the changes less invasive, but if not, I 
> think we may want to hold off on this change until a user files an issue 
> pointing out some real world code that would be easier to fix if they had 
> such a diagnostic.

Clang seems to depend class `FormatStringLiteral`  when performing format 
string checking, which has its `SourceLocation`, a wrapped pointer. With these 
information we can generate FixIt Hints directly on source codes. In previous 
version, we probably haven't even considered checking the format string 
evaluated from `InitListExpr` (just consider it is not a string literal). I've 
tried adding some ways to treat them as equals before, but it seems more 
invasive than this patch. Actually, I don't think any user would ever define a 
format string like `{'%', 'd', 0}` (That's exactly the reason I split format 
string checks in two patches). So maybe we should abandon this patch because 
there are no  enough benefits to apply this?

> but it seems more invasive than this patch.

It may be necessary to separate out the existing parts that check for 
formatting strings and related location information, because `InitListExpr` may 
not have proper information of source code location that can be determined 
during the format string checking.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D131314/new/

https://reviews.llvm.org/D131314

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to