diff options
author | Gael Guennebaud <g.gael@free.fr> | 2017-06-09 13:13:03 +0200 |
---|---|---|
committer | Gael Guennebaud <g.gael@free.fr> | 2017-06-09 13:13:03 +0200 |
commit | fb1ee04087f6d5cfe9009941c1a1eb25b3133a04 (patch) | |
tree | e8150d1796e21e6d55271e695f0437afdef090d8 /Eigen/src | |
parent | 723a59ac26d28e42ad07221dc30b75ea8049ce1f (diff) |
bug #1410: fix lvalue propagation of Array/Matrix-Wrapper with a const nested expression.
Diffstat (limited to 'Eigen/src')
-rw-r--r-- | Eigen/src/Core/ArrayWrapper.h | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/Eigen/src/Core/ArrayWrapper.h b/Eigen/src/Core/ArrayWrapper.h index a04521a16..688aadd62 100644 --- a/Eigen/src/Core/ArrayWrapper.h +++ b/Eigen/src/Core/ArrayWrapper.h @@ -32,7 +32,8 @@ struct traits<ArrayWrapper<ExpressionType> > // Let's remove NestByRefBit enum { Flags0 = traits<typename remove_all<typename ExpressionType::Nested>::type >::Flags, - Flags = Flags0 & ~NestByRefBit + LvalueBitFlag = is_lvalue<ExpressionType>::value ? LvalueBit : 0, + Flags = (Flags0 & ~(NestByRefBit | LvalueBit)) | LvalueBitFlag }; }; } @@ -129,7 +130,8 @@ struct traits<MatrixWrapper<ExpressionType> > // Let's remove NestByRefBit enum { Flags0 = traits<typename remove_all<typename ExpressionType::Nested>::type >::Flags, - Flags = Flags0 & ~NestByRefBit + LvalueBitFlag = is_lvalue<ExpressionType>::value ? LvalueBit : 0, + Flags = (Flags0 & ~(NestByRefBit | LvalueBit)) | LvalueBitFlag }; }; } |