OLD | NEW |
(Empty) | |
| 1 /* |
| 2 Object file built using: |
| 3 pnacl-clang -S -O0 -emit-llvm -o pnacl-hides-sandbox-x86-64.ll \ |
| 4 pnacl-hides-sandbox-x86-64.c |
| 5 */ |
| 6 |
| 7 #include <stdlib.h> |
| 8 #include <stdio.h> |
| 9 |
| 10 void TestDirectCall(void) { |
| 11 extern void DirectCallTarget(void); |
| 12 DirectCallTarget(); |
| 13 } |
| 14 |
| 15 void TestIndirectCall(void) { |
| 16 extern void (*IndirectCallTarget)(void); |
| 17 IndirectCallTarget(); |
| 18 } |
| 19 |
| 20 void TestMaskedFramePointer(int Arg) { |
| 21 extern void Consume(void *); |
| 22 // Calling alloca() is one way to force the rbp frame pointer. |
| 23 void *Tmp = alloca(Arg); |
| 24 Consume(Tmp); |
| 25 } |
| 26 |
| 27 void TestMaskedFramePointerVarargs(int Arg, ...) { |
| 28 extern void Consume(void *); |
| 29 void *Tmp = alloca(Arg); |
| 30 Consume(Tmp); |
| 31 } |
| 32 |
| 33 void TestIndirectJump(int Arg) { |
| 34 switch (Arg) { |
| 35 case 2: |
| 36 puts("Prime 1"); |
| 37 break; |
| 38 case 3: |
| 39 puts("Prime 2"); |
| 40 break; |
| 41 case 5: |
| 42 puts("Prime 3"); |
| 43 break; |
| 44 case 7: |
| 45 puts("Prime 4"); |
| 46 break; |
| 47 case 11: |
| 48 puts("Prime 5"); |
| 49 break; |
| 50 } |
| 51 } |
| 52 |
| 53 void TestReturn(void) { |
| 54 } |
OLD | NEW |