Skip to content

OpCode not supported: Ckfinite #3344

@tiagocrizanto

Description

@tiagocrizanto

Input code

I'm trying to decompile a very old assembly that I guess is in the dotnet framework 4 or lower. A lot of methods was not decompiled and ILSpy added this comment on all methods: /OpCode not supported: Ckfinite/

Here is the IL code

.method public final newslot virtual 
		instance float32 ToSingle (
			class [mscorlib]System.IFormatProvider AProvider
		) cil managed 
	{
		.override method instance float32 [mscorlib]System.IConvertible::ToSingle(class [mscorlib]System.IFormatProvider)
		// Method begins at RVA 0x2cec
		// Header size: 12
		// Code size: 11 (0xb)
		.maxstack 1
		.locals init (
			[0] float32 Result
		)

		// float num = (float)ToOADate();
		IL_0000: ldarg.0
		IL_0001: call instance float64 Borland.Delphi.TDateTime::ToOADate()
		IL_0006: conv.r4
		// /*OpCode not supported: Ckfinite*/;
		IL_0007: ckfinite
		// return num;
		IL_0008: stloc.0
		IL_0009: ldloc.0
		IL_000a: ret
	} // end of method TDateTime::ToSingle

Erroneous output

// This is the c# code generated:

public float ToSingle(IFormatProvider AProvider)
{
  float num = (float)ToOADate();
  /*OpCode not supported: Ckfinite*/;
  return num;
}

I thought that could be some missing old dll, so I created a windows XP VM, installed dotnet framework 3.5 and 4.0 and downloaded the first version of ILSpy and it displayed the same error (OpCode not supported: Ckfinite)

Unfortunately I'm not authorized to upload the complete assembly due to company copyrights. I'm not sure if I provided all necessary information but I'm trying to get any advice to get all assembly decompiled.

Metadata

Metadata

Assignees

No one assigned

    Labels

    BugDecompilerThe decompiler engine itself

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions