compiler/libec: Fixed missing brackets casting right side of bit class member assignment
authorJerome St-Louis <jerome@ecere.com>
Mon, 2 Jun 2014 02:17:31 +0000 (22:17 -0400)
committerJerome St-Louis <jerome@ecere.com>
Mon, 2 Jun 2014 02:17:31 +0000 (22:17 -0400)
compiler/bootstrap/libec/bootstrap/pass2.c
compiler/libec/src/pass2.ec

index 11efb34..fa98c00 100644 (file)
@@ -1915,7 +1915,7 @@ exp->__anon1.op.exp2 = MkExpOp(MkExpBrackets(MkListOne(MkExpCast(type, exp->__an
 }
 else
 {
-exp->__anon1.op.exp2 = MkExpOp(MkExpBrackets(MkListOne(MkExpOp(CopyExpression(memberExp->__anon1.member.exp), '&', MkExpOp((((void *)0)), '~', MkExpConstant(mask))))), '|', MkExpBrackets(MkListOne(MkExpOp(MkExpBrackets(MkListOne(MkExpCast(type, exp->__anon1.op.exp2))), LEFT_OP, MkExpConstant(shift)))));
+exp->__anon1.op.exp2 = MkExpOp(MkExpBrackets(MkListOne(MkExpOp(CopyExpression(memberExp->__anon1.member.exp), '&', MkExpOp((((void *)0)), '~', MkExpConstant(mask))))), '|', MkExpBrackets(MkListOne(MkExpOp(MkExpBrackets(MkListOne(MkExpCast(type, MkExpBrackets(MkListOne(exp->__anon1.op.exp2))))), LEFT_OP, MkExpConstant(shift)))));
 }
 memberExp->__anon1.member.exp = (((void *)0));
 FreeExpression(memberExp);
index 5d87458..d13ab15 100644 (file)
@@ -659,7 +659,7 @@ static void ProcessExpression(Expression exp)
                                MkExpBrackets(MkListOne(MkExpOp(CopyExpression(memberExp.member.exp), '&',
                                  MkExpOp(null, '~', MkExpConstant(mask))))), '|',
                                MkExpBrackets(MkListOne(MkExpOp(MkExpBrackets(
-                                 MkListOne(MkExpCast(type, exp.op.exp2))), LEFT_OP, MkExpConstant(shift)))));
+                                 MkListOne(MkExpCast(type, MkExpBrackets(MkListOne(exp.op.exp2))))), LEFT_OP, MkExpConstant(shift)))));
                          }
 
                          memberExp.member.exp = null;