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.
 

Reply via email to