[PATCH] D137826: [clang] Allow comparing pointers to string literals
Timm Bäder via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Thu Nov 17 00:07:28 PST 2022
tbaeder added inline comments.
================
Comment at: clang/lib/AST/ExprConstant.cpp:12951-12954
+ // ObjC's @encode()
+ if (isa<ObjCEncodeExpr>(E->getLHS()->IgnoreParenImpCasts()) ||
+ isa<ObjCEncodeExpr>(E->getRHS()->IgnoreParenImpCasts()))
return Error(E);
----------------
tahonermann wrote:
> A comment to explain this change would be helpful. It isn't intuitive (for me anyway) why Objective-C's `@encode` would require special handling here. Was this needed to avoid a test failure?
In `../clang/test/CodeGenObjC/encode-test-4.m`:
```
int a(void) {
return @encode(int) == @encode(int) &&
@encode(Color) == @encode(long) &&
@encode(PrintColor) == @encode(int);
}
```
The comparisons need to be rejected here and are folded to a `1` later on, it seems. Letting the comparison happen will lead to a `0`.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D137826/new/
https://reviews.llvm.org/D137826
More information about the cfe-commits
mailing list