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