xref: /llvm-project/bolt/test/X86/Inputs/inlined.cpp (revision 4c106cfdf7cf7eec861ad3983a3dd9a9e8f3a8ae)
1 extern "C" int printf(const char*, ...);
2 extern const char* question();
3 
4 inline int answer() __attribute__((always_inline));
answer()5 inline int answer() { return 42; }
6 
main(int argc,char * argv[])7 int main(int argc, char *argv[]) {
8   int ans;
9   if (argc == 1) {
10     ans = 0;
11   } else {
12     ans = argc;
13   }
14   printf("%s\n", question());
15   for (int i = 0; i < 10; ++i) {
16     int x = answer();
17     int y = answer();
18     ans += x - y;
19   }
20   // padding to make sure question() is inlineable
21   asm("nop;nop;nop;nop;nop;nop;nop;nop;nop;nop;nop;nop;nop;nop;nop;nop;");
22   return ans;
23 }
24