Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Subject: Several tests fail or detect memory leaks. #87

Closed
dreirund opened this issue May 8, 2023 · 1 comment
Closed

Subject: Several tests fail or detect memory leaks. #87

dreirund opened this issue May 8, 2023 · 1 comment
Assignees

Comments

@dreirund
Copy link

dreirund commented May 8, 2023

Ahoj,

I am building cito because I need it to build another software.

make test and other make test-*-targets give some errors and notifications about memory leaks:

make test:

test/bin/ConstLong/Test.c
test/bin/ConstLong/c.exe
test/bin/ConstLong/Test.c:8:24: error: result of comparison of constant 1000000000000000 with expression of type 'int' is always false [-Werror,-Wtautological-constant-out-of-range-compare]
        return i * 1000000000 == 1000000000000000;
               ~~~~~~~~~~~~~~ ^  ~~~~~~~~~~~~~~~~
1 error generated.
			&& i * Bar == Foo; //FAIL: c cpp cs d java ts cl
test/bin/ConstLong/c.txt
/bin/sh: line 1: ./test/bin/ConstLong/c.exe: No such file or directory
			&& i * Bar == Foo; //FAIL: c cpp cs d java ts cl
test/bin/ListAddRange/Test.c
test/ListAddRange.ci(11): ERROR: AddRange not supported when targeting C
		dest.AddRange(src); //FAIL: c
test/bin/ListAddRange/c.exe
test/bin/ListAddRange/c.txt
		dest.AddRange(src); //FAIL: c
test/bin/ListAll/Test.c
test/ListAll.ci(17): ERROR: All not supported when targeting C
		return list.All(it => it.Value > 4); //FAIL: c
test/bin/ListAll/c.exe
test/bin/ListAll/Test.c:80:21: error: expected expression
        bool returnValue = ;
                           ^
1 error generated.
		return list.All(it => it.Value > 4); //FAIL: c
test/bin/ListAll/c.txt
/bin/sh: line 1: ./test/bin/ListAll/c.exe: No such file or directory
		return list.All(it => it.Value > 4); //FAIL: c
test/bin/ListAny/Test.c
test/ListAny.ci(17): ERROR: Any not supported when targeting C
		return list.Any(it => it.Value > 10); //FAIL: c
test/bin/ListAny/c.exe
test/bin/ListAny/Test.c:80:21: error: expected expression
        bool returnValue = ;
                           ^
1 error generated.
		return list.Any(it => it.Value > 10); //FAIL: c
test/bin/ListAny/c.txt
/bin/sh: line 1: ./test/bin/ListAny/c.exe: No such file or directory
		return list.Any(it => it.Value > 10); //FAIL: c
test/ListIndexOf.ci(17): ERROR: IndexOf not supported when targeting C
test/ListIndexOf.ci(17): ERROR: IndexOf not supported when targeting C
test/ListIndexOf.ci(18): ERROR: IndexOf not supported when targeting C
test/ListIndexOf.ci(18): ERROR: IndexOf not supported when targeting C
test/ListIndexOf.ci(19): ERROR: IndexOf not supported when targeting C
test/ListIndexOf.ci(19): ERROR: IndexOf not supported when targeting C
		return li.IndexOf(15) == 1 && li.IndexOf(1) == -1 //FAIL: c
test/bin/ListIndexOf/c.exe
test/bin/ListIndexOf/Test.c:32:22: error: expected expression
        bool returnValue =  == 1 &&  == -1 &&  == 1 &&  == -1 &&  == 1 &&  == -1;
                            ^
test/bin/ListIndexOf/Test.c:32:31: error: expected expression
        bool returnValue =  == 1 &&  == -1 &&  == 1 &&  == -1 &&  == 1 &&  == -1;
                                     ^
test/bin/ListIndexOf/Test.c:32:41: error: expected expression
        bool returnValue =  == 1 &&  == -1 &&  == 1 &&  == -1 &&  == 1 &&  == -1;
                                               ^
test/bin/ListIndexOf/Test.c:32:50: error: expected expression
        bool returnValue =  == 1 &&  == -1 &&  == 1 &&  == -1 &&  == 1 &&  == -1;
                                                        ^
test/bin/ListIndexOf/Test.c:32:60: error: expected expression
        bool returnValue =  == 1 &&  == -1 &&  == 1 &&  == -1 &&  == 1 &&  == -1;
                                                                  ^
test/bin/ListIndexOf/Test.c:32:69: error: expected expression
        bool returnValue =  == 1 &&  == -1 &&  == 1 &&  == -1 &&  == 1 &&  == -1;
                                                                           ^
6 errors generated.
		return li.IndexOf(15) == 1 && li.IndexOf(1) == -1 //FAIL: c
test/bin/ListIndexOf/c.txt
/bin/sh: line 1: ./test/bin/ListIndexOf/c.exe: No such file or directory
		return li.IndexOf(15) == 1 && li.IndexOf(1) == -1 //FAIL: c
test/bin/Lock/Test.c
test/Lock.ci(5): ERROR: Lock not supported yet when targeting C
		Lock() mutex; //FAIL: c TODO; js ts cl
test/bin/Lock/c.exe
test/bin/Lock/c.txt
test/bin/MathClamp/Test.c
test/MathClamp.ci(6): ERROR: Clamp not supported when targeting C
test/MathClamp.ci(6): ERROR: Clamp not supported when targeting C
test/MathClamp.ci(6): ERROR: Clamp not supported when targeting C
test/MathClamp.ci(7): ERROR: Clamp not supported when targeting C
test/MathClamp.ci(8): ERROR: Clamp not supported when targeting C
test/MathClamp.ci(8): ERROR: Clamp not supported when targeting C
test/MathClamp.ci(8): ERROR: Clamp not supported when targeting C
		return Math.Clamp(5, 0, 255) == 5 && Math.Clamp(-5, 0, 255) == 0 && Math.Clamp(1000, 0, 255) == 255 //FAIL: c TODO
test/bin/MathClamp/c.exe
test/bin/MathClamp/Test.c:9:10: error: expected expression
        return  == 5 &&  == 0 &&  == 255 &&  == 2 * l &&  == 0.25f &&  == 0.0f &&  == 1.0f;
                ^
test/bin/MathClamp/Test.c:9:19: error: expected expression
        return  == 5 &&  == 0 &&  == 255 &&  == 2 * l &&  == 0.25f &&  == 0.0f &&  == 1.0f;
                         ^
test/bin/MathClamp/Test.c:9:28: error: expected expression
        return  == 5 &&  == 0 &&  == 255 &&  == 2 * l &&  == 0.25f &&  == 0.0f &&  == 1.0f;
                                  ^
test/bin/MathClamp/Test.c:9:39: error: expected expression
        return  == 5 &&  == 0 &&  == 255 &&  == 2 * l &&  == 0.25f &&  == 0.0f &&  == 1.0f;
                                             ^
test/bin/MathClamp/Test.c:9:52: error: expected expression
        return  == 5 &&  == 0 &&  == 255 &&  == 2 * l &&  == 0.25f &&  == 0.0f &&  == 1.0f;
                                                          ^
test/bin/MathClamp/Test.c:9:65: error: expected expression
        return  == 5 &&  == 0 &&  == 255 &&  == 2 * l &&  == 0.25f &&  == 0.0f &&  == 1.0f;
                                                                       ^
test/bin/MathClamp/Test.c:9:77: error: expected expression
        return  == 5 &&  == 0 &&  == 255 &&  == 2 * l &&  == 0.25f &&  == 0.0f &&  == 1.0f;
                                                                                   ^
7 errors generated.
		return Math.Clamp(5, 0, 255) == 5 && Math.Clamp(-5, 0, 255) == 0 && Math.Clamp(1000, 0, 255) == 255 //FAIL: c TODO
test/bin/MathClamp/c.txt
/bin/sh: line 1: ./test/bin/MathClamp/c.exe: No such file or directory
		return Math.Clamp(5, 0, 255) == 5 && Math.Clamp(-5, 0, 255) == 0 && Math.Clamp(1000, 0, 255) == 255 //FAIL: c TODO
test/bin/MathMaxMin/Test.c
test/MathMaxMin.ci(7): ERROR: Min not supported when targeting C
test/MathMaxMin.ci(7): ERROR: Max not supported when targeting C
test/MathMaxMin.ci(7): ERROR: Max not supported when targeting C
		return Math.Min(-5, 10) == -5 && Math.Max(-5, 10) == 10 && Math.Max(l, l) == l //FAIL: c cl TODO
test/bin/MathMaxMin/c.exe
test/bin/MathMaxMin/Test.c:11:10: error: expected expression
        return  == -5 &&  == 10 &&  == l && fmin(-3.0f, 10.5f) == -3 && fmax(-3.0f, 10.5f) == 10.5f;
                ^
