------- Comment #7 from gdr at cs dot tamu dot edu  2007-01-15 16:14 -------
Subject: Re:  [regression] -Wconversion triggers warnings for
deque<>::push_back()

"pcarlini at suse dot de" <[EMAIL PROTECTED]> writes:

| (In reply to comment #5)
| > Sorry I read your reply later. 
| > 
| > So, that is it, isn't it? Wsystem-headers needs to be fixed since we don't
want
| > to emit warnings for system headers even if those warnings are correct.
| 
| Well, first we don't know when, how, if, the pragma system_header will be
ever
| fixed. Then, assuming the warning is correct, certainly we want to adjust the
| library, that, in my opinion, makes certainly for good engineering (in fact,
we
| are generally relying on the effect of the pragma only in very few,
| last-resort, situations). Alternately, never emit the warning, of course.

I agree with Paolo that we use the system_header hack only as a last
resort -- in general.

However, there is a fundamental tension between unsigned<integer>
and <integer> use in the the C++ standard library and in libstdc++ in
particular.   Many, among whom the designers of C++, consider
most uses of unsigned as indices or sizes as mistake (alas, the LWG
did not listen).  I'm sure middle-end people could argue that they
can generate better codes if signed is used instead -- but that is a
different issue :-) 

For libstdc++, we need to understand what gaurantees we give
for max_size() -- e.g. can we really handle elements that fill up the
whole range of size_type?  If yes, then the warning is good in the
sense that it draws our attention to an untenable promise.
If not, then the warning isn't that useful -- well, in some sense it
is useful as it would force us to introduce more casts than we would
like.  No wonder why people introduced ssize_t :-)

-- Gaby


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30464

Reply via email to