aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaolo Carlini <pcarlini@suse.de>2006-03-28 12:54:04 +0000
committerPaolo Carlini <paolo@gcc.gnu.org>2006-03-28 12:54:04 +0000
commitdf10833162384a6d8b9e7b1f67108c9c53e67d7f (patch)
treeeed3c41b2b3e939695cee8867e1bfc790c66662d
parent37e47ee96393168103a35a792e40b3c808ebc192 (diff)
downloadgcc-df10833162384a6d8b9e7b1f67108c9c53e67d7f.zip
gcc-df10833162384a6d8b9e7b1f67108c9c53e67d7f.tar.gz
gcc-df10833162384a6d8b9e7b1f67108c9c53e67d7f.tar.bz2
vstring.h (operator[]): Allow s[s.size()] in debug mode, but not pedantic mode.
2006-03-28 Paolo Carlini <pcarlini@suse.de> * include/ext/vstring.h (operator[]): Allow s[s.size()] in debug mode, but not pedantic mode. From-SVN: r112447
-rw-r--r--libstdc++-v3/ChangeLog5
-rw-r--r--libstdc++-v3/include/ext/vstring.h5
2 files changed, 9 insertions, 1 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index e2197ba..4611906 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,8 @@
+2006-03-28 Paolo Carlini <pcarlini@suse.de>
+
+ * include/ext/vstring.h (operator[]): Allow s[s.size()] in
+ debug mode, but not pedantic mode.
+
2006-03-24 Mark Mitchell <mark@codesourcery.com>
Joseph S. Myers <joseph@codesourcery.com>
diff --git a/libstdc++-v3/include/ext/vstring.h b/libstdc++-v3/include/ext/vstring.h
index a117c58..5cd84b1 100644
--- a/libstdc++-v3/include/ext/vstring.h
+++ b/libstdc++-v3/include/ext/vstring.h
@@ -449,7 +449,10 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
reference
operator[](size_type __pos)
{
- _GLIBCXX_DEBUG_ASSERT(__pos < this->size());
+ // allow pos == size() as v3 extension:
+ _GLIBCXX_DEBUG_ASSERT(__pos <= this->size());
+ // but be strict in pedantic mode:
+ _GLIBCXX_DEBUG_PEDASSERT(__pos < this->size());
this->_M_leak();
return this->_M_data()[__pos];
}