aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* If a key is unset, default it to AST_EMPTYThomas Voss 2024-06-221-2/+3
|
* Don’t assume that uints are 64 bitsThomas Voss 2024-06-221-1/+2
|
* Print result of strerror()Thomas Voss 2024-06-221-3/+3
|
* More codegen workThomas Voss 2024-06-223-63/+111
|
* Rename lots of things to make my life easierThomas Voss 2024-06-2219-311/+332
|
* Store decl info in auxilliary dataThomas Voss 2024-06-227-115/+163
|
* Do some work on basic basic codegenThomas Voss 2024-06-224-32/+109
|
* Reset errno to 0Thomas Voss 2024-06-211-0/+1
|
* Ignore a bunch of GNU MP build artifactsThomas Voss 2024-06-211-2/+820
|
* Basic constant folding implementationThomas Voss 2024-06-212159-30/+548204
|
* Fix fmdcmp()Thomas Voss 2024-06-211-2/+13
|
* Avoid memory leakThomas Voss 2024-06-211-0/+1
|
* Set target triple in LLVMThomas Voss 2024-06-211-0/+5
|
* Cleanup codegen.cThomas Voss 2024-06-214-192/+23
|
* Huge changes to static analysisThomas Voss 2024-06-2111-248/+453
|
* Use fmdnewer() & fmdolder()Thomas Voss 2024-06-201-3/+3
|
* Rename function nameThomas Voss 2024-06-201-3/+3
|
* Assert that functions actually returnThomas Voss 2024-06-194-38/+55
|
* Add f32 and f64 as typesThomas Voss 2024-06-193-28/+20
|
* Fix the way types are handledThomas Voss 2024-06-192-17/+17
|
* Add a commentThomas Voss 2024-06-191-0/+5
|
* Various parser fixesThomas Voss 2024-06-195-96/+192
|
* Remove <stdio.h> includeThomas Voss 2024-06-181-2/+0
|
* More code to codegenThomas Voss 2024-06-183-105/+52
|
* Big movesThomas Voss 2024-06-184-117/+146
|
* Some more typechecking for functionsThomas Voss 2024-06-182-57/+77
|
* Add 128-bit integersThomas Voss 2024-06-182-15/+20
|
* Add the nonnull attribute to codegenstmt()Thomas Voss 2024-06-181-1/+2
|
* Do more work on the typechecker and compilerThomas Voss 2024-06-186-105/+193
|
* Codegen global variablesThomas Voss 2024-06-171-40/+57
|
* Don’t create a new builder every iterationThomas Voss 2024-06-171-3/+3
|
* Implement super simple function type-checkingThomas Voss 2024-06-172-12/+52
|
* Begin work on the static analyzerThomas Voss 2024-06-1710-4/+345
|
* Prefer #error to static_assert()Thomas Voss 2024-06-141-2/+2
|
* Add missing common.h includes and formatting fixesThomas Voss 2024-06-146-8/+20
|
* Minor efficiency improvementThomas Voss 2024-06-141-2/+5
|
* Don’t hardcode _AST_LAST_ENTThomas Voss 2024-06-141-1/+1
|
* Allow identifiers in expressionsThomas Voss 2024-06-142-0/+7
|
* Add a basic arena allocatorThomas Voss 2024-06-142-1/+116
|
* Support gperfThomas Voss 2024-06-141-4/+31
|
* Fix alignof() usage and a very sneaky bugThomas Voss 2024-06-122-26/+28
| | | | | | | | | | | | | | | | | | It might seem innocuous, but the following expression is actually quite prone to breakage: ast->kids[i].lhs = parseexpr(ast, toks); The reason is that parseexpr() and the other parsing functions return indicies into the AST, however in doing so they may find that the AST needs to grow and call astresz(). Should astresz() be called there is a chance that we will realloc() a new buffer somewhere else in memory, causing the left-hand side of the above expression to now be pointing to an invalid location in memory. To combat this we’re forced to break it up into two statements: idx_t_ lhs = parseexpr(ast, toks); ast->kids[i].lhs = lhs;
* Use smaller default capacities in debug modeThomas Voss 2024-06-122-13/+15
|
* Strip U+0027 APOSTROPHE from integer literalsThomas Voss 2024-06-121-1/+11
|
* Mark bufalloc with __attribute__((alloc_size))Thomas Voss 2024-06-121-1/+1
|
* Assert that we aren’t freeing anythingThomas Voss 2024-06-121-0/+2
|
* Allow disabling the sanitizerThomas Voss 2024-06-121-5/+19
|
* Assert that we don’t have too many tokensThomas Voss 2024-06-112-0/+10
|
* Dispose the LLVM module after useThomas Voss 2024-06-111-0/+1
|
* Add some unreachables in placesThomas Voss 2024-06-111-1/+5
|
* Code reshufflingThomas Voss 2024-06-118-17/+33
|