private void RunTestCore(Program program) { var listener = new FakeDecompilerEventListener(); var aen = new ExpressionNormalizer(program.Architecture.PointerType); aen.Transform(program); var eq = new EquivalenceClassBuilder(factory, store, listener); eq.Build(program); var coll = new TypeCollector(factory, store, program, listener); coll.CollectTypes(); store.BuildEquivalenceClassDataTypes(factory); var tvr = new TypeVariableReplacer(store); tvr.ReplaceTypeVariables(); var trans = new TypeTransformer(factory, store, program); trans.Transform(); }
protected override void RunTest(Program program, string outputFile) { FileUnitTester fut = null; try { fut = new FileUnitTester(outputFile); var factory = program.TypeFactory; var store = program.TypeStore; var listener = new FakeDecompilerEventListener(); var aen = new ExpressionNormalizer(program.Platform.PointerType); var eqb = new EquivalenceClassBuilder(factory, store, listener); var tyco = new TypeCollector(factory, store, program, listener); aen.Transform(program); eqb.Build(program); tyco.CollectTypes(); if (buildEquivalenceClasses) { store.BuildEquivalenceClassDataTypes(factory); new TypeVariableReplacer(store).ReplaceTypeVariables(); } } catch (Exception ex) { fut.TextWriter.WriteLine(ex.Message); fut.TextWriter.WriteLine(ex.StackTrace); throw; } finally { DumpProgAndStore(program, fut); fut.Dispose(); } }
private void RunTest(Program prog, string outputFile) { EquivalenceClassBuilder eqb = new EquivalenceClassBuilder(factory, store); DataTypeBuilder dtb = new DataTypeBuilder(factory, store, prog.Platform); eqb.Build(prog); TraitCollector trco = new TraitCollector(factory, store, dtb, prog); trco.CollectProgramTraits(prog); dtb.BuildEquivalenceClassDataTypes(); var tv = new TypeVariableReplacer(store); tv.ReplaceTypeVariables(); store.CopyClassDataTypesToTypeVariables(); var ppr = new PtrPrimitiveReplacer(factory, store, prog); ppr.ReplaceAll(); var cpa = new ConstantPointerAnalysis(factory, store, prog); cpa.FollowConstantPointers(); Verify(null, outputFile); }
public void Setup() { factory = new TypeFactory(); store = new TypeStore(); eqb = new EquivalenceClassBuilder(factory, store); }