This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [committed] Introduce RTL function reader
- From: Rainer Orth <ro at CeBiTec dot Uni-Bielefeld dot DE>
- To: David Malcolm <dmalcolm at redhat dot com>
- Cc: Uros Bizjak <ubizjak at gmail dot com>, "gcc-patches\@gcc.gnu.org" <gcc-patches at gcc dot gnu dot org>, Jan Hubicka <hubicka at ucw dot cz>, Bernd Schmidt <bschmidt at redhat dot com>
- Date: Fri, 06 Jan 2017 13:48:50 +0100
- Subject: Re: [committed] Introduce RTL function reader
- Authentication-results: sourceware.org; auth=none
- References: <1483647626-35623-1-git-send-email-dmalcolm@redhat.com>
Hi David,
> The various parts of patch 8 appear to now have been approved, so
> I've committed it (along with "Add ASSERT_RTX_PTR_EQ", which it
> requires and is required by) to trunk as r244110, having rebased,
> and bootstrapped & regrtested on x86_64-pc-linux-gnu, and tested
> stage 1's selftests for aarch64-linux-gnu.
this patch thoroughly broke bootstrap on every 32-bit target, it seems:
In file included from /vol/gcc/src/hg/trunk/local/gcc/read-rtl.c:31:0:
/vol/gcc/src/hg/trunk/local/gcc/read-rtl.c: In member function 'rtx_def* rtx_reader::read_rtx_code(const char*)':
/vol/gcc/src/hg/trunk/local/gcc/read-rtl.c:1260:23: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
gcc_assert (idx < m_reuse_rtx_by_id.length ());
~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/vol/gcc/src/hg/trunk/local/gcc/system.h:731:14: note: in definition of macro 'gcc_assert'
((void)(!(EXPR) ? fancy_abort (__FILE__, __LINE__, __FUNCTION__), 0 : 0))
^~~~
Seen on i386-pc-solaris2.*, sparc-sun-solaris2.*, and i686-pc-linux-gnu.
The following fix works for me, at least an i686-pc-linux-gnu bootstrap
is now into building target libraries.
Rainer
--
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University
2017-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* read-rtl.c (rtx_reader::read_rtx_code): Cast idx to unsigned.
diff --git a/gcc/read-rtl.c b/gcc/read-rtl.c
--- a/gcc/read-rtl.c
+++ b/gcc/read-rtl.c
@@ -1257,7 +1257,7 @@ rtx_reader::read_rtx_code (const char *c
read_name (&name);
long idx = atoi (name.string);
/* Look it up by ID. */
- gcc_assert (idx < m_reuse_rtx_by_id.length ());
+ gcc_assert ((unsigned) idx < m_reuse_rtx_by_id.length ());
return_rtx = m_reuse_rtx_by_id[idx];
return return_rtx;
}