summaryrefslogtreecommitdiff
path: root/BCT
diff options
context:
space:
mode:
authorGravatar Mike Barnett <mbarnett@microsoft.com>2011-05-28 17:36:57 -0700
committerGravatar Mike Barnett <mbarnett@microsoft.com>2011-05-28 17:36:57 -0700
commitf96a24afec31a09bd455d3c402dee41e509ddcf9 (patch)
treec85a3b39d5515fb8c02ba8b3624ae1d03da64c7e /BCT
parentc7c9cd675bf6024a8f725c84fe22e17d3deb7a98 (diff)
Fix translation for field dereference when the type of the field is a struct.
Diffstat (limited to 'BCT')
-rw-r--r--BCT/BytecodeTranslator/ExpressionTraverser.cs4
1 files changed, 2 insertions, 2 deletions
diff --git a/BCT/BytecodeTranslator/ExpressionTraverser.cs b/BCT/BytecodeTranslator/ExpressionTraverser.cs
index b4a258ad..dee7776b 100644
--- a/BCT/BytecodeTranslator/ExpressionTraverser.cs
+++ b/BCT/BytecodeTranslator/ExpressionTraverser.cs
@@ -265,7 +265,7 @@ namespace BytecodeTranslator
var addressOf = expression as IAddressOf;
if (addressOf != null) {
var ae = addressOf.Expression;
- return ae.Instance == null;
+ return ae.Instance == null || IsAtomicInstance(ae.Instance);
}
var be = expression as IBoundExpression;
if (be == null) return false;
@@ -658,7 +658,7 @@ namespace BytecodeTranslator
// static fields are not kept in the heap
StmtTraverser.StmtBuilder.Add(Bpl.Cmd.SimpleAssign(tok, f, e));
} else {
- if (field.ContainingType.ResolvedType.IsStruct) {
+ if (false && field.ContainingType.ResolvedType.IsStruct) {
//var s_prime = this.sink.CreateFreshLocal(this.sink.Heap.StructType);
//var s_prime_expr = Bpl.Expr.Ident(s_prime);
//var boogieType = sink.CciTypeToBoogie(field.Type);