Linaro CI reported the following on v3:
```
| # build_abe bootstrap:
| # FAILED
| # First few build errors in logs:
| # 00:35:00
/home/tcwg-build/workspace/tcwg_gnu_7/abe/snapshots/gcc.git~master/gcc/c/c-parser.cc:2038:19:
error: comparison of integer expressions of different signedness: ‘unsigned
int’ and ‘int’ [-Werror=sign-compare]
| # 00:36:33 make[3]: *** [Makefile:1229: c/c-parser.o] Error 1
| # 00:36:33 make[2]: *** [Makefile:5183: all-stage2-gcc] Error 2
| # 00:36:33 make[1]: *** [Makefile:26491: stage2-bubble] Error 2
| # 00:36:33 make: *** [Makefile:1139: all] Error 2
```
To fix this, I made the following change in the version that I pushed as
r17-4966-gbaea2a0be30d84:
```diff
diff --git a/gcc/c/c-parser.cc b/gcc/c/c-parser.cc
index e03c06da9a2..8aa4f54eb0d 100644
--- a/gcc/c/c-parser.cc
+++ b/gcc/c/c-parser.cc
@@ -2022,9 +2022,13 @@ private:
as doing so would require a parser.
Also handle the case where MACRO's definition is a single identifier
that is itself a macro name (e.g. "#define O_CREAT _FCREAT"), by
- following the chain of aliases up to MAX_ALIAS_DEPTH deep. */
- tree consider_macro (cpp_macro *macro, unsigned int depth = 0) const
+ following the chain of aliases. */
+ tree consider_macro (cpp_macro *macro, int depth = 0) const
{
+ /* UInteger option variables are stored as int, so "depth" must be signed
+ to avoid a signed/unsigned comparison here. */
+ gcc_assert (depth >= 0);
+
if (macro->paramc > 0)
return NULL_TREE;
if (macro->kind != cmk_macro)
```
--
https://forge.sourceware.org/gcc/gcc/pulls/226#issuecomment-7742