Remove #opaque usage in core library

This commit is contained in:
gingerBill
2021-02-23 15:21:05 +00:00
parent f95185a16e
commit fe33a64b2e
5 changed files with 28 additions and 44 deletions

View File

@@ -1,3 +1,3 @@
package dynlib
Library :: #opaque rawptr;
Library :: distinct rawptr;

View File

@@ -14,44 +14,44 @@ PTHREAD_ONCE_SIZE :: 8;
PTHREAD_RWLOCK_SIZE :: 192;
PTHREAD_RWLOCKATTR_SIZE :: 16;
pthread_t :: #opaque u64;
pthread_t :: distinct u64;
pthread_attr_t :: #opaque struct #align 16 {
pthread_attr_t :: struct #align 16 {
sig: c.long,
_: [PTHREAD_ATTR_SIZE] c.char,
};
pthread_cond_t :: #opaque struct #align 16 {
pthread_cond_t :: struct #align 16 {
sig: c.long,
_: [PTHREAD_COND_SIZE] c.char,
};
pthread_condattr_t :: #opaque struct #align 16 {
pthread_condattr_t :: struct #align 16 {
sig: c.long,
_: [PTHREAD_CONDATTR_SIZE] c.char,
};
pthread_mutex_t :: #opaque struct #align 16 {
pthread_mutex_t :: struct #align 16 {
sig: c.long,
_: [PTHREAD_MUTEX_SIZE] c.char,
};
pthread_mutexattr_t :: #opaque struct #align 16 {
pthread_mutexattr_t :: struct #align 16 {
sig: c.long,
_: [PTHREAD_MUTEXATTR_SIZE] c.char,
};
pthread_once_t :: #opaque struct #align 16 {
pthread_once_t :: struct #align 16 {
sig: c.long,
_: [PTHREAD_ONCE_SIZE] c.char,
};
pthread_rwlock_t :: #opaque struct #align 16 {
pthread_rwlock_t :: struct #align 16 {
sig: c.long,
_: [PTHREAD_RWLOCK_SIZE] c.char,
};
pthread_rwlockattr_t :: #opaque struct #align 16 {
pthread_rwlockattr_t :: struct #align 16 {
sig: c.long,
_: [PTHREAD_RWLOCKATTR_SIZE] c.char,
};

View File

@@ -26,32 +26,32 @@ when size_of(int) == 8 {
PTHREAD_BARRIER_T_SIZE :: 20;
}
pthread_cond_t :: #opaque struct #align 16 {
pthread_cond_t :: struct #align 16 {
_: [PTHREAD_COND_T_SIZE] c.char,
};
pthread_mutex_t :: #opaque struct #align 16 {
pthread_mutex_t :: struct #align 16 {
_: [PTHREAD_MUTEX_T_SIZE] c.char,
};
pthread_rwlock_t :: #opaque struct #align 16 {
pthread_rwlock_t :: struct #align 16 {
_: [PTHREAD_RWLOCK_T_SIZE] c.char,
};
pthread_barrier_t :: #opaque struct #align 16 {
pthread_barrier_t :: struct #align 16 {
_: [PTHREAD_BARRIER_T_SIZE] c.char,
};
pthread_attr_t :: #opaque struct #align 16 {
pthread_attr_t :: struct #align 16 {
_: [PTHREAD_ATTR_T_SIZE] c.char,
};
pthread_condattr_t :: #opaque struct #align 16 {
pthread_condattr_t :: struct #align 16 {
_: [PTHREAD_CONDATTR_T_SIZE] c.char,
};
pthread_mutexattr_t :: #opaque struct #align 16 {
pthread_mutexattr_t :: struct #align 16 {
_: [PTHREAD_MUTEXATTR_T_SIZE] c.char,
};
pthread_rwlockattr_t :: #opaque struct #align 16 {
pthread_rwlockattr_t :: struct #align 16 {
_: [PTHREAD_RWLOCKATTR_T_SIZE] c.char,
};
pthread_barrierattr_t :: #opaque struct #align 16 {
pthread_barrierattr_t :: struct #align 16 {
_: [PTHREAD_BARRIERATTR_T_SIZE] c.char,
};

View File

@@ -33,32 +33,32 @@ when size_of(int) == 8 {
PTHREAD_BARRIER_T_SIZE :: 20;
}
pthread_cond_t :: #opaque struct #align 16 {
pthread_cond_t :: struct #align 16 {
_: [PTHREAD_COND_T_SIZE] c.char,
};
pthread_mutex_t :: #opaque struct #align 16 {
pthread_mutex_t :: struct #align 16 {
_: [PTHREAD_MUTEX_T_SIZE] c.char,
};
pthread_rwlock_t :: #opaque struct #align 16 {
pthread_rwlock_t :: struct #align 16 {
_: [PTHREAD_RWLOCK_T_SIZE] c.char,
};
pthread_barrier_t :: #opaque struct #align 16 {
pthread_barrier_t :: struct #align 16 {
_: [PTHREAD_BARRIER_T_SIZE] c.char,
};
pthread_attr_t :: #opaque struct #align 16 {
pthread_attr_t :: struct #align 16 {
_: [PTHREAD_ATTR_T_SIZE] c.char,
};
pthread_condattr_t :: #opaque struct #align 16 {
pthread_condattr_t :: struct #align 16 {
_: [PTHREAD_CONDATTR_T_SIZE] c.char,
};
pthread_mutexattr_t :: #opaque struct #align 16 {
pthread_mutexattr_t :: struct #align 16 {
_: [PTHREAD_MUTEXATTR_T_SIZE] c.char,
};
pthread_rwlockattr_t :: #opaque struct #align 16 {
pthread_rwlockattr_t :: struct #align 16 {
_: [PTHREAD_RWLOCKATTR_T_SIZE] c.char,
};
pthread_barrierattr_t :: #opaque struct #align 16 {
pthread_barrierattr_t :: struct #align 16 {
_: [PTHREAD_BARRIERATTR_T_SIZE] c.char,
};

View File

@@ -2507,19 +2507,6 @@ Ast *parse_operand(AstFile *f, bool lhs) {
return ast_inline_asm_expr(f, token, open, close, param_types, return_type, asm_string, constraints_string, has_side_effects, is_align_stack, dialect);
}
default: {
#if 0
Ast *type = parse_type_or_ident(f);
if (type != nullptr) {
// TODO(bill): Is this correct???
// NOTE(bill): Sanity check as identifiers should be handled already
TokenPos pos = ast_token(type).pos;
GB_ASSERT_MSG(type->kind != Ast_Ident, "Type cannot be identifier %.*s(%td:%td)", LIT(pos.file), pos.line, pos.column);
return type;
}
#endif
break;
}
}
return nullptr;
@@ -2659,9 +2646,6 @@ Ast *parse_atom_expr(AstFile *f, Ast *operand, bool lhs) {
}
case Token_OpenBracket: {
if (lhs) {
// TODO(bill): Handle this
}
bool prev_allow_range = f->allow_range;
f->allow_range = false;