This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

h8300-elf build broken


I assume this is a size_t vs int type problem, but the diagnostic
points to the function declaration, not to an actual binary
expression, and I can't figure out what it's complaining about:

/greed/dj/m32c/gcc/h8300-elf/./gcc/xgcc -shared-libgcc -B/greed/dj/m32c/gcc/h8300-elf/./gcc -nostdinc++ -L/greed/dj/m32c/gcc/h8300-elf/h8300-elf/h8300h/normal/int32/libstdc++-v3/src -L/greed/dj/m32c/gcc/h8300-elf/h8300-elf/h8300h/normal/int32/libstdc++-v3/src/.libs -B/greed/dj/m32c/install/h8300-elf/bin/ -B/greed/dj/m32c/install/h8300-elf/lib/ -isystem /greed/dj/m32c/install/h8300-elf/include -isystem /greed/dj/m32c/install/h8300-elf/sys-include  -mh -mn -mint32 -x c++-header -nostdinc++ -g -O2 -I/greed/dj/m32c/gcc/h8300-elf/h8300-elf/h8300h/normal/int32/libstdc++-v3/include/h8300-elf -I/greed/dj/m32c/gcc/h8300-elf/h8300-elf/h8300h/normal/int32/libstdc++-v3/include -I/greed/dj/m32c/gcc/gcc/libstdc++-v3/libsupc++ -O2 -g -std=gnu++0x /greed/dj/m32c/gcc/gcc/libstdc++-v3/include/precompiled/stdc++.h \
        -o h8300-elf/bits/stdc++.h.gch/O2ggnu++0x.gch
In file included from /greed/dj/m32c/gcc/h8300-elf/h8300-elf/h8300h/normal/int32/libstdc++-v3/include/vector:70:0,
                 from /greed/dj/m32c/gcc/h8300-elf/h8300-elf/h8300h/normal/int32/libstdc++-v3/include/bits/random.h:34,
                 from /greed/dj/m32c/gcc/h8300-elf/h8300-elf/h8300h/normal/int32/libstdc++-v3/include/random:50,
                 from /greed/dj/m32c/gcc/h8300-elf/h8300-elf/h8300h/normal/int32/libstdc++-v3/include/bits/stl_algo.h:67,
                 from /greed/dj/m32c/gcc/h8300-elf/h8300-elf/h8300h/normal/int32/libstdc++-v3/include/algorithm:63,
                 from /greed/dj/m32c/gcc/gcc/libstdc++-v3/include/precompiled/stdc++.h:65:
/greed/dj/m32c/gcc/h8300-elf/h8300-elf/h8300h/normal/int32/libstdc++-v3/include/bits/vector.tcc: In member function 'void std::vector<_Tp, _Alloc>::_M_emplace_back_aux(_Args&& ...) [with _Args = {const int&}; _Tp = int; _Alloc = std::allocator<int>]':
/greed/dj/m32c/gcc/h8300-elf/h8300-elf/h8300h/normal/int32/libstdc++-v3/include/bits/vector.tcc:397:7: error: type mismatch in binary expression
       vector<_Tp, _Alloc>::
       ^
/greed/dj/m32c/gcc/h8300-elf/h8300-elf/h8300h/normal/int32/libstdc++-v3/include/bits/vector.tcc:397:7: internal compiler error: verify_gimple failed
       vector<_Tp, _Alloc>::
       ^
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.
make: *** [h8300-elf/bits/stdc++.h.gch/O2ggnu++0x.gch] Error 1


Note: my current patchset is:

Index: libstdc++-v3/include/std/bitset
===================================================================
--- libstdc++-v3/include/std/bitset	(revision 186562)
+++ libstdc++-v3/include/std/bitset	(working copy)
@@ -1374,13 +1374,13 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
       void
       bitset<_Nb>::
       _M_copy_from_ptr(const _CharT* __s, size_t __len,
 		       size_t __pos, size_t __n, _CharT __zero, _CharT __one)
       {
 	reset();
-	const size_t __nbits = std::min(_Nb, std::min(__n, __len - __pos));
+	const size_t __nbits = std::min(_Nb, std::min(__n, (size_t)(__len - __pos)));
 	for (size_t __i = __nbits; __i > 0; --__i)
 	  {
 	    const _CharT __c = __s[__pos + __nbits - __i];
 	    if (_Traits::eq(__c, __zero))
 	      ;
 	    else if (_Traits::eq(__c, __one))
Index: libstdc++-v3/include/bits/random.tcc
===================================================================
--- libstdc++-v3/include/bits/random.tcc	(revision 186562)
+++ libstdc++-v3/include/bits/random.tcc	(working copy)
@@ -2786,13 +2786,13 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 		       : (__n >=  68) ? 7
 		       : (__n >=  39) ? 5
 		       : (__n >=   7) ? 3
 		       : (__n - 1) / 2;
       const size_t __p = (__n - __t) / 2;
       const size_t __q = __p + __t;
-      const size_t __m = std::max(__s + 1, __n);
+      const size_t __m = std::max((size_t)(__s + 1), __n);
 
       for (size_t __k = 0; __k < __m; ++__k)
 	{
 	  _Type __arg = (__begin[__k % __n]
 			 ^ __begin[(__k + __p) % __n]
 			 ^ __begin[(__k - 1) % __n]);
Index: gcc/config/h8300/h8300.h
===================================================================
--- gcc/config/h8300/h8300.h	(revision 186534)
+++ gcc/config/h8300/h8300.h	(working copy)
@@ -126,12 +126,13 @@ extern const char * const *h8_reg_names;
 
 /* The return address is pushed on the stack.  */
 #define INCOMING_RETURN_ADDR_RTX   gen_rtx_MEM (Pmode, gen_rtx_REG (Pmode, STACK_POINTER_REGNUM))
 #define INCOMING_FRAME_SP_OFFSET   (POINTER_SIZE / 8)
 
 #define DWARF_CIE_DATA_ALIGNMENT	2
+#define DWARF2_ADDR_SIZE		4
 
 /* Define this if addresses of constant functions
    shouldn't be put through pseudo regs where they can be cse'd.
    Desirable on machines where ordinary constants are expensive
    but a CALL with constant address is cheap.
 


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]