From f96a24afec31a09bd455d3c402dee41e509ddcf9 Mon Sep 17 00:00:00 2001 From: Mike Barnett Date: Sat, 28 May 2011 17:36:57 -0700 Subject: Fix translation for field dereference when the type of the field is a struct. --- BCT/BytecodeTranslator/ExpressionTraverser.cs | 4 ++-- 1 file 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); -- cgit v1.2.3