Cesium
Cesium copied to clipboard
C compiler for the CLI platform
Currently, ILVerify reports several errors in our programs. Namely, considering `array/multidimensional.c` integration test: ```console $ dotnet tool install --global dotnet-ilverify $ pwsh Cesium.IntegrationTests/Run-Tests.ps1 -TestCaseName array/multidimensional.c $ cd Cesium.IntegrationTests/bin $ ilverify...
Currently, Cesium allows the `-O` parameter but ignores the value. I suggest us to enable/disable the assembly optimization flag based on the user-selected optimization level.
To statically determine struct layout (for 32b, 64b and wide architecture sets), we'll need to calculate struct layout. I am planning to make structures have `Pack = 4 / 8`...
In scope of #132, we want to introduce proper support of assembly target architectures: - **32b** architecture set should target x86 and ARM32, - **64b** architecture set should target x86_64...
We should support static local variables properly, i.e. ```c void incrementAndPrint(void) { static int counter = 0; ++counter; printfn("%d", counter); } int main(void) { incrementAndPrint(); // 1 incrementAndPrint(); // 2...
C standard (**6.7.1 Storage-class specifiers**) defines the following storage classes: - `typedef` (not a real storage class) - `extern` - `static` - `_Thread_local` - `auto` - `register` Only one storage...
We should fully implement the following section of the C standard: - [ ] 6.5 Expressions - [ ] 6.5.1 Primary expressions - [ ] 6.5.2 Postfix operators - [...
In #291, we've tried to add integration tests for the following: ``` // printf("\xF0"); // printf("\xFF"); // printf("\u2200"); // printf("\U0001f34c"); ``` But it turns out these integration tests fail on...
For now, I think an unfinished escape sequence (such as `const char*x = "\"`) should be reported as a compilation error. See `TODO[#295]` in the code.
VariableDefinition is declaration of global variable DeclarationBlockItem is more like local variable declaration. I think both should be unified somehow. Most differences on the Emit stage.