test/bin/MathMaxMin/Test.c:11:20: error: expected expression
        return  == -5 &&  == 10 &&  == l && fmin(-3.0f, 10.5f) == -3 && fmax(-3.0f, 10.5f) == 10.5f;
                          ^
test/bin/MathMaxMin/Test.c:11:30: error: expected expression
        return  == -5 &&  == 10 &&  == l && fmin(-3.0f, 10.5f) == -3 && fmax(-3.0f, 10.5f) == 10.5f;
                                    ^
3 errors generated.
		return Math.Min(-5, 10) == -5 && Math.Max(-5, 10) == 10 && Math.Max(l, l) == l //FAIL: c cl TODO
test/bin/MathMaxMin/c.txt
/bin/sh: line 1: ./test/bin/MathMaxMin/c.exe: No such file or directory
		return Math.Min(-5, 10) == -5 && Math.Max(-5, 10) == 10 && Math.Max(l, l) == l //FAIL: c cl TODO
test/bin/MethodShortIsVar/Test.c
test/MethodShortIsVar.ci(13): ERROR: 'is' operator not supported when targeting C
	static bool Bar(Base b) => b is Derived d && d.Yes; //FAIL: c cpp js py swift ts cl TODO; java 17
test/bin/MethodShortIsVar/c.exe
test/bin/MethodShortIsVar/Test.c:26:3: error: use of undeclared identifier 'Base_Foo'
                Base_Foo,
                ^
test/bin/MethodShortIsVar/Test.c:40:10: error: expected ';' after return statement
        return b is const Derived *d && d->yes;
                ^
                ;
2 errors generated.
	static bool Bar(Base b) => b is Derived d && d.Yes; //FAIL: c cpp js py swift ts cl TODO; java 17
test/bin/MethodShortIsVar/c.txt
/bin/sh: line 1: ./test/bin/MethodShortIsVar/c.exe: No such file or directory
	static bool Bar(Base b) => b is Derived d && d.Yes; //FAIL: c cpp js py swift ts cl TODO; java 17
test/bin/ObjectToString/Test.c
test/bin/ObjectToString/c.exe
test/bin/ObjectToString/c.txt

=================================================================
==5989==ERROR: LeakSanitizer: detected memory leaks

Direct leak of 4 byte(s) in 1 object(s) allocated from:
    #0 0x561dc2fe4619 in __interceptor_malloc (/tmp/makepkg/build/cito-git/src/cito/test/bin/ObjectToString/c.exe+0xd7619) (BuildId: befda2313a3b3c202881aa667572caa0a991e2c0)
    #1 0x561dc3029345 in CiString_Format /tmp/makepkg/build/cito-git/src/cito/test/bin/ObjectToString/Test.c:16:14
    #2 0x561dc3029179 in Point_ToString /tmp/makepkg/build/cito-git/src/cito/test/bin/ObjectToString/Test.c:32:9
    #3 0x561dc30295a8 in Test_Run /tmp/makepkg/build/cito-git/src/cito/test/bin/ObjectToString/Test.c:40:18
    #4 0x561dc30296b3 in main /tmp/makepkg/build/cito-git/src/cito/test/Runner.c:7:6
    #5 0x7f5d00bdd78f  (/usr/lib/libc.so.6+0x2378f) (BuildId: 4e286ede94507b0a42b208487675ca8c73594776)

SUMMARY: AddressSanitizer: 4 byte(s) leaked in 1 allocation(s).
		return bar.ToString() == "3,6"; //FAIL: c TODO memleak
test/bin/OpAddString/Test.c
test/OpAddString.ci(7): ERROR: String concatenation not supported when targeting C
test/OpAddString.ci(8): ERROR: String concatenation not supported when targeting C
test/OpAddString.ci(9): ERROR: String concatenation not supported when targeting C
test/OpAddString.ci(10): ERROR: String concatenation not supported when targeting C
test/OpAddString.ci(11): ERROR: String concatenation not supported when targeting C
test/OpAddString.ci(12): ERROR: String concatenation not supported when targeting C
test/OpAddString.ci(13): ERROR: String concatenation not supported when targeting C
test/OpAddString.ci(14): ERROR: String concatenation not supported when targeting C
		return s + s == "foofoo" //FAIL: c
test/bin/OpAddString/c.exe
test/bin/OpAddString/Test.c:10:30: error: invalid operands to binary expression ('char *' and 'char *')
        bool returnValue = strcmp(s + s, "foofoo") == 0 && strcmp(s + p, "foobar") == 0 && strcmp(p + s, "barfoo") == 0 && strcmp(p + p, "barbar") == 0 && strcmp(s + "quux", "fooquux") == 0 && strcmp("quux" + s, "quuxfoo") == 0 && strcmp(p + "quux", "barquux") == 0 && strcmp("quux" + p, "quuxbar") == 0;
                                  ~ ^ ~
test/bin/OpAddString/Test.c:10:62: error: invalid operands to binary expression ('char *' and 'const char *')
        bool returnValue = strcmp(s + s, "foofoo") == 0 && strcmp(s + p, "foobar") == 0 && strcmp(p + s, "barfoo") == 0 && strcmp(p + p, "barbar") == 0 && strcmp(s + "quux", "fooquux") == 0 && strcmp("quux" + s, "quuxfoo") == 0 && strcmp(p + "quux", "barquux") == 0 && strcmp("quux" + p, "quuxbar") == 0;
                                                                  ~ ^ ~
test/bin/OpAddString/Test.c:10:94: error: invalid operands to binary expression ('const char *' and 'char *')
        bool returnValue = strcmp(s + s, "foofoo") == 0 && strcmp(s + p, "foobar") == 0 && strcmp(p + s, "barfoo") == 0 && strcmp(p + p, "barbar") == 0 && strcmp(s + "quux", "fooquux") == 0 && strcmp("quux" + s, "quuxfoo") == 0 && strcmp(p + "quux", "barquux") == 0 && strcmp("quux" + p, "quuxbar") == 0;
                                                                                                  ~ ^ ~
test/bin/OpAddString/Test.c:10:126: error: invalid operands to binary expression ('const char *' and 'const char *')
        bool returnValue = strcmp(s + s, "foofoo") == 0 && strcmp(s + p, "foobar") == 0 && strcmp(p + s, "barfoo") == 0 && strcmp(p + p, "barbar") == 0 && strcmp(s + "quux", "fooquux") == 0 && strcmp("quux" + s, "quuxfoo") == 0 && strcmp(p + "quux", "barquux") == 0 && strcmp("quux" + p, "quuxbar") == 0;
                                                                                                                                  ~ ^ ~
test/bin/OpAddString/Test.c:10:158: error: invalid operands to binary expression ('char *' and 'char[5]')
        bool returnValue = strcmp(s + s, "foofoo") == 0 && strcmp(s + p, "foobar") == 0 && strcmp(p + s, "barfoo") == 0 && strcmp(p + p, "barbar") == 0 && strcmp(s + "quux", "fooquux") == 0 && strcmp("quux" + s, "quuxfoo") == 0 && strcmp(p + "quux", "barquux") == 0 && strcmp("quux" + p, "quuxbar") == 0;
                                                                                                                                                                  ~ ^ ~~~~~~
test/bin/OpAddString/Test.c:10:201: error: invalid operands to binary expression ('char[5]' and 'char *')
        bool returnValue = strcmp(s + s, "foofoo") == 0 && strcmp(s + p, "foobar") == 0 && strcmp(p + s, "barfoo") == 0 && strcmp(p + p, "barbar") == 0 && strcmp(s + "quux", "fooquux") == 0 && strcmp("quux" + s, "quuxfoo") == 0 && strcmp(p + "quux", "barquux") == 0 && strcmp("quux" + p, "quuxbar") == 0;
                                                                                                                                                                                                        ~~~~~~ ^ ~
test/bin/OpAddString/Test.c:10:234: error: invalid operands to binary expression ('const char *' and 'char[5]')
        bool returnValue = strcmp(s + s, "foofoo") == 0 && strcmp(s + p, "foobar") == 0 && strcmp(p + s, "barfoo") == 0 && strcmp(p + p, "barbar") == 0 && strcmp(s + "quux", "fooquux") == 0 && strcmp("quux" + s, "quuxfoo") == 0 && strcmp(p + "quux", "barquux") == 0 && strcmp("quux" + p, "quuxbar") == 0;
                                                                                                                                                                                                                                              ~ ^ ~~~~~~
