[Mono-list] [PATCH] kill warnings part 1
Dennis Haney
davh@davh.dk
01 Jun 2002 02:15:56 +0200
--=-=-=
I've made a small patch to make most of the mono/mono subdir compile
without warnings. Please verify that I've not introduced some strange
error. Particularly in the assembly code (a change which actually
makes it compile in gcc-3.1).
If this is ok, part 2 coming when I have more time...
--
Dennis
use Inline C => qq{void p(char*g){printf("Just Another %s Hacker\n",g);}};p("Perl");
--=-=-=
Content-Disposition: attachment; filename=warnings_part1.diff
Content-Description: Kill those warnings
? warnings_part1.diff
Index: io-layer/atomic.h
===================================================================
RCS file: /mono/mono/mono/io-layer/atomic.h,v
retrieving revision 1.4
diff -u -b -B -r1.4 atomic.h
--- io-layer/atomic.h 9 May 2002 13:10:18 -0000 1.4
+++ io-layer/atomic.h 1 Jun 2002 00:03:32 -0000
@@ -33,7 +33,7 @@
__asm__ __volatile__ ("lock; cmpxchgl %2, %0"
: "=m" (*dest), "=a" (old)
- : "r" (exch), "0" (*dest), "a" (comp));
+ : "r" (exch), "m" (*dest), "a" (comp));
return(old);
}
@@ -43,7 +43,7 @@
__asm__ __volatile__ ("lock; cmpxchgl %2, %0"
: "=m" (*dest), "=a" (old)
- : "r" (exch), "0" (*dest), "a" (comp));
+ : "r" (exch), "m" (*dest), "a" (comp));
return(old);
}
@@ -53,7 +53,7 @@
__asm__ __volatile__ ("lock; xaddl %0, %1"
: "=r" (tmp), "=m" (*val)
- : "0" (1), "1" (*val));
+ : "0" (1), "m" (*val));
return(tmp+1);
}
@@ -64,7 +64,7 @@
__asm__ __volatile__ ("lock; xaddl %0, %1"
: "=r" (tmp), "=m" (*val)
- : "0" (-1), "1" (*val));
+ : "0" (-1), "m" (*val));
return(tmp-1);
}
@@ -80,7 +80,7 @@
__asm__ __volatile__ ("1:; lock; cmpxchgl %2, %0; jne 1b"
: "=m" (*val), "=a" (ret)
- : "r" (new), "0" (*val), "a" (*val));
+ : "r" (new), "m" (*val), "a" (*val));
return(ret);
}
@@ -92,7 +92,7 @@
__asm__ __volatile__ ("1:; lock; cmpxchgl %2, %0; jne 1b"
: "=m" (*val), "=a" (ret)
- : "r" (new), "0" (*val), "a" (*val));
+ : "r" (new), "m" (*val), "a" (*val));
return(ret);
}
@@ -103,7 +103,7 @@
__asm__ __volatile__ ("lock; xaddl %0, %1"
: "=r" (ret), "=m" (*val)
- : "0" (add), "1" (*val));
+ : "0" (add), "m" (*val));
return(ret);
}
Index: metadata/appdomain.c
===================================================================
RCS file: /mono/mono/mono/metadata/appdomain.c,v
retrieving revision 1.35
diff -u -b -B -r1.35 appdomain.c
--- metadata/appdomain.c 31 May 2002 10:14:30 -0000 1.35
+++ metadata/appdomain.c 1 Jun 2002 00:03:32 -0000
@@ -345,9 +345,9 @@
/* FIXME : examine version, culture info */
- name = aname.name = mono_string_to_utf8 (assRef->name);
+ name = mono_string_to_utf8 (assRef->name);
- ass = mono_assembly_load (&aname, NULL, &status);
+ ass = mono_assembly_load (name, NULL, &status);
g_free (name);
Index: metadata/appdomain.h
===================================================================
RCS file: /mono/mono/mono/metadata/appdomain.h,v
retrieving revision 1.18
diff -u -b -B -r1.18 appdomain.h
--- metadata/appdomain.h 23 May 2002 07:44:00 -0000 1.18
+++ metadata/appdomain.h 1 Jun 2002 00:03:32 -0000
@@ -65,7 +65,7 @@
GHashTable *env;
GHashTable *assemblies;
MonoAppDomainSetup *setup;
- char* *friendly_name;
+ char *friendly_name;
MonoGHashTable *ldstr_table;
MonoGHashTable *class_vtable_hash;
MonoGHashTable *proxy_vtable_hash;
Index: metadata/assembly.c
===================================================================
RCS file: /mono/mono/mono/metadata/assembly.c,v
retrieving revision 1.39
diff -u -b -B -r1.39 assembly.c
--- metadata/assembly.c 23 May 2002 07:44:00 -0000 1.39
+++ metadata/assembly.c 1 Jun 2002 00:03:32 -0000
@@ -55,7 +55,7 @@
static MonoAssembly *corlib;
static MonoAssembly*
-search_loaded (MonoAssemblyName* aname)
+search_loaded (const char *aname)
{
GList *tmp;
MonoAssembly *ass;
@@ -64,7 +64,7 @@
ass = tmp->data;
/* we just compare the name, but later we'll do all the checks */
/* g_print ("compare %s %s\n", aname->name, ass->aname.name); */
- if (strcmp (aname->name, ass->aname.name))
+ if (strcmp (aname, ass->aname.name))
continue;
/* g_print ("success\n"); */
return ass;
@@ -189,7 +189,7 @@
ass->aname.revision = cols [MONO_ASSEMBLY_REV_NUMBER];
/* avoid loading the same assembly twixe for now... */
- if ((ass2 = search_loaded (&ass->aname))) {
+ if ((ass2 = search_loaded (ass->aname.name))) {
g_free (ass);
if (status)
*status = MONO_IMAGE_OK;
@@ -222,7 +222,7 @@
aname.build = cols [MONO_ASSEMBLYREF_BUILD_NUMBER];
aname.revision = cols [MONO_ASSEMBLYREF_REV_NUMBER];
- image->references [i] = mono_assembly_load (&aname, base_dir, status);
+ image->references [i] = mono_assembly_load (aname.name, base_dir, status);
if (image->references [i] == NULL){
int j;
@@ -262,16 +262,16 @@
}
MonoAssembly*
-mono_assembly_load (MonoAssemblyName *aname, const char *basedir, MonoImageOpenStatus *status)
+mono_assembly_load (const char * toload, const char *basedir, MonoImageOpenStatus *status)
{
MonoAssembly *result;
char *fullpath, *filename;
check_env ();
- /* g_print ("loading %s\n", aname->name); */
+ /* g_print ("loading %s\n", toload); */
/* special case corlib */
- if ((strcmp (aname->name, "mscorlib") == 0) || (strcmp (aname->name, "corlib") == 0)) {
+ if ((strcmp (toload, "mscorlib") == 0) || (strcmp (toload, "corlib") == 0)) {
if (corlib) {
/* g_print ("corlib already loaded\n"); */
return corlib;
@@ -282,17 +282,17 @@
if (corlib)
return corlib;
}
- corlib = load_in_path (CORLIB_NAME, default_path, status);
+ corlib = load_in_path (CORLIB_NAME, (char**)default_path, status);
return corlib;
}
- result = search_loaded (aname);
+ result = search_loaded (toload);
if (result)
return result;
- /* g_print ("%s not found in cache\n", aname->name); */
- if (strstr (aname->name, ".dll"))
- filename = g_strdup (aname->name);
+ /* g_print ("%s not found in cache\n", toload); */
+ if (strstr (toload, ".dll"))
+ filename = g_strdup (toload);
else
- filename = g_strconcat (aname->name, ".dll", NULL);
+ filename = g_strconcat (toload, ".dll", NULL);
if (basedir) {
fullpath = g_concat_dir_and_file (basedir, filename);
result = mono_assembly_open (fullpath, status);
@@ -309,7 +309,7 @@
return result;
}
}
- result = load_in_path (filename, default_path, status);
+ result = load_in_path (filename, (char**)default_path, status);
g_free (filename);
return result;
}
Index: metadata/assembly.h
===================================================================
RCS file: /mono/mono/mono/metadata/assembly.h,v
retrieving revision 1.12
diff -u -b -B -r1.12 assembly.h
--- metadata/assembly.h 18 May 2002 17:41:44 -0000 1.12
+++ metadata/assembly.h 1 Jun 2002 00:03:32 -0000
@@ -7,7 +7,7 @@
MonoAssembly *mono_assembly_open (const char *filename,
MonoImageOpenStatus *status);
-MonoAssembly* mono_assembly_load (MonoAssemblyName *aname,
+MonoAssembly* mono_assembly_load (const char *toload,
const char *basedir,
MonoImageOpenStatus *status);
void mono_assembly_close (MonoAssembly *assembly);
Index: metadata/domain.c
===================================================================
RCS file: /mono/mono/mono/metadata/domain.c,v
retrieving revision 1.5
diff -u -b -B -r1.5 domain.c
--- metadata/domain.c 31 May 2002 10:14:30 -0000 1.5
+++ metadata/domain.c 1 Jun 2002 00:03:32 -0000
@@ -189,7 +189,7 @@
/* find the corlib */
corlib_aname.name = "corlib";
- ass = mono_assembly_load (&corlib_aname, NULL, &status);
+ ass = mono_assembly_load (corlib_aname.name, NULL, &status);
if ((status != MONO_IMAGE_OK) || (ass == NULL)) {
switch (status){
case MONO_IMAGE_ERROR_ERRNO:
@@ -203,6 +203,7 @@
g_print ("Minning assembly reference in %s/corlib.dll\n", MONO_ASSEMBLIES);
break;
case MONO_IMAGE_OK:
+ break;
/* to suppress compiler warning */
}
@@ -387,13 +388,13 @@
return NULL;
mono_domain_lock (domain);
- g_hash_table_insert (domain->assemblies, ass->aname.name, ass);
+ g_hash_table_insert (domain->assemblies, (gpointer)ass->aname.name, ass);
mono_domain_unlock (domain);
/* FIXME: maybe this must be recursive ? */
for (i = 0; (tmp = ass->image->references [i]) != NULL; i++) {
if (!g_hash_table_lookup (domain->assemblies, tmp->aname.name))
- g_hash_table_insert (domain->assemblies, tmp->aname.name, tmp);
+ g_hash_table_insert (domain->assemblies, (gpointer)tmp->aname.name, tmp);
}
return ass;
Index: metadata/gc.c
===================================================================
RCS file: /mono/mono/mono/metadata/gc.c,v
retrieving revision 1.7
diff -u -b -B -r1.7 gc.c
--- metadata/gc.c 23 May 2002 13:00:19 -0000 1.7
+++ metadata/gc.c 1 Jun 2002 00:03:32 -0000
@@ -7,6 +7,7 @@
*/
#include <config.h>
+#include <string.h>
#include <glib.h>
#include <mono/metadata/gc.h>
Index: metadata/icall.c
===================================================================
RCS file: /mono/mono/mono/metadata/icall.c,v
retrieving revision 1.155
diff -u -b -B -r1.155 icall.c
--- metadata/icall.c 30 May 2002 15:19:04 -0000 1.155
+++ metadata/icall.c 1 Jun 2002 00:03:33 -0000
@@ -166,7 +166,7 @@
}G_STMT_END
#define CHECK_WIDENING_CONVERSION(extra) G_STMT_START{\
- if (esize < vsize + ## extra) \
+ if (esize < vsize + extra) \
mono_raise_exception (mono_get_exception_argument ( \
"value", "not a widening conversion")); \
}G_STMT_END
@@ -236,7 +236,7 @@
case MONO_TYPE_U8: \
case MONO_TYPE_CHAR: \
CHECK_WIDENING_CONVERSION(0); \
- *(## etype *) ea = (## etype) u64; \
+ *(etype *) ea = (etype) u64; \
return; \
/* You can't assign a signed value to an unsigned array. */ \
case MONO_TYPE_I1: \
@@ -257,7 +257,7 @@
case MONO_TYPE_I4: \
case MONO_TYPE_I8: \
CHECK_WIDENING_CONVERSION(0); \
- *(## etype *) ea = (## etype) i64; \
+ *(etype *) ea = (etype) i64; \
return; \
/* You can assign an unsigned value to a signed array if the array's */ \
/* element size is larger than the value size. */ \
@@ -267,7 +267,7 @@
case MONO_TYPE_U8: \
case MONO_TYPE_CHAR: \
CHECK_WIDENING_CONVERSION(1); \
- *(## etype *) ea = (## etype) u64; \
+ *(etype *) ea = (etype) u64; \
return; \
/* You can't assign a floating point number to an integer array. */ \
case MONO_TYPE_R4: \
@@ -281,7 +281,7 @@
case MONO_TYPE_R4: \
case MONO_TYPE_R8: \
CHECK_WIDENING_CONVERSION(0); \
- *(## etype *) ea = (## etype) r64; \
+ *(etype *) ea = (etype) r64; \
return; \
/* All integer values fit into a floating point array, so we don't */ \
/* need to CHECK_WIDENING_CONVERSION here. */ \
@@ -289,14 +289,14 @@
case MONO_TYPE_I2: \
case MONO_TYPE_I4: \
case MONO_TYPE_I8: \
- *(## etype *) ea = (## etype) i64; \
+ *(etype *) ea = (etype) i64; \
return; \
case MONO_TYPE_U1: \
case MONO_TYPE_U2: \
case MONO_TYPE_U4: \
case MONO_TYPE_U8: \
case MONO_TYPE_CHAR: \
- *(## etype *) ea = (## etype) u64; \
+ *(etype *) ea = (etype) u64; \
return; \
} \
}G_STMT_END
@@ -2624,7 +2624,7 @@
int i = 0;
while ((name = icall_map [i])) {
- mono_add_internal_call (name, icall_map [i+1]);
+ mono_add_internal_call (name, (gpointer)(icall_map [i+1]));
i += 2;
}
Index: metadata/loader.c
===================================================================
RCS file: /mono/mono/mono/metadata/loader.c,v
retrieving revision 1.66
diff -u -b -B -r1.66 loader.c
--- metadata/loader.c 31 May 2002 10:14:30 -0000 1.66
+++ metadata/loader.c 1 Jun 2002 00:03:33 -0000
@@ -39,7 +39,7 @@
static GHashTable *icall_hash = NULL;
void
-mono_add_internal_call (const char *name, gconstpointer method)
+mono_add_internal_call (const char *name, gpointer method)
{
if (!icall_hash) {
dummy_icall = FALSE;
Index: metadata/loader.h
===================================================================
RCS file: /mono/mono/mono/metadata/loader.h,v
retrieving revision 1.29
diff -u -b -B -r1.29 loader.h
--- metadata/loader.h 31 May 2002 07:24:33 -0000 1.29
+++ metadata/loader.h 1 Jun 2002 00:03:33 -0000
@@ -85,7 +85,7 @@
mono_load_image (const char *fname, MonoImageOpenStatus *status);
void
-mono_add_internal_call (const char *name, gconstpointer method);
+mono_add_internal_call (const char *name, gpointer method);
gpointer
mono_lookup_internal_call (MonoMethod *method);
Index: metadata/metadata.c
===================================================================
RCS file: /mono/mono/mono/metadata/metadata.c,v
retrieving revision 1.83
diff -u -b -B -r1.83 metadata.c
--- metadata/metadata.c 31 May 2002 09:50:46 -0000 1.83
+++ metadata/metadata.c 1 Jun 2002 00:03:33 -0000
@@ -2182,19 +2182,21 @@
* Computes an hash value for @t1 to be used in GHashTable.
*/
guint
-mono_metadata_type_hash (MonoType *t1)
+//mono_metadata_type_hash (const MonoType *t1)
+mono_metadata_type_hash (gconstpointer t1)
{
- guint hash = t1->type;
+ const MonoType* tt1 = (const MonoType*) t1;
+ guint hash = tt1->type;
- hash |= t1->byref << 6; /* do not collide with t1->type values */
- switch (t1->type) {
+ hash |= tt1->byref << 6; /* do not collide with tt1->type values */
+ switch (tt1->type) {
case MONO_TYPE_VALUETYPE:
case MONO_TYPE_CLASS:
/* check if the distribution is good enough */
- return hash << 7 | g_str_hash (t1->data.klass->name);
+ return hash << 7 | g_str_hash (tt1->data.klass->name);
case MONO_TYPE_PTR:
case MONO_TYPE_SZARRAY:
- return hash << 7 | mono_metadata_type_hash (t1->data.type);
+ return hash << 7 | mono_metadata_type_hash (tt1->data.type);
}
return hash;
}
@@ -2208,13 +2210,16 @@
* Returns: #TRUE if @t1 and @t2 are equal.
*/
gboolean
-mono_metadata_type_equal (MonoType *t1, MonoType *t2)
+//mono_metadata_type_equal (const MonoType *t1, const MonoType *t2)
+mono_metadata_type_equal (gconstpointer t1, gconstpointer t2)
{
- if (t1->type != t2->type ||
- t1->byref != t2->byref)
+ const MonoType* tt1 = (const MonoType*) t1;
+ const MonoType* tt2 = (const MonoType*) t2;
+ if (tt1->type != tt2->type ||
+ tt1->byref != tt2->byref)
return FALSE;
- switch (t1->type) {
+ switch (tt1->type) {
case MONO_TYPE_VOID:
case MONO_TYPE_BOOLEAN:
case MONO_TYPE_CHAR:
@@ -2235,16 +2240,16 @@
return TRUE;
case MONO_TYPE_VALUETYPE:
case MONO_TYPE_CLASS:
- return t1->data.klass == t2->data.klass;
+ return tt1->data.klass == tt2->data.klass;
case MONO_TYPE_PTR:
case MONO_TYPE_SZARRAY:
- return mono_metadata_type_equal (t1->data.type, t2->data.type);
+ return mono_metadata_type_equal (tt1->data.type, tt2->data.type);
case MONO_TYPE_ARRAY:
- if (t1->data.array->rank != t2->data.array->rank)
+ if (tt1->data.array->rank != tt2->data.array->rank)
return FALSE;
- return mono_metadata_type_equal (t1->data.array->type, t2->data.array->type);
+ return mono_metadata_type_equal (tt1->data.array->type, tt2->data.array->type);
default:
- g_error ("implement type compare for %0x!", t1->type);
+ g_error ("implement type compare for %0x!", tt1->type);
return FALSE;
}
Index: metadata/metadata.h
===================================================================
RCS file: /mono/mono/mono/metadata/metadata.h,v
retrieving revision 1.56
diff -u -b -B -r1.56 metadata.h
--- metadata/metadata.h 30 May 2002 08:33:27 -0000 1.56
+++ metadata/metadata.h 1 Jun 2002 00:03:33 -0000
@@ -257,8 +257,9 @@
int mono_type_stack_size (MonoType *type,
int *alignment);
-guint mono_metadata_type_hash (MonoType *t1);
-gboolean mono_metadata_type_equal (MonoType *t1, MonoType *t2);
+guint mono_metadata_type_hash (gconstpointer t1);
+//gboolean mono_metadata_type_equal (const MonoType *t1, const MonoType *t2);
+gboolean mono_metadata_type_equal (gconstpointer t1, gconstpointer t2);
MonoMethodSignature *mono_metadata_parse_signature (MonoImage *image,
guint32 token);
Index: metadata/mono-config.c
===================================================================
RCS file: /mono/mono/mono/metadata/mono-config.c,v
retrieving revision 1.1
diff -u -b -B -r1.1 mono-config.c
--- metadata/mono-config.c 31 May 2002 07:24:33 -0000 1.1
+++ metadata/mono-config.c 1 Jun 2002 00:03:33 -0000
@@ -7,7 +7,9 @@
*
* (C) 2002 Ximian, Inc.
*/
+#include <config.h>
#include <glib.h>
+#include <string.h>
#include "mono/metadata/loader.h"
#include "mono/metadata/mono-config.h"
@@ -188,7 +190,7 @@
g_free (info);
}
-static const MonoParseHandler
+static MonoParseHandler
dllmap_handler = {
"dllmap",
dllmap_init,
@@ -206,7 +208,7 @@
{
inited = 1;
config_handlers = g_hash_table_new (g_str_hash, g_str_equal);
- g_hash_table_insert (config_handlers, dllmap_handler.element_name, &dllmap_handler);
+ g_hash_table_insert (config_handlers, (gpointer)dllmap_handler.element_name, &dllmap_handler);
}
/* FIXME: error handling */
Index: metadata/pedump.c
===================================================================
RCS file: /mono/mono/mono/metadata/pedump.c,v
retrieving revision 1.24
diff -u -b -B -r1.24 pedump.c
--- metadata/pedump.c 28 Mar 2002 11:10:56 -0000 1.24
+++ metadata/pedump.c 1 Jun 2002 00:03:33 -0000
@@ -21,6 +21,7 @@
gboolean dump_data = TRUE;
gboolean verify_pe = FALSE;
+/* not used
static void
hex_dump (const char *buffer, int base, int count)
{
@@ -33,7 +34,7 @@
printf ("%02x ", (unsigned char) (buffer [i]));
}
}
-
+*/
static void
hex8 (const char *label, unsigned char x)
{
Index: os/unix/.cvsignore
===================================================================
RCS file: /mono/mono/mono/os/unix/.cvsignore,v
retrieving revision 1.1
diff -u -b -B -r1.1 .cvsignore
--- os/unix/.cvsignore 18 May 2002 17:32:36 -0000 1.1
+++ os/unix/.cvsignore 1 Jun 2002 00:03:34 -0000
@@ -1,3 +1,4 @@
+.deps
Makefile
Makefile.in
util.o
Index: utils/strtod.c
===================================================================
RCS file: /mono/mono/mono/utils/strtod.c,v
retrieving revision 1.1
diff -u -b -B -r1.1 strtod.c
--- utils/strtod.c 13 May 2002 22:43:03 -0000 1.1
+++ utils/strtod.c 1 Jun 2002 00:03:34 -0000
@@ -1922,9 +1922,9 @@
*decpt = 9999;
s =
#ifdef IEEE_Arith
- !word1(d) && !(word0(d) & 0xfffff) ? "Infinity" :
+ !word1(d) && !(word0(d) & 0xfffff) ? (char*)"Infinity" :
#endif
- "NaN";
+ (char*)"NaN";
if (rve)
*rve =
#ifdef IEEE_Arith
@@ -1939,7 +1939,7 @@
#endif
if (!d) {
*decpt = 1;
- s = "0";
+ s = (char*)"0";
if (rve)
*rve = s + 1;
return s;
--=-=-=--