1*93a2a8cbSRyosuke Niwa // RUN: %clang_analyze_cc1 -analyzer-checker=alpha.webkit.UncountedLocalVarsChecker -verify %s 2*93a2a8cbSRyosuke Niwa 3*93a2a8cbSRyosuke Niwa #include "mock-types.h" 4*93a2a8cbSRyosuke Niwa 5*93a2a8cbSRyosuke Niwa class RenderStyle; 6*93a2a8cbSRyosuke Niwa 7*93a2a8cbSRyosuke Niwa class FillLayer { 8*93a2a8cbSRyosuke Niwa public: 9*93a2a8cbSRyosuke Niwa void ref() const; 10*93a2a8cbSRyosuke Niwa void deref() const; 11*93a2a8cbSRyosuke Niwa }; 12*93a2a8cbSRyosuke Niwa 13*93a2a8cbSRyosuke Niwa class FillLayersPropertyWrapper { 14*93a2a8cbSRyosuke Niwa public: 15*93a2a8cbSRyosuke Niwa typedef const FillLayer& (RenderStyle::*LayersGetter)() const; 16*93a2a8cbSRyosuke Niwa 17*93a2a8cbSRyosuke Niwa private: canInterpolate(const RenderStyle & from) const18*93a2a8cbSRyosuke Niwa bool canInterpolate(const RenderStyle& from) const 19*93a2a8cbSRyosuke Niwa { 20*93a2a8cbSRyosuke Niwa auto* fromLayer = &(from.*m_layersGetter)(); 21*93a2a8cbSRyosuke Niwa // expected-warning@-1{{Local variable 'fromLayer' is uncounted and unsafe}} 22*93a2a8cbSRyosuke Niwa return true; 23*93a2a8cbSRyosuke Niwa } 24*93a2a8cbSRyosuke Niwa 25*93a2a8cbSRyosuke Niwa LayersGetter m_layersGetter; 26*93a2a8cbSRyosuke Niwa }; 27