add some broken array/vector tests
This commit is contained in:
parent
11ece493be
commit
94bf9c06cf
3 changed files with 59 additions and 0 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -9,3 +9,4 @@ auto_ptr
|
||||||
typetest
|
typetest
|
||||||
unique_ptr
|
unique_ptr
|
||||||
list-initializers
|
list-initializers
|
||||||
|
array-bounds
|
||||||
|
|
|
@ -7,3 +7,4 @@ add_executable(typetest typetest.cpp)
|
||||||
add_executable(auto_ptr auto_ptr.cpp)
|
add_executable(auto_ptr auto_ptr.cpp)
|
||||||
add_executable(unique_ptr unique_ptr.cpp)
|
add_executable(unique_ptr unique_ptr.cpp)
|
||||||
add_executable(list-initializers list-initializers.cpp)
|
add_executable(list-initializers list-initializers.cpp)
|
||||||
|
add_executable(array-bounds array-bounds.cpp)
|
||||||
|
|
57
array-bounds.cpp
Normal file
57
array-bounds.cpp
Normal file
|
@ -0,0 +1,57 @@
|
||||||
|
#include <array>
|
||||||
|
#include <iostream>
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
|
void classic() {
|
||||||
|
int array[2];
|
||||||
|
array[0] = 1;
|
||||||
|
array[1] = 2;
|
||||||
|
// array[3] = 3; <- clang++ -Warray-bounds warns about this
|
||||||
|
// array[4] = 4; <- clang++ -Warray-bounds warns about this
|
||||||
|
|
||||||
|
int n = 10;
|
||||||
|
std::cout << array[3] << std::endl; // no warning!
|
||||||
|
std::cout << array[4] << std::endl; // no warning!
|
||||||
|
std::cout << array[n-1] << std::endl; // no warning!
|
||||||
|
}
|
||||||
|
|
||||||
|
// FIXME
|
||||||
|
void std_array() {
|
||||||
|
std::array<int, 2> array;
|
||||||
|
array[0] = 1;
|
||||||
|
array[1] = 2;
|
||||||
|
array[3] = 3; // XXX <- clang++ -Warray-bounds warns about this
|
||||||
|
// array[4] = 4; <- clang++ -Warray-bounds warns about this
|
||||||
|
|
||||||
|
int n = 10;
|
||||||
|
std::cout << array[3] << std::endl; // no warning!
|
||||||
|
std::cout << array[4] << std::endl; // no warning!
|
||||||
|
std::cout << array[n-1] << std::endl; // no warning!
|
||||||
|
}
|
||||||
|
|
||||||
|
// FIXME
|
||||||
|
void std_vector() {
|
||||||
|
std::vector<int> vector;
|
||||||
|
vector[0] = 1;
|
||||||
|
vector[1] = 2;
|
||||||
|
// vector[3] = 3; // SEGFAULT
|
||||||
|
// vector[4] = 4; <- clang++ -Warray-bounds warns about this
|
||||||
|
|
||||||
|
int n = 10;
|
||||||
|
// std::cout << vector[3] << std::endl; // no warning!
|
||||||
|
// std::cout << vector[4] << std::endl; // no warning!
|
||||||
|
// std::cout << vector[n-1] << std::endl; // no warning!
|
||||||
|
}
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
std::cout << "classic()" << std::endl;
|
||||||
|
classic();
|
||||||
|
|
||||||
|
std::cout << "std_array()" << std::endl;
|
||||||
|
std_array();
|
||||||
|
|
||||||
|
std::cout << "std_vector()" << std::endl;
|
||||||
|
std_vector();
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue