mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-07-06 19:28:29 +00:00
Add chibicc
This program popped up on Hacker News recently. It's the only modern compiler I've ever seen that doesn't have dependencies and is easily modified. So I added all of the missing GNU extensions I like to use which means it might be possible soon to build on non-Linux and have third party not vendor gcc binaries.
This commit is contained in:
parent
e44a0cf6f8
commit
8da931a7f6
298 changed files with 19493 additions and 11950 deletions
31
third_party/chibicc/test/complit_test.c
vendored
Normal file
31
third_party/chibicc/test/complit_test.c
vendored
Normal file
|
@ -0,0 +1,31 @@
|
|||
#include "third_party/chibicc/test/test.h"
|
||||
|
||||
typedef struct Tree {
|
||||
int val;
|
||||
struct Tree *lhs;
|
||||
struct Tree *rhs;
|
||||
} Tree;
|
||||
|
||||
Tree *tree = &(Tree){1, &(Tree){2, &(Tree){3, 0, 0}, &(Tree){4, 0, 0}}, 0};
|
||||
|
||||
int main() {
|
||||
ASSERT(1, (int){1});
|
||||
ASSERT(2, ((int[]){0, 1, 2})[2]);
|
||||
ASSERT('a', ((struct {
|
||||
char a;
|
||||
int b;
|
||||
}){'a', 3})
|
||||
.a);
|
||||
ASSERT(3, ({
|
||||
int x = 3;
|
||||
(int){x};
|
||||
}));
|
||||
(int){3} = 5;
|
||||
|
||||
ASSERT(1, tree->val);
|
||||
ASSERT(2, tree->lhs->val);
|
||||
ASSERT(3, tree->lhs->lhs->val);
|
||||
ASSERT(4, tree->lhs->rhs->val);
|
||||
|
||||
return 0;
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue