This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
PATCH for missing FORMAT_VBASE_NAME on m68k-motorola-sysv (was: PATCH for missing JOINER on m68k-motorola-sysv)
- To: egcs-patches at cygnus dot com, jason at cygnus dot com
- Subject: PATCH for missing FORMAT_VBASE_NAME on m68k-motorola-sysv (was: PATCH for missing JOINER on m68k-motorola-sysv)
- From: Manfred Hollstein <manfred at s-direktnet dot de>
- Date: Fri, 9 Oct 1998 10:35:18 +0200 (MET DST)
- References: <13852.50527.11676.111967@slsvhmt>
- Reply-To: manfred at s-direktnet dot de, Manfred dot Hollstein at ks dot sel dot alcatel dot de
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'. */