From b77a60117175707cc72afd7e0151fce5c1cf600d Mon Sep 17 00:00:00 2001
From: Martin Stjernholm <mast@lysator.liu.se>
Date: Tue, 23 Jul 2002 15:23:04 +0200
Subject: [PATCH] Reverted the stricter object comparison introduced in 1.190
 in a case that probably caused a function prototype to mismatch itself
 between the first and second passes.

Rev: src/pike_types.c:1.192
---
 src/pike_types.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/src/pike_types.c b/src/pike_types.c
index dbd5d46660..d36881149d 100644
--- a/src/pike_types.c
+++ b/src/pike_types.c
@@ -5,7 +5,7 @@
 \*/
 /**/
 #include "global.h"
-RCSID("$Id: pike_types.c,v 1.191 2002/07/23 12:03:56 grubba Exp $");
+RCSID("$Id: pike_types.c,v 1.192 2002/07/23 13:23:04 mast Exp $");
 #include <ctype.h>
 #include "svalue.h"
 #include "pike_types.h"
@@ -2516,10 +2516,16 @@ static struct pike_type *low_match_types2(struct pike_type *a,
 	if(a->cdr != b->cdr) return 0;
       }else{
 	/* object(0 *) =? object(0 *) */
+#if 0
+	/* This is known to cause trouble in some cases when comparing
+	 * the same function prototype in the first and second passes
+	 * (got "Prototype doesn't match for function foo" even though
+	 * there was no other prototype for that function). /mast */
 	struct program *ap,*bp;
 	ap = id_to_program((ptrdiff_t)a->cdr);
 	bp = id_to_program((ptrdiff_t)b->cdr);
 	if (!is_compatible(ap, bp)) return 0;
+#endif
 	break;
       }
     }
-- 
GitLab