This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: genmddeps s390 bootstrap failure
- From: Ian Lance Taylor <ian at airs dot com>
- To: Andreas Krebbel <krebbel1 at de dot ibm dot com>
- Cc: gcc at gcc dot gnu dot org, gcc-patches at gcc dot gnu dot org
- Date: 18 May 2005 09:44:16 -0400
- Subject: Re: genmddeps s390 bootstrap failure
- References: <20050518080246.GA3393@de.ibm.com>
Andreas Krebbel <krebbel1@de.ibm.com> writes:
> mainline bootstrap on s390 currently fails with:
>
> build/genmddeps ../../gcc/config/s390/s390.md > tmp-mddeps
> ../../gcc/config/s390/s390.md:2041: undefined attribute 'DBL<D0>' used for mode
> ../../gcc/config/s390/s390.md:2041: following context is `'
>
> DBL is a macro attribute defined as:
>
> (define_mode_attr DBL [(DI "TI") (SI "DI")])
>
> The pattern in question is:
>
> (define_insn "*clrmem_long"
> [(clobber (match_operand:<DBL> 0 "register_operand" "=d"))
> (set (mem:BLK (subreg:P (match_operand:<DBL> 2 "register_operand" "0") 0))
> (const_int 0))
> (use (match_dup 2))
> (use (match_operand:<DBL> 1 "register_operand" "d"))
> (clobber (reg:CC CC_REGNUM))]
> ""
> "mvcle\t%0,%1,0\;jo\t.-4"
> [(set_attr "length" "8")
> (set_attr "type" "vs")])
>
> I think the problem lies in genmddeps. genmddeps seems to randomly complain about
> uses of the DBL attribute. Always with an again randomly appended character at the
> end of the macro name in the error message.
>
> At first glance it appears like a string null termination problem so I've added:
Sorry about that. Braino on my part. I'm committing this patch as
the obvious fix. Please let me know if you still have trouble.
Ian
2005-05-18 Ian Lance Taylor <ian@airs.com>
* read-rtl.c (mode_attr_index): Use obstack_grow0, not
obstack_grow.
Index: read-rtl.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/read-rtl.c,v
retrieving revision 1.38
diff -p -u -r1.38 read-rtl.c
--- read-rtl.c 17 May 2005 12:50:32 -0000 1.38
+++ read-rtl.c 18 May 2005 13:42:28 -0000
@@ -320,7 +320,7 @@ mode_attr_index (struct map_value **mode
/* Copy the attribute string into permanent storage, without the
angle brackets around it. */
- obstack_grow (&string_obstack, string + 1, strlen (string) - 2);
+ obstack_grow0 (&string_obstack, string + 1, strlen (string) - 2);
p = (char *) obstack_finish (&string_obstack);
mv = XNEW (struct map_value);