<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Calli is not Verifiable</title><link>http://blogs.msdn.com/shawnfa/archive/2004/06/14/155478.aspx</link><description>This entry probably doesn't pertain to very many people, but I got bit by this the other day, and thought I'd at least document it to prevent some future google user from having the same problem. In the ECMA CLI specification, the calli instruction is</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>re: Calli is not Verifiable</title><link>http://blogs.msdn.com/shawnfa/archive/2004/06/14/155478.aspx#155570</link><pubDate>Tue, 15 Jun 2004 00:05:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:155570</guid><dc:creator>S N</dc:creator><description>Hi,&lt;br&gt;&lt;br&gt;You forgot to mention an additional condition. If the function is not a static function, then the function should be a member of this object's type.&lt;br&gt;&lt;br&gt;Thanks&lt;br&gt;SN</description></item><item><title>re: Calli is not Verifiable</title><link>http://blogs.msdn.com/shawnfa/archive/2004/06/14/155478.aspx#156357</link><pubDate>Tue, 15 Jun 2004 18:15:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:156357</guid><dc:creator>Shawn</dc:creator><description>Are you talking about a verifiability rule or just a correct IL rule?  You can call indirectly to an instance function of another class.  For instance, even though this snippet is not verifiable due to calli, the following code works as expected:&lt;br&gt;&lt;br&gt;  ldstr	&amp;quot;Test String&amp;quot;&lt;br&gt;  ldftn	instance string [mscorlib]System.String::ToLower()&lt;br&gt;  calli	instance string ()&lt;br&gt;  call	void [mscorlib]System.Console::WriteLine(string)&lt;br&gt;&lt;br&gt;This will print &amp;quot;test string&amp;quot; to the console.&lt;br&gt;&lt;br&gt;Taking out the calli, will produce verifiable code as well, so it's also possible to ldftn an instance function of another class:&lt;br&gt;&lt;br&gt;  ldstr	&amp;quot;Test String&amp;quot;&lt;br&gt;  ldftn	instance string [mscorlib]System.String::ToLower()&lt;br&gt;  pop&lt;br&gt;  pop&lt;br&gt;&lt;br&gt;-Shawn</description></item><item><title>More Clr  stuff</title><link>http://blogs.msdn.com/shawnfa/archive/2004/06/14/155478.aspx#519137</link><pubDate>Mon, 30 Jan 2006 14:55:24 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:519137</guid><dc:creator>Dinis Cruz @ Owasp .Net Project</dc:creator><description>&lt;br&gt;&lt;br&gt;Very,&lt;br&gt;	Very interesting interview by Anders Hejlsberg (the lead C#&lt;br&gt;	architect) with Bruce Eckel...</description></item></channel></rss>