[PATCH] D138796: ObjCARC: Try to fix faulty tests

Duncan P. N. Exon Smith via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Dec 2 15:41:29 PST 2022


dexonsmith added a comment.

In D138796#3957499 <https://reviews.llvm.org/D138796#3957499>, @ahatanak wrote:

> I confirmed ARC optimizer hasn't removed the retain/release pairs in both functions at least since October 2017. The retain/release pair in `@"\01-[Top0 _getX]"` can be removed. I'm not sure about the one in `@"\01-[A z]"`.

Great progress; seems to me like the regression is old enough it might not be an easy fix. Are you okay with the tests being cleaned up to reflect reality in the meantime?

One option would be this commit as-is (maybe with a comment in the regressed test?). Another alternative would be to move the tests that had bitrotted to a different file, which is XFAIL'ed for now while you investigate how/whether to get them passing again; this has the benefit of making the expected/desired behaviour clear.

WDYT?



================
Comment at: llvm/test/Transforms/ObjCARC/basic.ll:2715
+; CHECK: tail call void @llvm.objc.release(i8* [[SELF_CAST1]])
+; CHECK: }
+define { <2 x float>, <2 x float> } @"\01-[A z]"({}* %self, i8* nocapture %_cmd) nounwind {
----------------
arsenm wrote:
> dexonsmith wrote:
> > Can/should this be `CHECK: [^]}` to confirm it's a scoping brace instead of a type brace?
> [^]} doesn't work, but {{^}}} does (which looks like a bug in the check itself)
Right, right; I misremembered how to get into regex mode. `{{^}}}` seems correct.


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

https://reviews.llvm.org/D138796



More information about the llvm-commits mailing list