Restore missing cosmopolitan documentation on website

This commit is contained in:
Justine Tunney 2023-07-30 11:05:05 -07:00
parent 58352df0a4
commit d9d5f45e2d
No known key found for this signature in database
GPG key ID: BE714B4575D6E328
36 changed files with 715 additions and 228 deletions

View file

@ -2631,27 +2631,6 @@ static Node *new_mul(Node *lhs, Node *rhs, Token *tok) {
return new_binary(ND_MUL, lhs, rhs, tok);
}
static Node *builtin_overflow(Token **rest, Token *tok,
Node *new_op(Node *, Node *, Token *)) {
Token *start = tok;
tok = skip(tok->next, '(');
Node *lhs = assign(&tok, tok);
tok = skip(tok, ',');
Node *rhs = assign(&tok, tok);
tok = skip(tok, ',');
Node *dst = assign(&tok, tok);
*rest = skip(tok, ')');
Node *node = new_op(lhs, rhs, start);
add_type(node);
add_type(dst);
if (!is_compatible(pointer_to(node->ty), dst->ty)) {
error_tok(start, "output pointer type incompatible");
}
node->overflow = dst;
node->ty = copy_type(ty_bool);
return node;
}
// add = mul ("+" mul | "-" mul)*
static Node *add(Token **rest, Token *tok) {
Node *node = mul(&tok, tok);
@ -3378,32 +3357,6 @@ static Node *primary(Token **rest, Token *tok) {
*rest = skip(tok, ')');
return node;
}
if (kw == KW___BUILTIN_ADD_OVERFLOW) {
return builtin_overflow(rest, tok, new_add);
}
if (kw == KW___BUILTIN_SUB_OVERFLOW) {
return builtin_overflow(rest, tok, new_sub);
}
if (kw == KW___BUILTIN_MUL_OVERFLOW) {
return builtin_overflow(rest, tok, new_mul);
}
if (kw == KW___BUILTIN_NEG_OVERFLOW) {
Token *start = tok;
tok = skip(tok->next, '(');
Node *lhs = assign(&tok, tok);
tok = skip(tok, ',');
Node *dst = assign(&tok, tok);
*rest = skip(tok, ')');
Node *node = new_unary(ND_NEG, lhs, start);
add_type(node);
add_type(dst);
if (!is_compatible(pointer_to(node->ty), dst->ty)) {
error_tok(start, "output pointer type incompatible");
}
node->overflow = dst;
node->ty = copy_type(ty_bool);
return node;
}
if (kw == KW___BUILTIN_FPCLASSIFY) {
Node *node = new_node(ND_FPCLASSIFY, tok);
node->fpc = calloc(1, sizeof(FpClassify));