https://bugs.llvm.org/show_bug.cgi?id=34515
Bug ID: 34515
Summary: std::indirect_array::operator= gives wrong result.
Product: libc++
Version: unspecified
Hardware: PC
OS: Windows NT
Status: NEW
Severity: enhancement
Priority: P
Component: All Bugs
Assignee: unassignedclangb...@nondot.org
Reporter: pichet2...@gmail.com
CC: llvm-bugs@lists.llvm.org, mclow.li...@gmail.com
#include "iostream"
#include <valarray>
int main() {
int input[] = { 0, 1, 2, 3, 4, 5, 6 };
std::valarray<int> filled(input, 7);
size_t indexes[] = { 1, 3, 4, 6 };
std::valarray<size_t> index(indexes, 4);
size_t indexes2[] = { 1, 2, 3, 4 };
std::valarray<size_t> index2(indexes2, 4);
const std::indirect_array<int> result = filled[index];
const std::indirect_array<int> result2 = filled[index2];
result = result2;
std::valarray<int> temp(result);
for (int i = 0; i < temp.size(); i++)
std::cout << temp[i] << " ";
}
using clang, this will print:
1 2 2 2
using msvc or gcc, this will print:
1 2 3 4
--
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs