Opened 8 years ago
#10632 new Bugs
Problem with range transform with gcc-4.8 optimized
Reported by: | Owned by: | Neil Groves | |
---|---|---|---|
Milestone: | To Be Determined | Component: | range |
Version: | Boost 1.55.0 | Severity: | Problem |
Keywords: | Cc: |
Description
With gcc4.8, if the option -O is used, the operation " | transformed(arg1)" on a transformed range leads to unexpected results.
E.g. if "initialVec" is a vector containing any values, the following line gives a null resultVec:
auto resultVec = initialVec | transformed( arg1 * 2 ) | transformed( arg1 );
This problem is also present with clang (optimized) and visual studio 2013 (in release), but not in debug modes, and not with gcc-4.6.
Note that an operation in the second transformed remove this problem: the following code is working as expected:
auto resultVec = initialVec | transformed( arg1 * 2 ) | transformed( arg1 * 1 );
This problem has been reproduced with boost 1.49, 1.55 and 1.56.
Minimal program to reproduce