This is the mail archive of the mailing list for the libstdc++ project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: vector lightweight debug mode

On 07/10/15 21:38 +0200, François Dumont wrote:

   I completed vector assertion mode. Here is the result of the new
test you will find in the attached patch.

With debug mode:
Error: attempt to advance a dereferenceable (start-of-sequence) iterator 2
steps, which falls outside its valid range.

Objects involved in the operation:
   iterator @ 0x0x7fff1c346760 {
     type =
std::__cxx1998::vector<int, std::allocator<int> > >,
std::__debug::vector<int, std::allocator<int> > > (mutable iterator);
     state = dereferenceable (start-of-sequence);
     references sequence with type 'std::__debug::vector<int,
std::allocator<int> >' @ 0x0x7fff1c3469a0
XFAIL: 23_containers/vector/debug/ execution test

With assertion mode:
Error: invalid insert position outside container [begin, end) range.

Objects involved in the operation:
   sequence "this" @ 0x0x7fff60b1f870 {
     type = std::vector<int, std::allocator<int> >;
   iterator "__position" @ 0x0x7fff60b1f860 {
     type = __gnu_cxx::__normal_iterator<int const*, std::vector<int,
std::allocator<int> > >;
XFAIL: 23_containers/vector/debug/ execution test

I still don't like the formatted output for the lightweight mode, it
adds a dependency on I/O support in libc, which is a problem for
embedded systems.

The idea was to just add really cheap checks and abort  :-(

Have you compared codegen with and without assertion mode? How much
more code is added to member functions like operator[] that must be
inlined for good performance?  Is it likely to affect inlining

I suspect it will have a much bigger impact than if we just use
__builtin_abort() as I made it do originally.

If these checks become more complex then people are not going to
enable them by default, and we probably won't want to make them
enabled by _FORTIFY_SOURCE.

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