http://gcc.gnu.org/bugzilla/show_bug.cgi?id=61086

            Bug ID: 61086
           Summary: ubsan detects undefined behaviour in the standard
                    library
           Product: gcc
           Version: 4.9.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: libstdc++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: chris at detrino dot org

The following program compiled with clang++ -fsanitize=undefined reveals
undefined behavior.

Program:

#include <array>
#include <vector>

int main()
{
    std::vector<int> v;
    std::array<int, 2> array{{0, 1}};
    v.insert(v.end(), array.begin(), array.end());
}

Errors:

/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.0/../../../../include/c++/4.9.0/bits/stl_iterator.h:745:26:
runtime error: reference binding to null pointer of type 'typename
_PTraits::element_type' (aka 'int')
/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.0/../../../../include/c++/4.9.0/bits/ptr_traits.h:169:31:
runtime error: reference binding to null pointer of type 'typename
__ptrtr_not_void<element_type>::__type' (aka 'int')
/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.0/../../../../include/c++/4.9.0/bits/move.h:136:31:
runtime error: reference binding to null pointer of type 'int'

Reply via email to