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
|
||||
unique_ptr
|
||||
list-initializers
|
||||
array-bounds
|
||||
|
|
|
@ -7,3 +7,4 @@ add_executable(typetest typetest.cpp)
|
|||
add_executable(auto_ptr auto_ptr.cpp)
|
||||
add_executable(unique_ptr unique_ptr.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