Cesium
Cesium copied to clipboard
C compiler for the CLI platform
At this moment there's a ton of problems having thins like `AddLabel` inside `Lower` stage, so we should at any cost move that thing into separate stage. Simplest proposal is...
It would be good to check if the following code works: ```C switch(c&3) while((c-=4)>=0) { foo(); case 3: foo(); case 2: foo(); case 1: foo(); case 0: } ```
`int typedef x;` is a correct top-level statement, but Cesium is unable to process it. The possible reason is `Cesium.CodeGen.Ir.Declarations.IScopedDeclarationInfo.Of` which checks the first specifier whether it is `typedef`.
After #341, we now have a potential for name collision between different translation units. Consider two files called `a/x.c` and `b/x.c`: if both use statics, then two container types named...
There's a test output from printf.c test Note that in Cesium version there's comma used as decimal separator ``` cl.exe (C:\Users\zawodskoj\RiderProjects\Cesium\Cesium.IntegrationTests/stdlib/printf.c): testmyNum 5 4294967295 4294967295 -1 5.990000 2.040000 D 1...
Currently, our only built-in function, `__builtin_offsetof_instance`, is implemented in `FunctionCallExpression.cs`. I think we should extract that to some separate file.
Certain language features — say, `offsetof` — rely on preprocessor for their implementation. It really does make sense to write tests for these features using the same preprocessor definitions we...
See a comment in `Cesium.IntegrationTests/type_casts.c` (introduced in #377): ``` // function pointer types are not supported yet? // int j = (int) (void (*)(int a)) a; // int k =...
After #371, `__nint` and `__nuint` are now proper numeric types. But, they are really messy w.r.t. numeric conversions. See `// TODO[#381]` in the code: we should correctly determine their rank...
Most of the current major C implementations only deal with external function visibility and not namespaces. In this issue, by _external visibility_ I mean visibility to the outside world, i.e....