Dear C::B experts,
I have a project that uses extensively some library based on template classes. This library is not from me, and I do not wish to make any change into its source code. When I build with the GNU make I get it to the end, because GNU make processing is based only on file timestamps, and not on error/warning messages, but when I make with C::B, it does not build to the end. I suspect that this problem happens because some of the warning information is erroneously interpreted as error information by C::B. As a matter of fact this information is highlighted in red font in the C::B "message" pannel window.
Here is an excerpt of what I get in the GNU make stderr output:
../../ac_types1.1/ac_int.h:914: warning: comparison of unsigned expression < 0 is always false
../../ac_types1.1/ac_int.h: In function `void ac_private::iv_const_shift_l(const int*, int*) [with int N = 1, int Nr = 1, int B = 16]':
../../ac_types1.1/ac_int.h:1169: instantiated from `void ac_private::iv<N>::const_shift_l(ac_private::iv<N2>&) const [with int Nr = 1, int B = 16, int N = 1]'
../../ac_types1.1/ac_fixed.h:231: instantiated from `ac_fixed<(((W + W2) > 1) ? (W + W2) : 1), I, S, AC_TRN, AC_WRAP> ac_fixed<W2, I2, S2, Q2, O2>::shiftl() const [with int W2 = 16, int W = 1, int I = 1, bool S = false, ac_q_mode Q = AC_TRN, ac_o_mode O = AC_WRAP]'
../../ac_types1.1/ac_fixed.h:350: instantiated from `typename ac_fixed<W2, I2, S2, Q2, O2>::rt<W2, I2, S2>::minus ac_fixed<W2, I2, S2, Q2, O2>::operator-(const ac_fixed<W2, I2, S2, Q2, O2>&) const [with int W2 = 32, int I2 = 16, bool S2 = true, ac_q_mode Q2 = AC_TRN, ac_o_mode O2 = AC_SAT, int W = 1, int I = 1, bool S = false, ac_q_mode Q = AC_TRN, ac_o_mode O = AC_WRAP]'
../../ac_types1.1/ac_fixed.h:407: instantiated from `ac_fixed<(W + 1), (I + 1), true, AC_TRN, AC_WRAP> ac_fixed<W2, I2, S2, Q2, O2>::operator-() const [with int W = 32, int I = 16, bool S = true, ac_q_mode Q = AC_TRN, ac_o_mode O = AC_SAT]'
../../as_sys/ince/my_header.h:182: instantiated from `void myclass_t<SAMPLE>::conj() [with SAMPLE = r_sample_x]'
../../src/my_source.cpp:507: instantiated from hereThe colors are those shown in the C::B message window (I could not cut and paste from the C::B message window, so I got the text above from GNU make stderr, but there is exactly the same in C::B message windows, with colors in addition which I added by hand in this post).
With template classes the compiler fortunately gives some additional information on what has caused the warning message, otherwise it would be very difficult, if not impossible, to spot where and why you get this warning message. As a temporary workaround I will seek whether I can disable this by some GCC option in order to build with C::B all the same.
I am using :
C::B | SVN build rev 3677 |
GCC | version 3.4.2 |
OS | Windows XP |
GCC is based on MinGW on top of MSYS