Author: jbevain
Date: 2007-12-09 11:06:43 -0500 (Sun, 09 Dec 2007)
New Revision: 91005
Added:
trunk/cecil/flowanalysis/Cecil.FlowAnalysis/CodeStructure/TryCastExpression.cs
trunk/cecil/flowanalysis/testcases/FlowAnalysis/StringTryCast-afg.txt
trunk/cecil/flowanalysis/testcases/FlowAnalysis/StringTryCast-cfg.txt
trunk/cecil/flowanalysis/testcases/FlowAnalysis/StringTryCast.il
Modified:
trunk/cecil/flowanalysis/Cecil.FlowAnalysis.Tests/ActionFlowTestFixture.cs
trunk/cecil/flowanalysis/Cecil.FlowAnalysis.Tests/ControlFlowTestFixture.cs
trunk/cecil/flowanalysis/Cecil.FlowAnalysis/ActionFlow/ActionFlowGraphBuilder.cs
trunk/cecil/flowanalysis/Cecil.FlowAnalysis/ActionFlow/ExpressionDecompiler.cs
trunk/cecil/flowanalysis/Cecil.FlowAnalysis/Cecil.FlowAnalysis.csproj
trunk/cecil/flowanalysis/Cecil.FlowAnalysis/CodeStructure/AbstractCodeStructureVisitor.cs
trunk/cecil/flowanalysis/Cecil.FlowAnalysis/CodeStructure/CastExpression.cs
trunk/cecil/flowanalysis/Cecil.FlowAnalysis/CodeStructure/CodeElementType.cs
trunk/cecil/flowanalysis/Cecil.FlowAnalysis/CodeStructure/ExpressionPrinter.cs
trunk/cecil/flowanalysis/Cecil.FlowAnalysis/CodeStructure/ICodeStructureVisitor.cs
trunk/cecil/flowanalysis/Cecil.FlowAnalysis/CodeStructure/UnaryOperator.cs
trunk/cecil/flowanalysis/ChangeLog
trunk/cecil/flowanalysis/codegen/CodeStructureModel.boo
trunk/cecil/flowanalysis/testcases/FlowAnalysis/IntPropertyEquals1-afg.txt
trunk/cecil/flowanalysis/testcases/FlowAnalysis/IntPropertyEquals1.il
trunk/cecil/flowanalysis/testcases/FlowAnalysis/IntPropertyEquals2-afg.txt
trunk/cecil/flowanalysis/testcases/FlowAnalysis/IntPropertyEquals2.il
trunk/cecil/flowanalysis/testcases/FlowAnalysis/StringCast-afg.txt
trunk/cecil/flowanalysis/testcases/FlowAnalysis/StringCast-cfg.txt
trunk/cecil/flowanalysis/testcases/FlowAnalysis/StringCast.il
Log:
support for isinst
Modified:
trunk/cecil/flowanalysis/Cecil.FlowAnalysis/ActionFlow/ActionFlowGraphBuilder.cs
===================================================================
---
trunk/cecil/flowanalysis/Cecil.FlowAnalysis/ActionFlow/ActionFlowGraphBuilder.cs
2007-12-09 14:56:05 UTC (rev 91004)
+++
trunk/cecil/flowanalysis/Cecil.FlowAnalysis/ActionFlow/ActionFlowGraphBuilder.cs
2007-12-09 16:06:43 UTC (rev 91005)
@@ -426,16 +426,16 @@
{
Add (new InvokeActionBlock (instruction,
(MethodInvocationExpression) Pop ()));
}
-
+
public override void OnCallvirt (Instruction instruction)
{
OnCall (instruction);
}
-
+
public override void OnPop (Instruction instruction)
{
Visit (instruction.Previous);
- }
+ }
public override void OnBr (Instruction instruction)
{
Modified:
trunk/cecil/flowanalysis/Cecil.FlowAnalysis/ActionFlow/ExpressionDecompiler.cs
===================================================================
---
trunk/cecil/flowanalysis/Cecil.FlowAnalysis/ActionFlow/ExpressionDecompiler.cs
2007-12-09 14:56:05 UTC (rev 91004)
+++
trunk/cecil/flowanalysis/Cecil.FlowAnalysis/ActionFlow/ExpressionDecompiler.cs
2007-12-09 16:06:43 UTC (rev 91005)
@@ -71,18 +71,26 @@
{
OnCall (instruction);
}
-
+
public override void OnCastclass (Instruction instruction)
{
Push (
- new CastExpression(
- Pop(),
- (TypeReference)instruction.Operand));
+ new CastExpression (
+ Pop (),
+ (TypeReference) instruction.Operand));
}
+ public override void OnIsinst (Instruction instruction)
+ {
+ Push (
+ new TryCastExpression (
+ Pop (),
+ (TypeReference) instruction.Operand));
+ }
+
public override void OnCall (Instruction instruction)
{
- MethodReference method =
(MethodReference)instruction.Operand;
+ MethodReference method = (MethodReference)
instruction.Operand;
ExpressionCollection args = PopRange
(method.Parameters.Count);
Expression target = method.HasThis ? Pop () : null;
@@ -91,7 +99,7 @@
new MethodInvocationExpression (
new MethodReferenceExpression (target,
method), args));
}
-
+
public override void OnPop (Instruction instruction)
{
}
Modified: trunk/cecil/flowanalysis/Cecil.FlowAnalysis/Cecil.FlowAnalysis.csproj
===================================================================
--- trunk/cecil/flowanalysis/Cecil.FlowAnalysis/Cecil.FlowAnalysis.csproj
2007-12-09 14:56:05 UTC (rev 91004)
+++ trunk/cecil/flowanalysis/Cecil.FlowAnalysis/Cecil.FlowAnalysis.csproj
2007-12-09 16:06:43 UTC (rev 91005)
@@ -101,6 +101,7 @@
<SubType>Code</SubType>
</Compile>
<Compile Include="CodeStructure\BlockStatement.cs" />
+ <Compile Include="CodeStructure\CastExpression.cs" />
<Compile Include="CodeStructure\CodeElementType.cs">
<SubType>Code</SubType>
</Compile>
@@ -124,6 +125,7 @@
<Compile Include="CodeStructure\Statement.cs" />
<Compile Include="CodeStructure\StatementCollection.cs" />
<Compile Include="CodeStructure\ThisReferenceExpression.cs" />
+ <Compile Include="CodeStructure\TryCastExpression.cs" />
<Compile Include="CodeStructure\UnaryExpression.cs" />
<Compile Include="CodeStructure\UnaryOperator.cs">
<SubType>Code</SubType>
@@ -142,7 +144,7 @@
<Compile Include="Utilities\InstructionDispatcher.cs" />
</ItemGroup>
<ItemGroup>
- <ProjectReference Include="..\..\..\Mono.Cecil\Mono.Cecil.csproj">
+ <ProjectReference
Include="..\..\..\mcs\class\Mono.Cecil\Mono.Cecil.csproj">
<Project>{D8F63DFF-5230-43E4-9AB2-DA6E721A1FAE}</Project>
<Name>Mono.Cecil</Name>
</ProjectReference>
Modified:
trunk/cecil/flowanalysis/Cecil.FlowAnalysis/CodeStructure/AbstractCodeStructureVisitor.cs
===================================================================
---
trunk/cecil/flowanalysis/Cecil.FlowAnalysis/CodeStructure/AbstractCodeStructureVisitor.cs
2007-12-09 14:56:05 UTC (rev 91004)
+++
trunk/cecil/flowanalysis/Cecil.FlowAnalysis/CodeStructure/AbstractCodeStructureVisitor.cs
2007-12-09 16:06:43 UTC (rev 91005)
@@ -113,5 +113,10 @@
{
Visit (node.Target);
}
+
+ public virtual void Visit (TryCastExpression node)
+ {
+ Visit (node.Target);
+ }
}
}
Property changes on:
trunk/cecil/flowanalysis/Cecil.FlowAnalysis/CodeStructure/CastExpression.cs
___________________________________________________________________
Name: svn:executable
- *
Name: svn:eol-style
+ native
Modified:
trunk/cecil/flowanalysis/Cecil.FlowAnalysis/CodeStructure/CodeElementType.cs
===================================================================
---
trunk/cecil/flowanalysis/Cecil.FlowAnalysis/CodeStructure/CodeElementType.cs
2007-12-09 14:56:05 UTC (rev 91004)
+++
trunk/cecil/flowanalysis/Cecil.FlowAnalysis/CodeStructure/CodeElementType.cs
2007-12-09 16:06:43 UTC (rev 91005)
@@ -41,7 +41,8 @@
PropertyReferenceExpression,
BlockStatement,
ReturnStatement,
- CastExpression
+ CastExpression,
+ TryCastExpression
}
}
Modified:
trunk/cecil/flowanalysis/Cecil.FlowAnalysis/CodeStructure/ExpressionPrinter.cs
===================================================================
---
trunk/cecil/flowanalysis/Cecil.FlowAnalysis/CodeStructure/ExpressionPrinter.cs
2007-12-09 14:56:05 UTC (rev 91004)
+++
trunk/cecil/flowanalysis/Cecil.FlowAnalysis/CodeStructure/ExpressionPrinter.cs
2007-12-09 16:06:43 UTC (rev 91005)
@@ -73,7 +73,7 @@
Visit (node.Right);
Write (")");
}
-
+
public override void Visit (CastExpression node)
{
Write ("((");
@@ -83,6 +83,15 @@
Write (")");
}
+ public override void Visit (TryCastExpression node)
+ {
+ Write ("(");
+ Visit (node.Target);
+ Write (" as ");
+ Write (node.ToType.FullName);
+ Write (")");
+ }
+
public override void Visit (ArgumentReferenceExpression node)
{
Write (node.Parameter.Name);
Modified:
trunk/cecil/flowanalysis/Cecil.FlowAnalysis/CodeStructure/ICodeStructureVisitor.cs
===================================================================
---
trunk/cecil/flowanalysis/Cecil.FlowAnalysis/CodeStructure/ICodeStructureVisitor.cs
2007-12-09 14:56:05 UTC (rev 91004)
+++
trunk/cecil/flowanalysis/Cecil.FlowAnalysis/CodeStructure/ICodeStructureVisitor.cs
2007-12-09 16:06:43 UTC (rev 91005)
@@ -42,5 +42,6 @@
void Visit (BlockStatement node);
void Visit (ReturnStatement node);
void Visit (CastExpression node);
+ void Visit (TryCastExpression node);
}
}
Added:
trunk/cecil/flowanalysis/Cecil.FlowAnalysis/CodeStructure/TryCastExpression.cs
===================================================================
---
trunk/cecil/flowanalysis/Cecil.FlowAnalysis/CodeStructure/TryCastExpression.cs
2007-12-09 14:56:05 UTC (rev 91004)
+++
trunk/cecil/flowanalysis/Cecil.FlowAnalysis/CodeStructure/TryCastExpression.cs
2007-12-09 16:06:43 UTC (rev 91005)
@@ -0,0 +1,63 @@
+#region license
+//
+// (C) db4objects Inc. http://www.db4o.com
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+#endregion
+
+// Warning: generated do not edit
+
+using Mono.Cecil;
+using Mono.Cecil.Cil;
+
+namespace Cecil.FlowAnalysis.CodeStructure {
+
+ public class TryCastExpression : Expression {
+ Expression _target;
+ TypeReference _toType;
+
+ public TryCastExpression (Expression target, TypeReference
toType)
+ {
+ _target = target;
+ _toType = toType;
+ }
+
+ public Expression Target
+ {
+ get { return _target; }
+ }
+
+ public TypeReference ToType
+ {
+ get { return _toType; }
+ }
+
+ public override CodeElementType CodeElementType
+ {
+ get { return CodeElementType.TryCastExpression; }
+ }
+
+ public override void Accept (ICodeStructureVisitor visitor)
+ {
+ visitor.Visit (this);
+ }
+ }
+}
Property changes on:
trunk/cecil/flowanalysis/Cecil.FlowAnalysis/CodeStructure/TryCastExpression.cs
___________________________________________________________________
Name: svn:eol-style
+ native
Modified:
trunk/cecil/flowanalysis/Cecil.FlowAnalysis/CodeStructure/UnaryOperator.cs
===================================================================
--- trunk/cecil/flowanalysis/Cecil.FlowAnalysis/CodeStructure/UnaryOperator.cs
2007-12-09 14:56:05 UTC (rev 91004)
+++ trunk/cecil/flowanalysis/Cecil.FlowAnalysis/CodeStructure/UnaryOperator.cs
2007-12-09 16:06:43 UTC (rev 91005)
@@ -23,9 +23,8 @@
//
#endregion
-using System;
-
namespace Cecil.FlowAnalysis.CodeStructure {
+
public enum UnaryOperator {
None,
Not
Modified:
trunk/cecil/flowanalysis/Cecil.FlowAnalysis.Tests/ActionFlowTestFixture.cs
===================================================================
--- trunk/cecil/flowanalysis/Cecil.FlowAnalysis.Tests/ActionFlowTestFixture.cs
2007-12-09 14:56:05 UTC (rev 91004)
+++ trunk/cecil/flowanalysis/Cecil.FlowAnalysis.Tests/ActionFlowTestFixture.cs
2007-12-09 16:06:43 UTC (rev 91005)
@@ -34,14 +34,20 @@
[TestFixture]
public class ActionFlowTestFixture : AbstractFlowAnalysisTestFixture {
-
+
[Test]
public void StringCast ()
{
- RunTestCase("StringCast");
+ RunTestCase ("StringCast");
}
[Test]
+ public void StringTryCast ()
+ {
+ RunTestCase ("StringTryCast");
+ }
+
+ [Test]
public void IntPropertyEquals1 ()
{
RunTestCase ("IntPropertyEquals1");
Modified:
trunk/cecil/flowanalysis/Cecil.FlowAnalysis.Tests/ControlFlowTestFixture.cs
===================================================================
--- trunk/cecil/flowanalysis/Cecil.FlowAnalysis.Tests/ControlFlowTestFixture.cs
2007-12-09 14:56:05 UTC (rev 91004)
+++ trunk/cecil/flowanalysis/Cecil.FlowAnalysis.Tests/ControlFlowTestFixture.cs
2007-12-09 16:06:43 UTC (rev 91005)
@@ -28,14 +28,20 @@
namespace Cecil.FlowAnalysis.Tests {
[TestFixture]
public class ControlFlowTestFixture : AbstractControlFlowTestFixture {
-
+
[Test]
public void StringCast ()
{
- RunTestCase("StringCast");
+ RunTestCase ("StringCast");
}
-
+
[Test]
+ public void StringTryCast ()
+ {
+ RunTestCase ("StringTryCast");
+ }
+
+ [Test]
public void FloatGreaterThan ()
{
RunTestCase ("FloatGreaterThan");
Modified: trunk/cecil/flowanalysis/ChangeLog
===================================================================
--- trunk/cecil/flowanalysis/ChangeLog 2007-12-09 14:56:05 UTC (rev 91004)
+++ trunk/cecil/flowanalysis/ChangeLog 2007-12-09 16:06:43 UTC (rev 91005)
@@ -1,3 +1,7 @@
+2007-09-30 Jb Evain <[EMAIL PROTECTED]>
+
+ * Support for isinst.
+
2007-11-26 Rodrigo B. de Oliveira <[EMAIL PROTECTED]>
* codegen/gen-ControlFlowGraphRegression.boo
codegen/CodeStructureModel.boo
@@ -13,10 +17,10 @@
Cecil.FlowAnalysis.Tests/ControlFlowTestFixture.cs
testcases/FlowAnalysis/StringCast.il
testcases/FlowAnalysis/StringCast-afg.txt
- testcases/FlowAnalysis/StringCast-cfg.txt:
+ testcases/FlowAnalysis/StringCast-cfg.txt:
Support for converting castclass to CastExpression and callvirt
to
MethodInvocationExpression.
-
+
2007-09-30 Jb Evain <[EMAIL PROTECTED]>
* README: test commit script
Modified: trunk/cecil/flowanalysis/codegen/CodeStructureModel.boo
===================================================================
--- trunk/cecil/flowanalysis/codegen/CodeStructureModel.boo 2007-12-09
14:56:05 UTC (rev 91004)
+++ trunk/cecil/flowanalysis/codegen/CodeStructureModel.boo 2007-12-09
16:06:43 UTC (rev 91005)
@@ -58,7 +58,11 @@
class ReturnStatement(Statement):
Expression as Expression
-
+
class CastExpression(Expression):
Target as Expression
ToType as TypeReference
+
+class TryCastExpression(Expression):
+ Target as Expression
+ ToType as TypeReference
Property changes on:
trunk/cecil/flowanalysis/testcases/FlowAnalysis/IntPropertyEquals1-afg.txt
___________________________________________________________________
Name: svn:executable
- *
Name: svn:eol-style
+ native
Property changes on:
trunk/cecil/flowanalysis/testcases/FlowAnalysis/IntPropertyEquals1.il
___________________________________________________________________
Name: svn:executable
- *
Name: svn:eol-style
+ native
Property changes on:
trunk/cecil/flowanalysis/testcases/FlowAnalysis/IntPropertyEquals2-afg.txt
___________________________________________________________________
Name: svn:executable
- *
Name: svn:eol-style
+ native
Property changes on:
trunk/cecil/flowanalysis/testcases/FlowAnalysis/IntPropertyEquals2.il
___________________________________________________________________
Name: svn:executable
- *
Name: svn:eol-style
+ native
Modified: trunk/cecil/flowanalysis/testcases/FlowAnalysis/StringCast-afg.txt
===================================================================
--- trunk/cecil/flowanalysis/testcases/FlowAnalysis/StringCast-afg.txt
2007-12-09 14:56:05 UTC (rev 91004)
+++ trunk/cecil/flowanalysis/testcases/FlowAnalysis/StringCast-afg.txt
2007-12-09 16:06:43 UTC (rev 91005)
@@ -1,3 +1,3 @@
-((System.Collections.IEnumerable)s).GetEnumerator()
-goto block3
-block3: return
+((System.Collections.IEnumerable)s).GetEnumerator()
+goto block3
+block3: return
Property changes on:
trunk/cecil/flowanalysis/testcases/FlowAnalysis/StringCast-afg.txt
___________________________________________________________________
Name: svn:executable
- *
Name: svn:eol-style
+ native
Modified: trunk/cecil/flowanalysis/testcases/FlowAnalysis/StringCast-cfg.txt
===================================================================
--- trunk/cecil/flowanalysis/testcases/FlowAnalysis/StringCast-cfg.txt
2007-12-09 14:56:05 UTC (rev 91004)
+++ trunk/cecil/flowanalysis/testcases/FlowAnalysis/StringCast-cfg.txt
2007-12-09 16:06:43 UTC (rev 91005)
@@ -1,13 +1,13 @@
-block 1:
- body:
- IL_0000: nop
- IL_0001: ldarg.0
- IL_0002: castclass System.Collections.IEnumerable
- IL_0007: callvirt System.Collections.IEnumerator
System.Collections.IEnumerable::GetEnumerator()
- IL_000c: pop
- IL_000d: br.s IL_000f
- successors:
- block 2
-block 2:
- body:
- IL_000f: ret
+block 1:
+ body:
+ IL_0000: nop
+ IL_0001: ldarg.0
+ IL_0002: castclass System.Collections.IEnumerable
+ IL_0007: callvirt System.Collections.IEnumerator
System.Collections.IEnumerable::GetEnumerator()
+ IL_000c: pop
+ IL_000d: br.s IL_000f
+ successors:
+ block 2
+block 2:
+ body:
+ IL_000f: ret
Property changes on:
trunk/cecil/flowanalysis/testcases/FlowAnalysis/StringCast-cfg.txt
___________________________________________________________________
Name: svn:executable
- *
Name: svn:eol-style
+ native
Modified: trunk/cecil/flowanalysis/testcases/FlowAnalysis/StringCast.il
===================================================================
--- trunk/cecil/flowanalysis/testcases/FlowAnalysis/StringCast.il
2007-12-09 14:56:05 UTC (rev 91004)
+++ trunk/cecil/flowanalysis/testcases/FlowAnalysis/StringCast.il
2007-12-09 16:06:43 UTC (rev 91005)
@@ -1,17 +1,17 @@
-.assembly extern mscorlib {}
-.assembly TestCase {}
-
-.class public auto ansi beforefieldinit TestCase
- extends [mscorlib]System.Object
-{
- .method public hidebysig static void Main(string[] s) cil managed
- {
- IL_0000: nop
- IL_0001: ldarg.0
- IL_0002: castclass [mscorlib]System.Collections.IEnumerable
- IL_0007: callvirt instance class
[mscorlib]System.Collections.IEnumerator
[mscorlib]System.Collections.IEnumerable::GetEnumerator()
- IL_000c: pop
- IL_000d: br.s IL_000f
- IL_000f: ret
- }
-}
+.assembly extern mscorlib {}
+.assembly TestCase {}
+
+.class public auto ansi beforefieldinit TestCase
+ extends [mscorlib]System.Object
+{
+ .method public hidebysig static void Main(string[] s) cil managed
+ {
+ IL_0000: nop
+ IL_0001: ldarg.0
+ IL_0002: castclass [mscorlib]System.Collections.IEnumerable
+ IL_0007: callvirt instance class
[mscorlib]System.Collections.IEnumerator
[mscorlib]System.Collections.IEnumerable::GetEnumerator()
+ IL_000c: pop
+ IL_000d: br.s IL_000f
+ IL_000f: ret
+ }
+}
Property changes on:
trunk/cecil/flowanalysis/testcases/FlowAnalysis/StringCast.il
___________________________________________________________________
Name: svn:executable
- *
Name: svn:eol-style
+ native
Added: trunk/cecil/flowanalysis/testcases/FlowAnalysis/StringTryCast-afg.txt
===================================================================
--- trunk/cecil/flowanalysis/testcases/FlowAnalysis/StringTryCast-afg.txt
2007-12-09 14:56:05 UTC (rev 91004)
+++ trunk/cecil/flowanalysis/testcases/FlowAnalysis/StringTryCast-afg.txt
2007-12-09 16:06:43 UTC (rev 91005)
@@ -0,0 +1,3 @@
+(s as System.Collections.IEnumerable).GetEnumerator()
+goto block3
+block3: return
Property changes on:
trunk/cecil/flowanalysis/testcases/FlowAnalysis/StringTryCast-afg.txt
___________________________________________________________________
Name: svn:eol-style
+ native
Added: trunk/cecil/flowanalysis/testcases/FlowAnalysis/StringTryCast-cfg.txt
===================================================================
--- trunk/cecil/flowanalysis/testcases/FlowAnalysis/StringTryCast-cfg.txt
2007-12-09 14:56:05 UTC (rev 91004)
+++ trunk/cecil/flowanalysis/testcases/FlowAnalysis/StringTryCast-cfg.txt
2007-12-09 16:06:43 UTC (rev 91005)
@@ -0,0 +1,13 @@
+block 1:
+ body:
+ IL_0000: nop
+ IL_0001: ldarg.0
+ IL_0002: isinst System.Collections.IEnumerable
+ IL_0007: callvirt System.Collections.IEnumerator
System.Collections.IEnumerable::GetEnumerator()
+ IL_000c: pop
+ IL_000d: br.s IL_000f
+ successors:
+ block 2
+block 2:
+ body:
+ IL_000f: ret
Property changes on:
trunk/cecil/flowanalysis/testcases/FlowAnalysis/StringTryCast-cfg.txt
___________________________________________________________________
Name: svn:eol-style
+ native
Added: trunk/cecil/flowanalysis/testcases/FlowAnalysis/StringTryCast.il
===================================================================
--- trunk/cecil/flowanalysis/testcases/FlowAnalysis/StringTryCast.il
2007-12-09 14:56:05 UTC (rev 91004)
+++ trunk/cecil/flowanalysis/testcases/FlowAnalysis/StringTryCast.il
2007-12-09 16:06:43 UTC (rev 91005)
@@ -0,0 +1,17 @@
+.assembly extern mscorlib {}
+.assembly TestCase {}
+
+.class public auto ansi beforefieldinit TestCase
+ extends [mscorlib]System.Object
+{
+ .method public hidebysig static void Main(string[] s) cil managed
+ {
+ IL_0000: nop
+ IL_0001: ldarg.0
+ IL_0002: isinst [mscorlib]System.Collections.IEnumerable
+ IL_0007: callvirt instance class
[mscorlib]System.Collections.IEnumerator
[mscorlib]System.Collections.IEnumerable::GetEnumerator()
+ IL_000c: pop
+ IL_000d: br.s IL_000f
+ IL_000f: ret
+ }
+}
Property changes on:
trunk/cecil/flowanalysis/testcases/FlowAnalysis/StringTryCast.il
___________________________________________________________________
Name: svn:eol-style
+ native
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches