[PATCH] [libc++] Const qualify __gnu_cxx::hash_map<>::const_iterator::pointer type.
Peter Collingbourne
peter at pcc.me.uk
Thu Feb 27 14:10:17 PST 2014
Add tests.
Hi mclow.lists,
http://llvm-reviews.chandlerc.com/D2811
CHANGE SINCE LAST DIFF
http://llvm-reviews.chandlerc.com/D2811?vs=7143&id=7411#toc
Files:
include/ext/hash_map
test/extensions/hash_map/const_iterator.fail.cpp
Index: include/ext/hash_map
===================================================================
--- include/ext/hash_map
+++ include/ext/hash_map
@@ -430,9 +430,9 @@
typedef const value_type& reference;
typedef typename __pointer_traits::template
#ifndef _LIBCPP_HAS_NO_TEMPLATE_ALIASES
- rebind<value_type>
+ rebind<const value_type>
#else
- rebind<value_type>::other
+ rebind<const value_type>::other
#endif
pointer;
Index: test/extensions/hash_map/const_iterator.fail.cpp
===================================================================
--- /dev/null
+++ test/extensions/hash_map/const_iterator.fail.cpp
@@ -0,0 +1,18 @@
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#include <ext/hash_map>
+
+int main()
+{
+ __gnu_cxx::hash_map<int, int> m;
+ m[1] = 1;
+ const __gnu_cxx::hash_map<int, int> &cm = m;
+ cm.find(1)->second = 2; // error
+}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D2811.2.patch
Type: text/x-patch
Size: 1340 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20140227/6081f5f7/attachment.bin>
More information about the cfe-commits
mailing list