• R/O
  • SSH
  • HTTPS

jpl: Commit


Commit MetaInfo

Revisión402 (tree)
Tiempo2019-01-13 03:44:07
Autorjakobthomsen

Log Message

regression-test for matching unions

Cambiar Resumen

Diferencia

--- trunk/pragmatic/memory_tests/mem_test_output.txt (revision 401)
+++ trunk/pragmatic/memory_tests/mem_test_output.txt (revision 402)
@@ -4,6 +4,8 @@
44 42
55 test optional
66 0
7+Hello!
8+12345
79 END MATCH-TEST
810 ["./mem_tests.bin", "dummy", "args"]
911 ...["This"]
--- trunk/pragmatic/memory_tests/mem_tests.c (revision 401)
+++ trunk/pragmatic/memory_tests/mem_tests.c (revision 402)
@@ -604,6 +604,17 @@
604604 | (_,(_,_),((a,b),(c,d)),_,0,_) -> mul<u64>(mul<u64>(a,b), add<u64>(c,d))
605605 | (out,_,_,_,_,(solid str)) -> { PutStrLn(out, str); result 0 };
606606
607+union strnr
608+{
609+ string str;
610+ u64 nr;
611+}
612+
613+u64 PrintU(StreamOut,strnr)
614+ | (out, _) -> { PutStrLn(out, "internal error"); result 0 }
615+ | (out, (str s)) -> { PutStrLn(out, s); result 0 }
616+ | (out, (nr i)) -> { Print<u64>(out, i); Put(out, '\n'); result 0 };
617+
607618 i32 main()
608619 {
609620 PutStrLn(streams.out, "START MATCH-TEST");
@@ -610,6 +621,8 @@
610621 Print<u64>(streams.out, F(streams.out, v2(1,2), v4(v2(0,0),v2(0,0)), ex(), 5, empty<string>())); PutStrLn(streams.out, "");
611622 Print<u64>(streams.out, F(streams.out, v2(6,7), v4(v2(2,3),v2(4,3)), ey(), 0, empty<string>())); PutStrLn(streams.out, "");
612623 Print<u64>(streams.out, F(streams.out, v2(0,0), v4(v2(0,0),v2(0,0)), ex(), 0, solid<string>("test optional"))); PutStrLn(streams.out, "");
624+ let _ = PrintU(streams.out, str("Hello!"));
625+ let _ = PrintU(streams.out, nr(12345));
613626 PutStrLn(streams.out, "END MATCH-TEST");
614627
615628 Print<stack<string>>(streams.out, cmdargs);
--- trunk/pragmatic/memory_tests/mem_tests.txt (revision 401)
+++ trunk/pragmatic/memory_tests/mem_tests.txt (revision 402)
@@ -4,6 +4,8 @@
44 42
55 test optional
66 0
7+Hello!
8+12345
79 END MATCH-TEST
810 ["./mem_tests.bin", "dummy", "args"]
911 ...["This"]
--- trunk/pragmatic/memory_tests/mem_tests_compiled.c (revision 401)
+++ trunk/pragmatic/memory_tests/mem_tests_compiled.c (revision 402)
@@ -4102,6 +4102,181 @@
41024102 F$2(_0, &(*_1), &(*_2), &(*_3), &(*_4), &(*_5), &(*_6));
41034103 }
41044104
4105+struct strnr
4106+{
4107+ uint64_t type;
4108+ union
4109+ {
4110+ struct string str;
4111+ uint64_t nr;
4112+ };
4113+};
4114+
4115+void strnr$dest(struct strnr *_0)
4116+{
4117+ switch(_0->type)
4118+ {
4119+ case 0: string$dest(&_0->str); break; // struct string str
4120+ case 1: _IGNORE_(_0->nr); break; // uint64_t nr
4121+ default: fprintf(stderr, "INTERNAL ERROR IN UNION-DESTR"); break;
4122+ }
4123+}
4124+
4125+void strnr$copy(struct strnr *copy, struct strnr const *orig)
4126+{
4127+ if(!memcmp(copy, orig, sizeof(struct strnr))) return;
4128+ if(copy->type != orig->type)
4129+ {
4130+ strnr$dest(&*copy);
4131+ memset(copy, 0, sizeof(struct strnr));
4132+ }
4133+
4134+ switch(orig->type)
4135+ {
4136+ case 0: string$copy(&copy->str, &orig->str); break;
4137+ case 1: copy->nr = orig->nr; break;
4138+ default: fprintf(stderr, "INTERNAL ERROR IN UNION-COPY"); break;
4139+ }
4140+ copy->type = orig->type;
4141+}
4142+
4143+void str(struct strnr *new, const struct string *init)
4144+{
4145+ strnr$dest(&*new);
4146+ new->type = 0;
4147+ memset(&(new->str), 0, sizeof(struct string));
4148+ string$copy(&(new->str), &*init);
4149+}
4150+
4151+void nr(struct strnr *new, const uint64_t *init)
4152+{
4153+ strnr$dest(&*new);
4154+ new->type = 1;
4155+ memset(&(new->nr), 0, sizeof(uint64_t));
4156+ (new->nr) = *init;
4157+}
4158+
4159+void Print$strnr(void *_0, const struct StreamOut *out, const struct strnr *s)
4160+{
4161+ switch(s->type)
4162+ {
4163+ case 0:
4164+ {
4165+ fprintf(out->f, "strnr(");
4166+ Print$string(0, out, &s->str);
4167+ break;
4168+ }
4169+ case 1:
4170+ {
4171+ fprintf(out->f, "strnr(");
4172+ Print$u64(0, out, &s->nr);
4173+ break;
4174+ }
4175+ default: fprintf(stderr, "INTERNAL ERROR IN DATA-PRINT"); break;
4176+ }
4177+}
4178+
4179+void cmp$strnr(struct cmp *res, const struct strnr *x, const struct strnr *y)
4180+{
4181+ if(x->type < y->type)
4182+ {
4183+ res->type = 0;
4184+ }
4185+ else if(x->type > y->type)
4186+ {
4187+ res->type = 2;
4188+ }
4189+ else
4190+ {
4191+ switch(x->type)
4192+ {
4193+ case 0:
4194+ {
4195+ cmp$string(res, &x->str, &y->str);
4196+ break;
4197+ }
4198+ case 1:
4199+ {
4200+ cmp$u64(res, &x->nr, &y->nr);
4201+ break;
4202+ }
4203+ default: fprintf(stderr, "INTERNAL ERROR IN DATA-COMPARE"); break;
4204+ }
4205+ }
4206+}
4207+
4208+void PrintU$0(uint64_t *const _0, const struct StreamOut *const _1, const struct strnr *const _2)
4209+{
4210+ const struct StreamOut *out = &(*_1);
4211+ // ignore parameter *_2;
4212+ {
4213+ {
4214+ struct string _2; memset(&_2, 0, sizeof(struct string));
4215+ init$fromliteral(&_2, "internal error", 14);
4216+ PutStrLn(0 /* _1 */, &*out, &_2);
4217+ string$dest(&_2);
4218+ }
4219+ uint64_t _2; memset(&_2, 0, sizeof(uint64_t));
4220+ _2 = 0;
4221+ *_0 = _2;
4222+ _IGNORE_(_2);
4223+ }
4224+}
4225+
4226+void PrintU$1(uint64_t *const _0, const struct StreamOut *const _1, const struct strnr *const _2)
4227+{
4228+ const struct StreamOut *out = &(*_1);
4229+ if((*_2).type != 0)
4230+ {
4231+ PrintU$0(_0, &(*_1), &(*_2));
4232+ return;
4233+ }
4234+ const struct string *_3 = &((*_2).str);
4235+ const struct string *s = &(*_3);
4236+ {
4237+ {
4238+ PutStrLn(0 /* _1 */, &*out, &*s);
4239+ }
4240+ uint64_t _2; memset(&_2, 0, sizeof(uint64_t));
4241+ _2 = 0;
4242+ *_0 = _2;
4243+ _IGNORE_(_2);
4244+ }
4245+}
4246+
4247+void PrintU$2(uint64_t *const _0, const struct StreamOut *const _1, const struct strnr *const _2)
4248+{
4249+ const struct StreamOut *out = &(*_1);
4250+ if((*_2).type != 1)
4251+ {
4252+ PrintU$1(_0, &(*_1), &(*_2));
4253+ return;
4254+ }
4255+ const uint64_t *_3 = &((*_2).nr);
4256+ const uint64_t *i = &(*_3);
4257+ {
4258+ {
4259+ Print$u64(0 /* _1 */, &*out, &*i);
4260+ }
4261+ {
4262+ uint8_t _3; memset(&_3, 0, sizeof(uint8_t));
4263+ _3 = 10;
4264+ Put(0 /* _2 */, &*out, &_3);
4265+ _IGNORE_(_3);
4266+ }
4267+ uint64_t _3; memset(&_3, 0, sizeof(uint64_t));
4268+ _3 = 0;
4269+ *_0 = _3;
4270+ _IGNORE_(_3);
4271+ }
4272+}
4273+
4274+
4275+void PrintU(uint64_t *const _0, const struct StreamOut *const _1, const struct strnr *const _2)
4276+{
4277+ PrintU$2(_0, &(*_1), &(*_2));
4278+}
4279+
41054280 int main(int argcount, char **args)
41064281 {
41074282 struct stack/*string*/ _cmdargs; memset(&_cmdargs, 0, sizeof(struct stack/*string*/));
@@ -4181,7 +4356,7 @@
41814356 _9 = 5;
41824357 struct stack/*string*/ _10; memset(&_10, 0, sizeof(struct stack/*string*/));
41834358 {
4184- empty(&_10, sizeof(struct string), (void (*)(void *))string$dest, (void (*)(void *, const void *))string$copy, 609);
4359+ empty(&_10, sizeof(struct string), (void (*)(void *))string$dest, (void (*)(void *, const void *))string$copy, 620);
41854360 }
41864361 F(&_4, &*_5, &_6, &_7, &_8, &_9, &_10);
41874362 free$(&_10, sizeof(struct string), (void (*)(void *))string$dest);
@@ -4249,7 +4424,7 @@
42494424 _11 = 0;
42504425 struct stack/*string*/ _12; memset(&_12, 0, sizeof(struct stack/*string*/));
42514426 {
4252- empty(&_12, sizeof(struct string), (void (*)(void *))string$dest, (void (*)(void *, const void *))string$copy, 610);
4427+ empty(&_12, sizeof(struct string), (void (*)(void *))string$dest, (void (*)(void *, const void *))string$copy, 621);
42534428 }
42544429 F(&_6, &*_7, &_8, &_9, &_10, &_11, &_12);
42554430 free$(&_12, sizeof(struct string), (void (*)(void *))string$dest);
@@ -4319,7 +4494,7 @@
43194494 {
43204495 struct string _15; memset(&_15, 0, sizeof(struct string));
43214496 init$fromliteral(&_15, "test optional", 13);
4322- solid(&_14, &_15, sizeof(struct string), (void (*)(void *))string$dest, (void (*)(void *, const void *))string$copy, 611);
4497+ solid(&_14, &_15, sizeof(struct string), (void (*)(void *))string$dest, (void (*)(void *, const void *))string$copy, 622);
43234498 string$dest(&_15);
43244499 }
43254500 F(&_8, &*_9, &_10, &_11, &_12, &_13, &_14);
@@ -4340,7 +4515,35 @@
43404515 string$dest(&_9);
43414516 }
43424517 {
4518+ uint64_t _8; memset(&_8, 0, sizeof(uint64_t));
43434519 const struct StreamOut *_9 = &(*streams).out;
4520+ struct strnr _10; memset(&_10, 0, sizeof(struct strnr));
4521+ {
4522+ struct string _11; memset(&_11, 0, sizeof(struct string));
4523+ init$fromliteral(&_11, "Hello!", 6);
4524+ str(&_10, &_11);
4525+ string$dest(&_11);
4526+ }
4527+ PrintU(&_8, &*_9, &_10);
4528+ strnr$dest(&_10);
4529+ _IGNORE_(_8);
4530+ }
4531+ {
4532+ uint64_t _8; memset(&_8, 0, sizeof(uint64_t));
4533+ const struct StreamOut *_9 = &(*streams).out;
4534+ struct strnr _10; memset(&_10, 0, sizeof(struct strnr));
4535+ {
4536+ uint64_t _11; memset(&_11, 0, sizeof(uint64_t));
4537+ _11 = 12345;
4538+ nr(&_10, &_11);
4539+ _IGNORE_(_11);
4540+ }
4541+ PrintU(&_8, &*_9, &_10);
4542+ strnr$dest(&_10);
4543+ _IGNORE_(_8);
4544+ }
4545+ {
4546+ const struct StreamOut *_9 = &(*streams).out;
43444547 struct string _10; memset(&_10, 0, sizeof(struct string));
43454548 init$fromliteral(&_10, "END MATCH-TEST", 14);
43464549 PutStrLn(0 /* _8 */, &*_9, &_10);
@@ -4361,25 +4564,25 @@
43614564 {
43624565 struct string _12; memset(&_12, 0, sizeof(struct string));
43634566 init$fromliteral(&_12, "This", 4);
4364- push(0 /* _11 */, &_orig, &_12, sizeof(struct string), (void (*)(void *))string$dest, (void (*)(void *, const void *))string$copy, 618);
4567+ push(0 /* _11 */, &_orig, &_12, sizeof(struct string), (void (*)(void *))string$dest, (void (*)(void *, const void *))string$copy, 631);
43654568 string$dest(&_12);
43664569 }
43674570 {
43684571 struct string _13; memset(&_13, 0, sizeof(struct string));
43694572 init$fromliteral(&_13, "is", 2);
4370- push(0 /* _12 */, &_orig, &_13, sizeof(struct string), (void (*)(void *))string$dest, (void (*)(void *, const void *))string$copy, 619);
4573+ push(0 /* _12 */, &_orig, &_13, sizeof(struct string), (void (*)(void *))string$dest, (void (*)(void *, const void *))string$copy, 632);
43714574 string$dest(&_13);
43724575 }
43734576 {
43744577 struct string _14; memset(&_14, 0, sizeof(struct string));
43754578 init$fromliteral(&_14, "not", 3);
4376- push(0 /* _13 */, &_orig, &_14, sizeof(struct string), (void (*)(void *))string$dest, (void (*)(void *, const void *))string$copy, 620);
4579+ push(0 /* _13 */, &_orig, &_14, sizeof(struct string), (void (*)(void *))string$dest, (void (*)(void *, const void *))string$copy, 633);
43774580 string$dest(&_14);
43784581 }
43794582 {
43804583 struct string _15; memset(&_15, 0, sizeof(struct string));
43814584 init$fromliteral(&_15, "reduced", 7);
4382- push(0 /* _14 */, &_orig, &_15, sizeof(struct string), (void (*)(void *))string$dest, (void (*)(void *, const void *))string$copy, 621);
4585+ push(0 /* _14 */, &_orig, &_15, sizeof(struct string), (void (*)(void *))string$dest, (void (*)(void *, const void *))string$copy, 634);
43834586 string$dest(&_15);
43844587 }
43854588 {
@@ -4453,7 +4656,7 @@
44534656 string$dest(&_28);
44544657 string$dest(&_27);
44554658 }
4456- push(0 /* _25 */, &_data, &_26, sizeof(struct string2$), (void (*)(void *))string2$$dest, (void (*)(void *, const void *))string2$$copy, 638);
4659+ push(0 /* _25 */, &_data, &_26, sizeof(struct string2$), (void (*)(void *))string2$$dest, (void (*)(void *, const void *))string2$$copy, 651);
44574660 string2$$dest(&_26);
44584661 }
44594662 {
@@ -4467,7 +4670,7 @@
44674670 string$dest(&_29);
44684671 string$dest(&_28);
44694672 }
4470- push(0 /* _26 */, &_data, &_27, sizeof(struct string2$), (void (*)(void *))string2$$dest, (void (*)(void *, const void *))string2$$copy, 639);
4673+ push(0 /* _26 */, &_data, &_27, sizeof(struct string2$), (void (*)(void *))string2$$dest, (void (*)(void *, const void *))string2$$copy, 652);
44714674 string2$$dest(&_27);
44724675 }
44734676 {
@@ -4481,7 +4684,7 @@
44814684 string$dest(&_30);
44824685 string$dest(&_29);
44834686 }
4484- push(0 /* _27 */, &_data, &_28, sizeof(struct string2$), (void (*)(void *))string2$$dest, (void (*)(void *, const void *))string2$$copy, 640);
4687+ push(0 /* _27 */, &_data, &_28, sizeof(struct string2$), (void (*)(void *))string2$$dest, (void (*)(void *, const void *))string2$$copy, 653);
44854688 string2$$dest(&_28);
44864689 }
44874690 {
@@ -4495,7 +4698,7 @@
44954698 string$dest(&_31);
44964699 string$dest(&_30);
44974700 }
4498- push(0 /* _28 */, &_data, &_29, sizeof(struct string2$), (void (*)(void *))string2$$dest, (void (*)(void *, const void *))string2$$copy, 641);
4701+ push(0 /* _28 */, &_data, &_29, sizeof(struct string2$), (void (*)(void *))string2$$dest, (void (*)(void *, const void *))string2$$copy, 654);
44994702 string2$$dest(&_29);
45004703 }
45014704 {
@@ -4509,7 +4712,7 @@
45094712 string$dest(&_32);
45104713 string$dest(&_31);
45114714 }
4512- push(0 /* _29 */, &_data, &_30, sizeof(struct string2$), (void (*)(void *))string2$$dest, (void (*)(void *, const void *))string2$$copy, 642);
4715+ push(0 /* _29 */, &_data, &_30, sizeof(struct string2$), (void (*)(void *))string2$$dest, (void (*)(void *, const void *))string2$$copy, 655);
45134716 string2$$dest(&_30);
45144717 }
45154718 {
@@ -4523,7 +4726,7 @@
45234726 string$dest(&_33);
45244727 string$dest(&_32);
45254728 }
4526- push(0 /* _30 */, &_data, &_31, sizeof(struct string2$), (void (*)(void *))string2$$dest, (void (*)(void *, const void *))string2$$copy, 643);
4729+ push(0 /* _30 */, &_data, &_31, sizeof(struct string2$), (void (*)(void *))string2$$dest, (void (*)(void *, const void *))string2$$copy, 656);
45274730 string2$$dest(&_31);
45284731 }
45294732 {
@@ -4537,7 +4740,7 @@
45374740 string$dest(&_34);
45384741 string$dest(&_33);
45394742 }
4540- push(0 /* _31 */, &_data, &_32, sizeof(struct string2$), (void (*)(void *))string2$$dest, (void (*)(void *, const void *))string2$$copy, 644);
4743+ push(0 /* _31 */, &_data, &_32, sizeof(struct string2$), (void (*)(void *))string2$$dest, (void (*)(void *, const void *))string2$$copy, 657);
45414744 string2$$dest(&_32);
45424745 }
45434746 {
@@ -4551,7 +4754,7 @@
45514754 string$dest(&_35);
45524755 string$dest(&_34);
45534756 }
4554- push(0 /* _32 */, &_data, &_33, sizeof(struct string2$), (void (*)(void *))string2$$dest, (void (*)(void *, const void *))string2$$copy, 645);
4757+ push(0 /* _32 */, &_data, &_33, sizeof(struct string2$), (void (*)(void *))string2$$dest, (void (*)(void *, const void *))string2$$copy, 658);
45554758 string2$$dest(&_33);
45564759 }
45574760 {
@@ -4565,7 +4768,7 @@
45654768 string$dest(&_36);
45664769 string$dest(&_35);
45674770 }
4568- push(0 /* _33 */, &_data, &_34, sizeof(struct string2$), (void (*)(void *))string2$$dest, (void (*)(void *, const void *))string2$$copy, 646);
4771+ push(0 /* _33 */, &_data, &_34, sizeof(struct string2$), (void (*)(void *))string2$$dest, (void (*)(void *, const void *))string2$$copy, 659);
45694772 string2$$dest(&_34);
45704773 }
45714774 {
@@ -4579,7 +4782,7 @@
45794782 string$dest(&_37);
45804783 string$dest(&_36);
45814784 }
4582- push(0 /* _34 */, &_data, &_35, sizeof(struct string2$), (void (*)(void *))string2$$dest, (void (*)(void *, const void *))string2$$copy, 647);
4785+ push(0 /* _34 */, &_data, &_35, sizeof(struct string2$), (void (*)(void *))string2$$dest, (void (*)(void *, const void *))string2$$copy, 660);
45834786 string2$$dest(&_35);
45844787 }
45854788 {
@@ -4718,7 +4921,7 @@
47184921 tree$dest(&_29);
47194922 tree$dest(&_28);
47204923 }
4721- push(0 /* _26 */, &_data, &_27, sizeof(struct tree2$), (void (*)(void *))tree2$$dest, (void (*)(void *, const void *))tree2$$copy, 663);
4924+ push(0 /* _26 */, &_data, &_27, sizeof(struct tree2$), (void (*)(void *))tree2$$dest, (void (*)(void *, const void *))tree2$$copy, 676);
47224925 tree2$$dest(&_27);
47234926 }
47244927 {
@@ -4820,7 +5023,7 @@
48205023 tree$dest(&_30);
48215024 tree$dest(&_29);
48225025 }
4823- push(0 /* _27 */, &_data, &_28, sizeof(struct tree2$), (void (*)(void *))tree2$$dest, (void (*)(void *, const void *))tree2$$copy, 664);
5026+ push(0 /* _27 */, &_data, &_28, sizeof(struct tree2$), (void (*)(void *))tree2$$dest, (void (*)(void *, const void *))tree2$$copy, 677);
48245027 tree2$$dest(&_28);
48255028 }
48265029 {
@@ -4922,7 +5125,7 @@
49225125 tree$dest(&_31);
49235126 tree$dest(&_30);
49245127 }
4925- push(0 /* _28 */, &_data, &_29, sizeof(struct tree2$), (void (*)(void *))tree2$$dest, (void (*)(void *, const void *))tree2$$copy, 665);
5128+ push(0 /* _28 */, &_data, &_29, sizeof(struct tree2$), (void (*)(void *))tree2$$dest, (void (*)(void *, const void *))tree2$$copy, 678);
49265129 tree2$$dest(&_29);
49275130 }
49285131 {
@@ -4972,7 +5175,7 @@
49725175 tree$dest(&_32);
49735176 tree$dest(&_31);
49745177 }
4975- push(0 /* _29 */, &_data, &_30, sizeof(struct tree2$), (void (*)(void *))tree2$$dest, (void (*)(void *, const void *))tree2$$copy, 666);
5178+ push(0 /* _29 */, &_data, &_30, sizeof(struct tree2$), (void (*)(void *))tree2$$dest, (void (*)(void *, const void *))tree2$$copy, 679);
49765179 tree2$$dest(&_30);
49775180 }
49785181 {
@@ -5009,7 +5212,7 @@
50095212 tree$dest(&_33);
50105213 tree$dest(&_32);
50115214 }
5012- push(0 /* _30 */, &_data, &_31, sizeof(struct tree2$), (void (*)(void *))tree2$$dest, (void (*)(void *, const void *))tree2$$copy, 667);
5215+ push(0 /* _30 */, &_data, &_31, sizeof(struct tree2$), (void (*)(void *))tree2$$dest, (void (*)(void *, const void *))tree2$$copy, 680);
50135216 tree2$$dest(&_31);
50145217 }
50155218 {
@@ -5046,7 +5249,7 @@
50465249 tree$dest(&_34);
50475250 tree$dest(&_33);
50485251 }
5049- push(0 /* _31 */, &_data, &_32, sizeof(struct tree2$), (void (*)(void *))tree2$$dest, (void (*)(void *, const void *))tree2$$copy, 668);
5252+ push(0 /* _31 */, &_data, &_32, sizeof(struct tree2$), (void (*)(void *))tree2$$dest, (void (*)(void *, const void *))tree2$$copy, 681);
50505253 tree2$$dest(&_32);
50515254 }
50525255 {
@@ -5070,7 +5273,7 @@
50705273 tree$dest(&_35);
50715274 tree$dest(&_34);
50725275 }
5073- push(0 /* _32 */, &_data, &_33, sizeof(struct tree2$), (void (*)(void *))tree2$$dest, (void (*)(void *, const void *))tree2$$copy, 669);
5276+ push(0 /* _32 */, &_data, &_33, sizeof(struct tree2$), (void (*)(void *))tree2$$dest, (void (*)(void *, const void *))tree2$$copy, 682);
50745277 tree2$$dest(&_33);
50755278 }
50765279 {
@@ -5082,19 +5285,19 @@
50825285 {
50835286 struct string _27; memset(&_27, 0, sizeof(struct string));
50845287 init$fromliteral(&_27, "123", 3);
5085- push(0 /* _26 */, &_words, &_27, sizeof(struct string), (void (*)(void *))string$dest, (void (*)(void *, const void *))string$copy, 675);
5288+ push(0 /* _26 */, &_words, &_27, sizeof(struct string), (void (*)(void *))string$dest, (void (*)(void *, const void *))string$copy, 688);
50865289 string$dest(&_27);
50875290 }
50885291 {
50895292 struct string _28; memset(&_28, 0, sizeof(struct string));
50905293 init$fromliteral(&_28, "456", 3);
5091- push(0 /* _27 */, &_words, &_28, sizeof(struct string), (void (*)(void *))string$dest, (void (*)(void *, const void *))string$copy, 675);
5294+ push(0 /* _27 */, &_words, &_28, sizeof(struct string), (void (*)(void *))string$dest, (void (*)(void *, const void *))string$copy, 688);
50925295 string$dest(&_28);
50935296 }
50945297 {
50955298 struct string _29; memset(&_29, 0, sizeof(struct string));
50965299 init$fromliteral(&_29, "789", 3);
5097- push(0 /* _28 */, &_words, &_29, sizeof(struct string), (void (*)(void *))string$dest, (void (*)(void *, const void *))string$copy, 675);
5300+ push(0 /* _28 */, &_words, &_29, sizeof(struct string), (void (*)(void *))string$dest, (void (*)(void *, const void *))string$copy, 688);
50985301 string$dest(&_29);
50995302 }
51005303 {
@@ -5493,7 +5696,7 @@
54935696 init$fromliteral(&_53, "Hello ", 6);
54945697 struct string _54; memset(&_54, 0, sizeof(struct string));
54955698 init$fromliteral(&_54, "World\n", 6);
5496- strcat$(&_52, &_53, &_54, 742);
5699+ strcat$(&_52, &_53, &_54, 755);
54975700 string$dest(&_54);
54985701 string$dest(&_53);
54995702 }
@@ -5678,7 +5881,7 @@
56785881 {
56795882 struct string _65; memset(&_65, 0, sizeof(struct string));
56805883 init$fromliteral(&_65, "SOLID", 5);
5681- solid(&_other, &_65, sizeof(struct string), (void (*)(void *))string$dest, (void (*)(void *, const void *))string$copy, 769);
5884+ solid(&_other, &_65, sizeof(struct string), (void (*)(void *))string$dest, (void (*)(void *, const void *))string$copy, 782);
56825885 string$dest(&_65);
56835886 }
56845887 {
@@ -5720,18 +5923,18 @@
57205923 init$fromliteral(&_str, "test...", 7);
57215924 struct stack/*string*/ _stk; memset(&_stk, 0, sizeof(struct stack/*string*/));
57225925 {
5723- push(0 /* _69 */, &_stk, &_str, sizeof(struct string), (void (*)(void *))string$dest, (void (*)(void *, const void *))string$copy, 778);
5926+ push(0 /* _69 */, &_stk, &_str, sizeof(struct string), (void (*)(void *))string$dest, (void (*)(void *, const void *))string$copy, 791);
57245927 }
57255928 {
5726- push(0 /* _70 */, &_stk, &_str, sizeof(struct string), (void (*)(void *))string$dest, (void (*)(void *, const void *))string$copy, 779);
5929+ push(0 /* _70 */, &_stk, &_str, sizeof(struct string), (void (*)(void *))string$dest, (void (*)(void *, const void *))string$copy, 792);
57275930 }
57285931 {
57295932 struct stack/*string*/ _71; memset(&_71, 0, sizeof(struct stack/*string*/));
5730- pop_opt(&_71, &_stk, sizeof(struct string), (void (*)(void *))string$dest, (void (*)(void *, const void *))string$copy, 780);
5933+ pop_opt(&_71, &_stk, sizeof(struct string), (void (*)(void *))string$dest, (void (*)(void *, const void *))string$copy, 793);
57315934 free$(&_71, sizeof(struct string), (void (*)(void *))string$dest);
57325935 }
57335936 {
5734- stack(&_stk, sizeof(struct string), (void (*)(void *))string$dest, (void (*)(void *, const void *))string$copy, 781);
5937+ stack(&_stk, sizeof(struct string), (void (*)(void *))string$dest, (void (*)(void *, const void *))string$copy, 794);
57355938 }
57365939 {
57375940 struct stack/*u8*/ _71; memset(&_71, 0, sizeof(struct stack/*u8*/));
Show on old repository browser