19f3495aeaa24da4eacf8f6c274adcef65e2f3617Anna Zaks// RUN: %clang_cc1 -analyze -analyzer-checker=core,unix -verify %s
29f3495aeaa24da4eacf8f6c274adcef65e2f3617Anna Zaks// expected-no-diagnostics
39f3495aeaa24da4eacf8f6c274adcef65e2f3617Anna Zaks
49f3495aeaa24da4eacf8f6c274adcef65e2f3617Anna Zaksclass Loc {
59f3495aeaa24da4eacf8f6c274adcef65e2f3617Anna Zaks  int x;
69f3495aeaa24da4eacf8f6c274adcef65e2f3617Anna Zaks};
79f3495aeaa24da4eacf8f6c274adcef65e2f3617Anna Zaksclass P1 {
89f3495aeaa24da4eacf8f6c274adcef65e2f3617Anna Zakspublic:
99f3495aeaa24da4eacf8f6c274adcef65e2f3617Anna Zaks  Loc l;
109f3495aeaa24da4eacf8f6c274adcef65e2f3617Anna Zaks  void setLoc(Loc L) {
119f3495aeaa24da4eacf8f6c274adcef65e2f3617Anna Zaks    l = L;
129f3495aeaa24da4eacf8f6c274adcef65e2f3617Anna Zaks  }
139f3495aeaa24da4eacf8f6c274adcef65e2f3617Anna Zaks
149f3495aeaa24da4eacf8f6c274adcef65e2f3617Anna Zaks};
159f3495aeaa24da4eacf8f6c274adcef65e2f3617Anna Zaksclass P2 {
169f3495aeaa24da4eacf8f6c274adcef65e2f3617Anna Zakspublic:
179f3495aeaa24da4eacf8f6c274adcef65e2f3617Anna Zaks  int m;
189f3495aeaa24da4eacf8f6c274adcef65e2f3617Anna Zaks  int accessBase() {
199f3495aeaa24da4eacf8f6c274adcef65e2f3617Anna Zaks    return m;
209f3495aeaa24da4eacf8f6c274adcef65e2f3617Anna Zaks  }
219f3495aeaa24da4eacf8f6c274adcef65e2f3617Anna Zaks};
229f3495aeaa24da4eacf8f6c274adcef65e2f3617Anna Zaksclass Derived: public P1, public P2 {
239f3495aeaa24da4eacf8f6c274adcef65e2f3617Anna Zaks};
249f3495aeaa24da4eacf8f6c274adcef65e2f3617Anna Zaksint radar13445834(Derived *Builder, Loc l) {
259f3495aeaa24da4eacf8f6c274adcef65e2f3617Anna Zaks  Builder->setLoc(l);
269f3495aeaa24da4eacf8f6c274adcef65e2f3617Anna Zaks  return Builder->accessBase();
279f3495aeaa24da4eacf8f6c274adcef65e2f3617Anna Zaks
289f3495aeaa24da4eacf8f6c274adcef65e2f3617Anna Zaks}