diff --git a/mk/rules.mk b/mk/rules.mk index 5db86e182cc..6fff48fa1bf 100644 --- a/mk/rules.mk +++ b/mk/rules.mk @@ -40,6 +40,7 @@ CFLAGS=\ -Wmissing-field-initializers \ -Wcast-function-type-mismatch \ -Wsemicolon-before-method-body \ + -Wsign-compare \ -g \ -I. SWIFTFLAGS=-g -emit-library diff --git a/runtime/trampolines-arm64.h b/runtime/trampolines-arm64.h index 60e1fb6ea06..30d3046e173 100644 --- a/runtime/trampolines-arm64.h +++ b/runtime/trampolines-arm64.h @@ -57,8 +57,8 @@ struct XamarinCallState { struct ParamIterator { struct XamarinCallState *state; - int ngrn; // Next General-purpose Register Number - int nsrn; // Next SIMD and Floating-point Register Number + unsigned int ngrn; // Next General-purpose Register Number + unsigned int nsrn; // Next SIMD and Floating-point Register Number size_t ngrn_offset; // Offset into the current general purpose register number uint8_t *nsaa; // Next stacked argument address. diff --git a/runtime/trampolines-arm64.m b/runtime/trampolines-arm64.m index 5969be4368e..6d94905aad6 100644 --- a/runtime/trampolines-arm64.m +++ b/runtime/trampolines-arm64.m @@ -211,11 +211,11 @@ bool is_hfa = is_struct && struct_length >= 2 && struct_length <= 4; if (is_hfa) { is_hfa = struct_name [0] == 'f' || struct_name [0] == 'd'; - for (int i = 1; i < struct_length; i++) + for (size_t i = 1; i < struct_length; i++) is_hfa &= struct_name [i] == struct_name [0]; } - int ngrn_registers_left = 8 - it->ngrn; + size_t ngrn_registers_left = 8 - it->ngrn; bool read_register = ngrn_registers_left > 0; if (size > 16 && !is_hfa) { @@ -310,7 +310,7 @@ (size == 8 && !strncmp (struct_name, "d", 1))) { LOGZ (" marshalling as %i doubles (struct name: %s)\n", (int) size / 8, struct_name); double* ptr = (double *) mono_object_unbox (value); - for (int i = 0; i < size / 8; i++) { + for (size_t i = 0; i < size / 8; i++) { LOGZ (" #%i: %f\n", i, ptr [i]); it->q [i].q = ptr [i]; } @@ -320,7 +320,7 @@ (size == 4 && !strncmp (struct_name, "f", 1))) { LOGZ (" marshalling as %i floats (struct name: %s)\n", (int) size / 4, struct_name); float* ptr = (float *) mono_object_unbox (value); - for (int i = 0; i < size / 4; i++) { + for (size_t i = 0; i < size / 4; i++) { LOGZ (" #%i: %f\n", i, ptr [i]); it->q [i].f.f1 = ptr [i]; } diff --git a/tests/test-libraries/libtest.m b/tests/test-libraries/libtest.m index 6db61172d60..14ff6db7fcb 100644 --- a/tests/test-libraries/libtest.m +++ b/tests/test-libraries/libtest.m @@ -1513,7 +1513,7 @@ -(void) addObject: (WeakReferencedObject *) obj -(void) callDoSomething: (int*) nilObjectCount nonNilObjectCount: (int *) nonNilObjectCount gotExpectedResponse: (int *) gotExpectedResponse gotUnexpectedResponse: (int *) gotUnexpectedResponse gotFinalizedResponse: (int *) gotFinalizedResponse { - for (int i = 0; i < self.array.count; i++) { + for (unsigned int i = 0; i < self.array.count; i++) { WeakReferencedObject *obj = (WeakReferencedObject *) [self.array pointerAtIndex: (NSUInteger) i]; if (obj) { *nonNilObjectCount= *nonNilObjectCount + 1;