Commit 40ce5ade authored by Andre Maroneze's avatar Andre Maroneze 💬
Browse files

Merge branch 'add-ioccc' into 'master'

add some IOCCC winners

See merge request !9
parents 03228a78 401b56fc
Pipeline #32790 passed with stage
in 42 minutes and 39 seconds
......@@ -60,6 +60,7 @@ TARGETS=\
gzip124 \
hiredis \
icpc \
ioccc \
itc-benchmarks \
jsmn \
kgflags \
......
......@@ -131,6 +131,8 @@ when available. We also summarize the license of each directory below.
- `gzip124`: GPL
- `hiredis`: Redis license (BSD-style), see `COPYING`
- `icpc`: Unlicense
- `ioccc`: Creative Commons Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0),
see `COPYING`
- `itc-benchmarks`: BSD 2-clause, see `COPYING`
- `jsmn`: MIT
- `kgflags`: MIT, see `LICENSE`
......
directory file line function property kind status property
2019/adamovsky iocccsize_2018.c 275 find_member precondition of strncmp Unknown valid_string_s1: valid_read_nstring(s1, n)
2019/adamovsky iocccsize_2018.c 276 find_member initialization Unknown \initialized(string + w->length)
2019/adamovsky iocccsize_2018.c 276 find_member mem_access Unknown \valid_read(string + w->length)
2019/adamovsky iocccsize_2018.c 276 find_member precondition of isalnum Unknown c_uchar_or_eof_or_EOF: (0 ≤ c ≤ 255) ∨ c ≡ -1
2019/adamovsky iocccsize_2018.c 298 read_line precondition of fgetc Unknown valid_stream: \valid(stream)
2019/adamovsky iocccsize_2018.c 305 read_line signed_overflow Unknown xbcount + 1 ≤ 2147483647
2019/adamovsky iocccsize_2018.c 309 read_line initialization Unknown \initialized(buf + (unsigned long)(length - 2))
2019/adamovsky iocccsize_2018.c 309 read_line initialization Unknown \initialized(buf + (unsigned long)(length - 1))
2019/adamovsky iocccsize_2018.c 314 read_line signed_overflow Unknown xbcount + 2 ≤ 2147483647
2019/adamovsky iocccsize_2018.c 318 read_line initialization Unknown \initialized(buf + (unsigned long)(length - 1))
2019/adamovsky iocccsize_2018.c 322 read_line signed_overflow Unknown xbcount + 2 ≤ 2147483647
2019/adamovsky iocccsize_2018.c 323 read_line signed_overflow Unknown xwcount + 1 ≤ 2147483647
2019/adamovsky iocccsize_2018.c 324 read_line signed_overflow Unknown xlcount + 1 ≤ 2147483647
2019/adamovsky iocccsize_2018.c 334 read_line mem_access Unknown \valid(buf + length)
2019/adamovsky iocccsize_2018.c 385 count precondition of strspn Unknown valid_string_s: valid_read_string(s)
2019/adamovsky iocccsize_2018.c 388 count initialization Unknown \initialized(&buf[(unsigned long)(1 + span)])
2019/adamovsky iocccsize_2018.c 388 count index_bound Unknown (unsigned long)(1 + span) < 521
2019/adamovsky iocccsize_2018.c 388 count initialization Unknown \initialized(&buf[(unsigned long)(2 + span)])
2019/adamovsky iocccsize_2018.c 388 count index_bound Unknown (unsigned long)(2 + span) < 521
2019/adamovsky iocccsize_2018.c 389 count precondition of ungetc Unknown valid_stream: \valid(stream)
2019/adamovsky iocccsize_2018.c 396 count initialization Unknown \initialized(&buf[(unsigned long)(2 + span)])
2019/adamovsky iocccsize_2018.c 396 count index_bound Unknown (unsigned long)(2 + span) < 521
2019/adamovsky iocccsize_2018.c 400 count initialization Unknown \initialized(&buf[(unsigned long)(2 + span)])
2019/adamovsky iocccsize_2018.c 400 count index_bound Unknown (unsigned long)(2 + span) < 521
2019/adamovsky iocccsize_2018.c 406 count initialization Unknown \initialized(p)
2019/adamovsky iocccsize_2018.c 406 count mem_access Unknown \valid_read(p)
2019/adamovsky iocccsize_2018.c 430 count initialization Unknown \initialized(p + 1)
2019/adamovsky iocccsize_2018.c 431 count precondition of ungetc Unknown valid_stream: \valid(stream)
2019/adamovsky iocccsize_2018.c 436 count initialization Unknown \initialized(p + 1)
2019/adamovsky iocccsize_2018.c 443 count precondition of strspn Unknown valid_string_s: valid_read_string(s)
2019/adamovsky iocccsize_2018.c 454 count initialization Unknown \initialized(p + 1)
2019/adamovsky iocccsize_2018.c 455 count precondition of ungetc Unknown valid_stream: \valid(stream)
2019/adamovsky iocccsize_2018.c 460 count initialization Unknown \initialized(p + 1)
2019/adamovsky iocccsize_2018.c 468 count initialization Unknown \initialized(p + 1)
2019/adamovsky iocccsize_2018.c 480 count initialization Unknown \initialized(p + (int)(-1))
2019/adamovsky iocccsize_2018.c 480 count precondition of isalnum Unknown c_uchar_or_eof_or_EOF: (0 ≤ c ≤ 255) ∨ c ≡ -1
2019/adamovsky iocccsize_2018.c 482 count signed_overflow Unknown keywords + 1 ≤ 2147483647
2019/adamovsky iocccsize_2018.c 487 count signed_overflow Unknown wcount + 1 ≤ 2147483647
2019/adamovsky iocccsize_2018.c 497 count signed_overflow Unknown count_0 + 1 ≤ 2147483647
2019/adamovsky iocccsize_2018.c 509 count initialization Unknown \initialized(p)
2019/adamovsky iocccsize_2018.c 509 count mem_access Unknown \valid_read(p)
2019/adamovsky iocccsize_2018.c 509 count precondition of fputc Unknown valid_stream: \valid(stream)
2019/adamovsky iocccsize_2018.c 512 count signed_overflow Unknown bcount + 1 ≤ 2147483647
2019/adamovsky iocccsize_2018.c 513 count initialization Unknown \initialized(p)
2019/adamovsky iocccsize_2018.c 513 count mem_access Unknown \valid_read(p)
2019/adamovsky iocccsize_2018.c 514 count signed_overflow Unknown lcount + 1 ≤ 2147483647
2019/adamovsky iocccsize_2018.c 521 count precondition of isspace Unknown c_uchar_or_eof: (0 ≤ c ≤ 255) ∨ c ≡ -1
2019/adamovsky iocccsize_2018.c 523 count signed_overflow Unknown saved + 1 ≤ 2147483647
2019/adamovsky iocccsize_2018.c 527 count signed_overflow Unknown wcount + 1 ≤ 2147483647
2019/adamovsky iocccsize_2018.c 533 count initialization Unknown \initialized(p + 1)
2019/adamovsky iocccsize_2018.c 533 count mem_access Unknown \valid_read(p + 1)
2019/adamovsky iocccsize_2018.c 533 count precondition of isspace Unknown c_uchar_or_eof: (0 ≤ c ≤ 255) ∨ c ≡ -1
2019/adamovsky iocccsize_2018.c 534 count signed_overflow Unknown saved + 1 ≤ 2147483647
2019/adamovsky iocccsize_2018.c 539 count signed_overflow Unknown count_0 + 1 ≤ 2147483647
2019/adamovsky iocccsize_2018.c 556 count signed_overflow Unknown lcount + xlcount ≤ 2147483647
2019/adamovsky iocccsize_2018.c 556 count signed_overflow Unknown wcount + xwcount ≤ 2147483647
2019/adamovsky iocccsize_2018.c 556 count signed_overflow Unknown bcount + xbcount ≤ 2147483647
FRAMAC_SHARE/libc ctype.h 41 isalnum precondition Unknown c_uchar_or_eof_or_EOF: (0 ≤ c ≤ 255) ∨ c ≡ -1
FRAMAC_SHARE/libc ctype.h 161 isspace precondition Unknown c_uchar_or_eof: (0 ≤ c ≤ 255) ∨ c ≡ -1
FRAMAC_SHARE/libc stdio.h 258 fgetc precondition Unknown valid_stream: \valid(stream)
FRAMAC_SHARE/libc stdio.h 281 fputc precondition Unknown valid_stream: \valid(stream)
FRAMAC_SHARE/libc stdio.h 343 ungetc precondition Unknown valid_stream: \valid(stream)
FRAMAC_SHARE/libc string.h 144 strncmp precondition Unknown valid_string_s1: valid_read_nstring(s1, n)
FRAMAC_SHARE/libc string.h 204 strspn precondition Unknown valid_string_s: valid_read_string(s)
[metrics] Eva coverage statistics
=======================
Syntactically reachable functions = 4 (out of 4)
Semantically reached functions = 4
Coverage estimation = 100.0%
[metrics] References to non-analyzed functions
------------------------------------
[metrics] Statements analyzed by Eva
--------------------------
238 stmts in analyzed functions, 232 stmts analyzed (97.5%)
count: 133 stmts out of 133 (100.0%)
find_member: 16 stmts out of 16 (100.0%)
main: 41 stmts out of 41 (100.0%)
read_line: 42 stmts out of 48 (87.5%)
2019/adamovsky/iocccsize_2018.c:570:[eva:garbled-mix] warning: The specification of function getopt has generated a garbled mix for assigns clause \result.
2019/adamovsky/iocccsize_2018.c:570:[eva:garbled-mix] warning: The specification of function getopt has generated a garbled mix for assigns clause *optarg.
2019/adamovsky/iocccsize_2018.c:570:[eva:garbled-mix] warning: The specification of function getopt has generated a garbled mix for assigns clause optind.
2019/adamovsky/iocccsize_2018.c:570:[eva:garbled-mix] warning: The specification of function getopt has generated a garbled mix for assigns clause opterr.
2019/adamovsky/iocccsize_2018.c:570:[eva:garbled-mix] warning: The specification of function getopt has generated a garbled mix for assigns clause optopt.
This diff is collapsed.
[metrics] Defined functions (4)
=====================
count (1 call); find_member (1 call); main (0 call); read_line (1 call);
Specified-only functions (0)
============================
Undefined and unspecified functions (0)
=======================================
'Extern' global variables (0)
=============================
Potential entry points (1)
==========================
main;
Global metrics
==============
Sloc = 238
Decision point = 73
Global variables = 7
If = 67
Loop = 5
Goto = 20
Assignment = 86
Exit point = 4
Function = 4
Function call = 27
Pointer dereferencing = 38
Cyclomatic complexity = 77
directory file line function property kind status property
2019/adamovsky prog.c 19 R initialization Unknown \initialized(&(x + (int)(5 - 1))->p)
2019/adamovsky prog.c 19 R signed_overflow Unknown (x + (int)(5 - 1))->p + 1 ≤ 9223372036854775807
2019/adamovsky prog.c 19 D initialization Unknown \initialized(&(f + (int)(5 - 1))->p)
2019/adamovsky prog.c 19 D signed_overflow Unknown -9223372036854775808 ≤ (f + (int)(5 - 1))->p - 1
2019/adamovsky prog.c 19 D initialization Unknown \initialized(&(f + (int)(5 - 1))->p)
2019/adamovsky prog.c 19 D initialization Unknown \initialized(&(f + 0)->l)
2019/adamovsky prog.c 19 D ptr_comparison Unknown \pointer_comparable((void (*)())(f + 0)->l, (void (*)())(&fW))
2019/adamovsky prog.c 19 D ptr_comparison Unknown \pointer_comparable((void (*)())(f + 0)->l, (void (*)())(&fCh))
2019/adamovsky prog.c 19 D initialization Unknown \initialized(&(f + 1)->a)
2019/adamovsky prog.c 19 D ptr_comparison Unknown \pointer_comparable((void (*)())(f + 0)->l, (void (*)())(&fT))
2019/adamovsky prog.c 19 D initialization Unknown \initialized(&(f + 2)->a)
2019/adamovsky prog.c 19 D ptr_comparison Unknown \pointer_comparable((void (*)())(f + 0)->l, (void (*)())(&rE))
2019/adamovsky prog.c 19 D ptr_comparison Unknown \pointer_comparable((void (*)())(f + 0)->l, (void (*)())(&rT))
2019/adamovsky prog.c 19 D ptr_comparison Unknown \pointer_comparable((void (*)())(f + 0)->l, (void (*)())(&rC))
2019/adamovsky prog.c 19 D initialization Unknown \initialized(&(f + 3)->a)
2019/adamovsky prog.c 19 U index_bound Unknown 0 ≤ c
2019/adamovsky prog.c 19 U index_bound Unknown c < 256
2019/adamovsky prog.c 22 I function_pointer Unknown \valid_function((f + 0)->t)
2019/adamovsky prog.c 24 main mem_access Unknown \valid_read(y + 1)
2019/adamovsky prog.c 24 main precondition of fopen Unknown valid_filename: valid_read_string(filename)
2019/adamovsky prog.c 25 main initialization Unknown \initialized(&(f + 3)->a)
2019/adamovsky prog.c 38 rY1 mem_access Invalid or unreachable \valid_read(&(x + 3)->a)
FRAMAC_SHARE/libc stdio.h 150 fopen precondition Unknown valid_filename: valid_read_string(filename)
[metrics] Eva coverage statistics
=======================
Syntactically reachable functions = 46 (out of 46)
Semantically reached functions = 11
Coverage estimation = 23.9%
Unreached functions (35) =
<2019/adamovsky/prog.c>: fA; fA1; fA2; fC; fCh; fD; fD0; fD1; fE; fI; fK0;
fK1; fP; fR; fS0; fS1; fS2; fS21; fS22; fT; fV; fW; rA1; rA2; rC; rD; rE;
rS1; rS2; rT; rY2; Y1; Y2; YE; Yt;
[metrics] References to non-analyzed functions
------------------------------------
Function D references fW (at 2019/adamovsky/prog.c:19)
Function D references fCh (at 2019/adamovsky/prog.c:19)
Function D references fCh (at 2019/adamovsky/prog.c:19)
Function D references fW (at 2019/adamovsky/prog.c:19)
Function D references fT (at 2019/adamovsky/prog.c:19)
Function D references fT (at 2019/adamovsky/prog.c:19)
Function D references rE (at 2019/adamovsky/prog.c:19)
Function D references rT (at 2019/adamovsky/prog.c:19)
Function D references rC (at 2019/adamovsky/prog.c:19)
Function D references rC (at 2019/adamovsky/prog.c:19)
Function D references rT (at 2019/adamovsky/prog.c:19)
Function D references rE (at 2019/adamovsky/prog.c:19)
Function main references rT (at 2019/adamovsky/prog.c:26)
Function main references rC (at 2019/adamovsky/prog.c:26)
Function main references fT (at 2019/adamovsky/prog.c:27)
Function rY1 references rT (at 2019/adamovsky/prog.c:39)
Function rY1 references rC (at 2019/adamovsky/prog.c:39)
Function rY1 references rY2 (at 2019/adamovsky/prog.c:39)
Function rY1 references fD0 (at 2019/adamovsky/prog.c:40)
Function rY1 calls Y1 (at 2019/adamovsky/prog.c:40)
Function rY1 references Yt (at 2019/adamovsky/prog.c:40)
Function rY1 references fD (at 2019/adamovsky/prog.c:40)
Initializer of T references fW (at 2019/adamovsky/prog.c:57)
Initializer of T references fCh (at 2019/adamovsky/prog.c:58)
Initializer of T references fR (at 2019/adamovsky/prog.c:58)
Initializer of T references fE (at 2019/adamovsky/prog.c:58)
Initializer of T references fD0 (at 2019/adamovsky/prog.c:59)
Initializer of T references fC (at 2019/adamovsky/prog.c:59)
Initializer of T references fI (at 2019/adamovsky/prog.c:59)
Initializer of T references fK0 (at 2019/adamovsky/prog.c:59)
Initializer of T references fW (at 2019/adamovsky/prog.c:60)
Initializer of T references fS0 (at 2019/adamovsky/prog.c:60)
Initializer of T references fV (at 2019/adamovsky/prog.c:60)
Initializer of T references fP (at 2019/adamovsky/prog.c:60)
[metrics] Statements analyzed by Eva
--------------------------
148 stmts in analyzed functions, 91 stmts analyzed (61.5%)
C: 15 stmts out of 15 (100.0%)
Ch: 8 stmts out of 8 (100.0%)
D: 14 stmts out of 14 (100.0%)
NL: 3 stmts out of 3 (100.0%)
R: 2 stmts out of 2 (100.0%)
U: 19 stmts out of 19 (100.0%)
I: 7 stmts out of 8 (87.5%)
X: 2 stmts out of 3 (66.7%)
Y: 2 stmts out of 3 (66.7%)
main: 18 stmts out of 38 (47.4%)
rY1: 1 stmts out of 35 (2.9%)
2019/adamovsky/prog.c:19:[nonterm] warning: unreachable implicit return
2019/adamovsky/prog.c:38:[nonterm] warning: non-terminating statement
stack: rY1 :: 2019/adamovsky/prog.c:42 <-
Y :: 2019/adamovsky/prog.c:22 <-
I :: 2019/adamovsky/prog.c:25 <-
main
2019/adamovsky/prog.c:42:[nonterm] warning: unreachable return
2019/adamovsky/prog.c:42:[eva] warning: recursive call during value analysis
of I (I <- Y :: 2019/adamovsky/prog.c:22 <-
I :: 2019/adamovsky/prog.c:25 <-
main).
Assuming the call has no effect. The analysis will be unsound.
2019/adamovsky/prog.c:19:[eva] warning: recursive call during value analysis
of D (D <- D :: 2019/adamovsky/prog.c:28 <- main). Assuming the call has
no effect. The analysis will be unsound.
2019/adamovsky/prog.c:19:[eva] warning: recursive call during value analysis
of D (D <- D :: 2019/adamovsky/prog.c:28 <- main). Assuming the call has
no effect. The analysis will be unsound.
2019/adamovsky/prog.c:19:[eva] warning: recursive call during value analysis
of D (D <- D :: 2019/adamovsky/prog.c:28 <- main). Assuming the call has
no effect. The analysis will be unsound.
/* Generated by Frama-C */
#include "errno.h"
#include "stdarg.h"
#include "stdio.h"
#include "stdlib.h"
union A {
union A *(*t)(union A *x) ;
union A *(*l)(union A *x, union A *y) ;
union A *a ;
long long p ;
};
typedef union A A;
void X(char *f, int r)
{
fputs((char const *)f,__fc_stderr);
exit(r);
return;
}
A *R(A *x)
{
((x + (5 - 1))->p) ++;
return x;
}
A *Ch(A *x);
A *Y(A *x);
A *fA(A *x);
A *fD(A *x, A *y);
A *fT(A *x, A *y);
A *fW(A *x, A *y);
A *fCh(A *x, A *y);
A *rA2(A *x, A *y);
A *fA2(A *x, A *y);
A *rY2(A *x, A *y);
A *Y2(A *x, A *y);
A *rS2(A *x, A *y);
A *fS22(A *x, A *y);
A *rD(A *x, A *y);
A *rE(A *x, A *y);
A *rT(A *x, A *y);
A *rC(A *x, A *y);
void D(A *f)
{
if (f) {
((f + (5 - 1))->p) --;
if (! (f + (5 - 1))->p) {
if ((f + 0)->l != & fW)
if ((f + 0)->l != & fCh) D((f + 1)->a);
if ((f + 0)->l != & fT) D((f + 2)->a);
if ((f + 0)->l != & rE)
if ((f + 0)->l != & rT)
if ((f + 0)->l != & rC) D((f + 3)->a);
free((void *)f);
}
}
return;
}
int ch = -1;
int c;
FILE *p;
A T[256][2];
void U(void)
{
while (1) {
if (c == -1) goto return_label;
if (T[c][0].t) goto return_label;
if (! T[c][1].p) X((char *)"syntax error\n",1);
if (T[c][1].p == (long long)4) {
c = getc(p);
while (1) {
if (c != '\n') {
if (! (c != -1)) break;
}
else break;
c = getc(p);
}
}
c = getc(p);
}
return_label: return;
}
A *I(void)
{
A *tmp;
if (c == -1) X((char *)"syntax error\n",1);
A *f = T[c];
if ((f + 0)->t != & Ch) {
c = getc(p);
U();
}
tmp = (*((f + 0)->t))(f + 1);
return tmp;
}
A *C(A *x)
{
A *tmp_0;
A *r = malloc(sizeof(A [5]));
if (! r) X((char *)"memory error\n",-2);
*(r + 0) = *x;
{
int i = 1;
while (i < 5) {
A __constr_expr_0 = {.t = (union A *(*)(union A *x))0};
*(r + i) = __constr_expr_0;
i ++;
}
}
tmp_0 = R(r);
return tmp_0;
}
int main(int x, char const **y)
{
int __retres;
if (x != 2) X((char *)"fail\n",-1);
p = fopen(*(y + 1),"rb");
if (! p) X((char *)"fail\n",-1);
c = getc(p);
U();
while (c != -1) {
A *f = I();
while ((f + 3)->a)
if ((f + 0)->l == & rT) {
A *tmp_0;
tmp_0 = R((f + 1)->a);
f = (*(((f + 1)->a + 0)->l))(tmp_0,f);
}
else
if ((f + 0)->l == & rC) {
T[96][0].t = & Y;
A *r = R((f + 1)->a);
D(f);
f = r;
}
else {
A *tmp_2;
long tmp_3;
A *tmp_4;
A __constr_expr_1 = {.l = & fT};
tmp_2 = C(& __constr_expr_1);
A *r_0 = tmp_2;
(r_0 + 1)->a = f;
tmp_3 = ftell(p);
(r_0 + 2)->p = (long long)(tmp_3 + (long)(c == -1));
;
tmp_4 = R(f);
f = (*((f + 0)->l))(tmp_4,r_0);
}
D(f);
}
__retres = 0;
return __retres;
}
A *Ch(A *x)
{
A *r = C(x);
c = getc(p);
if (c == -1) X((char *)"syntax error\n",1);
(r + 1)->p = (long long)c;
c = getc(p);
U();
return r;
}
A *NL(A *x)
{
A *r = C(x);
(r + 1)->p = (long long)'\n';
return r;
}
A *rT(A *x, A *y)
{
A *r = R((x + 2)->a);
D(y);
D(x);
return r;
}
A *fD0(A *x, A *y)
{
A *tmp;
A __constr_expr_2 = {.l = & fD};
tmp = C(& __constr_expr_2);
A *r = tmp;
(r + 1)->a = y;
D(x);
return r;
}
A *fA1(A *x, A *y)
{
A *__retres;
A *tmp_0;
if ((y + 3)->a) {
A *tmp;
if ((y + 0)->l == & rT) goto _LOR;
else
if ((y + 0)->l == & rC) {
_LOR: {
D(x);
__retres = y;
goto return_label;
}
}
A __constr_expr_3 = {.l = & fA2};
tmp = C(& __constr_expr_3);
A *r = tmp;
(r + 1)->a = x;
(r + 3)->a = y;
__retres = r;
goto return_label;
}
tmp_0 = (*((x + 0)->l))(x,y);
__retres = tmp_0;
return_label: return __retres;
}
A *fA2(A *x, A *y)
{
A *tmp_2;
union A *tmp_1;
A *a = R((x + 1)->a);
A *b = R((x + 3)->a);
D(x);
tmp_1 = (*((b + 0)->l))(b,y);
;
tmp_2 = fA1(a,tmp_1);
return tmp_2;
}
A *rA1(A *x, A *y)
{
A *__retres;
A *tmp_2;
if ((y + 3)->a) {
A *tmp;
if ((y + 0)->l == & rT) goto _LOR;
else
if ((y + 0)->l == & rC) {
_LOR: {
__retres = y;
goto return_label;
}
}
A __constr_expr_4 = {.l = & rA2};
tmp = C(& __constr_expr_4);
A *r = tmp;
(r + 1)->a = x;
(r + 3)->a = y;
__retres = r;
goto return_label;
}
if ((y + 0)->l == & fD0) {
A *tmp_0;
A __constr_expr_5 = {.l = & fD};
tmp_0 = C(& __constr_expr_5);
A *r_0 = tmp_0;
(r_0 + 1)->a = R((x + 2)->a);
D(y);
D(x);
__retres = r_0;
goto return_label;
}
A *r_1 = fA((x + 2)->a);
D(x);
tmp_2 = fA1(y,r_1);
__retres = tmp_2;
return_label: return __retres;
}
A *rA2(A *x, A *y)
{
A *tmp_2;
union A *tmp_1;
A *f = R((x + 1)->a);
A *a = R((x + 3)->a);
D(x);
tmp_1 = (*((a + 0)->l))(a,y);
;
tmp_2 = rA1(f,tmp_1);
return tmp_2;
}
A *fA(A *x)
{
A *__retres;
A *tmp_0;
A *tmp;
R(x);
if ((x + 0)->t != & fA) {
__retres = x;
goto return_label;
}
tmp = fA((x + 1)->a);
;
tmp_0 = rA1(x,tmp);
__retres = tmp_0;
return_label: return __retres;
}
A *fD1(A *x, A *y)
{
A *__retres;
A *tmp_0;
if ((x + 3)->a) {
A *tmp;
if ((x + 0)->l == & rT) goto _LOR;
else
if ((x + 0)->l == & rC) {
_LOR: {
D(y);
__retres = x;
goto return_label;
}
}
A __constr_expr_6 = {.l = & rD};
tmp = C(& __constr_expr_6);
A *r = tmp;
(r + 1)->a = y;
(r + 3)->a = x;
__retres = r;
goto return_label;
}
tmp_0 = (*((x + 0)->l))(x,y);
__retres = tmp_0;
return_label: return __retres;
}
A *rD(A *x, A *y)
{
A *tmp_2;
union A *tmp_1;
A *a = R((x + 3)->a);
A *b = R((x + 1)->a);
D(x);
;
tmp_1 = (*((a + 0)->l))(a,y);
tmp_2 = fD1(tmp_1,b);