Summary: | debug mode for std::array and tr1::array | ||
---|---|---|---|
Product: | gcc | Reporter: | Jonathan Wakely <redi> |
Component: | libstdc++ | Assignee: | Paolo Carlini <paolo.carlini> |
Status: | RESOLVED FIXED | ||
Severity: | enhancement | CC: | daniel.kruegler |
Priority: | P3 | ||
Version: | 4.7.0 | ||
Target Milestone: | 4.8.0 | ||
Host: | Target: | ||
Build: | Known to work: | ||
Known to fail: | Last reconfirmed: | 2012-03-22 00:00:00 | |
Attachments: | Adds bounds checking to std::array and tr1::array in debug mode. |
Description
Jonathan Wakely
2012-01-13 17:37:02 UTC
Created attachment 26368 [details]
Adds bounds checking to std::array and tr1::array in debug mode.
I've attached a patch which adds bounds checking to std::array (C++0x) and std::tr1::array.
The std::array patch keeps operator[] as constexpr.
I'll do it, the normal way, for std::array only. Author: paolo Date: Wed Nov 7 00:42:19 2012 New Revision: 193278 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=193278 Log: 2012-11-06 Paolo Carlini <paolo.carlini@oracle.com> PR libstdc++/51850 * include/debug/array: New, debug-mode implementation. * include/profile/array: New. * include/std/array: Adjust. * include/std/tuple: Just include <array>. * include/Makefile.am: Add. * include/Makefile.in: Regenerate. * testsuite/23_containers/array/debug/front1_neg.cc: New. * testsuite/23_containers/array/debug/ square_brackets_operator1_neg.cc: Likewise. * testsuite/23_containers/array/debug/front2_neg.cc: Likewise. * testsuite/23_containers/array/debug/ square_brackets_operator2_neg.cc: Likewise. * testsuite/23_containers/array/debug/back1_neg.cc: Likewise. * testsuite/23_containers/array/debug/back2_neg.cc: Likewise. * testsuite/23_containers/array/tuple_interface/get_neg.cc: Tweak to run only in normal-mode. * testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc: Likewise. * testsuite/23_containers/array/tuple_interface/get_debug_neg.cc: New. * testsuite/23_containers/array/tuple_interface/ tuple_element_debug_neg.cc: Likewise. Added: trunk/libstdc++-v3/include/debug/array trunk/libstdc++-v3/include/profile/array trunk/libstdc++-v3/testsuite/23_containers/array/debug/ trunk/libstdc++-v3/testsuite/23_containers/array/debug/back1_neg.cc trunk/libstdc++-v3/testsuite/23_containers/array/debug/back2_neg.cc trunk/libstdc++-v3/testsuite/23_containers/array/debug/front1_neg.cc trunk/libstdc++-v3/testsuite/23_containers/array/debug/front2_neg.cc trunk/libstdc++-v3/testsuite/23_containers/array/debug/square_brackets_operator1_neg.cc trunk/libstdc++-v3/testsuite/23_containers/array/debug/square_brackets_operator2_neg.cc trunk/libstdc++-v3/testsuite/23_containers/array/tuple_interface/get_debug_neg.cc trunk/libstdc++-v3/testsuite/23_containers/array/tuple_interface/tuple_element_debug_neg.cc Modified: trunk/libstdc++-v3/ChangeLog trunk/libstdc++-v3/include/Makefile.am trunk/libstdc++-v3/include/Makefile.in trunk/libstdc++-v3/include/std/array trunk/libstdc++-v3/include/std/tuple trunk/libstdc++-v3/testsuite/23_containers/array/tuple_interface/get_neg.cc trunk/libstdc++-v3/testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc Done. |