// RUN: %clang_analyze_cc1 -analyzer-checker=core,osx -analyzer-config ipa=dynamic-bifurcate -verify %s
// Category overrides a public method.
// Since class is private, we assume that it cannot be subclassed.
// False negative: this class is "privately subclassed". this is very rare
// in practice.
// The class is prvate and is not subclassed.
int
// When the called method is public (due to it being defined outside of main file),
// split the path and analyze both branches.
// In this case, p can be either the object of type MyParent* or MyClass*:
// - If it's MyParent*, getZero returns 0.
// - If it's MyClass*, getZero returns 1 and 'return 5/m' is reachable.
// Declaration is provate, but p can be a subclass (MyClass*).
int
// Even though the method is privately declared in the category, the parent
// declares the method as public. Assume the instance can be subclassed.
int
// Test public property - properties should always be inlined, regardless
// weither they are "public" or private.
int
int
// TODO: we do not handle synthesized properties yet.
int
// Test definition not available edge case.
id
id