1*f63da479SRyosuke Niwa // RUN: %clang_analyze_cc1 -analyzer-checker=alpha.webkit.UncountedCallArgsChecker -verify %s
2*f63da479SRyosuke Niwa // expected-no-diagnostics
3*f63da479SRyosuke Niwa 
4*f63da479SRyosuke Niwa #include "mock-types.h"
5*f63da479SRyosuke Niwa 
6*f63da479SRyosuke Niwa class Base {
7*f63da479SRyosuke Niwa public:
8*f63da479SRyosuke Niwa     virtual ~Base();
9*f63da479SRyosuke Niwa     void ref() const;
10*f63da479SRyosuke Niwa     void deref() const;
11*f63da479SRyosuke Niwa };
12*f63da479SRyosuke Niwa 
13*f63da479SRyosuke Niwa class Event : public Base {
14*f63da479SRyosuke Niwa protected:
15*f63da479SRyosuke Niwa     explicit Event();
16*f63da479SRyosuke Niwa };
17*f63da479SRyosuke Niwa 
18*f63da479SRyosuke Niwa class SubEvent : public Event {
19*f63da479SRyosuke Niwa public:
20*f63da479SRyosuke Niwa     static Ref<SubEvent> create();
21*f63da479SRyosuke Niwa private:
22*f63da479SRyosuke Niwa     SubEvent() = default;
23*f63da479SRyosuke Niwa };
24*f63da479SRyosuke Niwa 
25*f63da479SRyosuke Niwa void someFunction(Base&);
26*f63da479SRyosuke Niwa 
test()27*f63da479SRyosuke Niwa static void test()
28*f63da479SRyosuke Niwa {
29*f63da479SRyosuke Niwa     someFunction(SubEvent::create());
30*f63da479SRyosuke Niwa }
31