summaryrefslogtreecommitdiffstats
path: root/libcxx/test/std/numerics/numarray/template.valarray/valarray.sub/slice_const.pass.cpp
diff options
context:
space:
mode:
authorEric Fiselier <eric@efcs.ca>2019-04-02 08:05:23 +0000
committerEric Fiselier <eric@efcs.ca>2019-04-02 08:05:23 +0000
commit0657197588ffea508426de1e0c2afa65e76e24fa (patch)
treeea0b248815ce3257e80890880e821a3612524a50 /libcxx/test/std/numerics/numarray/template.valarray/valarray.sub/slice_const.pass.cpp
parentb669fea42f5c2a5b203c3f0da2a6b04b90bfd5a7 (diff)
downloadbcm5719-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.cpp29
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;
}
OpenPOWER on IntegriCloud