diff options
Diffstat (limited to 'validation')
| -rw-r--r-- | validation/inline-early/unreplaced-abstract.c | 28 | ||||
| -rw-r--r-- | validation/optim/devirtualize0.c | 17 |
2 files changed, 45 insertions, 0 deletions
diff --git a/validation/inline-early/unreplaced-abstract.c b/validation/inline-early/unreplaced-abstract.c new file mode 100644 index 00000000..e38cd668 --- /dev/null +++ b/validation/inline-early/unreplaced-abstract.c @@ -0,0 +1,28 @@ +static inline void f0(void) { } +static inline long f1(long a) { return a + 1;} + +_Static_assert([typeof(f0)] != [typeof(f1)]); + + +static inline void g0(void) { } +static inline long g1(long a) { return a + 1;} + +extern long goo(long a); +long goo(long a) +{ + g0(); + return g1(a); +} + +_Static_assert([typeof(g0)] != [typeof(g1)]); + +extern long moo(long a); +long moo(long a) +{ + typeof(f1) *f = g1; + return f(a); +} + +/* + * check-name: unreplaced-abstract + */ diff --git a/validation/optim/devirtualize0.c b/validation/optim/devirtualize0.c new file mode 100644 index 00000000..7079e790 --- /dev/null +++ b/validation/optim/devirtualize0.c @@ -0,0 +1,17 @@ +static inline long f1(long x) { return x + 1;} + +extern long foo(long a); +long foo(long a) +{ + typeof(f1) *f = f1; + return f(a); +} + +/* + * check-name: devirtualize0 + * check-command: test-linearize -Wno-decl $file + * check-known-to-fail + * + * check-output-ignore + * check-output-excludes: call\\. + */ |
