diff options
| author | Uneven Prankster <unevenprankster@protonmail.com> | 2023-07-17 01:34:34 -0300 |
|---|---|---|
| committer | Uneven Prankster <unevenprankster@protonmail.com> | 2023-07-17 01:34:34 -0300 |
| commit | 88d82c6eaee88398af1de57cddca692a1f74b087 (patch) | |
| tree | df492c2002a1820959703f4f481172cceafeb0a1 /tinycc/tests/tests2/88_codeopt.c | |
| parent | 111c133b939c15c57c90cd474d55e84928c6307a (diff) | |
Cleanup feels good! Big work coming up this week.
Diffstat (limited to 'tinycc/tests/tests2/88_codeopt.c')
| -rw-r--r-- | tinycc/tests/tests2/88_codeopt.c | 80 |
1 files changed, 0 insertions, 80 deletions
diff --git a/tinycc/tests/tests2/88_codeopt.c b/tinycc/tests/tests2/88_codeopt.c deleted file mode 100644 index 3faa5fa..0000000 --- a/tinycc/tests/tests2/88_codeopt.c +++ /dev/null @@ -1,80 +0,0 @@ -/* Check some way in where code suppression caused various - miscompilations. */ -extern int printf (const char *, ...); -typedef __SIZE_TYPE__ size_t; - -size_t _brk_start, _brk_end; -void * extend_brk(size_t size, size_t align) -{ - size_t mask = align - 1; - void *ret = 0; - - do { - if (__builtin_expect(!!(_brk_start == 0), 0)) - do { - printf("wrong1\n"); - } while (0); - } while (0); - _brk_end = (_brk_end + mask) & ~mask; - ret = (void *)_brk_end; - _brk_end += size; - - return ret; -} - -static void get_args (int a, int b) -{ - if (a != 1) - printf("wrong2\n"); - else - printf("okay\n"); -} - -void bla(void) -{ - int __ret = 42; - ({ - if (__builtin_expect(!!(0), 0)) { - if (__builtin_expect(!!__ret, 0)) - printf("wrong3\n"); - int x = !!(__ret); - } - __ret; - }); - get_args(!!__ret, sizeof(__ret)); -} - -int ext; - -void broken_jumpopt (int xxx) -{ - /* This was broken in 8227db3a2 by code suppression during suppressed - code :) */ - ext = (xxx || 1) || ((xxx && 1) || 1); - printf("okay: %d %d\n", xxx, ext); -} - -_Bool chk(unsigned long addr, unsigned long limit, unsigned long size) -{ - _Bool ret; - /* This just needs to compile, no runtime test. (And it doesn't compile - only with certain internal checking added that's not committed). */ - if (0) - ret = 0 != (!!(addr > limit - size)); - return 0; -} - -int main() -{ - void *r; - _brk_start = 1024; - _brk_end = 1024; - r = extend_brk (4096, 16); - if (!r) - printf("wrong4\n"); - else - printf("okay\n"); - bla(); - broken_jumpopt(42); - return 0; -} |
