danielmarjamaki added a comment.
In https://reviews.llvm.org/D21134#508524, @jroelofs wrote:
> I think the replacement is wrong for something like:
>
> int *arr; int offs1, offs2;
> offs1[arr + offs2] = 42;
>
>
> which I think would give:
>
> int *arr; int offs1, offs2;
> arr + offs2[offs1] = 42;
>
>
> If the precedence of the "indexing" argument is less than that of the
> subscript operator, then you need to insert parens:
>
> int *arr; int offs1, offs2;
> (arr + offs2)[offs1] = 42;
>
I don't think so. The matcher says:
hasRHS(ignoringParenImpCasts(
anyOf(stringLiteral(), declRefExpr(hasType(pointsTo(qualType()))),
memberExpr(hasType(pointsTo(qualType()))
I think it's hard to know what the replaced code should be. In some cases it
might be better with:
arr[offs1 + offs2] = 42;
https://reviews.llvm.org/D21134
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits