This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

PATCH for missing FORMAT_VBASE_NAME on m68k-motorola-sysv (was: PATCH for missing JOINER on m68k-motorola-sysv)


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.
 > 
 > I've adopted a similar solution to that used in class.c, but
 > perhaps we should add a
 > 
 > #define JOINER '_'
 > 
 > to the #else /* NO_DOT_IN_LABEL */ part in cp-tree.h?
 > 
 > Anyway, this patch allows me to continue building on this slooooow
 > platform ...
 > 
 > manfred
 > 
 > 
 > 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


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'.  */


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]