// RUN: %clang_analyze_cc1 -analyzer-checker=core -verify %s
// rdar://problem/56586853
// expected-no-diagnostics
structData{int x;
Data *data;};intcompare(Data &a, Data &b){
Data *aData = a.data;
Data *bData = b.data;// Covers the cases where both pointers are null as well as both pointing to the same buffer.
if(aData == bData)return0;if(aData &&!bData)return1;if(!aData && bData)return-1;returncompare(*aData,*bData);// no-warning
}