test/bin/OpAddString/Test.c:10:277: error: invalid operands to binary expression ('char[5]' and 'const char *')
        bool returnValue = strcmp(s + s, "foofoo") == 0 && strcmp(s + p, "foobar") == 0 && strcmp(p + s, "barfoo") == 0 && strcmp(p + p, "barbar") == 0 && strcmp(s + "quux", "fooquux") == 0 && strcmp("quux" + s, "quuxfoo") == 0 && strcmp(p + "quux", "barquux") == 0 && strcmp("quux" + p, "quuxbar") == 0;
                                                                                                                                                                                                                                                                                    ~~~~~~ ^ ~
8 errors generated.
		return s + s == "foofoo" //FAIL: c
test/bin/OpAddString/c.txt
/bin/sh: line 1: ./test/bin/OpAddString/c.exe: No such file or directory
		return s + s == "foofoo" //FAIL: c
test/bin/OpAddStringInterpolated/Test.c
test/bin/OpAddStringInterpolated/c.exe
test/bin/OpAddStringInterpolated/c.txt
test/bin/OpIs/Test.c
test/OpIs.ci(20): ERROR: 'is' operator not supported when targeting C
test/OpIs.ci(21): ERROR: 'is' operator not supported when targeting C
test/OpIs.ci(21): ERROR: 'is' operator not supported when targeting C
		return b is Derived //FAIL: c cl TODO
test/bin/OpIs/c.exe
test/bin/OpIs/Test.c:29:3: error: use of undeclared identifier 'Base_Foo'
                Base_Foo,
                ^
test/bin/OpIs/Test.c:49:10: error: expected ';' after return statement
        return b is Derived && !(b is NotThis) & b is Derived;
                ^
                ;
2 errors generated.
		return b is Derived //FAIL: c cl TODO
test/bin/OpIs/c.txt
/bin/sh: line 1: ./test/bin/OpIs/c.exe: No such file or directory
		return b is Derived //FAIL: c cl TODO
test/bin/OpIsDynamic/Test.c
test/OpIsDynamic.ci(15): ERROR: 'is' operator not supported when targeting C
		return p is Derived; //FAIL: c TODO; cl
test/bin/OpIsDynamic/c.exe
test/bin/OpIsDynamic/Test.c:59:3: error: use of undeclared identifier 'Base_Foo'
                Base_Foo,
                ^
test/bin/OpIsDynamic/Test.c:72:22: error: expected ';' at end of declaration
        bool returnValue = p is Derived;
                            ^
                            ;
2 errors generated.
		return p is Derived; //FAIL: c TODO; cl
test/bin/OpIsDynamic/c.txt
/bin/sh: line 1: ./test/bin/OpIsDynamic/c.exe: No such file or directory
		return p is Derived; //FAIL: c TODO; cl
test/bin/OpIsVar/Test.c
test/OpIsVar.ci(17): ERROR: 'is' operator not supported when targeting C
test/OpIsVar.ci(18): ERROR: 'is' operator not supported when targeting C
		return b is Derived ro && ro.Ok() //FAIL: c py swift cl TODO; java 17
test/bin/OpIsVar/c.exe
test/bin/OpIsVar/Test.c:25:3: error: use of undeclared identifier 'Base_Foo'
                Base_Foo,
                ^
test/bin/OpIsVar/Test.c:47:10: error: expected ';' after return statement
        return b is const Derived *ro && Derived_Ok(ro) && b is Derived *rw && Derived_Ok(rw);
                ^
                ;
2 errors generated.
		return b is Derived ro && ro.Ok() //FAIL: c py swift cl TODO; java 17
test/bin/OpIsVar/c.txt
/bin/sh: line 1: ./test/bin/OpIsVar/c.exe: No such file or directory
		return b is Derived ro && ro.Ok() //FAIL: c py swift cl TODO; java 17
