| Index: test/NaCl/X86/pnacl-hides-sandbox-x86-64.c
|
| diff --git a/test/NaCl/X86/pnacl-hides-sandbox-x86-64.c b/test/NaCl/X86/pnacl-hides-sandbox-x86-64.c
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..e3ffba0baf66c8b98c3d82155cf7898982ead7fc
|
| --- /dev/null
|
| +++ b/test/NaCl/X86/pnacl-hides-sandbox-x86-64.c
|
| @@ -0,0 +1,54 @@
|
| +/*
|
| + Object file built using:
|
| + pnacl-clang -S -O0 -emit-llvm -o pnacl-hides-sandbox-x86-64.ll \
|
| + pnacl-hides-sandbox-x86-64.c
|
| +*/
|
| +
|
| +#include <stdlib.h>
|
| +#include <stdio.h>
|
| +
|
| +void TestDirectCall(void) {
|
| + extern void DirectCallTarget(void);
|
| + DirectCallTarget();
|
| +}
|
| +
|
| +void TestIndirectCall(void) {
|
| + extern void (*IndirectCallTarget)(void);
|
| + IndirectCallTarget();
|
| +}
|
| +
|
| +void TestMaskedFramePointer(int Arg) {
|
| + extern void Consume(void *);
|
| + // Calling alloca() is one way to force the rbp frame pointer.
|
| + void *Tmp = alloca(Arg);
|
| + Consume(Tmp);
|
| +}
|
| +
|
| +void TestMaskedFramePointerVarargs(int Arg, ...) {
|
| + extern void Consume(void *);
|
| + void *Tmp = alloca(Arg);
|
| + Consume(Tmp);
|
| +}
|
| +
|
| +void TestIndirectJump(int Arg) {
|
| + switch (Arg) {
|
| + case 2:
|
| + puts("Prime 1");
|
| + break;
|
| + case 3:
|
| + puts("Prime 2");
|
| + break;
|
| + case 5:
|
| + puts("Prime 3");
|
| + break;
|
| + case 7:
|
| + puts("Prime 4");
|
| + break;
|
| + case 11:
|
| + puts("Prime 5");
|
| + break;
|
| + }
|
| +}
|
| +
|
| +void TestReturn(void) {
|
| +}
|
|
|