diff --git a/libcxx/include/vector b/libcxx/include/vector --- a/libcxx/include/vector +++ b/libcxx/include/vector @@ -745,7 +745,7 @@ const void *__new_mid) const { - if (!__libcpp_is_constant_evaluated() && __beg && is_same::value) + if (!__libcpp_is_constant_evaluated() && __beg) __sanitizer_annotate_contiguous_container(__beg, __end, __old_mid, __new_mid); } #else diff --git a/libcxx/test/libcxx/containers/sequences/vector/asan.pass.cpp b/libcxx/test/libcxx/containers/sequences/vector/asan.pass.cpp --- a/libcxx/test/libcxx/containers/sequences/vector/asan.pass.cpp +++ b/libcxx/test/libcxx/containers/sequences/vector/asan.pass.cpp @@ -36,7 +36,7 @@ const T t[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; C c(std::begin(t), std::end(t)); c.reserve(2*c.size()); - volatile T foo = c[c.size()]; // bad, but not caught by ASAN + volatile T foo = c[c.size() - 1]; ((void)foo); } #endif