test/bin/OpIsVarDynamic/Test.c
test/OpIsVarDynamic.ci(16): ERROR: 'is' operator not supported when targeting C
test/OpIsVarDynamic.ci(17): ERROR: 'is' operator not supported when targeting C
		if (p is Derived# d) { //FAIL: c js py swift ts TODO; cl java 17
test/bin/OpIsVarDynamic/c.exe
test/bin/OpIsVarDynamic/Test.c:60:3: error: use of undeclared identifier 'Base_Foo'
                Base_Foo,
                ^
test/bin/OpIsVarDynamic/Test.c:75:8: error: expected ')'
        if (p is Derived *d) {
              ^
test/bin/OpIsVarDynamic/Test.c:75:5: note: to match this '('
        if (p is Derived *d) {
           ^
test/bin/OpIsVarDynamic/Test.c:77:9: error: expected ')'
                if (p is Derived *r) {
                      ^
test/bin/OpIsVarDynamic/Test.c:77:6: note: to match this '('
                if (p is Derived *r) {
                   ^
3 errors generated.
		if (p is Derived# d) { //FAIL: c js py swift ts TODO; cl java 17
test/bin/OpIsVarDynamic/c.txt
/bin/sh: line 1: ./test/bin/OpIsVarDynamic/c.exe: No such file or directory
		if (p is Derived# d) { //FAIL: c js py swift ts TODO; cl java 17
test/bin/OpIsVarIf/Test.c
test/OpIsVarIf.ci(18): ERROR: 'is' operator not supported when targeting C
test/OpIsVarIf.ci(20): ERROR: 'is' operator not supported when targeting C
			if (b is Derived ro && !ro.Ok()) //FAIL: c py swift cl TODO; java 17
test/bin/OpIsVarIf/c.exe
test/bin/OpIsVarIf/Test.c:25:3: error: use of undeclared identifier 'Base_Foo'
                Base_Foo,
                ^
test/bin/OpIsVarIf/Test.c:47:9: error: expected ')'
                if (b is const Derived *ro && !Derived_Ok(ro))
                      ^
test/bin/OpIsVarIf/Test.c:47:6: note: to match this '('
                if (b is const Derived *ro && !Derived_Ok(ro))
                   ^
test/bin/OpIsVarIf/Test.c:51:10: error: expected ')'
                        if (b is Derived *rw && Derived_Ok(rw))
                              ^
test/bin/OpIsVarIf/Test.c:51:7: note: to match this '('
                        if (b is Derived *rw && Derived_Ok(rw))
                           ^
3 errors generated.
			if (b is Derived ro && !ro.Ok()) //FAIL: c py swift cl TODO; java 17
test/bin/OpIsVarIf/c.txt
/bin/sh: line 1: ./test/bin/OpIsVarIf/c.exe: No such file or directory
			if (b is Derived ro && !ro.Ok()) //FAIL: c py swift cl TODO; java 17
test/bin/OrderedDictionary/Test.c
test/OrderedDictionary.ci(5): ERROR: OrderedDictionary not supported when targeting C
test/OrderedDictionary.ci(5): ERROR: OrderedDictionary not supported when targeting C
test/OrderedDictionary.ci(7): ERROR: Clear not supported when targeting C
test/OrderedDictionary.ci(11): ERROR: Remove not supported when targeting C
test/OrderedDictionary.ci(12): ERROR: OrderedDictionary not supported when targeting C
test/OrderedDictionary.ci(12): ERROR: OrderedDictionary not supported when targeting C
test/OrderedDictionary.ci(14): ERROR: ContainsKey not supported when targeting C
		OrderedDictionary<string, int>() dict; //FAIL: c cpp d swift cl
test/bin/OrderedDictionary/c.exe
test/bin/OrderedDictionary/Test.c:30:2: error: use of undeclared identifier 'dict'
        dict = () CiShared_Make(1, sizeof(OrderedDictionary), NULL, NULL);
        ^
test/bin/OrderedDictionary/Test.c:30:10: error: expected expression
        dict = () CiShared_Make(1, sizeof(OrderedDictionary), NULL, NULL);
                ^
test/bin/OrderedDictionary/Test.c:31:2: error: call to undeclared function 'g_hash_table_insert'; ISO C99 and later do not support implicit function declarations [-Werror,-Wimplicit-function-declaration]
        g_hash_table_insert(dict, (gpointer) "foo", GINT_TO_POINTER(10));
        ^
test/bin/OrderedDictionary/Test.c:31:29: error: use of undeclared identifier 'gpointer'
        g_hash_table_insert(dict, (gpointer) "foo", GINT_TO_POINTER(10));
                                   ^
test/bin/OrderedDictionary/Test.c:31:46: error: call to undeclared function 'GINT_TO_POINTER'; ISO C99 and later do not support implicit function declarations [-Werror,-Wimplicit-function-declaration]
        g_hash_table_insert(dict, (gpointer) "foo", GINT_TO_POINTER(10));
                                                    ^
test/bin/OrderedDictionary/Test.c:31:22: error: use of undeclared identifier 'dict'; did you mean 'div'?
        g_hash_table_insert(dict, (gpointer) "foo", GINT_TO_POINTER(10));
                            ^~~~
                            div
/usr/include/stdlib.h:873:14: note: 'div' declared here
extern div_t div (int __numer, int __denom)
             ^
test/bin/OrderedDictionary/Test.c:33:29: error: use of undeclared identifier 'gpointer'
        g_hash_table_insert(dict, (gpointer) "foo", GINT_TO_POINTER(12));
                                   ^
test/bin/OrderedDictionary/Test.c:33:22: error: use of undeclared identifier 'dict'; did you mean 'div'?
        g_hash_table_insert(dict, (gpointer) "foo", GINT_TO_POINTER(12));
                            ^~~~
                            div
/usr/include/stdlib.h:873:14: note: 'div' declared here
extern div_t div (int __numer, int __denom)
             ^
test/bin/OrderedDictionary/Test.c:34:29: error: use of undeclared identifier 'gpointer'
        g_hash_table_insert(dict, (gpointer) "bar", GINT_TO_POINTER(20));
                                   ^
test/bin/OrderedDictionary/Test.c:34:22: error: use of undeclared identifier 'dict'; did you mean 'div'?
        g_hash_table_insert(dict, (gpointer) "bar", GINT_TO_POINTER(20));
                            ^~~~
                            div
/usr/include/stdlib.h:873:14: note: 'div' declared here
extern div_t div (int __numer, int __denom)
             ^
test/bin/OrderedDictionary/Test.c:35:29: error: use of undeclared identifier 'gpointer'
        g_hash_table_insert(dict, (gpointer) "quux", GINT_TO_POINTER(30));
                                   ^
test/bin/OrderedDictionary/Test.c:35:22: error: use of undeclared identifier 'dict'; did you mean 'div'?
        g_hash_table_insert(dict, (gpointer) "quux", GINT_TO_POINTER(30));
                            ^~~~
                            div
/usr/include/stdlib.h:873:14: note: 'div' declared here
extern div_t div (int __numer, int __denom)
             ^
test/bin/OrderedDictionary/Test.c:37:2: error: use of undeclared identifier 'dict2'
        dict2 = () CiShared_Make(1, sizeof(OrderedDictionary), NULL, NULL);
        ^
test/bin/OrderedDictionary/Test.c:37:11: error: expected expression
        dict2 = () CiShared_Make(1, sizeof(OrderedDictionary), NULL, NULL);
                 ^
test/bin/OrderedDictionary/Test.c:38:51: error: use of undeclared identifier 'gpointer'
        g_hash_table_insert(dict2, GINT_TO_POINTER(42), (gpointer) "answer");
                                                         ^
test/bin/OrderedDictionary/Test.c:38:22: error: use of undeclared identifier 'dict2'
        g_hash_table_insert(dict2, GINT_TO_POINTER(42), (gpointer) "answer");
                            ^
test/bin/OrderedDictionary/Test.c:39:40: error: use of undeclared identifier 'dict'; did you mean 'div'?
        bool returnValue = dict.count == 2 && dict["foo"] == 12 && dict["quux"] == 30 &&  && strcmp(dict2[42], "answer") == 0 && (int) strlen(dict2[42]) == 6;
                                              ^~~~
                                              div
/usr/include/stdlib.h:873:14: note: 'div' declared here
extern div_t div (int __numer, int __denom)
             ^
test/bin/OrderedDictionary/Test.c:39:44: error: array subscript is not an integer
        bool returnValue = dict.count == 2 && dict["foo"] == 12 && dict["quux"] == 30 &&  && strcmp(dict2[42], "answer") == 0 && (int) strlen(dict2[42]) == 6;
                                                  ^~~~~~
test/bin/OrderedDictionary/Test.c:39:21: error: use of undeclared identifier 'dict'
        bool returnValue = dict.count == 2 && dict["foo"] == 12 && dict["quux"] == 30 &&  && strcmp(dict2[42], "answer") == 0 && (int) strlen(dict2[42]) == 6;
                           ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
		OrderedDictionary<string, int>() dict; //FAIL: c cpp d swift cl
test/bin/OrderedDictionary/c.txt
/bin/sh: line 1: ./test/bin/OrderedDictionary/c.exe: No such file or directory
		OrderedDictionary<string, int>() dict; //FAIL: c cpp d swift cl
test/bin/RegexCompile/Test.c
test/bin/RegexCompile/c.exe
test/bin/RegexCompile/c.txt

=================================================================
==8915==ERROR: LeakSanitizer: detected memory leaks

Direct leak of 144 byte(s) in 2 object(s) allocated from:
    #0 0x55a119a509c1 in __interceptor_calloc (/tmp/makepkg/build/cito-git/src/cito/test/bin/RegexCompile/c.exe+0xd89c1) (BuildId: 6d4fd675771d5976b275a3e44661637b17a73a4b)
    #1 0x7fc9cbdb4a31 in g_malloc0 (/usr/lib/libglib-2.0.so.0+0x5fa31) (BuildId: 2ec3466acaa7123dcc6ba1d1dd61e8fe9f75991f)

Direct leak of 20 byte(s) in 3 object(s) allocated from:
    #0 0x55a119a50669 in __interceptor_malloc (/tmp/makepkg/build/cito-git/src/cito/test/bin/RegexCompile/c.exe+0xd8669) (BuildId: 6d4fd675771d5976b275a3e44661637b17a73a4b)
    #1 0x7fc9cbdb3e19 in g_malloc (/usr/lib/libglib-2.0.so.0+0x5ee19) (BuildId: 2ec3466acaa7123dcc6ba1d1dd61e8fe9f75991f)

Indirect leak of 20480 byte(s) in 1 object(s) allocated from:
    #0 0x55a119a50669 in __interceptor_malloc (/tmp/makepkg/build/cito-git/src/cito/test/bin/RegexCompile/c.exe+0xd8669) (BuildId: 6d4fd675771d5976b275a3e44661637b17a73a4b)
    #1 0x7fc9cba16577 in pcre2_match_8 (/usr/lib/libpcre2-8.so.0+0x64577) (BuildId: bd281ab432f97f6a7c0af1c286a30d6f9160013a)

Indirect leak of 322 byte(s) in 2 object(s) allocated from:
    #0 0x55a119a50669 in __interceptor_malloc (/tmp/makepkg/build/cito-git/src/cito/test/bin/RegexCompile/c.exe+0xd8669) (BuildId: 6d4fd675771d5976b275a3e44661637b17a73a4b)
    #1 0x7fc9cb9bfe69 in pcre2_compile_8 (/usr/lib/libpcre2-8.so.0+0xde69) (BuildId: bd281ab432f97f6a7c0af1c286a30d6f9160013a)
    #2 0x7fc9cba2103f  (/usr/lib/libpcre2-8.so.0+0x6f03f) (BuildId: bd281ab432f97f6a7c0af1c286a30d6f9160013a)

Indirect leak of 144 byte(s) in 1 object(s) allocated from:
    #0 0x55a119a50669 in __interceptor_malloc (/tmp/makepkg/build/cito-git/src/cito/test/bin/RegexCompile/c.exe+0xd8669) (BuildId: 6d4fd675771d5976b275a3e44661637b17a73a4b)
    #1 0x7fc9cb9c46e2  (/usr/lib/libpcre2-8.so.0+0x126e2) (BuildId: bd281ab432f97f6a7c0af1c286a30d6f9160013a)

Indirect leak of 96 byte(s) in 1 object(s) allocated from:
    #0 0x55a119a50669 in __interceptor_malloc (/tmp/makepkg/build/cito-git/src/cito/test/bin/RegexCompile/c.exe+0xd8669) (BuildId: 6d4fd675771d5976b275a3e44661637b17a73a4b)
    #1 0x7fc9cb9c4705  (/usr/lib/libpcre2-8.so.0+0x12705) (BuildId: bd281ab432f97f6a7c0af1c286a30d6f9160013a)

Indirect leak of 48 byte(s) in 1 object(s) allocated from:
    #0 0x55a119a509c1 in __interceptor_calloc (/tmp/makepkg/build/cito-git/src/cito/test/bin/RegexCompile/c.exe+0xd89c1) (BuildId: 6d4fd675771d5976b275a3e44661637b17a73a4b)
    #1 0x7fc9cbdb4a31 in g_malloc0 (/usr/lib/libglib-2.0.so.0+0x5fa31) (BuildId: 2ec3466acaa7123dcc6ba1d1dd61e8fe9f75991f)

Indirect leak of 24 byte(s) in 1 object(s) allocated from:
    #0 0x55a119a4f79a in __interceptor_realloc.part.0 asan_malloc_linux.cpp.o
    #1 0x7fc9cbdb4ad0 in g_realloc (/usr/lib/libglib-2.0.so.0+0x5fad0) (BuildId: 2ec3466acaa7123dcc6ba1d1dd61e8fe9f75991f)

Indirect leak of 21 byte(s) in 2 object(s) allocated from:
    #0 0x55a119a50669 in __interceptor_malloc (/tmp/makepkg/build/cito-git/src/cito/test/bin/RegexCompile/c.exe+0xd8669) (BuildId: 6d4fd675771d5976b275a3e44661637b17a73a4b)
    #1 0x7fc9cbdb3e19 in g_malloc (/usr/lib/libglib-2.0.so.0+0x5ee19) (BuildId: 2ec3466acaa7123dcc6ba1d1dd61e8fe9f75991f)

SUMMARY: AddressSanitizer: 21299 byte(s) leaked in 14 allocation(s).
		re = Regex.Compile("(B.+?) (\\wo\\w)", RegexOptions.IgnoreCase); //FAIL: c TODO memleak
test/bin/RegexMatch/Test.c
test/bin/RegexMatch/c.exe
test/bin/RegexMatch/c.txt

=================================================================
==9024==ERROR: LeakSanitizer: detected memory leaks

Direct leak of 96 byte(s) in 1 object(s) allocated from:
    #0 0x55e77f1679c1 in __interceptor_calloc (/tmp/makepkg/build/cito-git/src/cito/test/bin/RegexMatch/c.exe+0xd89c1) (BuildId: 1de0df9672b5806a3ea622e2d148c143cfedf5eb)
    #1 0x7f577c4e9a31 in g_malloc0 (/usr/lib/libglib-2.0.so.0+0x5fa31) (BuildId: 2ec3466acaa7123dcc6ba1d1dd61e8fe9f75991f)

Direct leak of 20 byte(s) in 3 object(s) allocated from:
    #0 0x55e77f167669 in __interceptor_malloc (/tmp/makepkg/build/cito-git/src/cito/test/bin/RegexMatch/c.exe+0xd8669) (BuildId: 1de0df9672b5806a3ea622e2d148c143cfedf5eb)
    #1 0x7f577c4e8e19 in g_malloc (/usr/lib/libglib-2.0.so.0+0x5ee19) (BuildId: 2ec3466acaa7123dcc6ba1d1dd61e8fe9f75991f)

Indirect leak of 20480 byte(s) in 1 object(s) allocated from:
    #0 0x55e77f167669 in __interceptor_malloc (/tmp/makepkg/build/cito-git/src/cito/test/bin/RegexMatch/c.exe+0xd8669) (BuildId: 1de0df9672b5806a3ea622e2d148c143cfedf5eb)
    #1 0x7f577c14b577 in pcre2_match_8 (/usr/lib/libpcre2-8.so.0+0x64577) (BuildId: bd281ab432f97f6a7c0af1c286a30d6f9160013a)

Indirect leak of 173 byte(s) in 1 object(s) allocated from:
    #0 0x55e77f167669 in __interceptor_malloc (/tmp/makepkg/build/cito-git/src/cito/test/bin/RegexMatch/c.exe+0xd8669) (BuildId: 1de0df9672b5806a3ea622e2d148c143cfedf5eb)
    #1 0x7f577c0f4e69 in pcre2_compile_8 (/usr/lib/libpcre2-8.so.0+0xde69) (BuildId: bd281ab432f97f6a7c0af1c286a30d6f9160013a)
    #2 0x7f577c15603f  (/usr/lib/libpcre2-8.so.0+0x6f03f) (BuildId: bd281ab432f97f6a7c0af1c286a30d6f9160013a)

Indirect leak of 144 byte(s) in 1 object(s) allocated from:
    #0 0x55e77f167669 in __interceptor_malloc (/tmp/makepkg/build/cito-git/src/cito/test/bin/RegexMatch/c.exe+0xd8669) (BuildId: 1de0df9672b5806a3ea622e2d148c143cfedf5eb)
    #1 0x7f577c0f96e2  (/usr/lib/libpcre2-8.so.0+0x126e2) (BuildId: bd281ab432f97f6a7c0af1c286a30d6f9160013a)

Indirect leak of 96 byte(s) in 1 object(s) allocated from:
    #0 0x55e77f167669 in __interceptor_malloc (/tmp/makepkg/build/cito-git/src/cito/test/bin/RegexMatch/c.exe+0xd8669) (BuildId: 1de0df9672b5806a3ea622e2d148c143cfedf5eb)
    #1 0x7f577c0f9705  (/usr/lib/libpcre2-8.so.0+0x12705) (BuildId: bd281ab432f97f6a7c0af1c286a30d6f9160013a)

Indirect leak of 48 byte(s) in 1 object(s) allocated from:
    #0 0x55e77f1679c1 in __interceptor_calloc (/tmp/makepkg/build/cito-git/src/cito/test/bin/RegexMatch/c.exe+0xd89c1) (BuildId: 1de0df9672b5806a3ea622e2d148c143cfedf5eb)
    #1 0x7f577c4e9a31 in g_malloc0 (/usr/lib/libglib-2.0.so.0+0x5fa31) (BuildId: 2ec3466acaa7123dcc6ba1d1dd61e8fe9f75991f)

Indirect leak of 24 byte(s) in 1 object(s) allocated from:
    #0 0x55e77f16679a in __interceptor_realloc.part.0 asan_malloc_linux.cpp.o
    #1 0x7f577c4e9ad0 in g_realloc (/usr/lib/libglib-2.0.so.0+0x5fad0) (BuildId: 2ec3466acaa7123dcc6ba1d1dd61e8fe9f75991f)

Indirect leak of 15 byte(s) in 1 object(s) allocated from:
    #0 0x55e77f167669 in __interceptor_malloc (/tmp/makepkg/build/cito-git/src/cito/test/bin/RegexMatch/c.exe+0xd8669) (BuildId: 1de0df9672b5806a3ea622e2d148c143cfedf5eb)
    #1 0x7f577c4e8e19 in g_malloc (/usr/lib/libglib-2.0.so.0+0x5ee19) (BuildId: 2ec3466acaa7123dcc6ba1d1dd61e8fe9f75991f)

SUMMARY: AddressSanitizer: 21096 byte(s) leaked in 11 allocation(s).
			&& m.Value == "brown fox" //FAIL: c TODO memleak
test/bin/RegexMatchPtr/Test.c
test/bin/RegexMatchPtr/c.exe
test/bin/RegexMatchPtr/c.txt

=================================================================
==9056==ERROR: LeakSanitizer: detected memory leaks

Direct leak of 96 byte(s) in 1 object(s) allocated from:
    #0 0x557561cf39c1 in __interceptor_calloc (/tmp/makepkg/build/cito-git/src/cito/test/bin/RegexMatchPtr/c.exe+0xd89c1) (BuildId: 9cad780bf433b1724e68b71a1045b3201d69af00)
    #1 0x7fc2f88e2a31 in g_malloc0 (/usr/lib/libglib-2.0.so.0+0x5fa31) (BuildId: 2ec3466acaa7123dcc6ba1d1dd61e8fe9f75991f)

Direct leak of 20 byte(s) in 3 object(s) allocated from:
    #0 0x557561cf3669 in __interceptor_malloc (/tmp/makepkg/build/cito-git/src/cito/test/bin/RegexMatchPtr/c.exe+0xd8669) (BuildId: 9cad780bf433b1724e68b71a1045b3201d69af00)
    #1 0x7fc2f88e1e19 in g_malloc (/usr/lib/libglib-2.0.so.0+0x5ee19) (BuildId: 2ec3466acaa7123dcc6ba1d1dd61e8fe9f75991f)

Indirect leak of 20480 byte(s) in 1 object(s) allocated from:
    #0 0x557561cf3669 in __interceptor_malloc (/tmp/makepkg/build/cito-git/src/cito/test/bin/RegexMatchPtr/c.exe+0xd8669) (BuildId: 9cad780bf433b1724e68b71a1045b3201d69af00)
    #1 0x7fc2f8544577 in pcre2_match_8 (/usr/lib/libpcre2-8.so.0+0x64577) (BuildId: bd281ab432f97f6a7c0af1c286a30d6f9160013a)

Indirect leak of 173 byte(s) in 1 object(s) allocated from:
    #0 0x557561cf3669 in __interceptor_malloc (/tmp/makepkg/build/cito-git/src/cito/test/bin/RegexMatchPtr/c.exe+0xd8669) (BuildId: 9cad780bf433b1724e68b71a1045b3201d69af00)
    #1 0x7fc2f84ede69 in pcre2_compile_8 (/usr/lib/libpcre2-8.so.0+0xde69) (BuildId: bd281ab432f97f6a7c0af1c286a30d6f9160013a)
    #2 0x7fc2f854f03f  (/usr/lib/libpcre2-8.so.0+0x6f03f) (BuildId: bd281ab432f97f6a7c0af1c286a30d6f9160013a)

Indirect leak of 144 byte(s) in 1 object(s) allocated from:
    #0 0x557561cf3669 in __interceptor_malloc (/tmp/makepkg/build/cito-git/src/cito/test/bin/RegexMatchPtr/c.exe+0xd8669) (BuildId: 9cad780bf433b1724e68b71a1045b3201d69af00)
    #1 0x7fc2f84f26e2  (/usr/lib/libpcre2-8.so.0+0x126e2) (BuildId: bd281ab432f97f6a7c0af1c286a30d6f9160013a)

Indirect leak of 96 byte(s) in 1 object(s) allocated from:
    #0 0x557561cf3669 in __interceptor_malloc (/tmp/makepkg/build/cito-git/src/cito/test/bin/RegexMatchPtr/c.exe+0xd8669) (BuildId: 9cad780bf433b1724e68b71a1045b3201d69af00)
    #1 0x7fc2f84f2705  (/usr/lib/libpcre2-8.so.0+0x12705) (BuildId: bd281ab432f97f6a7c0af1c286a30d6f9160013a)

Indirect leak of 48 byte(s) in 1 object(s) allocated from:
    #0 0x557561cf39c1 in __interceptor_calloc (/tmp/makepkg/build/cito-git/src/cito/test/bin/RegexMatchPtr/c.exe+0xd89c1) (BuildId: 9cad780bf433b1724e68b71a1045b3201d69af00)
    #1 0x7fc2f88e2a31 in g_malloc0 (/usr/lib/libglib-2.0.so.0+0x5fa31) (BuildId: 2ec3466acaa7123dcc6ba1d1dd61e8fe9f75991f)

Indirect leak of 24 byte(s) in 1 object(s) allocated from:
    #0 0x557561cf279a in __interceptor_realloc.part.0 asan_malloc_linux.cpp.o
    #1 0x7fc2f88e2ad0 in g_realloc (/usr/lib/libglib-2.0.so.0+0x5fad0) (BuildId: 2ec3466acaa7123dcc6ba1d1dd61e8fe9f75991f)

Indirect leak of 15 byte(s) in 1 object(s) allocated from:
    #0 0x557561cf3669 in __interceptor_malloc (/tmp/makepkg/build/cito-git/src/cito/test/bin/RegexMatchPtr/c.exe+0xd8669) (BuildId: 9cad780bf433b1724e68b71a1045b3201d69af00)
    #1 0x7fc2f88e1e19 in g_malloc (/usr/lib/libglib-2.0.so.0+0x5ee19) (BuildId: 2ec3466acaa7123dcc6ba1d1dd61e8fe9f75991f)

SUMMARY: AddressSanitizer: 21096 byte(s) leaked in 11 allocation(s).
			&& m.Value == "brown fox" //FAIL: c TODO memleak
test/bin/StForeachList/Test.c
test/bin/StForeachList/c.exe
test/bin/StForeachList/Test.c:97:63: error: incompatible pointer types initializing 'const Test *const *' (aka 'const struct Test *const *') with an expression of type 'const Test *' (aka 'const struct Test *') [-Werror,-Wincompatible-pointer-types]
        for (Test const *inline_ = (Test const *) ol->data, * const *ciend = inline_ + ol->len; inline_ < ciend; inline_++)
                                                                     ^       ~~~~~~~~~~~~~~~~~
test/bin/StForeachList/Test.c:97:98: error: comparison of distinct pointer types ('const Test *' (aka 'const struct Test *') and 'const Test *const *' (aka 'const struct Test *const *')) [-Werror,-Wcompare-distinct-pointer-types]
        for (Test const *inline_ = (Test const *) ol->data, * const *ciend = inline_ + ol->len; inline_ < ciend; inline_++)
                                                                                                ~~~~~~~ ^ ~~~~~
test/bin/StForeachList/Test.c:98:20: error: member reference type 'Test' (aka 'struct Test') is not a pointer; did you mean to use '.'?
                sum += (*inline_)->foo;
                       ~~~~~~~~~~^~
                                 .
3 errors generated.
		foreach (Test inline in ol) //FAIL: c TODO
test/bin/StForeachList/c.txt
/bin/sh: line 1: ./test/bin/StForeachList/c.exe: No such file or directory
		foreach (Test inline in ol) //FAIL: c TODO
test/bin/StForeachOrderedDictionary/Test.c
test/StForeachOrderedDictionary.ci(5): ERROR: OrderedDictionary not supported when targeting C
test/StForeachOrderedDictionary.ci(5): ERROR: OrderedDictionary not supported when targeting C
test/StForeachOrderedDictionary.ci(10): ERROR: OrderedDictionary not supported when targeting C
test/StForeachOrderedDictionary.ci(16): ERROR: OrderedDictionary not supported when targeting C
test/StForeachOrderedDictionary.ci(16): ERROR: OrderedDictionary not supported when targeting C
test/StForeachOrderedDictionary.ci(21): ERROR: OrderedDictionary not supported when targeting C
		OrderedDictionary<int, int>() dict; //FAIL: c cpp d swift cl
test/bin/StForeachOrderedDictionary/c.exe
test/bin/StForeachOrderedDictionary/Test.c:29:2: error: use of undeclared identifier 'dict'
        dict = () CiShared_Make(1, sizeof(OrderedDictionary), NULL, NULL);
        ^
test/bin/StForeachOrderedDictionary/Test.c:29:10: error: expected expression
        dict = () CiShared_Make(1, sizeof(OrderedDictionary), NULL, NULL);
                ^
test/bin/StForeachOrderedDictionary/Test.c:30:2: error: call to undeclared function 'g_hash_table_insert'; ISO C99 and later do not support implicit function declarations [-Werror,-Wimplicit-function-declaration]
        g_hash_table_insert(dict, GINT_TO_POINTER(3), GINT_TO_POINTER(5));
        ^
test/bin/StForeachOrderedDictionary/Test.c:30:28: error: call to undeclared function 'GINT_TO_POINTER'; ISO C99 and later do not support implicit function declarations [-Werror,-Wimplicit-function-declaration]
        g_hash_table_insert(dict, GINT_TO_POINTER(3), GINT_TO_POINTER(5));
                                  ^
test/bin/StForeachOrderedDictionary/Test.c:30:22: error: use of undeclared identifier 'dict'; did you mean 'div'?
        g_hash_table_insert(dict, GINT_TO_POINTER(3), GINT_TO_POINTER(5));
                            ^~~~
                            div
/usr/include/stdlib.h:873:14: note: 'div' declared here
extern div_t div (int __numer, int __denom)
             ^
test/bin/StForeachOrderedDictionary/Test.c:31:22: error: use of undeclared identifier 'dict'; did you mean 'div'?
        g_hash_table_insert(dict, GINT_TO_POINTER(1), GINT_TO_POINTER(10));
                            ^~~~
                            div
/usr/include/stdlib.h:873:14: note: 'div' declared here
extern div_t div (int __numer, int __denom)
             ^
test/bin/StForeachOrderedDictionary/Test.c:32:22: error: use of undeclared identifier 'dict'; did you mean 'div'?
        g_hash_table_insert(dict, GINT_TO_POINTER(2), GINT_TO_POINTER(15));
                            ^~~~
                            div
/usr/include/stdlib.h:873:14: note: 'div' declared here
extern div_t div (int __numer, int __denom)
             ^
test/bin/StForeachOrderedDictionary/Test.c:34:2: error: use of undeclared identifier 'dict2'
        dict2 = () CiShared_Make(1, sizeof(OrderedDictionary), NULL, NULL);
        ^
test/bin/StForeachOrderedDictionary/Test.c:34:11: error: expected expression
        dict2 = () CiShared_Make(1, sizeof(OrderedDictionary), NULL, NULL);
                 ^
test/bin/StForeachOrderedDictionary/Test.c:35:30: error: use of undeclared identifier 'gpointer'
        g_hash_table_insert(dict2, (gpointer) "I", GINT_TO_POINTER(1));
                                    ^
test/bin/StForeachOrderedDictionary/Test.c:35:22: error: use of undeclared identifier 'dict2'
        g_hash_table_insert(dict2, (gpointer) "I", GINT_TO_POINTER(1));
                            ^
test/bin/StForeachOrderedDictionary/Test.c:36:30: error: use of undeclared identifier 'gpointer'
        g_hash_table_insert(dict2, (gpointer) "", GINT_TO_POINTER(0));
                                    ^
test/bin/StForeachOrderedDictionary/Test.c:36:22: error: use of undeclared identifier 'dict2'
        g_hash_table_insert(dict2, (gpointer) "", GINT_TO_POINTER(0));
                            ^
test/bin/StForeachOrderedDictionary/Test.c:37:30: error: use of undeclared identifier 'gpointer'
        g_hash_table_insert(dict2, (gpointer) "II", GINT_TO_POINTER(2));
                                    ^
test/bin/StForeachOrderedDictionary/Test.c:37:22: error: use of undeclared identifier 'dict2'
        g_hash_table_insert(dict2, (gpointer) "II", GINT_TO_POINTER(2));
                            ^
test/bin/StForeachOrderedDictionary/Test.c:39:2: error: call to undeclared function 'OrderedDictionary_Destruct'; ISO C99 and later do not support implicit function declarations [-Werror,-Wimplicit-function-declaration]
        OrderedDictionary_Destruct(&dict2);
        ^
test/bin/StForeachOrderedDictionary/Test.c:39:30: error: use of undeclared identifier 'dict2'
        OrderedDictionary_Destruct(&dict2);
                                    ^
test/bin/StForeachOrderedDictionary/Test.c:40:30: error: use of undeclared identifier 'dict'; did you mean 'div'?
        OrderedDictionary_Destruct(&dict);
                                    ^~~~
                                    div
/usr/include/stdlib.h:873:14: note: 'div' declared here
extern div_t div (int __numer, int __denom)
             ^
18 errors generated.
		OrderedDictionary<int, int>() dict; //FAIL: c cpp d swift cl
test/bin/StForeachOrderedDictionary/c.txt
/bin/sh: line 1: ./test/bin/StForeachOrderedDictionary/c.exe: No such file or directory
		OrderedDictionary<int, int>() dict; //FAIL: c cpp d swift cl
test/bin/StIfIsVar/Test.c
test/StIfIsVar.ci(17): ERROR: 'is' operator not supported when targeting C
		if (b is Derived ro) //FAIL: c js py swift ts cl TODO; java 17
test/bin/StIfIsVar/c.exe
In file included from test/bin/StIfIsVar/Test.c:3:
test/bin/StIfIsVar/Test.h:8:37: error: unknown type name 'Derived'
static bool Derived_IsDerived(const Derived *self);
                                    ^
test/bin/StIfIsVar/Test.c:23:3: error: use of undeclared identifier 'Base_IsDerived'
                Base_IsDerived,
                ^
test/bin/StIfIsVar/Test.c:48:8: error: expected ')'
        if (b is const Derived *ro)
              ^
test/bin/StIfIsVar/Test.c:48:5: note: to match this '('
        if (b is const Derived *ro)
           ^
3 errors generated.
In file included from test/Runner.c:3:
test/bin/StIfIsVar/Test.h:8:37: error: unknown type name 'Derived'
static bool Derived_IsDerived(const Derived *self);
                                    ^
1 error generated.
		if (b is Derived ro) //FAIL: c js py swift ts cl TODO; java 17
test/bin/StIfIsVar/c.txt
/bin/sh: line 1: ./test/bin/StIfIsVar/c.exe: No such file or directory
		if (b is Derived ro) //FAIL: c js py swift ts cl TODO; java 17
test/bin/StringInterpolatedObject/Test.c
test/bin/StringInterpolatedObject/c.exe
test/bin/StringInterpolatedObject/Test.c:71:87: error: call to undeclared function 'Abstract_ToString'; ISO C99 and later do not support implicit function declarations [-Werror,-Wimplicit-function-declaration]
        char *citemp0 = CiString_Format("%s%s%s", Simple_ToString(&s), Overrid_ToString(&o), Abstract_ToString(a));
                                                                                             ^
1 error generated.
		return $"{s}{o}{a}" == "SimpOverOver"; //FAIL: c TODO; cpp C++20
test/bin/StringInterpolatedObject/c.txt
/bin/sh: line 1: ./test/bin/StringInterpolatedObject/c.exe: No such file or directory
		return $"{s}{o}{a}" == "SimpOverOver"; //FAIL: c TODO; cpp C++20
test/bin/StringWriter/Test.c
test/StringWriter.ci(5): ERROR: StringWriter not supported when targeting C
test/StringWriter.ci(7): ERROR: Clear not supported when targeting C
test/StringWriter.ci(17): ERROR: ToString not supported when targeting C
		StringWriter() w; //FAIL: c d java js swift ts TODO; cl
test/bin/StringWriter/c.exe
test/bin/StringWriter/Test.c:10:2: error: use of undeclared identifier 'w'
        w;
        ^
test/bin/StringWriter/Test.c:11:19: error: use of undeclared identifier 'w'
        fputs("kill me", w);
                         ^
test/bin/StringWriter/Test.c:13:17: error: use of undeclared identifier 'w'
        fputs("Hello", w);
                       ^
test/bin/StringWriter/Test.c:15:11: error: use of undeclared identifier 'w'
        fputs(s, w);
                 ^
test/bin/StringWriter/Test.c:16:14: error: use of undeclared identifier 'w'
        FILE *tw = &w->base;
                    ^
test/bin/StringWriter/Test.c:19:10: error: use of undeclared identifier 'w'
        fprintf(w, "%lld", (long long) l);
                ^
test/bin/StringWriter/Test.c:21:12: error: use of undeclared identifier 'w'
        putc('c', w);
                  ^
test/bin/StringWriter/Test.c:22:16: error: expected expression
        return strcmp(, "HelloWorld42599c") == 0;
                      ^
8 errors generated.
		StringWriter() w; //FAIL: c d java js swift ts TODO; cl
test/bin/StringWriter/c.txt
/bin/sh: line 1: ./test/bin/StringWriter/c.exe: No such file or directory
		StringWriter() w; //FAIL: c d java js swift ts TODO; cl
test/bin/StSwitchEnumWhen/Test.c
test/bin/StSwitchEnumWhen/c.exe
test/bin/StSwitchEnumWhen/Test.c:20:20: error: expected ':' after 'case'
        case Season_SPRING when !cold:
                          ^
                          :
test/bin/StSwitchEnumWhen/Test.c:20:21: error: use of undeclared identifier 'when'
        case Season_SPRING when !cold:
                           ^
test/bin/StSwitchEnumWhen/Test.c:23:18: error: expected ':' after 'case'
        case Season_FALL when cold:
                        ^
                        :
test/bin/StSwitchEnumWhen/Test.c:23:19: error: use of undeclared identifier 'when'
        case Season_FALL when cold:
                         ^
4 errors generated.
		case Season.Spring when !cold: //FAIL: c cpp d java js py ts cl TODO
test/bin/StSwitchEnumWhen/c.txt
/bin/sh: line 1: ./test/bin/StSwitchEnumWhen/c.exe: No such file or directory
		case Season.Spring when !cold: //FAIL: c cpp d java js py ts cl TODO
test/bin/StSwitchType/Test.c
test/StSwitchType.ci(29): ERROR: Type-matching 'switch' not supported when targeting C
		switch (a) { //FAIL: c cl
test/bin/StSwitchType/c.exe
test/bin/StSwitchType/c.txt
		switch (a) { //FAIL: c cl
test/bin/StSwitchTypeWhen/Test.c
test/StSwitchTypeWhen.ci(29): ERROR: Type-matching 'switch' not supported when targeting C
		switch (a) { //FAIL: c cl
test/bin/StSwitchTypeWhen/c.exe
test/bin/StSwitchTypeWhen/Test.c:38:1: error: non-void function does not return a value [-Werror,-Wreturn-type]
}
^
1 error generated.
		switch (a) { //FAIL: c cl
test/bin/StSwitchTypeWhen/c.txt
/bin/sh: line 1: ./test/bin/StSwitchTypeWhen/c.exe: No such file or directory
		switch (a) { //FAIL: c cl
test/bin/ConstLong/Test.cpp
test/bin/ConstLong/cpp.exe
test/bin/ConstLong/Test.cpp:7:24: error: result of comparison of constant 1000000000000000 with expression of type 'int' is always false [-Werror,-Wtautological-constant-out-of-range-compare]
        return i * 1000000000 == 1000000000000000;
               ~~~~~~~~~~~~~~ ^  ~~~~~~~~~~~~~~~~
1 error generated.
			&& i * Bar == Foo; //FAIL: c cpp cs d java ts cl
test/bin/ConstLong/cpp.txt
/bin/sh: line 1: ./test/bin/ConstLong/cpp.exe: No such file or directory
			&& i * Bar == Foo; //FAIL: c cpp cs d java ts cl
test/bin/OrderedDictionary/Test.cpp
test/OrderedDictionary.ci(5): ERROR: OrderedDictionary not supported when targeting C++
test/OrderedDictionary.ci(7): ERROR: Clear not supported when targeting C++
test/OrderedDictionary.ci(11): ERROR: Remove not supported when targeting C++
test/OrderedDictionary.ci(12): ERROR: OrderedDictionary not supported when targeting C++
test/OrderedDictionary.ci(14): ERROR: ContainsKey not supported when targeting C++
		OrderedDictionary<string, int>() dict; //FAIL: c cpp d swift cl
test/bin/OrderedDictionary/cpp.exe
test/bin/OrderedDictionary/Test.cpp:2:10: fatal error: 'NOT_SUPPORTED' file not found
#include <NOT_SUPPORTED>
         ^~~~~~~~~~~~~~~
1 error generated.
		OrderedDictionary<string, int>() dict; //FAIL: c cpp d swift cl
test/bin/OrderedDictionary/cpp.txt
/bin/sh: line 1: ./test/bin/OrderedDictionary/cpp.exe: No such file or directory
		OrderedDictionary<string, int>() dict; //FAIL: c cpp d swift cl
test/bin/RegexEscape/Test.cpp
test/RegexEscape.ci(5): ERROR: Escape not supported when targeting C++
test/RegexEscape.ci(6): ERROR: Escape not supported when targeting C++
		string() pattern = Regex.Escape("b+c"); //FAIL: cpp swift TODO; cl
test/bin/RegexEscape/cpp.exe
test/bin/RegexEscape/cpp.txt
		string() pattern = Regex.Escape("b+c"); //FAIL: cpp swift TODO; cl
test/bin/RegexIsMatch/Test.cpp
test/bin/RegexIsMatch/cpp.exe
test/bin/RegexIsMatch/Test.cpp:9:531: error: no member named 'NOT_SUPPORTED_singleline' in 'std::basic_regex<char>'
        return std::regex_search(s.begin(), s.end(), std::regex("^\\d+$")) && std::regex_search(s.begin(), s.end(), std::regex("3")) && !std::regex_search(s.begin(), s.end(), std::regex("x")) && std::regex_search("1/\\2", std::regex("^\\d/\\\\\\d$")) && std::regex_search("foo", std::regex("FOO", std::regex::ECMAScript | std::regex::icase)) && std::regex_search("a\nb", std::regex("^B", std::regex::ECMAScript | std::regex::icase | std::regex::multiline)) && std::regex_search("\n", std::regex(".", std::regex::ECMAScript | std::regex::NOT_SUPPORTED_singleline));
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             ~~~~~~~~~~~~^
1 error generated.
			&& Regex.IsMatch("\n", ".", RegexOptions.Singleline & ~RegexOptions.Multiline); //FAIL: cpp
test/bin/RegexIsMatch/cpp.txt
/bin/sh: line 1: ./test/bin/RegexIsMatch/cpp.exe: No such file or directory
			&& Regex.IsMatch("\n", ".", RegexOptions.Singleline & ~RegexOptions.Multiline); //FAIL: cpp
test/bin/StForeachOrderedDictionary/Test.cpp
test/StForeachOrderedDictionary.ci(5): ERROR: OrderedDictionary not supported when targeting C++
test/StForeachOrderedDictionary.ci(16): ERROR: OrderedDictionary not supported when targeting C++
		OrderedDictionary<int, int>() dict; //FAIL: c cpp d swift cl
test/bin/StForeachOrderedDictionary/cpp.exe
test/bin/StForeachOrderedDictionary/Test.cpp:2:10: fatal error: 'NOT_SUPPORTED' file not found
#include <NOT_SUPPORTED>
         ^~~~~~~~~~~~~~~
1 error generated.
		OrderedDictionary<int, int>() dict; //FAIL: c cpp d swift cl
test/bin/StForeachOrderedDictionary/cpp.txt
/bin/sh: line 1: ./test/bin/StForeachOrderedDictionary/cpp.exe: No such file or directory
		OrderedDictionary<int, int>() dict; //FAIL: c cpp d swift cl
test/bin/StSwitchEnumWhen/Test.cpp
test/bin/StSwitchEnumWhen/cpp.exe
test/bin/StSwitchEnumWhen/Test.cpp:7:21: error: expected ':' after 'case'
        case Season::spring when !cold:
                           ^
                           :
test/bin/StSwitchEnumWhen/Test.cpp:7:22: error: use of undeclared identifier 'when'
        case Season::spring when !cold:
                            ^
test/bin/StSwitchEnumWhen/Test.cpp:10:19: error: expected ':' after 'case'
        case Season::fall when cold:
                         ^
                         :
test/bin/StSwitchEnumWhen/Test.cpp:10:20: error: unknown type name 'when'
        case Season::fall when cold:
                          ^
test/bin/StSwitchEnumWhen/Test.cpp:10:29: error: expected ';' at end of declaration
        case Season::fall when cold:
                                   ^
                                   ;
test/bin/StSwitchEnumWhen/Test.cpp:11:21: error: expected ':' after 'case'
        case Season::winter when cold:
                           ^
                           :
test/bin/StSwitchEnumWhen/Test.cpp:11:22: error: unknown type name 'when'
        case Season::winter when cold:
                            ^
test/bin/StSwitchEnumWhen/Test.cpp:11:31: error: expected ';' at end of declaration
        case Season::winter when cold:
                                     ^
                                     ;
8 errors generated.
		case Season.Spring when !cold: //FAIL: c cpp d java js py ts cl TODO
test/bin/StSwitchEnumWhen/cpp.txt
/bin/sh: line 1: ./test/bin/StSwitchEnumWhen/cpp.exe: No such file or directory
		case Season.Spring when !cold: //FAIL: c cpp d java js py ts cl TODO
test/bin/ArrayBinarySearch/Test.cs
test/bin/ArrayBinarySearch/cs.dll
error CS0006: Metadata file '/usr/share/dotnet/sdk/7.0.103/../../packs/Microsoft.NETCore.App.Ref/6.0.16/ref/net6.0/System.Collections.dll' could not be found
error CS0006: Metadata file '/usr/share/dotnet/sdk/7.0.103/../../packs/Microsoft.NETCore.App.Ref/6.0.16/ref/net6.0/System.Collections.Specialized.dll' could not be found
error CS0006: Metadata file '/usr/share/dotnet/sdk/7.0.103/../../packs/Microsoft.NETCore.App.Ref/6.0.16/ref/net6.0/System.Console.dll' could not be found
error CS0006: Metadata file '/usr/share/dotnet/sdk/7.0.103/../../packs/Microsoft.NETCore.App.Ref/6.0.16/ref/net6.0/System.Linq.dll' could not be found
error CS0006: Metadata file '/usr/share/dotnet/sdk/7.0.103/../../packs/Microsoft.NETCore.App.Ref/6.0.16/ref/net6.0/System.Runtime.dll' could not be found
error CS0006: Metadata file '/usr/share/dotnet/sdk/7.0.103/../../packs/Microsoft.NETCore.App.Ref/6.0.16/ref/net6.0/System.Text.RegularExpressions.dll' could not be found
error CS0006: Metadata file '/usr/share/dotnet/sdk/7.0.103/../../packs/Microsoft.NETCore.App.Ref/6.0.16/ref/net6.0/System.Threading.dll' could not be found
make: *** [Makefile:124: test/bin/ArrayBinarySearch/cs.dll] Error 1

I have not continued with the other test targets, because it would cause me too much work to test all test. I just had a short look into make test-cl, which also gives errors, and make test-d, which seems quite OK.

I am on Artix GNU/Linux (x86_64).

Software versions:

  • gcc --version | head -n1: gcc (GCC) 13.1.1 20230429
  • clang --version | head -n1: clang version 15.0.7
  • clang++ --version | head -n1: clang version 15.0.7
  • dotnet --version: 7.0.103
  • dmd --version | head -n1: DMD64 D Compiler v2.103.1
  • node --version: v19.9.0
  • java --version | head -n1: openjdk 20.0.1 2023-04-18
  • javac --version | head -n1: javac 20.0.1
  • perl: Version 5.36.1
  • python --version: Python 3.11.3
  • swift --version | head -n1: Swift version 5.8 (swift-5.8-RELEASE)
  • swiftc --version | head -n1: Swift version 5.8 (swift-5.8-RELEASE)
  • glib2: Version 2.76.2
  • make --version | head -n: GNU Make 4.4.1
  • diff --version | head -n1: diff (GNU diffutils) 3.9
@pfusik pfusik self-assigned this May 8, 2023
@pfusik
Copy link
Collaborator

pfusik commented May 8, 2023

These are mostly known failures and marked as such with the //FAIL: comment.

The fatal error comes from an attempt to run C# tests on .NET 7 SDK while the scripts and configs are prepared for .NET 6 which is LTS at the moment. I want to fix this so the C# tests run on both .NET 7 and 6.

Don't worry, ASAP is not leaking memory. It uses few heap allocations.

@pfusik pfusik closed this as completed in eb69038 May 29, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants