On 8/5/20 4:27 PM, Gerald Pfeifer wrote:
Hi Aldy,

On Fri, 31 Jul 2020, Aldy Hernandez via Gcc-patches wrote:
Jeff approved this patch off-list.  I will re-run tests once again and
commit by Monday.

I believe this has broken the bootstrap with clang (specifically
FreeBSD clang version 10.0.0):

In file included from /scratch/tmp/gerald/GCC-HEAD/gcc/c/gimple-parser.c:44:
In file included from /scratch/tmp/gerald/GCC-HEAD/gcc/tree-vrp.h:23:
/scratch/tmp/gerald/GCC-HEAD/gcc/value-range.h:347:1: error: static declaration of 
'gt_ggc_mx' follows non-static declaration gt_ggc_mx (int_range<N> *x)
/scratch/tmp/gerald/GCC-HEAD/gcc/value-range.h:150:37: note: previous 
declaration is here
   template <unsigned X> friend void gt_ggc_mx (int_range<X> *);
                                     ^

/scratch/tmp/gerald/GCC-HEAD/gcc/value-range.h:358:1: error: static declaration of 
'gt_pch_nx' follows non-static declaration gt_pch_nx (int_range<N> *x)
/scratch/tmp/gerald/GCC-HEAD/gcc/value-range.h:151:37: note: previous 
declaration is here
   template <unsigned X> friend void gt_pch_nx (int_range<X> *);
                                     ^

My daily tester started to 20200803T1640, so the root cause of this must
have entered GCC trunk between Sunday 16:40 UTC and Monday 16:40 UTC.

Yeah, this is definitely caused by the irange patch.

GTY makes my head spin, and it took forever to get these gt_* functions set up. I can't claim I understand them entirely :).

Just a guess, does removing the static solve the problem?

diff --git a/gcc/value-range.h b/gcc/value-range.h
index e3282c4ad03..1ab39939703 100644
--- a/gcc/value-range.h
+++ b/gcc/value-range.h
@@ -343,7 +343,7 @@ range_includes_zero_p (const irange *vr)
 }

 template<unsigned N>
-static inline void
+inline void
 gt_ggc_mx (int_range<N> *x)
 {
   for (unsigned i = 0; i < N; ++i)
@@ -354,7 +354,7 @@ gt_ggc_mx (int_range<N> *x)
 }

 template<unsigned N>
-static inline void
+inline void
 gt_pch_nx (int_range<N> *x)
 {
   for (unsigned i = 0; i < N; ++i)
@@ -365,7 +365,7 @@ gt_pch_nx (int_range<N> *x)
 }

 template<unsigned N>
-static inline void
+inline void
 gt_pch_nx (int_range<N> *x, gt_pointer_operator op, void *cookie)
 {
   for (unsigned i = 0; i < N; ++i)

Reply via email to