From 8c01d27f709e6c2dc61c3832bf2506be1e5ab10f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nguy=E1=BB=85n=20Gia=20Phong?= Date: Fri, 6 Feb 2026 14:04:34 +0900 Subject: [PATCH 1/4] Comply better with C99 where GCC is not specified --- test/regtest/test_c.c | 11 +- test/regtest/trace.exp | 5084 ++++++++++++++++++++-------------------- 2 files changed, 2550 insertions(+), 2545 deletions(-) diff --git a/test/regtest/test_c.c b/test/regtest/test_c.c index a891191..57ba057 100644 --- a/test/regtest/test_c.c +++ b/test/regtest/test_c.c @@ -2,12 +2,17 @@ #include #include #include +#include #ifndef putchar #undef putchar #endif -asm ( +#ifndef __GNUC__ +#define __asm__ asm +#endif + +__asm__ ( ".globl entry\n" ".set entry,0x0\n" ); @@ -69,12 +74,12 @@ __attribute__((__noinline__)) void triforce(ssize_t n) void data_func_2(void) { printf("invoked data_func()\n"); - asm volatile ("nop"); + __asm__ volatile ("nop"); } static void data_func(void) { - asm volatile ( + __asm__ volatile ( "xchg %r15, %r15\n" "callq data_func_2"); } diff --git a/test/regtest/trace.exp b/test/regtest/trace.exp index 3c40e26..651701c 100644 --- a/test/regtest/trace.exp +++ b/test/regtest/trace.exp @@ -1,16 +1,11 @@ -test_c.c:98 -test_c.c:99 -test_c.c:100 -Hello world! -test_c.c:102 test_c.c:103 test_c.c:104 +test_c.c:105 +Hello world! +test_c.c:107 +test_c.c:108 test_c.c:109 -test_c.c:16 -test_c.c:17 -test_c.c:18 -test_c.c:19 -test_c.c:20 +test_c.c:114 test_c.c:21 test_c.c:22 test_c.c:23 @@ -22,2658 +17,2663 @@ test_c.c:28 test_c.c:29 test_c.c:30 test_c.c:31 -test_c.c:110 -test_c.c:111 -Hello world! -test_c.c:112 -test_c.c:114 +test_c.c:32 +test_c.c:33 test_c.c:34 test_c.c:35 -test_c.c:37 +test_c.c:36 +test_c.c:115 +test_c.c:116 +Hello world! +test_c.c:117 +test_c.c:119 +test_c.c:39 test_c.c:40 -test_c.c:34 -test_c.c:35 -test_c.c:37 +test_c.c:42 +test_c.c:45 +test_c.c:39 test_c.c:40 -test_c.c:34 -test_c.c:35 -test_c.c:37 +test_c.c:42 +test_c.c:45 +test_c.c:39 test_c.c:40 -test_c.c:34 -test_c.c:35 -test_c.c:37 +test_c.c:42 +test_c.c:45 +test_c.c:39 test_c.c:40 -test_c.c:34 -test_c.c:35 -test_c.c:37 +test_c.c:42 +test_c.c:45 +test_c.c:39 test_c.c:40 -test_c.c:34 -test_c.c:35 -test_c.c:37 +test_c.c:42 +test_c.c:45 +test_c.c:39 test_c.c:40 -test_c.c:34 -test_c.c:35 -test_c.c:37 +test_c.c:42 +test_c.c:45 +test_c.c:39 test_c.c:40 -test_c.c:34 -test_c.c:35 -test_c.c:37 +test_c.c:42 +test_c.c:45 +test_c.c:39 test_c.c:40 -test_c.c:34 -test_c.c:35 -test_c.c:37 +test_c.c:42 +test_c.c:45 +test_c.c:39 test_c.c:40 -test_c.c:34 -test_c.c:35 -test_c.c:37 -test_c.c:38 -test_c.c:41 -test_c.c:34 -test_c.c:35 -test_c.c:36 -test_c.c:41 -test_c.c:41 -test_c.c:34 -test_c.c:35 -test_c.c:37 -test_c.c:38 -test_c.c:41 -test_c.c:41 -test_c.c:34 -test_c.c:35 -test_c.c:37 +test_c.c:42 +test_c.c:45 +test_c.c:39 +test_c.c:40 +test_c.c:42 +test_c.c:43 +test_c.c:46 +test_c.c:39 test_c.c:40 -test_c.c:34 -test_c.c:35 -test_c.c:37 -test_c.c:38 -test_c.c:41 -test_c.c:34 -test_c.c:35 -test_c.c:36 -test_c.c:41 -test_c.c:41 test_c.c:41 -test_c.c:34 -test_c.c:35 -test_c.c:37 +test_c.c:46 +test_c.c:46 +test_c.c:39 test_c.c:40 -test_c.c:34 -test_c.c:35 -test_c.c:37 +test_c.c:42 +test_c.c:43 +test_c.c:46 +test_c.c:46 +test_c.c:39 +test_c.c:40 +test_c.c:42 +test_c.c:45 +test_c.c:39 +test_c.c:40 +test_c.c:42 +test_c.c:43 +test_c.c:46 +test_c.c:39 test_c.c:40 -test_c.c:34 -test_c.c:35 -test_c.c:37 -test_c.c:38 -test_c.c:41 -test_c.c:34 -test_c.c:35 -test_c.c:36 -test_c.c:41 -test_c.c:41 -test_c.c:34 -test_c.c:35 -test_c.c:37 -test_c.c:38 -test_c.c:41 -test_c.c:41 test_c.c:41 -test_c.c:34 -test_c.c:35 -test_c.c:37 +test_c.c:46 +test_c.c:46 +test_c.c:46 +test_c.c:39 test_c.c:40 -test_c.c:34 -test_c.c:35 -test_c.c:37 +test_c.c:42 +test_c.c:45 +test_c.c:39 test_c.c:40 -test_c.c:34 -test_c.c:35 -test_c.c:37 +test_c.c:42 +test_c.c:45 +test_c.c:39 test_c.c:40 -test_c.c:34 -test_c.c:35 -test_c.c:37 -test_c.c:38 -test_c.c:41 -test_c.c:34 -test_c.c:35 -test_c.c:36 -test_c.c:41 -test_c.c:41 -test_c.c:34 -test_c.c:35 -test_c.c:37 -test_c.c:38 -test_c.c:41 -test_c.c:41 -test_c.c:34 -test_c.c:35 -test_c.c:37 +test_c.c:42 +test_c.c:43 +test_c.c:46 +test_c.c:39 test_c.c:40 -test_c.c:34 -test_c.c:35 -test_c.c:37 -test_c.c:38 -test_c.c:41 -test_c.c:34 -test_c.c:35 -test_c.c:36 -test_c.c:41 -test_c.c:41 -test_c.c:41 test_c.c:41 -test_c.c:34 -test_c.c:35 -test_c.c:37 +test_c.c:46 +test_c.c:46 +test_c.c:39 test_c.c:40 -test_c.c:34 -test_c.c:35 -test_c.c:37 +test_c.c:42 +test_c.c:43 +test_c.c:46 +test_c.c:46 +test_c.c:46 +test_c.c:39 test_c.c:40 -test_c.c:34 -test_c.c:35 -test_c.c:37 +test_c.c:42 +test_c.c:45 +test_c.c:39 test_c.c:40 -test_c.c:34 -test_c.c:35 -test_c.c:37 +test_c.c:42 +test_c.c:45 +test_c.c:39 test_c.c:40 -test_c.c:34 -test_c.c:35 -test_c.c:37 -test_c.c:38 -test_c.c:41 -test_c.c:34 -test_c.c:35 -test_c.c:36 -test_c.c:41 -test_c.c:41 -test_c.c:34 -test_c.c:35 -test_c.c:37 -test_c.c:38 -test_c.c:41 -test_c.c:41 -test_c.c:34 -test_c.c:35 -test_c.c:37 +test_c.c:42 +test_c.c:45 +test_c.c:39 +test_c.c:40 +test_c.c:42 +test_c.c:43 +test_c.c:46 +test_c.c:39 test_c.c:40 -test_c.c:34 -test_c.c:35 -test_c.c:37 -test_c.c:38 -test_c.c:41 -test_c.c:34 -test_c.c:35 -test_c.c:36 -test_c.c:41 -test_c.c:41 test_c.c:41 -test_c.c:34 -test_c.c:35 -test_c.c:37 +test_c.c:46 +test_c.c:46 +test_c.c:39 test_c.c:40 -test_c.c:34 -test_c.c:35 -test_c.c:37 +test_c.c:42 +test_c.c:43 +test_c.c:46 +test_c.c:46 +test_c.c:39 +test_c.c:40 +test_c.c:42 +test_c.c:45 +test_c.c:39 +test_c.c:40 +test_c.c:42 +test_c.c:43 +test_c.c:46 +test_c.c:39 test_c.c:40 -test_c.c:34 -test_c.c:35 -test_c.c:37 -test_c.c:38 -test_c.c:41 -test_c.c:34 -test_c.c:35 -test_c.c:36 -test_c.c:41 -test_c.c:41 -test_c.c:34 -test_c.c:35 -test_c.c:37 -test_c.c:38 -test_c.c:41 -test_c.c:41 -test_c.c:41 test_c.c:41 -test_c.c:34 -test_c.c:35 -test_c.c:37 +test_c.c:46 +test_c.c:46 +test_c.c:46 +test_c.c:46 +test_c.c:39 test_c.c:40 -test_c.c:34 -test_c.c:35 -test_c.c:37 +test_c.c:42 +test_c.c:45 +test_c.c:39 test_c.c:40 -test_c.c:34 -test_c.c:35 -test_c.c:37 +test_c.c:42 +test_c.c:45 +test_c.c:39 test_c.c:40 -test_c.c:34 -test_c.c:35 -test_c.c:37 +test_c.c:42 +test_c.c:45 +test_c.c:39 test_c.c:40 -test_c.c:34 -test_c.c:35 -test_c.c:37 +test_c.c:42 +test_c.c:45 +test_c.c:39 test_c.c:40 -test_c.c:34 -test_c.c:35 -test_c.c:37 -test_c.c:38 -test_c.c:41 -test_c.c:34 -test_c.c:35 -test_c.c:36 -test_c.c:41 -test_c.c:41 -test_c.c:34 -test_c.c:35 -test_c.c:37 -test_c.c:38 -test_c.c:41 -test_c.c:41 -test_c.c:34 -test_c.c:35 -test_c.c:37 +test_c.c:42 +test_c.c:43 +test_c.c:46 +test_c.c:39 test_c.c:40 -test_c.c:34 -test_c.c:35 -test_c.c:37 -test_c.c:38 -test_c.c:41 -test_c.c:34 -test_c.c:35 -test_c.c:36 test_c.c:41 -test_c.c:41 -test_c.c:41 -test_c.c:34 -test_c.c:35 -test_c.c:37 +test_c.c:46 +test_c.c:46 +test_c.c:39 test_c.c:40 -test_c.c:34 -test_c.c:35 -test_c.c:37 +test_c.c:42 +test_c.c:43 +test_c.c:46 +test_c.c:46 +test_c.c:39 +test_c.c:40 +test_c.c:42 +test_c.c:45 +test_c.c:39 +test_c.c:40 +test_c.c:42 +test_c.c:43 +test_c.c:46 +test_c.c:39 test_c.c:40 -test_c.c:34 -test_c.c:35 -test_c.c:37 -test_c.c:38 -test_c.c:41 -test_c.c:34 -test_c.c:35 -test_c.c:36 -test_c.c:41 test_c.c:41 -test_c.c:34 -test_c.c:35 -test_c.c:37 -test_c.c:38 +test_c.c:46 +test_c.c:46 +test_c.c:46 +test_c.c:39 +test_c.c:40 +test_c.c:42 +test_c.c:45 +test_c.c:39 +test_c.c:40 +test_c.c:42 +test_c.c:45 +test_c.c:39 +test_c.c:40 +test_c.c:42 +test_c.c:43 +test_c.c:46 +test_c.c:39 +test_c.c:40 test_c.c:41 +test_c.c:46 +test_c.c:46 +test_c.c:39 +test_c.c:40 +test_c.c:42 +test_c.c:43 +test_c.c:46 +test_c.c:46 +test_c.c:46 +test_c.c:46 +test_c.c:39 +test_c.c:40 +test_c.c:42 +test_c.c:45 +test_c.c:39 +test_c.c:40 +test_c.c:42 +test_c.c:45 +test_c.c:39 +test_c.c:40 +test_c.c:42 +test_c.c:45 +test_c.c:39 +test_c.c:40 +test_c.c:42 +test_c.c:45 +test_c.c:39 +test_c.c:40 +test_c.c:42 +test_c.c:45 +test_c.c:39 +test_c.c:40 +test_c.c:42 +test_c.c:43 +test_c.c:46 +test_c.c:39 +test_c.c:40 test_c.c:41 +test_c.c:46 +test_c.c:46 +test_c.c:39 +test_c.c:40 +test_c.c:42 +test_c.c:43 +test_c.c:46 +test_c.c:46 +test_c.c:39 +test_c.c:40 +test_c.c:42 +test_c.c:45 +test_c.c:39 +test_c.c:40 +test_c.c:42 +test_c.c:43 +test_c.c:46 +test_c.c:39 +test_c.c:40 test_c.c:41 -test_c.c:34 -test_c.c:35 -test_c.c:37 +test_c.c:46 +test_c.c:46 +test_c.c:46 +test_c.c:39 test_c.c:40 -test_c.c:34 -test_c.c:35 -test_c.c:37 +test_c.c:42 +test_c.c:45 +test_c.c:39 test_c.c:40 -test_c.c:34 -test_c.c:35 -test_c.c:37 +test_c.c:42 +test_c.c:45 +test_c.c:39 +test_c.c:40 +test_c.c:42 +test_c.c:43 +test_c.c:46 +test_c.c:39 test_c.c:40 -test_c.c:34 -test_c.c:35 -test_c.c:37 -test_c.c:38 test_c.c:41 -test_c.c:34 -test_c.c:35 -test_c.c:36 -test_c.c:41 -test_c.c:41 -test_c.c:34 -test_c.c:35 -test_c.c:37 -test_c.c:38 -test_c.c:41 -test_c.c:41 -test_c.c:34 -test_c.c:35 -test_c.c:37 +test_c.c:46 +test_c.c:46 +test_c.c:39 +test_c.c:40 +test_c.c:42 +test_c.c:43 +test_c.c:46 +test_c.c:46 +test_c.c:46 +test_c.c:39 +test_c.c:40 +test_c.c:42 +test_c.c:45 +test_c.c:39 +test_c.c:40 +test_c.c:42 +test_c.c:45 +test_c.c:39 +test_c.c:40 +test_c.c:42 +test_c.c:45 +test_c.c:39 +test_c.c:40 +test_c.c:42 +test_c.c:43 +test_c.c:46 +test_c.c:39 test_c.c:40 -test_c.c:34 -test_c.c:35 -test_c.c:37 -test_c.c:38 -test_c.c:41 -test_c.c:34 -test_c.c:35 -test_c.c:36 -test_c.c:41 -test_c.c:41 -test_c.c:41 test_c.c:41 +test_c.c:46 +test_c.c:46 +test_c.c:39 +test_c.c:40 +test_c.c:42 +test_c.c:43 +test_c.c:46 +test_c.c:46 +test_c.c:39 +test_c.c:40 +test_c.c:42 +test_c.c:45 +test_c.c:39 +test_c.c:40 +test_c.c:42 +test_c.c:43 +test_c.c:46 +test_c.c:39 +test_c.c:40 test_c.c:41 -test_c.c:34 -test_c.c:35 -test_c.c:37 +test_c.c:46 +test_c.c:46 +test_c.c:46 +test_c.c:46 +test_c.c:46 +test_c.c:39 test_c.c:40 -test_c.c:34 -test_c.c:35 -test_c.c:37 +test_c.c:42 +test_c.c:45 +test_c.c:39 test_c.c:40 -test_c.c:34 -test_c.c:35 -test_c.c:37 +test_c.c:42 +test_c.c:45 +test_c.c:39 test_c.c:40 -test_c.c:34 -test_c.c:35 -test_c.c:37 +test_c.c:42 +test_c.c:45 +test_c.c:39 test_c.c:40 -test_c.c:34 -test_c.c:35 -test_c.c:37 +test_c.c:42 +test_c.c:45 +test_c.c:39 test_c.c:40 -test_c.c:34 -test_c.c:35 -test_c.c:37 +test_c.c:42 +test_c.c:45 +test_c.c:39 test_c.c:40 -test_c.c:34 -test_c.c:35 -test_c.c:37 -test_c.c:38 -test_c.c:41 -test_c.c:34 -test_c.c:35 -test_c.c:36 -test_c.c:41 -test_c.c:41 -test_c.c:34 -test_c.c:35 -test_c.c:37 -test_c.c:38 -test_c.c:41 -test_c.c:41 -test_c.c:34 -test_c.c:35 -test_c.c:37 +test_c.c:42 +test_c.c:45 +test_c.c:39 +test_c.c:40 +test_c.c:42 +test_c.c:43 +test_c.c:46 +test_c.c:39 test_c.c:40 -test_c.c:34 -test_c.c:35 -test_c.c:37 -test_c.c:38 -test_c.c:41 -test_c.c:34 -test_c.c:35 -test_c.c:36 -test_c.c:41 -test_c.c:41 test_c.c:41 -test_c.c:34 -test_c.c:35 -test_c.c:37 +test_c.c:46 +test_c.c:46 +test_c.c:39 test_c.c:40 -test_c.c:34 -test_c.c:35 -test_c.c:37 +test_c.c:42 +test_c.c:43 +test_c.c:46 +test_c.c:46 +test_c.c:39 +test_c.c:40 +test_c.c:42 +test_c.c:45 +test_c.c:39 +test_c.c:40 +test_c.c:42 +test_c.c:43 +test_c.c:46 +test_c.c:39 test_c.c:40 -test_c.c:34 -test_c.c:35 -test_c.c:37 -test_c.c:38 -test_c.c:41 -test_c.c:34 -test_c.c:35 -test_c.c:36 -test_c.c:41 -test_c.c:41 -test_c.c:34 -test_c.c:35 -test_c.c:37 -test_c.c:38 -test_c.c:41 -test_c.c:41 test_c.c:41 -test_c.c:34 -test_c.c:35 -test_c.c:37 +test_c.c:46 +test_c.c:46 +test_c.c:46 +test_c.c:39 test_c.c:40 -test_c.c:34 -test_c.c:35 -test_c.c:37 +test_c.c:42 +test_c.c:45 +test_c.c:39 test_c.c:40 -test_c.c:34 -test_c.c:35 -test_c.c:37 +test_c.c:42 +test_c.c:45 +test_c.c:39 test_c.c:40 -test_c.c:34 -test_c.c:35 -test_c.c:37 -test_c.c:38 -test_c.c:41 -test_c.c:34 -test_c.c:35 -test_c.c:36 -test_c.c:41 -test_c.c:41 -test_c.c:34 -test_c.c:35 -test_c.c:37 -test_c.c:38 -test_c.c:41 -test_c.c:41 -test_c.c:34 -test_c.c:35 -test_c.c:37 +test_c.c:42 +test_c.c:43 +test_c.c:46 +test_c.c:39 test_c.c:40 -test_c.c:34 -test_c.c:35 -test_c.c:37 -test_c.c:38 -test_c.c:41 -test_c.c:34 -test_c.c:35 -test_c.c:36 -test_c.c:41 -test_c.c:41 test_c.c:41 -test_c.c:41 -test_c.c:34 -test_c.c:35 -test_c.c:37 +test_c.c:46 +test_c.c:46 +test_c.c:39 test_c.c:40 -test_c.c:34 -test_c.c:35 -test_c.c:37 +test_c.c:42 +test_c.c:43 +test_c.c:46 +test_c.c:46 +test_c.c:46 +test_c.c:39 test_c.c:40 -test_c.c:34 -test_c.c:35 -test_c.c:37 +test_c.c:42 +test_c.c:45 +test_c.c:39 test_c.c:40 -test_c.c:34 -test_c.c:35 -test_c.c:37 +test_c.c:42 +test_c.c:45 +test_c.c:39 test_c.c:40 -test_c.c:34 -test_c.c:35 -test_c.c:37 -test_c.c:38 -test_c.c:41 -test_c.c:34 -test_c.c:35 -test_c.c:36 -test_c.c:41 -test_c.c:41 -test_c.c:34 -test_c.c:35 -test_c.c:37 -test_c.c:38 -test_c.c:41 -test_c.c:41 -test_c.c:34 -test_c.c:35 -test_c.c:37 +test_c.c:42 +test_c.c:45 +test_c.c:39 +test_c.c:40 +test_c.c:42 +test_c.c:43 +test_c.c:46 +test_c.c:39 test_c.c:40 -test_c.c:34 -test_c.c:35 -test_c.c:37 -test_c.c:38 -test_c.c:41 -test_c.c:34 -test_c.c:35 -test_c.c:36 -test_c.c:41 -test_c.c:41 test_c.c:41 -test_c.c:34 -test_c.c:35 -test_c.c:37 +test_c.c:46 +test_c.c:46 +test_c.c:39 test_c.c:40 -test_c.c:34 -test_c.c:35 -test_c.c:37 +test_c.c:42 +test_c.c:43 +test_c.c:46 +test_c.c:46 +test_c.c:39 +test_c.c:40 +test_c.c:42 +test_c.c:45 +test_c.c:39 +test_c.c:40 +test_c.c:42 +test_c.c:43 +test_c.c:46 +test_c.c:39 test_c.c:40 -test_c.c:34 -test_c.c:35 -test_c.c:37 -test_c.c:38 -test_c.c:41 -test_c.c:34 -test_c.c:35 -test_c.c:36 -test_c.c:41 -test_c.c:41 -test_c.c:34 -test_c.c:35 -test_c.c:37 -test_c.c:38 -test_c.c:41 test_c.c:41 +test_c.c:46 +test_c.c:46 +test_c.c:46 +test_c.c:46 +test_c.c:39 +test_c.c:40 +test_c.c:42 +test_c.c:45 +test_c.c:39 +test_c.c:40 +test_c.c:42 +test_c.c:45 +test_c.c:39 +test_c.c:40 +test_c.c:42 +test_c.c:45 +test_c.c:39 +test_c.c:40 +test_c.c:42 +test_c.c:45 +test_c.c:39 +test_c.c:40 +test_c.c:42 +test_c.c:43 +test_c.c:46 +test_c.c:39 +test_c.c:40 test_c.c:41 +test_c.c:46 +test_c.c:46 +test_c.c:39 +test_c.c:40 +test_c.c:42 +test_c.c:43 +test_c.c:46 +test_c.c:46 +test_c.c:39 +test_c.c:40 +test_c.c:42 +test_c.c:45 +test_c.c:39 +test_c.c:40 +test_c.c:42 +test_c.c:43 +test_c.c:46 +test_c.c:39 +test_c.c:40 test_c.c:41 +test_c.c:46 +test_c.c:46 +test_c.c:46 +test_c.c:39 +test_c.c:40 +test_c.c:42 +test_c.c:45 +test_c.c:39 +test_c.c:40 +test_c.c:42 +test_c.c:45 +test_c.c:39 +test_c.c:40 +test_c.c:42 +test_c.c:43 +test_c.c:46 +test_c.c:39 +test_c.c:40 test_c.c:41 -test_c.c:34 -test_c.c:35 -test_c.c:37 +test_c.c:46 +test_c.c:46 +test_c.c:39 test_c.c:40 -test_c.c:34 -test_c.c:35 -test_c.c:37 +test_c.c:42 +test_c.c:43 +test_c.c:46 +test_c.c:46 +test_c.c:46 +test_c.c:46 +test_c.c:46 +test_c.c:39 test_c.c:40 -test_c.c:34 -test_c.c:35 -test_c.c:37 +test_c.c:42 +test_c.c:45 +test_c.c:39 test_c.c:40 -test_c.c:34 -test_c.c:35 -test_c.c:37 +test_c.c:42 +test_c.c:45 +test_c.c:39 test_c.c:40 -test_c.c:34 -test_c.c:35 -test_c.c:37 +test_c.c:42 +test_c.c:45 +test_c.c:39 test_c.c:40 -test_c.c:34 -test_c.c:35 -test_c.c:37 +test_c.c:42 +test_c.c:45 +test_c.c:39 test_c.c:40 -test_c.c:34 -test_c.c:35 -test_c.c:37 +test_c.c:42 +test_c.c:45 +test_c.c:39 test_c.c:40 -test_c.c:34 -test_c.c:35 -test_c.c:37 -test_c.c:38 -test_c.c:41 -test_c.c:34 -test_c.c:35 -test_c.c:36 -test_c.c:41 -test_c.c:41 -test_c.c:34 -test_c.c:35 -test_c.c:37 -test_c.c:38 -test_c.c:41 -test_c.c:41 -test_c.c:34 -test_c.c:35 -test_c.c:37 +test_c.c:42 +test_c.c:45 +test_c.c:39 +test_c.c:40 +test_c.c:42 +test_c.c:45 +test_c.c:39 +test_c.c:40 +test_c.c:42 +test_c.c:43 +test_c.c:46 +test_c.c:39 test_c.c:40 -test_c.c:34 -test_c.c:35 -test_c.c:37 -test_c.c:38 -test_c.c:41 -test_c.c:34 -test_c.c:35 -test_c.c:36 -test_c.c:41 test_c.c:41 +test_c.c:46 +test_c.c:46 +test_c.c:39 +test_c.c:40 +test_c.c:42 +test_c.c:43 +test_c.c:46 +test_c.c:46 +test_c.c:39 +test_c.c:40 +test_c.c:42 +test_c.c:45 +test_c.c:39 +test_c.c:40 +test_c.c:42 +test_c.c:43 +test_c.c:46 +test_c.c:39 +test_c.c:40 test_c.c:41 -test_c.c:34 -test_c.c:35 -test_c.c:37 +test_c.c:46 +test_c.c:46 +test_c.c:46 +test_c.c:39 test_c.c:40 -test_c.c:34 -test_c.c:35 -test_c.c:37 +test_c.c:42 +test_c.c:45 +test_c.c:39 +test_c.c:40 +test_c.c:42 +test_c.c:45 +test_c.c:39 +test_c.c:40 +test_c.c:42 +test_c.c:43 +test_c.c:46 +test_c.c:39 test_c.c:40 -test_c.c:34 -test_c.c:35 -test_c.c:37 -test_c.c:38 test_c.c:41 -test_c.c:34 -test_c.c:35 -test_c.c:36 -test_c.c:41 -test_c.c:41 -test_c.c:34 -test_c.c:35 -test_c.c:37 -test_c.c:38 -test_c.c:41 -test_c.c:41 -test_c.c:41 -test_c.c:34 -test_c.c:35 -test_c.c:37 +test_c.c:46 +test_c.c:46 +test_c.c:39 test_c.c:40 -test_c.c:34 -test_c.c:35 -test_c.c:37 +test_c.c:42 +test_c.c:43 +test_c.c:46 +test_c.c:46 +test_c.c:46 +test_c.c:39 test_c.c:40 -test_c.c:34 -test_c.c:35 -test_c.c:37 +test_c.c:42 +test_c.c:45 +test_c.c:39 test_c.c:40 -test_c.c:34 -test_c.c:35 -test_c.c:37 -test_c.c:38 -test_c.c:41 -test_c.c:34 -test_c.c:35 -test_c.c:36 -test_c.c:41 -test_c.c:41 -test_c.c:34 -test_c.c:35 -test_c.c:37 -test_c.c:38 -test_c.c:41 -test_c.c:41 -test_c.c:34 -test_c.c:35 -test_c.c:37 +test_c.c:42 +test_c.c:45 +test_c.c:39 +test_c.c:40 +test_c.c:42 +test_c.c:45 +test_c.c:39 +test_c.c:40 +test_c.c:42 +test_c.c:43 +test_c.c:46 +test_c.c:39 test_c.c:40 -test_c.c:34 -test_c.c:35 -test_c.c:37 -test_c.c:38 -test_c.c:41 -test_c.c:34 -test_c.c:35 -test_c.c:36 -test_c.c:41 -test_c.c:41 -test_c.c:41 test_c.c:41 -test_c.c:34 -test_c.c:35 -test_c.c:37 +test_c.c:46 +test_c.c:46 +test_c.c:39 test_c.c:40 -test_c.c:34 -test_c.c:35 -test_c.c:37 +test_c.c:42 +test_c.c:43 +test_c.c:46 +test_c.c:46 +test_c.c:39 test_c.c:40 -test_c.c:34 -test_c.c:35 -test_c.c:37 +test_c.c:42 +test_c.c:45 +test_c.c:39 test_c.c:40 -test_c.c:34 -test_c.c:35 -test_c.c:37 +test_c.c:42 +test_c.c:43 +test_c.c:46 +test_c.c:39 test_c.c:40 -test_c.c:34 -test_c.c:35 -test_c.c:37 -test_c.c:38 -test_c.c:41 -test_c.c:34 -test_c.c:35 -test_c.c:36 test_c.c:41 -test_c.c:41 -test_c.c:34 -test_c.c:35 -test_c.c:37 -test_c.c:38 -test_c.c:41 -test_c.c:41 -test_c.c:34 -test_c.c:35 -test_c.c:37 +test_c.c:46 +test_c.c:46 +test_c.c:46 +test_c.c:46 +test_c.c:39 test_c.c:40 -test_c.c:34 -test_c.c:35 -test_c.c:37 -test_c.c:38 -test_c.c:41 -test_c.c:34 -test_c.c:35 -test_c.c:36 -test_c.c:41 -test_c.c:41 -test_c.c:41 -test_c.c:34 -test_c.c:35 -test_c.c:37 +test_c.c:42 +test_c.c:45 +test_c.c:39 test_c.c:40 -test_c.c:34 -test_c.c:35 -test_c.c:37 +test_c.c:42 +test_c.c:45 +test_c.c:39 +test_c.c:40 +test_c.c:42 +test_c.c:45 +test_c.c:39 +test_c.c:40 +test_c.c:42 +test_c.c:45 +test_c.c:39 +test_c.c:40 +test_c.c:42 +test_c.c:43 +test_c.c:46 +test_c.c:39 test_c.c:40 -test_c.c:34 -test_c.c:35 -test_c.c:37 -test_c.c:38 -test_c.c:41 -test_c.c:34 -test_c.c:35 -test_c.c:36 -test_c.c:41 -test_c.c:41 -test_c.c:34 -test_c.c:35 -test_c.c:37 -test_c.c:38 -test_c.c:41 test_c.c:41 +test_c.c:46 +test_c.c:46 +test_c.c:39 +test_c.c:40 +test_c.c:42 +test_c.c:43 +test_c.c:46 +test_c.c:46 +test_c.c:39 +test_c.c:40 +test_c.c:42 +test_c.c:45 +test_c.c:39 +test_c.c:40 +test_c.c:42 +test_c.c:43 +test_c.c:46 +test_c.c:39 +test_c.c:40 test_c.c:41 +test_c.c:46 +test_c.c:46 +test_c.c:46 +test_c.c:39 +test_c.c:40 +test_c.c:42 +test_c.c:45 +test_c.c:39 +test_c.c:40 +test_c.c:42 +test_c.c:45 +test_c.c:39 +test_c.c:40 +test_c.c:42 +test_c.c:43 +test_c.c:46 +test_c.c:39 +test_c.c:40 test_c.c:41 -test_c.c:34 -test_c.c:35 -test_c.c:37 +test_c.c:46 +test_c.c:46 +test_c.c:39 test_c.c:40 -test_c.c:34 -test_c.c:35 -test_c.c:37 +test_c.c:42 +test_c.c:43 +test_c.c:46 +test_c.c:46 +test_c.c:46 +test_c.c:46 +test_c.c:39 test_c.c:40 -test_c.c:34 -test_c.c:35 -test_c.c:37 +test_c.c:42 +test_c.c:45 +test_c.c:39 test_c.c:40 -test_c.c:34 -test_c.c:35 -test_c.c:37 +test_c.c:42 +test_c.c:45 +test_c.c:39 test_c.c:40 -test_c.c:34 -test_c.c:35 -test_c.c:37 +test_c.c:42 +test_c.c:45 +test_c.c:39 test_c.c:40 -test_c.c:34 -test_c.c:35 -test_c.c:37 -test_c.c:38 -test_c.c:41 -test_c.c:34 -test_c.c:35 -test_c.c:36 -test_c.c:41 -test_c.c:41 -test_c.c:34 -test_c.c:35 -test_c.c:37 -test_c.c:38 -test_c.c:41 -test_c.c:41 -test_c.c:34 -test_c.c:35 -test_c.c:37 +test_c.c:42 +test_c.c:45 +test_c.c:39 test_c.c:40 -test_c.c:34 -test_c.c:35 -test_c.c:37 -test_c.c:38 -test_c.c:41 -test_c.c:34 -test_c.c:35 -test_c.c:36 -test_c.c:41 -test_c.c:41 -test_c.c:41 -test_c.c:34 -test_c.c:35 -test_c.c:37 +test_c.c:42 +test_c.c:45 +test_c.c:39 test_c.c:40 -test_c.c:34 -test_c.c:35 -test_c.c:37 +test_c.c:42 +test_c.c:43 +test_c.c:46 +test_c.c:39 test_c.c:40 -test_c.c:34 -test_c.c:35 -test_c.c:37 -test_c.c:38 -test_c.c:41 -test_c.c:34 -test_c.c:35 -test_c.c:36 -test_c.c:41 -test_c.c:41 -test_c.c:34 -test_c.c:35 -test_c.c:37 -test_c.c:38 -test_c.c:41 test_c.c:41 -test_c.c:41 -test_c.c:34 -test_c.c:35 -test_c.c:37 +test_c.c:46 +test_c.c:46 +test_c.c:39 test_c.c:40 -test_c.c:34 -test_c.c:35 -test_c.c:37 +test_c.c:42 +test_c.c:43 +test_c.c:46 +test_c.c:46 +test_c.c:39 test_c.c:40 -test_c.c:34 -test_c.c:35 -test_c.c:37 +test_c.c:42 +test_c.c:45 +test_c.c:39 test_c.c:40 -test_c.c:34 -test_c.c:35 -test_c.c:37 -test_c.c:38 -test_c.c:41 -test_c.c:34 -test_c.c:35 -test_c.c:36 -test_c.c:41 -test_c.c:41 -test_c.c:34 -test_c.c:35 -test_c.c:37 -test_c.c:38 -test_c.c:41 -test_c.c:41 -test_c.c:34 -test_c.c:35 -test_c.c:37 +test_c.c:42 +test_c.c:43 +test_c.c:46 +test_c.c:39 test_c.c:40 -test_c.c:34 -test_c.c:35 -test_c.c:37 -test_c.c:38 -test_c.c:41 -test_c.c:34 -test_c.c:35 -test_c.c:36 -test_c.c:41 -test_c.c:41 -test_c.c:41 -test_c.c:41 test_c.c:41 +test_c.c:46 +test_c.c:46 +test_c.c:46 +test_c.c:39 +test_c.c:40 +test_c.c:42 +test_c.c:45 +test_c.c:39 +test_c.c:40 +test_c.c:42 +test_c.c:45 +test_c.c:39 +test_c.c:40 +test_c.c:42 +test_c.c:43 +test_c.c:46 +test_c.c:39 +test_c.c:40 test_c.c:41 -test_c.c:115 -test_c.c:44 +test_c.c:46 +test_c.c:46 +test_c.c:39 +test_c.c:40 +test_c.c:42 +test_c.c:43 +test_c.c:46 +test_c.c:46 +test_c.c:46 +test_c.c:39 +test_c.c:40 +test_c.c:42 test_c.c:45 +test_c.c:39 +test_c.c:40 +test_c.c:42 test_c.c:45 -test_c.c:47 -test_c.c:49 -test_c.c:49 -test_c.c:51 -test_c.c:49 -test_c.c:49 -test_c.c:51 -test_c.c:49 -test_c.c:49 -test_c.c:51 -test_c.c:49 -test_c.c:49 -test_c.c:51 -test_c.c:49 -test_c.c:49 -test_c.c:51 -test_c.c:49 -test_c.c:49 -test_c.c:51 -test_c.c:49 -test_c.c:49 -test_c.c:51 -test_c.c:49 -test_c.c:49 -test_c.c:51 -test_c.c:49 -test_c.c:49 -test_c.c:51 -test_c.c:52 -test_c.c:55 -test_c.c:116 -test_c.c:44 +test_c.c:39 +test_c.c:40 +test_c.c:42 test_c.c:45 +test_c.c:39 +test_c.c:40 +test_c.c:42 +test_c.c:43 +test_c.c:46 +test_c.c:39 +test_c.c:40 +test_c.c:41 +test_c.c:46 +test_c.c:46 +test_c.c:39 +test_c.c:40 +test_c.c:42 +test_c.c:43 +test_c.c:46 +test_c.c:46 +test_c.c:39 +test_c.c:40 +test_c.c:42 test_c.c:45 -test_c.c:47 -test_c.c:49 -test_c.c:49 -test_c.c:51 -test_c.c:49 -test_c.c:49 -test_c.c:51 -test_c.c:49 -test_c.c:49 -test_c.c:51 -test_c.c:49 -test_c.c:49 -test_c.c:51 -test_c.c:49 -test_c.c:49 -test_c.c:51 -test_c.c:49 -test_c.c:49 -test_c.c:51 -test_c.c:49 -test_c.c:49 -test_c.c:51 -test_c.c:49 -test_c.c:49 -test_c.c:51 -test_c.c:49 -test_c.c:49 -test_c.c:51 -test_c.c:49 -test_c.c:49 -test_c.c:51 -test_c.c:49 -test_c.c:49 -test_c.c:51 -test_c.c:49 -test_c.c:49 -test_c.c:51 -test_c.c:49 -test_c.c:49 -test_c.c:51 -test_c.c:49 -test_c.c:49 -test_c.c:51 -test_c.c:49 -test_c.c:49 -test_c.c:51 -test_c.c:49 -test_c.c:49 -test_c.c:51 -test_c.c:49 -test_c.c:49 -test_c.c:51 -test_c.c:49 -test_c.c:49 -test_c.c:51 -test_c.c:49 -test_c.c:49 -test_c.c:51 -test_c.c:49 -test_c.c:49 -test_c.c:51 -test_c.c:49 -test_c.c:49 -test_c.c:51 -test_c.c:49 -test_c.c:49 -test_c.c:51 -test_c.c:49 -test_c.c:49 -test_c.c:51 -test_c.c:49 -test_c.c:49 -test_c.c:51 -test_c.c:49 -test_c.c:49 -test_c.c:51 -test_c.c:49 -test_c.c:49 -test_c.c:51 -test_c.c:49 -test_c.c:49 -test_c.c:51 -test_c.c:49 -test_c.c:49 -test_c.c:51 -test_c.c:49 -test_c.c:49 -test_c.c:51 -test_c.c:49 -test_c.c:49 -test_c.c:51 -test_c.c:49 -test_c.c:49 -test_c.c:51 -test_c.c:49 -test_c.c:49 -test_c.c:51 -test_c.c:49 -test_c.c:49 -test_c.c:51 -test_c.c:49 -test_c.c:49 -test_c.c:51 -test_c.c:49 -test_c.c:49 -test_c.c:51 -test_c.c:49 -test_c.c:49 -test_c.c:51 -test_c.c:49 -test_c.c:49 -test_c.c:51 -test_c.c:49 -test_c.c:49 -test_c.c:51 -test_c.c:49 -test_c.c:49 -test_c.c:51 -test_c.c:49 -test_c.c:49 -test_c.c:51 -test_c.c:49 -test_c.c:49 -test_c.c:51 -test_c.c:49 -test_c.c:49 -test_c.c:51 -test_c.c:49 -test_c.c:49 -test_c.c:51 -test_c.c:49 -test_c.c:49 -test_c.c:51 -test_c.c:49 -test_c.c:49 -test_c.c:51 -test_c.c:49 -test_c.c:49 -test_c.c:51 -test_c.c:49 -test_c.c:49 -test_c.c:51 -test_c.c:49 -test_c.c:49 -test_c.c:51 -test_c.c:49 -test_c.c:49 -test_c.c:51 -test_c.c:49 -test_c.c:49 -test_c.c:51 -test_c.c:49 -test_c.c:49 -test_c.c:51 -test_c.c:49 -test_c.c:49 -test_c.c:51 -test_c.c:49 -test_c.c:49 -test_c.c:51 -test_c.c:49 -test_c.c:49 -test_c.c:51 -test_c.c:49 -test_c.c:49 -test_c.c:51 -test_c.c:49 -test_c.c:49 -test_c.c:51 -test_c.c:49 -test_c.c:49 -test_c.c:51 -test_c.c:49 -test_c.c:49 -test_c.c:51 -test_c.c:49 -test_c.c:49 -test_c.c:51 -test_c.c:49 -test_c.c:49 -test_c.c:51 -test_c.c:49 -test_c.c:49 -test_c.c:51 -test_c.c:49 -test_c.c:49 -test_c.c:51 +test_c.c:39 +test_c.c:40 +test_c.c:42 +test_c.c:43 +test_c.c:46 +test_c.c:39 +test_c.c:40 +test_c.c:41 +test_c.c:46 +test_c.c:46 +test_c.c:46 +test_c.c:46 +test_c.c:46 +test_c.c:46 +test_c.c:120 test_c.c:49 +test_c.c:50 +test_c.c:50 +test_c.c:52 +test_c.c:54 +test_c.c:54 +test_c.c:56 +test_c.c:54 +test_c.c:54 +test_c.c:56 +test_c.c:54 +test_c.c:54 +test_c.c:56 +test_c.c:54 +test_c.c:54 +test_c.c:56 +test_c.c:54 +test_c.c:54 +test_c.c:56 +test_c.c:54 +test_c.c:54 +test_c.c:56 +test_c.c:54 +test_c.c:54 +test_c.c:56 +test_c.c:54 +test_c.c:54 +test_c.c:56 +test_c.c:54 +test_c.c:54 +test_c.c:56 +test_c.c:57 +test_c.c:60 +test_c.c:121 test_c.c:49 +test_c.c:50 +test_c.c:50 +test_c.c:52 +test_c.c:54 +test_c.c:54 +test_c.c:56 +test_c.c:54 +test_c.c:54 +test_c.c:56 +test_c.c:54 +test_c.c:54 +test_c.c:56 +test_c.c:54 +test_c.c:54 +test_c.c:56 +test_c.c:54 +test_c.c:54 +test_c.c:56 +test_c.c:54 +test_c.c:54 +test_c.c:56 +test_c.c:54 +test_c.c:54 +test_c.c:56 +test_c.c:54 +test_c.c:54 +test_c.c:56 +test_c.c:54 +test_c.c:54 +test_c.c:56 +test_c.c:54 +test_c.c:54 +test_c.c:56 +test_c.c:54 +test_c.c:54 +test_c.c:56 +test_c.c:54 +test_c.c:54 +test_c.c:56 +test_c.c:54 +test_c.c:54 +test_c.c:56 +test_c.c:54 +test_c.c:54 +test_c.c:56 +test_c.c:54 +test_c.c:54 +test_c.c:56 +test_c.c:54 +test_c.c:54 +test_c.c:56 +test_c.c:54 +test_c.c:54 +test_c.c:56 +test_c.c:54 +test_c.c:54 +test_c.c:56 +test_c.c:54 +test_c.c:54 +test_c.c:56 +test_c.c:54 +test_c.c:54 +test_c.c:56 +test_c.c:54 +test_c.c:54 +test_c.c:56 +test_c.c:54 +test_c.c:54 +test_c.c:56 +test_c.c:54 +test_c.c:54 +test_c.c:56 +test_c.c:54 +test_c.c:54 +test_c.c:56 +test_c.c:54 +test_c.c:54 +test_c.c:56 +test_c.c:54 +test_c.c:54 +test_c.c:56 +test_c.c:54 +test_c.c:54 +test_c.c:56 +test_c.c:54 +test_c.c:54 +test_c.c:56 +test_c.c:54 +test_c.c:54 +test_c.c:56 +test_c.c:54 +test_c.c:54 +test_c.c:56 +test_c.c:54 +test_c.c:54 +test_c.c:56 +test_c.c:54 +test_c.c:54 +test_c.c:56 +test_c.c:54 +test_c.c:54 +test_c.c:56 +test_c.c:54 +test_c.c:54 +test_c.c:56 +test_c.c:54 +test_c.c:54 +test_c.c:56 +test_c.c:54 +test_c.c:54 +test_c.c:56 +test_c.c:54 +test_c.c:54 +test_c.c:56 +test_c.c:54 +test_c.c:54 +test_c.c:56 +test_c.c:54 +test_c.c:54 +test_c.c:56 +test_c.c:54 +test_c.c:54 +test_c.c:56 +test_c.c:54 +test_c.c:54 +test_c.c:56 +test_c.c:54 +test_c.c:54 +test_c.c:56 +test_c.c:54 +test_c.c:54 +test_c.c:56 +test_c.c:54 +test_c.c:54 +test_c.c:56 +test_c.c:54 +test_c.c:54 +test_c.c:56 +test_c.c:54 +test_c.c:54 +test_c.c:56 +test_c.c:54 +test_c.c:54 +test_c.c:56 +test_c.c:54 +test_c.c:54 +test_c.c:56 +test_c.c:54 +test_c.c:54 +test_c.c:56 +test_c.c:54 +test_c.c:54 +test_c.c:56 +test_c.c:54 +test_c.c:54 +test_c.c:56 +test_c.c:54 +test_c.c:54 +test_c.c:56 +test_c.c:54 +test_c.c:54 +test_c.c:56 +test_c.c:54 +test_c.c:54 +test_c.c:56 +test_c.c:54 +test_c.c:54 +test_c.c:56 +test_c.c:54 +test_c.c:54 +test_c.c:56 +test_c.c:54 +test_c.c:54 +test_c.c:56 +test_c.c:54 +test_c.c:54 +test_c.c:56 +test_c.c:54 +test_c.c:54 +test_c.c:56 +test_c.c:54 +test_c.c:54 +test_c.c:56 +test_c.c:54 +test_c.c:54 +test_c.c:56 +test_c.c:54 +test_c.c:54 +test_c.c:56 +test_c.c:54 test_c.c:54 -test_c.c:55 -test_c.c:117 -test_c.c:58 -test_c.c:59 test_c.c:59 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 +test_c.c:60 +test_c.c:122 test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:65 -test_c.c:59 -test_c.c:59 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:65 -test_c.c:59 -test_c.c:59 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:65 -test_c.c:59 -test_c.c:59 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:65 -test_c.c:59 -test_c.c:59 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:65 -test_c.c:59 -test_c.c:59 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:65 -test_c.c:59 -test_c.c:59 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:65 -test_c.c:59 -test_c.c:59 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:65 -test_c.c:59 -test_c.c:59 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:65 -test_c.c:59 -test_c.c:59 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:63 -test_c.c:62 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:63 -test_c.c:62 -test_c.c:62 -test_c.c:61 -test_c.c:61 -test_c.c:65 -test_c.c:59 -test_c.c:59 +test_c.c:64 +test_c.c:64 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:70 +test_c.c:64 +test_c.c:64 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:70 +test_c.c:64 +test_c.c:64 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:70 +test_c.c:64 +test_c.c:64 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:70 +test_c.c:64 +test_c.c:64 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:70 +test_c.c:64 +test_c.c:64 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:68 test_c.c:67 -test_c.c:119 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:70 +test_c.c:64 +test_c.c:64 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:70 +test_c.c:64 +test_c.c:64 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:70 +test_c.c:64 +test_c.c:64 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:70 +test_c.c:64 +test_c.c:64 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:68 +test_c.c:67 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:68 +test_c.c:67 +test_c.c:67 +test_c.c:66 +test_c.c:66 +test_c.c:70 +test_c.c:64 +test_c.c:64 +test_c.c:72 +test_c.c:72 +test_c.c:124 fib = 89 prime(121) = 0 prime(131) = 1 @@ -2687,20 +2687,20 @@ prime(131) = 1 ***** ***** ******* ******* ********* ********* -test_c.c:120 -test_c.c:91 -test_c.c:92 -test_c.c:93 +test_c.c:125 +test_c.c:96 +test_c.c:97 +test_c.c:98 invoke data_func() -test_c.c:94 +test_c.c:99 +test_c.c:81 +test_c.c:82 +test_c.c:75 test_c.c:76 test_c.c:77 -test_c.c:70 -test_c.c:71 -test_c.c:72 -test_c.c:73 -test_c.c:80 -test_c.c:95 -test_c.c:122 -test_c.c:123 +test_c.c:78 +test_c.c:85 +test_c.c:100 +test_c.c:127 +test_c.c:128 invoked data_func() From b7ce586762eaf52754c1848d8897956a54fc87be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nguy=E1=BB=85n=20Gia=20Phong?= Date: Mon, 18 Nov 2024 14:06:32 +0900 Subject: [PATCH 2/4] Rework regtest runner The C++ script is rewritten in Makefile and shell script for more packaging-friendly debugging. --- .gitignore | 17 +++++++++++ Makefile | 6 +++- test/regtest/Makefile | 57 ++++++++++++++++++++++++++++++++----- test/regtest/init_dso.cmd | 3 +- test/regtest/init_dso_2.cmd | 3 +- test/regtest/regtest.cpp | 17 +++-------- test/regtest/run-tests | 26 +++++++++++++++++ test/regtest/stat.cmd | 5 ++++ 8 files changed, 111 insertions(+), 23 deletions(-) mode change 100644 => 100755 test/regtest/init_dso.cmd mode change 100644 => 100755 test/regtest/init_dso_2.cmd create mode 100755 test/regtest/run-tests create mode 100755 test/regtest/stat.cmd diff --git a/.gitignore b/.gitignore index d5ff9d7..3cae72e 100644 --- a/.gitignore +++ b/.gitignore @@ -2,5 +2,22 @@ *.o *.a src/e9patch/e9loader_*.c +test/regtest/*.so +test/regtest/*.exe +test/regtest/*.log +test/regtest/*.out +test/regtest/*.diff +test/regtest/bugs +test/regtest/dl +test/regtest/fini +test/regtest/init +test/regtest/inst +test/regtest/patch +test/regtest/regtest +test/regtest/test +test/regtest/test.libc +test/regtest/test.pie +test/regtest/test_c +test/regtest/test_c.debug /e9patch /e9tool diff --git a/Makefile b/Makefile index 060898e..285d681 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -.PHONY: all clean install dev release debug sanitize +.PHONY: all clean check install dev release debug sanitize ######################################################################### # BUILD COMMON @@ -66,6 +66,7 @@ clean: $(MAKE) -C contrib/zydis clean rm -rf $(E9PATCH_OBJS) $(E9TOOL_OBJS) e9patch e9tool \ src/e9patch/e9loader_*.c e9loader_*.o e9loader_*.bin + $(MAKE) -C test/regtest clean src/e9patch/e9loader_elf.c: src/e9patch/e9loader_elf.cpp $(CXX) -std=c++11 -Wall -fno-stack-protector -Wno-unused-function -fPIC \ @@ -82,6 +83,9 @@ src/e9patch/e9loader_pe.c: src/e9patch/e9loader_pe.cpp src/e9patch/e9elf.o: src/e9patch/e9loader_elf.c src/e9patch/e9pe.o: src/e9patch/e9loader_pe.c +check: all + $(MAKE) -C test/regtest check + install: all install -d "$(DESTDIR)$(PREFIX)/bin" install -m 755 e9patch "$(DESTDIR)$(PREFIX)/bin/e9patch" diff --git a/test/regtest/Makefile b/test/regtest/Makefile index 4527282..eaa42f5 100644 --- a/test/regtest/Makefile +++ b/test/regtest/Makefile @@ -1,36 +1,79 @@ +.POSIX: +.PHONY: all clean check + FCF_NONE := $(shell \ if gcc -fcf-protection=none --version 2>&1 | grep -q 'unrecognized'; \ then true; \ else echo -fcf-protection=none; fi) -all: +BASE ::= test test.pie bugs test.libc libtest.so test_c test_c.debug example.so +TRAMPOLINE ::= inst patch dl init fini +IN ::= $(wildcard *.in) +EXE ::= $(IN:.in=.exe) + +all: regtest $(BASE) $(TRAMPOLINE) + +clean: + rm -f regtest + rm -f $(BASE) $(TRAMPOLINE) $(EXE) + rm -f *.out *.log *.diff + +regtest: regtest.cpp + $(CXX) -std=c++11 -O2 -g -fPIC -pie $< -o $@ + +%.exe: in=$(shell head -1 $<) +%.exe: %.in $(BASE) $(TRAMPOLINE) + ../../e9tool $(E9TOOL_OPTIONS) -M 'addr >= &"entry"' $(in)\ + -E data..data_END -E data2...text -E .text..begin -o $@ + +test: gcc -x assembler-with-cpp -o test test.s -no-pie -nostdlib \ -Wl,--section-start=.text=0xa000000 -Wl,--section-start=.bss=0xc000000 \ -Wl,-z -Wl,max-page-size=4096 -DPIE=0 + +test.pie: gcc -x assembler-with-cpp -o test.pie test.s -pie -nostdlib \ -Wl,--section-start=.text=0xa000000 -Wl,--section-start=.bss=0xc000000 \ -Wl,-z -Wl,max-page-size=4096 -DPIE=1 \ -Wl,--export-dynamic + +bugs: gcc -x assembler-with-cpp -o bugs bugs.s -no-pie -nostdlib \ -Wl,--section-start=.text=0xa000000 -Wl,--section-start=.bss=0xc000000 \ -Wl,-z -Wl,max-page-size=4096 -DPIE=0 + +test.libc: gcc -x assembler-with-cpp -o test.libc test_libc.s -pie -Wl,--export-dynamic + +libtest.so: gcc -x assembler-with-cpp -shared -o libtest.so libtest.s + +test_c: gcc -O2 -fPIC $(FCF_NONE) -pie -o test_c test_c.c \ -Wl,--export-dynamic -U_FORTIFY_SOURCE strip test_c + +test_c.debug: gcc -O0 -g -fPIC -pie -o test_c.debug test_c.c + +inst: ../../e9compile.sh inst.c -I ../../examples/ + +patch: ../../e9compile.sh patch.cpp -std=c++11 -I ../../examples/ + +dl: NO_SIMD_CHECK=1 ../../e9compile.sh dl.c -I ../../examples/ + +init: ../../e9compile.sh init.c -I ../../examples/ + +fini: ../../e9compile.sh fini.c -I ../../examples/ + +example.so: g++ -std=c++11 -fPIC -shared -o example.so -O2 \ ../../examples/plugins/example.cpp -I ../../src/e9tool/ - g++ -std=c++11 -pie -fPIC -o regtest regtest.cpp -O2 - echo "XXX" > FILE.txt - chmod 0640 FILE.txt -clean: - rm -f *.log *.out *.exe test test.pie test.libc libtest.so inst inst.o \ - patch patch.o init init.o regtest +check: run-tests $(EXE) + ./$^ diff --git a/test/regtest/init_dso.cmd b/test/regtest/init_dso.cmd old mode 100644 new mode 100755 index 94f6855..76ce3fd --- a/test/regtest/init_dso.cmd +++ b/test/regtest/init_dso.cmd @@ -1 +1,2 @@ -LD_PRELOAD=$PWD/init_dso.exe ./test.pie +#!/bin/sh +LD_PRELOAD=./init_dso.exe ./test.pie diff --git a/test/regtest/init_dso_2.cmd b/test/regtest/init_dso_2.cmd old mode 100644 new mode 100755 index d2d5682..8dab098 --- a/test/regtest/init_dso_2.cmd +++ b/test/regtest/init_dso_2.cmd @@ -1 +1,2 @@ -LD_PRELOAD=$PWD/init_dso.exe ./test.pie a b c 1 2 3 +#!/bin/sh +LD_PRELOAD=./init_dso.exe ./test.pie a b c 1 2 3 diff --git a/test/regtest/regtest.cpp b/test/regtest/regtest.cpp index efbf913..697328a 100644 --- a/test/regtest/regtest.cpp +++ b/test/regtest/regtest.cpp @@ -23,6 +23,7 @@ #include #include +#include #include #include #include @@ -110,20 +111,10 @@ static bool runTest(const struct dirent *test, const std::string &options) } // Step (2): execute the EXE - FILE *CMD = fopen(cmd.c_str(), "r"); command.clear(); - command += "./exec.sh "; - if (CMD != NULL) - { - for (int i = 0; (c = getc(CMD)) != '\n' && isprint(c) && i < 1024; i++) - command += c; - fclose(CMD); - } - else - { - command += "./"; - command += exe; - } + command += "./exec.sh ./"; + struct stat cmd_stat; + command += (stat(cmd.c_str(), &cmd_stat) == 0) ? cmd : exe; command += " >"; command += out; command += " 2>&1"; diff --git a/test/regtest/run-tests b/test/regtest/run-tests new file mode 100755 index 0000000..7f49fc9 --- /dev/null +++ b/test/regtest/run-tests @@ -0,0 +1,26 @@ +#!/usr/bin/env bash +fails=() +for exe in $* +do + tst=${exe%.exe} + cmd=$tst.cmd + out=$tst.out + exp=$tst.exp + + if test -f $cmd + then ./exec.sh ./$cmd 1>$out 2>&1 + else ./exec.sh ./$exe 1>$out 2>&1 + fi + sed -i 's/ (core dumped)$//' $out + + diff -u $out $exp + if test $? -ne 0 + then fails+=($tst) + fi +done + +if test "$fails" +then + echo "Failing ${#fails[@]}/$# tests: ${fails[@]}" + exit 1 +fi diff --git a/test/regtest/stat.cmd b/test/regtest/stat.cmd new file mode 100755 index 0000000..badd04f --- /dev/null +++ b/test/regtest/stat.cmd @@ -0,0 +1,5 @@ +#!/bin/sh +trap 'rm -f FILE.txt' EXIT HUP INT TERM +echo XXX > FILE.txt +chmod 0640 FILE.txt +./stat.exe From ca372c99c90407c1abc4cee9e1f42bbe9852ebbb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nguy=E1=BB=85n=20Gia=20Phong?= Date: Thu, 19 Dec 2024 15:27:47 +0900 Subject: [PATCH 3/4] Properly invalidate regtest cached artifacts --- test/regtest/Makefile | 60 ++++++++++++++++++++++--------------------- 1 file changed, 31 insertions(+), 29 deletions(-) diff --git a/test/regtest/Makefile b/test/regtest/Makefile index eaa42f5..a5cdaf8 100644 --- a/test/regtest/Makefile +++ b/test/regtest/Makefile @@ -1,6 +1,9 @@ .POSIX: .PHONY: all clean check +E9TOOL ?= ../../e9tool +E9COMPILE ?= ../../e9compile.sh + FCF_NONE := $(shell \ if gcc -fcf-protection=none --version 2>&1 | grep -q 'unrecognized'; \ then true; \ @@ -22,58 +25,57 @@ regtest: regtest.cpp $(CXX) -std=c++11 -O2 -g -fPIC -pie $< -o $@ %.exe: in=$(shell head -1 $<) -%.exe: %.in $(BASE) $(TRAMPOLINE) - ../../e9tool $(E9TOOL_OPTIONS) -M 'addr >= &"entry"' $(in)\ +%.exe: %.in $(BASE) $(TRAMPOLINE) $(E9TOOL) + $(E9TOOL) $(E9TOOL_OPTIONS) -M 'addr >= &"entry"' $(in)\ -E data..data_END -E data2...text -E .text..begin -o $@ -test: - gcc -x assembler-with-cpp -o test test.s -no-pie -nostdlib \ +test: test.s + $(CC) -x assembler-with-cpp -o $@ $< -no-pie -nostdlib \ -Wl,--section-start=.text=0xa000000 -Wl,--section-start=.bss=0xc000000 \ -Wl,-z -Wl,max-page-size=4096 -DPIE=0 -test.pie: - gcc -x assembler-with-cpp -o test.pie test.s -pie -nostdlib \ +test.pie: test.s + $(CC) -x assembler-with-cpp -o $@ $< -pie -nostdlib \ -Wl,--section-start=.text=0xa000000 -Wl,--section-start=.bss=0xc000000 \ -Wl,-z -Wl,max-page-size=4096 -DPIE=1 \ -Wl,--export-dynamic -bugs: - gcc -x assembler-with-cpp -o bugs bugs.s -no-pie -nostdlib \ +bugs: bugs.s + $(CC) -x assembler-with-cpp -o $@ $< -no-pie -nostdlib \ -Wl,--section-start=.text=0xa000000 -Wl,--section-start=.bss=0xc000000 \ -Wl,-z -Wl,max-page-size=4096 -DPIE=0 -test.libc: - gcc -x assembler-with-cpp -o test.libc test_libc.s -pie -Wl,--export-dynamic +test.libc: test_libc.s + $(CC) -x assembler-with-cpp -pie $< -Wl,--export-dynamic -o $@ -libtest.so: - gcc -x assembler-with-cpp -shared -o libtest.so libtest.s +libtest.so: libtest.s + $(CC) -x assembler-with-cpp $< -shared -o $@ -test_c: - gcc -O2 -fPIC $(FCF_NONE) -pie -o test_c test_c.c \ +test_c: test_c.c + $(CC) -O2 -fPIC $(FCF_NONE) -pie -o $@ $< \ -Wl,--export-dynamic -U_FORTIFY_SOURCE strip test_c -test_c.debug: - gcc -O0 -g -fPIC -pie -o test_c.debug test_c.c +test_c.debug: test_c.c + $(CC) -O0 -g -fPIC -pie $< -o $@ -inst: - ../../e9compile.sh inst.c -I ../../examples/ +inst: inst.c ../../examples/stdlib.c $(E9COMPILE) + $(E9COMPILE) $< -I../../examples -patch: - ../../e9compile.sh patch.cpp -std=c++11 -I ../../examples/ +patch: patch.cpp ../../examples/stdlib.c $(E9COMPILE) + $(E9COMPILE) $< -std=c++11 -I../../examples -dl: - NO_SIMD_CHECK=1 ../../e9compile.sh dl.c -I ../../examples/ +dl: dl.c ../../examples/stdlib.c $(E9COMPILE) + NO_SIMD_CHECK=1 $(E9COMPILE) $< -I../../examples -init: - ../../e9compile.sh init.c -I ../../examples/ +init: init.c ../../examples/stdlib.c $(E9COMPILE) + $(E9COMPILE) $< -I../../examples -fini: - ../../e9compile.sh fini.c -I ../../examples/ +fini: fini.c ../../examples/stdlib.c $(E9COMPILE) + $(E9COMPILE) $< -I../../examples -example.so: - g++ -std=c++11 -fPIC -shared -o example.so -O2 \ - ../../examples/plugins/example.cpp -I ../../src/e9tool/ +example.so: ../../examples/plugins/example.cpp ../../src/e9tool/e9plugin.h + $(CXX) -std=c++11 -O2 -fPIC -I../../src/e9tool $< -shared -o $@ check: run-tests $(EXE) ./$^ From 80738f084cc715386952b20d91481a148f8a32a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nguy=E1=BB=85n=20Gia=20Phong?= Date: Tue, 3 Feb 2026 14:12:39 +0900 Subject: [PATCH 4/4] Add GitHub Action --- .github/workflows/debug.yml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 .github/workflows/debug.yml diff --git a/.github/workflows/debug.yml b/.github/workflows/debug.yml new file mode 100644 index 0000000..2859158 --- /dev/null +++ b/.github/workflows/debug.yml @@ -0,0 +1,17 @@ +name: Debugging build and test +on: + - push + - pull_request +jobs: + build: + runs-on: ubuntu-slim + steps: + - uses: actions/checkout@v4 + - name: Build (debugging mode) + run: make debug + - name: Run make check + run: make check + - name: Build regression test runner + run: make -C test/regtest + - name: Run regression test suite + run: cd test/regtest && ./regtest