am 02effee6
: Correctly compute the type of an assignment expression.
Merge commit '02effee6a9224b531cb3fe6eac8278b46b9fbe86' into eclair-mr2 * commit '02effee6a9224b531cb3fe6eac8278b46b9fbe86': Correctly compute the type of an assignment expression.
This commit is contained in:
commit
51da51a2d1
3 changed files with 16 additions and 0 deletions
|
@ -1666,6 +1666,7 @@ class Compiler : public ErrorSink {
|
|||
pDestType->tag);
|
||||
break;
|
||||
}
|
||||
setR0Type(pDestType);
|
||||
}
|
||||
|
||||
virtual void loadR0FromR0() {
|
||||
|
@ -2836,6 +2837,7 @@ class Compiler : public ErrorSink {
|
|||
pTargetType->tag);
|
||||
break;
|
||||
}
|
||||
setR0Type(pTargetType);
|
||||
}
|
||||
|
||||
virtual void loadR0FromR0() {
|
||||
|
|
9
libacc/tests/data/assignment.c
Normal file
9
libacc/tests/data/assignment.c
Normal file
|
@ -0,0 +1,9 @@
|
|||
int main() {
|
||||
int a = 0;
|
||||
int b = 1;
|
||||
a = b = 2; // Test that "b = 2" generates an rvalue.
|
||||
if (a = 7) { // Test that a = 7 generates an rvalue.
|
||||
b = 3;
|
||||
}
|
||||
return a;
|
||||
}
|
|
@ -424,6 +424,11 @@ result: 0
|
|||
def testShort(self):
|
||||
self.compileCheck(["-R", "data/short.c"], """Executing compiled code:
|
||||
result: -2
|
||||
""","""""")
|
||||
|
||||
def testAssignment(self):
|
||||
self.compileCheck(["-R", "data/assignment.c"], """Executing compiled code:
|
||||
result: 7
|
||||
""","""""")
|
||||
|
||||
def testArray(self):
|
||||
|
|
Loading…
Reference in a new issue