This is the mail archive of the gcc-prs@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]

libstdc++/4534: vector<bool>::_M_range_check should throw out_of_range



>Number:         4534
>Category:       libstdc++
>Synopsis:       vector<bool>::_M_range_check should throw out_of_range
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Thu Oct 11 05:26:25 PDT 2001
>Closed-Date:
>Last-Modified:
>Originator:     Brendan Kehoe
>Release:        CVS tree
>Organization:
>Environment:

>Description:
Section 23.1.1.13 of the standard says the member function at() of sequences should throw out_of_range if n >= a.size(), not range_error as is currently thrown in bits/stl_bvector.h's _M_range_check method.
>How-To-Repeat:

>Fix:
Attached patch changes it to use __throw_out_of_range instead of __throw_range_error.  This makes it also match what's implemented in stl_vector.h for the generic vector template's _M_range_check method.

>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: text/plain; name="diffs-bvector.txt"
Content-Disposition: inline; filename="diffs-bvector.txt"

2001-10-09  Brendan Kehoe  <brendan@zen.org>

	* stl_bvector.h (vector<bool>::_M_range_check): Fix to throw
	out_of_range, not range_error, thus sayeth $23.1.1.13.

Index: include/bits/stl_bvector.h
===================================================================
RCS file: /cvs/gcc/egcs/libstdc++-v3/include/bits/stl_bvector.h,v
retrieving revision 1.5
diff -u -p -r1.5 stl_bvector.h
--- stl_bvector.h	2001/06/27 17:09:52	1.5
+++ stl_bvector.h	2001/10/10 11:44:31
@@ -485,7 +485,7 @@ template <typename _Alloc> 
   
     void _M_range_check(size_type __n) const {
       if (__n >= this->size())
-        __throw_range_error("vector<bool>");
+        __throw_out_of_range("vector<bool>");
     }
   
     reference at(size_type __n)


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