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