Waldek Hebisch wrote:
Adriaan van Os wrote:
With the various MacPascal/Delphi object support patches posted on this list, fjf903c.pas (in the testsuite) crashes gpc.
<snip> > Exception: EXC_BAD_ACCESS (0x0001) > Codes: KERN_PROTECTION_FAILURE (0x0002) at 0x00000034 > > Thread 0 Crashed: > 0 gpc1 0x0006ab7c dbxout_type + 0x1e74 (dbxout.c:1020)
Apparently dbxout.c assumes that all object look like C++ objects. The following backend patch should fix the crash:
--- gcc-3.4.3/gcc/dbxout.c.bb 2005-06-14 03:33:07.000000000 +0200 +++ gcc-3.4.3/gcc/dbxout.c 2005-07-22 00:17:41.389503512 +0200 @@ -1011,13 +1011,17 @@ tree type_encoding; tree fndecl; tree last; +#ifndef GPC char formatted_type_identifier_length[16]; int type_identifier_length; +#endif
if (methods == NULL_TREE) return;
+#ifndef GPC type_encoding = DECL_NAME (TYPE_NAME (type)); +#endif
#if 0 /* C++: Template classes break some assumptions made by this code about @@ -1037,9 +1041,11 @@ } #endif
+#ifndef GPC type_identifier_length = IDENTIFIER_LENGTH (type_encoding);
sprintf (formatted_type_identifier_length, "%d", type_identifier_length); +#endif
if (TREE_CODE (methods) != TREE_VEC) fndecl = methods;
This solves the problem, thanks.
Regards,
Adriaan van Os