Fix warnings

This change fixes Cosmopolitan so it has fewer opinions about compiler
warnings. The whole repository had to be cleaned up to be buildable in
-Werror -Wall mode. This lets us benefit from things like strict const
checking. Some actual bugs might have been caught too.
This commit is contained in:
Justine Tunney 2023-09-01 20:49:13 -07:00
parent e2b3c3618e
commit 0d748ad58e
No known key found for this signature in database
GPG key ID: BE714B4575D6E328
571 changed files with 1306 additions and 1888 deletions

View file

@ -58,6 +58,7 @@ static JSValue JS_CompactBigInt1(JSContext *ctx, JSValue val,
return JS_NewInt64(ctx, v);
} else if (a->expn == BF_EXP_ZERO && a->sign) {
JSBigFloat *p = JS_VALUE_GET_PTR(val);
(void)p;
assert(p->header.ref_count == 1);
a->sign = 0;
}

View file

@ -318,6 +318,7 @@ void reset_weak_ref(JSRuntime *rt, JSObject *p)
{
JSMapRecord *mr, *mr_next;
JSMapState *s;
(void)s;
/* first pass to remove the records from the WeakMap/WeakSet
lists */
for(mr = p->first_weak_ref; mr != NULL; mr = mr->next_weak_ref) {

View file

@ -146,7 +146,7 @@ void JS_SetUncatchableError(JSContext *ctx, JSValueConst val, BOOL flag);
static const JSClassExoticMethods js_arguments_exotic_methods;
static const JSClassExoticMethods js_string_exotic_methods;
static const JSClassExoticMethods js_proxy_exotic_methods;
/* static */ const JSClassExoticMethods js_proxy_exotic_methods;
static const JSClassExoticMethods js_module_ns_exotic_methods;
static JSClassID js_class_id_alloc = JS_CLASS_INIT_COUNT;
@ -914,6 +914,7 @@ void JS_SetContextOpaque(JSContext *ctx, void *opaque)
void JS_SetClassProto(JSContext *ctx, JSClassID class_id, JSValue obj)
{
JSRuntime *rt = ctx->rt;
(void)rt;
assert(class_id < rt->class_count);
set_value(ctx, &ctx->class_proto[class_id], obj);
}
@ -921,6 +922,7 @@ void JS_SetClassProto(JSContext *ctx, JSClassID class_id, JSValue obj)
JSValue JS_GetClassProto(JSContext *ctx, JSClassID class_id)
{
JSRuntime *rt = ctx->rt;
(void)rt;
assert(class_id < rt->class_count);
return JS_DupValue(ctx, ctx->class_proto[class_id]);
}
@ -3016,7 +3018,7 @@ static int num_keys_cmp(const void *p1, const void *p2, void *opaque)
BOOL atom1_is_integer, atom2_is_integer;
atom1_is_integer = JS_AtomIsArrayIndex(ctx, &v1, atom1);
atom2_is_integer = JS_AtomIsArrayIndex(ctx, &v2, atom2);
assert(atom1_is_integer && atom2_is_integer);
unassert(atom1_is_integer && atom2_is_integer);
if (v1 < v2)
return -1;
else if (v1 == v2)
@ -13268,8 +13270,8 @@ JSValue JS_EvalThis(JSContext *ctx, JSValueConst this_obj,
{
int eval_type = eval_flags & JS_EVAL_TYPE_MASK;
JSValue ret;
assert(eval_type == JS_EVAL_TYPE_GLOBAL ||
eval_type == JS_EVAL_TYPE_MODULE);
unassert(eval_type == JS_EVAL_TYPE_GLOBAL ||
eval_type == JS_EVAL_TYPE_MODULE);
ret = JS_EvalInternal(ctx, this_obj, input, input_len, filename,
eval_flags, -1);
return ret;

View file

@ -22,11 +22,11 @@
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#include "libc/str/str.h"
#include "libc/assert.h"
#include "libc/fmt/conv.h"
#include "libc/fmt/fmt.h"
#include "libc/runtime/fenv.h"
#include "libc/str/str.h"
#include "third_party/gdtoa/gdtoa.h"
#include "third_party/quickjs/internal.h"
#include "third_party/quickjs/libregexp.h"
@ -859,12 +859,6 @@ static int js_string_delete_property(JSContext *ctx,
return TRUE;
}
static const JSClassExoticMethods js_string_exotic_methods = {
.get_own_property = js_string_get_own_property,
.define_own_property = js_string_define_own_property,
.delete_property = js_string_delete_property,
};
JSValue js_string_constructor(JSContext *ctx, JSValueConst new_target,
int argc, JSValueConst *argv)
{