This is an archive of the discontinued LLVM Phabricator instance.

[analyzer] Handle ObjC messages conservatively in CallDescription
ClosedPublic

Authored by xazax.hun on Sep 5 2017, 5:51 AM.

Details

Summary

The users of CallDescription no longer need to make sure that the called function is a C function. This makes the API usage easier and it conservatively will never match ObjC Messages. In the future, this construct might be extended to support overloading, ctors, dtors, messages.

Diff Detail

Repository
rL LLVM

Event Timeline

xazax.hun created this revision.Sep 5 2017, 5:51 AM
vsk added a subscriber: vsk.Sep 8 2017, 4:38 PM

Can you add a test?

xazax.hun updated this revision to Diff 120233.Oct 25 2017, 5:32 AM
  • Modify a test to trigger the assertion fail before the patch is applied.
dcoughlin edited edge metadata.Oct 25 2017, 9:13 AM

I think it would be better to add a new "test/Analysis/block-in-critical-section.m" file rather than enabling a random alpha checker in a file that tests the analyzer core.

I think it would be better to add a new "test/Analysis/block-in-critical-section.m" file rather than enabling a random alpha checker in a file that tests the analyzer core.

My reasoning was that the tested feature is within the core. The checker just happens to trigger this.

xazax.hun updated this revision to Diff 120598.Oct 27 2017, 7:22 AM
  • Added a separate test case as per Devin's suggestion
dcoughlin accepted this revision.Oct 27 2017, 10:08 AM

Thanks Gabor. Looks great to me!

This revision is now accepted and ready to land.Oct 27 2017, 10:08 AM
This revision was automatically updated to reflect the committed changes.