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:
Justine Tunney 2020-12-05 12:20:41 -08:00
parent e44a0cf6f8
commit 8da931a7f6
298 changed files with 19493 additions and 11950 deletions

View file

@ -19,14 +19,16 @@
*/
#include "libc/str/str.h"
#undef char
#undef endswith
#undef strlen
#undef strnlen
#define char char16_t
#define endswith endswith16
#define strlen strlen16
#define strnlen strnlen16
#include "libc/str/endswith.c"
/**
* Returns true if s has suffix.
*
* @param s is a NUL-terminated string
* @param suffix is also NUL-terminated
*/
bool endswith16(const char16_t *s, const char16_t *suffix) {
size_t n, m;
n = strlen16(s);
m = strlen16(suffix);
if (m > n) return false;
return memcmp(s + n - m, suffix, m * sizeof(char16_t)) == 0;
}