| // RUN: %clang_analyze_cc1 -analyzer-checker=core,osx -analyzer-output=text -verify %s |
| // expected-no-diagnostics |
| typedef struct _CFURLCacheRef *CFURLCacheRef; |
| CFTypeRef CustomCFRetain(CFTypeRef); |
| CFTypeRef returnFieldAtPlus0() { |
| CustomCFRetain(s1->returnFieldAtPlus0()); |
| // Definitely no leak end-of-path note here. The retained pointer |
| // is still accessible through s1 and s2. |
| ((void) 0); // no-warning |
| // FIXME: Ideally we need to warn after this invalidate(). The per-function |
| // retain-release contract is violated: the programmer should release |
| // the symbol after it was retained, within the same function. |