diff options
author | Eric Fiselier <eric@efcs.ca> | 2019-04-02 08:05:23 +0000 |
---|---|---|
committer | Eric Fiselier <eric@efcs.ca> | 2019-04-02 08:05:23 +0000 |
commit | 0657197588ffea508426de1e0c2afa65e76e24fa (patch) | |
tree | ea0b248815ce3257e80890880e821a3612524a50 /libcxx/test/std/numerics/numarray/template.valarray/valarray.sub/slice_const.pass.cpp | |
parent | b669fea42f5c2a5b203c3f0da2a6b04b90bfd5a7 (diff) | |
download | bcm5719-llvm-0657197588ffea508426de1e0c2afa65e76e24fa.tar.gz bcm5719-llvm-0657197588ffea508426de1e0c2afa65e76e24fa.zip |
Fix a number of bugs in __val_expr's subset operator[].
The current definitions were entirely broken. They didn't call any
existing constructor and the forgot to friend the expression types they
were trying to construct.
llvm-svn: 357453
Diffstat (limited to 'libcxx/test/std/numerics/numarray/template.valarray/valarray.sub/slice_const.pass.cpp')
-rw-r--r-- | libcxx/test/std/numerics/numarray/template.valarray/valarray.sub/slice_const.pass.cpp | 29 |
1 files changed, 19 insertions, 10 deletions
diff --git a/libcxx/test/std/numerics/numarray/template.valarray/valarray.sub/slice_const.pass.cpp b/libcxx/test/std/numerics/numarray/template.valarray/valarray.sub/slice_const.pass.cpp index d689ce9236e..15f53ed21a8 100644 --- a/libcxx/test/std/numerics/numarray/template.valarray/valarray.sub/slice_const.pass.cpp +++ b/libcxx/test/std/numerics/numarray/template.valarray/valarray.sub/slice_const.pass.cpp @@ -17,15 +17,24 @@ int main(int, char**) { - int a1[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}; - std::valarray<int> v1(a1, sizeof(a1)/sizeof(a1[0])); - std::valarray<int> v2 = v1[std::slice(1, 5, 3)]; - assert(v2.size() == 5); - assert(v2[0] == 1); - assert(v2[1] == 4); - assert(v2[2] == 7); - assert(v2[3] == 10); - assert(v2[4] == 13); - + { + int a1[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}; + const std::valarray<int> v1(a1, sizeof(a1)/sizeof(a1[0])); + std::valarray<int> v2 = v1[std::slice(1, 5, 3)]; + assert(v2.size() == 5); + assert(v2[0] == 1); + assert(v2[1] == 4); + assert(v2[2] == 7); + assert(v2[3] == 10); + assert(v2[4] == 13); + } + { + int a1[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}; + const std::valarray<int> v1(a1, sizeof(a1)/sizeof(a1[0])); + std::valarray<int> v2 = (v1 + 0)[std::slice(0, 2, 3)]; + assert(v2.size() == 2); + assert(v2[0] == 0); + assert(v2[1] == 3); + } return 0; } |