diff options
Diffstat (limited to 'clang/test/CodeGen/msp430-reloc.c')
-rw-r--r-- | clang/test/CodeGen/msp430-reloc.c | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/clang/test/CodeGen/msp430-reloc.c b/clang/test/CodeGen/msp430-reloc.c new file mode 100644 index 00000000000..f3d858839ec --- /dev/null +++ b/clang/test/CodeGen/msp430-reloc.c @@ -0,0 +1,30 @@ +// REQUIRES: msp430-registered-target +// RUN: %clang -target msp430 -fPIC -S %s -o - | FileCheck %s + +// Check the compilation does not crash as it was crashing before with "-fPIC" enabled + +void *alloca(unsigned int size); + +// CHECK: .globl foo +short foo(char** data, char encoding) +{ + char* encoding_addr = alloca(sizeof(char)); + *encoding_addr = encoding; + + char tmp3 = *encoding_addr; + short conv2 = tmp3; + short and = conv2 & 0xf; + + switch (and) + { + case 0 : + case 4 : + case 10 : + return 1; + case 11 : + return 2; + } + + return 0; +} + |