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 <[email protected]>
* 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;
}