PATCH for missing FORMAT_VBASE_NAME on m68k-motorola-sysv (was: PATCH for missing JOINER on m68k-motorola-sysv)
Manfred Hollstein
manfred@s-direktnet.de
Fri Oct 23 03:32:00 GMT 1998
On Fri, 9 October 1998, 10:35:18, manfred@s-direktnet.de wrote:
> On Thu, 8 October 1998, 16:13:12, manfred@s-direktnet.de wrote:
>
> > This particular configuration defines both "NO_DOLLAR_IN_LABEL" and
> > "NO_DOT_IN_LABEL". If both are defined, cp-tree.h fails to provide a
> > definition for "JOINER", hence compilation of decl2.c fails.
> >
[snip]
> > 1998-10-08 Manfred Hollstein <manfred@s-direktnet.de>
> >
> > * decl2.c (start_objects): Add new variable `joiner' and
> > initialize it properly.
>
> With this patch applied, the build is later on dying due to unresolved
> symbols "FORMAT_VBASE_NAME" referenced by class.o, rtti.o and tree.o.
>
> The macro in cp-tree.h is only defined if neiter "NO_DOLLAR_IN_LABEL"
> nor "NO_DOT_IN_LABEL" are defined; since FORMAT_VBASE_NAME's
> definition doesn't actually use any NO_..._IN_LABEL dependent stuff,
> I've simply moved its definition out of the #ifndef ... #endif pair.
>
> OK to install?
>
> manfred
Jason, what do you think about the patch? I still need to move
FORMAT_VBASE_NAME's definition out of the #if ... #endif block
for this particular platform.
manfred
>
>
> 1998-10-09 Manfred Hollstein <manfred@s-direktnet.de>
>
> * cp-tree.h (FORMAT_VBASE_NAME): Make definition unconditional.
>
> diff -rup -x CVS -x RCS -x *.o -x *.info* -x *.html* -x *.elc -x *.dvi -x *.orig -x *~ -x version.el egcs-19981006.orig/gcc/cp/cp-tree.h egcs-19981006/gcc/cp/cp-tree.h
> --- egcs-19981006.orig/gcc/cp/cp-tree.h Mon Oct 5 11:41:01 1998
> +++ egcs-19981006/gcc/cp/cp-tree.h Fri Oct 9 08:25:23 1998
> @@ -2140,13 +2140,6 @@ extern int current_function_parms_stored
> && IDENTIFIER_POINTER (ID_NODE)[2] == 'b' \
> && IDENTIFIER_POINTER (ID_NODE)[3] == JOINER)
>
> -/* Store the vbase pointer field name for type TYPE into pointer BUF. */
> -#define FORMAT_VBASE_NAME(BUF,TYPE) do { \
> - BUF = (char *) alloca (TYPE_ASSEMBLER_NAME_LENGTH (TYPE) \
> - + sizeof (VBASE_NAME) + 1); \
> - sprintf (BUF, VBASE_NAME_FORMAT, TYPE_ASSEMBLER_NAME_STRING (TYPE)); \
> -} while (0)
> -
> #define TEMP_NAME_P(ID_NODE) (!strncmp (IDENTIFIER_POINTER (ID_NODE), AUTO_TEMP_NAME, sizeof (AUTO_TEMP_NAME)-1))
> #define VFIELD_NAME_P(ID_NODE) (!strncmp (IDENTIFIER_POINTER (ID_NODE), VFIELD_NAME, sizeof(VFIELD_NAME)-1))
>
> @@ -2159,6 +2152,13 @@ extern int current_function_parms_stored
> #define ANON_PARMNAME_P(ID_NODE) (IDENTIFIER_POINTER (ID_NODE)[0] == '_' \
> && IDENTIFIER_POINTER (ID_NODE)[1] <= '9')
> #endif /* !defined(NO_DOLLAR_IN_LABEL) || !defined(NO_DOT_IN_LABEL) */
> +
> +/* Store the vbase pointer field name for type TYPE into pointer BUF. */
> +#define FORMAT_VBASE_NAME(BUF,TYPE) do { \
> + BUF = (char *) alloca (TYPE_ASSEMBLER_NAME_LENGTH (TYPE) \
> + + sizeof (VBASE_NAME) + 1); \
> + sprintf (BUF, VBASE_NAME_FORMAT, TYPE_ASSEMBLER_NAME_STRING (TYPE)); \
> +} while (0)
>
> /* Returns non-zero iff ID_NODE is an IDENTIFIER_NODE whose name is
> `main'. */
More information about the Gcc-patches
mailing list