1*67e74705SXin Li // RUN: %clang_cc1 -triple %itanium_abi_triple -emit-llvm %s -o - 2*67e74705SXin Li // RUN: %clang_cc1 -triple %ms_abi_triple -fno-rtti -emit-llvm %s -o - 3*67e74705SXin Li 4*67e74705SXin Li 5*67e74705SXin Li struct CallSite { 6*67e74705SXin Li int X; 7*67e74705SXin Li 8*67e74705SXin Li CallSite(const CallSite &CS); 9*67e74705SXin Li }; 10*67e74705SXin Li 11*67e74705SXin Li struct AliasAnalysis { 12*67e74705SXin Li int TD; 13*67e74705SXin Li 14*67e74705SXin Li virtual int getModRefInfo(CallSite CS); 15*67e74705SXin Li }; 16*67e74705SXin Li 17*67e74705SXin Li 18*67e74705SXin Li struct Pass { 19*67e74705SXin Li int X; 20*67e74705SXin Li virtual int foo(); 21*67e74705SXin Li }; 22*67e74705SXin Li 23*67e74705SXin Li struct AliasAnalysisCounter : public Pass, public AliasAnalysis { getModRefInfoAliasAnalysisCounter24*67e74705SXin Li int getModRefInfo(CallSite CS) { 25*67e74705SXin Li return 0; 26*67e74705SXin Li } 27*67e74705SXin Li }; 28*67e74705SXin Li 29*67e74705SXin Li AliasAnalysisCounter AAC; 30