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 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits