This is an archive of the discontinued LLVM Phabricator instance.

[Static Analyzer] General type checker based on dynamic type information.
ClosedPublic

Authored by xazax.hun on Sep 18 2015, 10:19 AM.

Details

Summary

This patch adds a checker that utilizes the information that was collected by DynamicTypePropagation and warns when the static type contradicts the dynamic type.

This checker also replaces the AST matching logic in ObjCGenericsChecker's return type checking which was error prone and fragile. As a positive side effect this change also reduced the false negative cases.

Diff Detail

Repository
rL LLVM

Event Timeline

xazax.hun updated this revision to Diff 35099.Sep 18 2015, 10:19 AM
xazax.hun retitled this revision from to [Static Analyzer] General type checker based on dynamic type information..
xazax.hun updated this object.
xazax.hun added a subscriber: cfe-commits.
zaks.anna accepted this revision.Sep 18 2015, 1:46 PM
zaks.anna edited edge metadata.
zaks.anna added inline comments.
test/Analysis/generics.m
239 ↗(On Diff #35099)

Could you replace these with the full error message. It would much more readable this way.

This revision is now accepted and ready to land.Sep 18 2015, 1:46 PM
This revision was automatically updated to reflect the committed changes.