xref: /llvm-project/llvm/test/DebugInfo/PDB/Inputs/global-name-lookup.cpp (revision 5989281cf3af52fc07ad458297e70f559db02de7)
1*5989281cSZachary Turner // Build with "cl.exe /Z7 /GR- /GS- -EHs-c- every-function.cpp /link /debug /nodefaultlib /incremental:no /entry:main"
2*5989281cSZachary Turner 
operator delete(void *,unsigned int)3*5989281cSZachary Turner void __cdecl operator delete(void *, unsigned int) {}
operator delete(void *,unsigned __int64)4*5989281cSZachary Turner void __cdecl operator delete(void *, unsigned __int64) {}
5*5989281cSZachary Turner 
6*5989281cSZachary Turner // Note: It's important that this particular function hashes to a higher bucket
7*5989281cSZachary Turner // number than any other function in the PDB.  When changing this test, ensure
8*5989281cSZachary Turner // that this requirement still holds.  This is because we need to test lookup
9*5989281cSZachary Turner // in the edge case where we try to look something up in the final bucket, which
10*5989281cSZachary Turner // has special logic.
OvlGlobalFn(int X)11*5989281cSZachary Turner int OvlGlobalFn(int X) { return X + 42; }
OvlGlobalFn(int X,int Y)12*5989281cSZachary Turner int OvlGlobalFn(int X, int Y) { return X + Y + 42; }
OvlGlobalFn(int X,int Y,int Z)13*5989281cSZachary Turner int OvlGlobalFn(int X, int Y, int Z) { return X + Y + Z + 42; }
14*5989281cSZachary Turner 
StaticFn(int X)15*5989281cSZachary Turner static int StaticFn(int X) {
16*5989281cSZachary Turner   return X + 42;
17*5989281cSZachary Turner }
18*5989281cSZachary Turner 
main(int argc,char ** argv)19*5989281cSZachary Turner int main(int argc, char **argv) {
20*5989281cSZachary Turner   // Make sure they don't get optimized out.
21*5989281cSZachary Turner   int Result = OvlGlobalFn(argc) + OvlGlobalFn(argc, argc) + OvlGlobalFn(argc, argc, argc) + StaticFn(argc);
22*5989281cSZachary Turner   return Result;
23*5989281cSZachary Turner }
24