diff options
author | Daniel Dunbar <daniel@zuster.org> | 2008-10-04 23:47:28 +0000 |
---|---|---|
committer | Daniel Dunbar <daniel@zuster.org> | 2008-10-04 23:47:28 +0000 |
commit | 417dd179b2e92dcad3adb817b311e6297321a583 (patch) | |
tree | 6e44af8a3fc18e643ff4f70b5b6e185d6efadadb /test/Coverage/c-language-features.inc | |
parent | b0adbba45c3537cba66abd788eff884ed621a7d2 (diff) |
Add coverage tests of C and Obj-C language features.
- AST printing, dumping, serialization, codegen.
- HTML printing.
- Parser callbacks.
Several of these are XFAIL because they trigger unimplemented code.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57081 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Coverage/c-language-features.inc')
-rw-r--r-- | test/Coverage/c-language-features.inc | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/test/Coverage/c-language-features.inc b/test/Coverage/c-language-features.inc new file mode 100644 index 0000000000..a2dcb28e94 --- /dev/null +++ b/test/Coverage/c-language-features.inc @@ -0,0 +1,104 @@ +//-*- C -*- + +/* This is a + multiline comment */ + +// Intended to exercise all syntactic parts of the C language. + +int g0; +int g1, g2; + +struct s0; + +struct s0 { + int x; +}; + +int g3 = 10; + +__asm(""); + +typedef int td0; + +td0 g4; + +enum e0 { + ec0 +}; + +static void f0(int x) { +} + +inline void f0_0(int x) { + ; +} + +extern void f0_1(int x) { +} + +void f1(int, ...); + +// Statements. +void f2() { + for (;;) { + break; + continue; + } + + while (0) { + } + + do { + } while (0); + + void *label = &&theif; + goto *label; + + goto theif; +theif: + if (0) { + ; + } else if (0) { + } else { + } + + switch(0) { + case 0: + case 1 ... 2: + break; + default: + break; + } + + asm ("nop"); + + return; +} + +// Expressions. + +#include <stdarg.h> + +typedef struct ipair { + int first, second; +} ipair; + +void f4(int a0, int a1, int a2, va_list ap) { + int t0 = a0 ? a1 : a2; + float t1 = (float) a0; + ipair t2 = {1, 2}; + int t3 = sizeof(ipair); + ipair t4; + t4 = (ipair) {1, 2}; + extern int g(int); + int t5 = g(a0); + int t6 = t4.first; + int t7[10]; + int t8 = t7[a0]; + t8++; + const char *t9 = __FUNCTION__; + char t10 = 'x'; + int t11 = __builtin_offsetof(ipair, first); + int t12 = __builtin_types_compatible_p(ipair, int); + int t13 = va_arg(ap, int); +} |