Hi Lilissun,<div><br></div><div>VMKit does not implement all sun.misc.Unsafe methods. Looking at your example, it looks like GNU Classpath (the library that provides java.* classes) rely on sun.misc.Unsafe.unpark, and that the method must be implemented by the VM. Implementing them is not trivial and requires a good understanding of the threading library in VMKit, but I will be happy to help if you want to take a look at it.</div>
<div><br></div><div>Cheers,</div><div>Nicolas<br><br><div class="gmail_quote">On Wed, Jan 12, 2011 at 1:04 PM, Lilissun Li <span dir="ltr"><<a href="mailto:lilissun@gmail.com">lilissun@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">Hi! <div><br></div><div>I build VMKit and run some programs successfully. But when using java.util.concurrent.locks.ReentrantLock and java.util.concurrent.locks.Condition, I catch a Throwable : </div>
<div><br></div><div>    java.lang.UnsatisfiedLinkError: sun.misc.Unsafe.unpark(Ljava/lang/Object;)V</div>
<div><br></div><div>after using the function :</div><div><br></div><div>   void java.util.concurrent.locks.Condition.await()</div><div><font size="1"><br></font></div><div><font size="1">My test program is as fo</font>llows: </div>

<div><font size="1" face="'courier new', monospace"><br></font></div><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><div><div><p class="MsoNormal" align="left" style="text-align:left;text-autospace:none">
<font size="1" face="'courier new', monospace"><b><span lang="EN-US" style="color:rgb(127, 0, 85)">import</span></b><span lang="EN-US" style="color:black"> <u>java.lang</u>.*;</span><span lang="EN-US"></span></font></p>



<p class="MsoNormal" align="left" style="text-align:left;text-autospace:none"><font size="1" face="'courier new', monospace"><b><span lang="EN-US" style="color:rgb(127, 0, 85)">import</span></b><span lang="EN-US" style="color:black"> <u>java.util.Map</u>;</span><span lang="EN-US"></span></font></p>



<p class="MsoNormal" align="left" style="text-align:left;text-autospace:none"><font size="1"><b><span lang="EN-US" style="color:rgb(127, 0, 85)"><font face="'courier new', monospace">import</font></span></b><font face="'courier new', monospace"><span lang="EN-US" style="color:black"> <u><a href="http://java.io" target="_blank">java.io</a></u>.*;</span><span lang="EN-US"></span></font></font></p>



<p class="MsoNormal" align="left" style="text-align:left;text-autospace:none"><font size="1" face="'courier new', monospace"><b><span lang="EN-US" style="color:rgb(127, 0, 85)">import</span></b><span lang="EN-US" style="color:black">
java.util.concurrent.locks.*;</span><span lang="EN-US"></span></font></p>

<p class="MsoNormal" align="left" style="text-align:left;text-autospace:none"><span lang="EN-US"><font size="1" face="'courier new', monospace"> </font></span></p>

<p class="MsoNormal" align="left" style="text-align:left;text-autospace:none"><font face="'courier new', monospace" size="1"><b><span lang="EN-US" style="color:rgb(127, 0, 85)">class</span></b><span lang="EN-US" style="color:black"> BoundedBuffer
{</span><span lang="EN-US"></span></font></p>

<p class="MsoNormal" align="left" style="text-align:left;text-autospace:none"><font face="'courier new', monospace" size="1"><span lang="EN-US" style="color:black">         Lock </span><span lang="EN-US" style="color:rgb(0, 0, 192)">lock</span><span lang="EN-US" style="color:black">;</span><span lang="EN-US"></span></font></p>



<p class="MsoNormal" align="left" style="text-align:left;text-autospace:none"><font face="'courier new', monospace" size="1"><span lang="EN-US" style="color:black">         Condition </span><span lang="EN-US" style="color:rgb(0, 0, 192)">notFull</span><span lang="EN-US" style="color:black">;</span><span lang="EN-US"></span></font></p>



<p class="MsoNormal" align="left" style="text-align:left;text-autospace:none"><font face="'courier new', monospace" size="1"><span lang="EN-US" style="color:black">         Condition </span><span lang="EN-US" style="color:rgb(0, 0, 192)">notEmpty</span><span lang="EN-US" style="color:black">;</span><span lang="EN-US"></span></font></p>



<p class="MsoNormal" align="left" style="text-align:left;text-autospace:none"><font face="'courier new', monospace" size="1"><span lang="EN-US" style="color:black">         </span><span lang="EN-US"></span></font></p>


<p class="MsoNormal" align="left" style="text-align:left;text-autospace:none"><font face="'courier new', monospace" size="1"><span lang="EN-US" style="color:black">         </span><b><span lang="EN-US" style="color:rgb(127, 0, 85)">final</span></b><span lang="EN-US" style="color:black"> Object[] </span><span lang="EN-US" style="color:rgb(0, 0, 192)">items</span><span lang="EN-US" style="color:black"> = </span><b><span lang="EN-US" style="color:rgb(127, 0, 85)">new</span></b><span lang="EN-US" style="color:black"> Object[100];</span><span lang="EN-US"></span></font></p>



<p class="MsoNormal" align="left" style="text-align:left;text-autospace:none"><font face="'courier new', monospace" size="1"><span lang="EN-US" style="color:black">         </span><b><span lang="EN-US" style="color:rgb(127, 0, 85)">int</span></b><span lang="EN-US" style="color:black"> </span><span lang="EN-US" style="color:rgb(0, 0, 192)">putptr</span><span lang="EN-US" style="color:black">, </span><span lang="EN-US" style="color:rgb(0, 0, 192)">takeptr</span><span lang="EN-US" style="color:black">, </span><span lang="EN-US" style="color:rgb(0, 0, 192)">count</span><span lang="EN-US" style="color:black">;</span><span lang="EN-US"></span></font></p>



<p class="MsoNormal" align="left" style="text-align:left;text-autospace:none"><span lang="EN-US"><font face="'courier new', monospace" size="1"> </font></span></p>

<p class="MsoNormal" align="left" style="text-align:left;text-autospace:none"><font face="'courier new', monospace" size="1"><span lang="EN-US" style="color:black">         </span><b><span lang="EN-US" style="color:rgb(127, 0, 85)">public</span></b><span lang="EN-US" style="color:black"> BoundedBuffer(</span><b><span lang="EN-US" style="color:rgb(127, 0, 85)">int</span></b><span lang="EN-US" style="color:black"> init_count)</span><span lang="EN-US"></span></font></p>



<p class="MsoNormal" align="left" style="text-align:left;text-autospace:none"><font face="'courier new', monospace" size="1"><span lang="EN-US" style="color:black">         {</span><span lang="EN-US"></span></font></p>


<p class="MsoNormal" align="left" style="text-align:left;text-autospace:none"><font face="'courier new', monospace" size="1"><span lang="EN-US" style="color:black">                   </span><span lang="EN-US" style="color:rgb(0, 0, 192)">lock</span><span lang="EN-US" style="color:black"> = </span><b><span lang="EN-US" style="color:rgb(127, 0, 85)">new</span></b><span lang="EN-US" style="color:black"> ReentrantLock();</span><span lang="EN-US"></span></font></p>



<p class="MsoNormal" align="left" style="text-align:left;text-autospace:none"><font face="'courier new', monospace" size="1"><span lang="EN-US" style="color:black">                   </span><span lang="EN-US" style="color:rgb(0, 0, 192)">notFull</span><span lang="EN-US" style="color:black">  = </span><span lang="EN-US" style="color:rgb(0, 0, 192)">lock</span><span lang="EN-US" style="color:black">.newCondition(); </span><span lang="EN-US"></span></font></p>



<p class="MsoNormal" align="left" style="text-align:left;text-autospace:none"><font face="'courier new', monospace" size="1"><span lang="EN-US" style="color:black">                   </span><span lang="EN-US" style="color:rgb(0, 0, 192)">notEmpty</span><span lang="EN-US" style="color:black"> = </span><span lang="EN-US" style="color:rgb(0, 0, 192)">lock</span><span lang="EN-US" style="color:black">.newCondition(); </span><span lang="EN-US"></span></font></p>



<p class="MsoNormal" align="left" style="text-align:left;text-autospace:none"><span lang="EN-US"><font face="'courier new', monospace" size="1"> </font></span></p>

<p class="MsoNormal" align="left" style="text-align:left;text-autospace:none"><font face="'courier new', monospace" size="1"><span lang="EN-US" style="color:black">                   </span><span lang="EN-US" style="color:rgb(0, 0, 192)">count</span><span lang="EN-US" style="color:black"> = init_count;</span><span lang="EN-US"></span></font></p>



<p class="MsoNormal" align="left" style="text-align:left;text-autospace:none"><font face="'courier new', monospace" size="1"><span lang="EN-US" style="color:black">                   </span><span lang="EN-US" style="color:rgb(0, 0, 192)">putptr</span><span lang="EN-US" style="color:black"> = </span><span lang="EN-US" style="color:rgb(0, 0, 192)">takeptr</span><span lang="EN-US" style="color:black"> = 0;</span><span lang="EN-US"></span></font></p>



<p class="MsoNormal" align="left" style="text-align:left;text-autospace:none"><font face="'courier new', monospace" size="1"><span lang="EN-US" style="color:black">         }</span><span lang="EN-US"></span></font></p>


<p class="MsoNormal" align="left" style="text-align:left;text-autospace:none"><font face="'courier new', monospace" size="1"><span lang="EN-US" style="color:black">         </span><span lang="EN-US"></span></font></p>


<p class="MsoNormal" align="left" style="text-align:left;text-autospace:none"><font face="'courier new', monospace" size="1"><span lang="EN-US" style="color:black">         </span><b><span lang="EN-US" style="color:rgb(127, 0, 85)">public</span></b><span lang="EN-US" style="color:black"> </span><b><span lang="EN-US" style="color:rgb(127, 0, 85)">void</span></b><span lang="EN-US" style="color:black"> put(Object x) </span><b><span lang="EN-US" style="color:rgb(127, 0, 85)">throws</span></b><span lang="EN-US" style="color:black">
InterruptedException {</span><span lang="EN-US"></span></font></p>

<p class="MsoNormal" align="left" style="text-align:left;text-autospace:none"><font face="'courier new', monospace" size="1"><span lang="EN-US" style="color:black">                   </span><span lang="EN-US" style="color:rgb(0, 0, 192)">lock</span><span lang="EN-US" style="color:black">.lock();</span><span lang="EN-US"></span></font></p>



<p class="MsoNormal" align="left" style="text-align:left;text-autospace:none"><font face="'courier new', monospace" size="1"><span lang="EN-US" style="color:black">                   </span><b><span lang="EN-US" style="color:rgb(127, 0, 85)">try</span></b><span lang="EN-US" style="color:black"> {</span><span lang="EN-US"></span></font></p>



<p class="MsoNormal" align="left" style="text-align:left;text-autospace:none"><font face="'courier new', monospace" size="1"><span lang="EN-US" style="color:black">                            </span><b><span lang="EN-US" style="color:rgb(127, 0, 85)">while</span></b><span lang="EN-US" style="color:black"> (</span><span lang="EN-US" style="color:rgb(0, 0, 192)">count</span><span lang="EN-US" style="color:black"> == </span><span lang="EN-US" style="color:rgb(0, 0, 192)">items</span><span lang="EN-US" style="color:black">.</span><span lang="EN-US" style="color:rgb(0, 0, 192)">length</span><span lang="EN-US" style="color:black">)</span><span lang="EN-US"></span></font></p>



<p class="MsoNormal" align="left" style="text-align:left;text-autospace:none"><font face="'courier new', monospace" size="1"><span lang="EN-US" style="color:black">                                     </span><span lang="EN-US" style="color:rgb(0, 0, 192)">notFull</span><span lang="EN-US" style="color:black">.await();</span><span lang="EN-US"></span></font></p>



<p class="MsoNormal" align="left" style="text-align:left;text-autospace:none"><font face="'courier new', monospace" size="1"><span lang="EN-US" style="color:black">                            </span><span lang="EN-US" style="color:rgb(0, 0, 192)">items</span><span lang="EN-US" style="color:black">[</span><span lang="EN-US" style="color:rgb(0, 0, 192)">putptr</span><span lang="EN-US" style="color:black">] = x;</span><span lang="EN-US"></span></font></p>



<p class="MsoNormal" align="left" style="text-align:left;text-autospace:none"><font face="'courier new', monospace" size="1"><span lang="EN-US" style="color:black">                            </span><b><span lang="EN-US" style="color:rgb(127, 0, 85)">if</span></b><span lang="EN-US" style="color:black"> (++</span><span lang="EN-US" style="color:rgb(0, 0, 192)">putptr</span><span lang="EN-US" style="color:black"> == </span><span lang="EN-US" style="color:rgb(0, 0, 192)">items</span><span lang="EN-US" style="color:black">.</span><span lang="EN-US" style="color:rgb(0, 0, 192)">length</span><span lang="EN-US" style="color:black">) </span><span lang="EN-US"></span></font></p>



<p class="MsoNormal" align="left" style="text-align:left;text-autospace:none"><font face="'courier new', monospace" size="1"><span lang="EN-US" style="color:black">                                     </span><span lang="EN-US" style="color:rgb(0, 0, 192)">putptr</span><span lang="EN-US" style="color:black"> = 0;</span><span lang="EN-US"></span></font></p>



<p class="MsoNormal" align="left" style="text-align:left;text-autospace:none"><font face="'courier new', monospace" size="1"><span lang="EN-US" style="color:black">                            ++</span><span lang="EN-US" style="color:rgb(0, 0, 192)">count</span><span lang="EN-US" style="color:black">;</span><span lang="EN-US"></span></font></p>



<p class="MsoNormal" align="left" style="text-align:left;text-autospace:none"><font face="'courier new', monospace" size="1"><span lang="EN-US" style="color:black">                            </span><span lang="EN-US" style="color:rgb(0, 0, 192)">notEmpty</span><span lang="EN-US" style="color:black">.signal();</span><span lang="EN-US"></span></font></p>



<p class="MsoNormal" align="left" style="text-align:left;text-autospace:none"><font face="'courier new', monospace" size="1"><span lang="EN-US" style="color:black">                   } </span><b><span lang="EN-US" style="color:rgb(127, 0, 85)">finally</span></b><span lang="EN-US" style="color:black"> {</span><span lang="EN-US"></span></font></p>



<p class="MsoNormal" align="left" style="text-align:left;text-autospace:none"><font face="'courier new', monospace" size="1"><span lang="EN-US" style="color:black">                            </span><span lang="EN-US" style="color:rgb(0, 0, 192)">lock</span><span lang="EN-US" style="color:black">.unlock();</span><span lang="EN-US"></span></font></p>



<p class="MsoNormal" align="left" style="text-align:left;text-autospace:none"><font face="'courier new', monospace" size="1"><span lang="EN-US" style="color:black">                   }</span><span lang="EN-US"></span></font></p>


<p class="MsoNormal" align="left" style="text-align:left;text-autospace:none"><font face="'courier new', monospace" size="1"><span lang="EN-US" style="color:black">         }</span><span lang="EN-US"></span></font></p>


<p class="MsoNormal" align="left" style="text-align:left;text-autospace:none"><span lang="EN-US"><font face="'courier new', monospace" size="1"> </font></span></p>

<p class="MsoNormal" align="left" style="text-align:left;text-autospace:none"><font face="'courier new', monospace" size="1"><span lang="EN-US" style="color:black">         </span><b><span lang="EN-US" style="color:rgb(127, 0, 85)">public</span></b><span lang="EN-US" style="color:black"> Object take() </span><b><span lang="EN-US" style="color:rgb(127, 0, 85)">throws</span></b><span lang="EN-US" style="color:black"> InterruptedException {</span><span lang="EN-US"></span></font></p>



<p class="MsoNormal" align="left" style="text-align:left;text-autospace:none"><font face="'courier new', monospace" size="1"><span lang="EN-US" style="color:black">                   Object x = </span><b><span lang="EN-US" style="color:rgb(127, 0, 85)">null</span></b><span lang="EN-US" style="color:black">;</span><span lang="EN-US"></span></font></p>



<p class="MsoNormal" align="left" style="text-align:left;text-autospace:none"><font face="'courier new', monospace" size="1"><span lang="EN-US" style="color:black">                   </span><span lang="EN-US" style="color:rgb(0, 0, 192)">lock</span><span lang="EN-US" style="color:black">.lock();</span><span lang="EN-US"></span></font></p>



<p class="MsoNormal" align="left" style="text-align:left;text-autospace:none"><font face="'courier new', monospace" size="1"><span lang="EN-US" style="color:black">                   </span><b><span lang="EN-US" style="color:rgb(127, 0, 85)">try</span></b><span lang="EN-US" style="color:black"> {</span><span lang="EN-US"></span></font></p>



<p class="MsoNormal" align="left" style="text-align:left;text-autospace:none"><font face="'courier new', monospace" size="1"><span lang="EN-US" style="color:black">                            </span><b><span lang="EN-US" style="color:rgb(127, 0, 85)">while</span></b><span lang="EN-US" style="color:black"> (</span><span lang="EN-US" style="color:rgb(0, 0, 192)">count</span><span lang="EN-US" style="color:black"> == 0)</span><span lang="EN-US"></span></font></p>



<p class="MsoNormal" align="left" style="text-align:left;text-autospace:none"><font face="'courier new', monospace" size="1"><span lang="EN-US" style="color:black">                                     </span><span lang="EN-US" style="color:rgb(0, 0, 192)">notEmpty</span><span lang="EN-US" style="color:black">.await();</span><span lang="EN-US"></span></font></p>



<p class="MsoNormal" align="left" style="text-align:left;text-autospace:none"><font face="'courier new', monospace" size="1"><span lang="EN-US" style="color:black">                            x = </span><span lang="EN-US" style="color:rgb(0, 0, 192)">items</span><span lang="EN-US" style="color:black">[</span><span lang="EN-US" style="color:rgb(0, 0, 192)">takeptr</span><span lang="EN-US" style="color:black">];</span><span lang="EN-US"></span></font></p>



<p class="MsoNormal" align="left" style="text-align:left;text-autospace:none"><font face="'courier new', monospace" size="1"><span lang="EN-US" style="color:black">                            </span><b><span lang="EN-US" style="color:rgb(127, 0, 85)">if</span></b><span lang="EN-US" style="color:black"> (++</span><span lang="EN-US" style="color:rgb(0, 0, 192)">takeptr</span><span lang="EN-US" style="color:black"> == </span><span lang="EN-US" style="color:rgb(0, 0, 192)">items</span><span lang="EN-US" style="color:black">.</span><span lang="EN-US" style="color:rgb(0, 0, 192)">length</span><span lang="EN-US" style="color:black">) </span><span lang="EN-US"></span></font></p>



<p class="MsoNormal" align="left" style="text-align:left;text-autospace:none"><font face="'courier new', monospace" size="1"><span lang="EN-US" style="color:black">                                     </span><span lang="EN-US" style="color:rgb(0, 0, 192)">takeptr</span><span lang="EN-US" style="color:black"> = 0;</span><span lang="EN-US"></span></font></p>



<p class="MsoNormal" align="left" style="text-align:left;text-autospace:none"><font face="'courier new', monospace" size="1"><span lang="EN-US" style="color:black">                            --</span><span lang="EN-US" style="color:rgb(0, 0, 192)">count</span><span lang="EN-US" style="color:black">;</span><span lang="EN-US"></span></font></p>



<p class="MsoNormal" align="left" style="text-align:left;text-autospace:none"><font face="'courier new', monospace" size="1"><span lang="EN-US" style="color:black">                            </span><span lang="EN-US" style="color:rgb(0, 0, 192)">notFull</span><span lang="EN-US" style="color:black">.signal();</span><span lang="EN-US"></span></font></p>



<p class="MsoNormal" align="left" style="text-align:left;text-autospace:none"><font face="'courier new', monospace" size="1"><span lang="EN-US" style="color:black">                   } </span><b><span lang="EN-US" style="color:rgb(127, 0, 85)">catch</span></b><span lang="EN-US" style="color:black"> (Throwable t){</span><span lang="EN-US"></span></font></p>



<p class="MsoNormal" align="left" style="text-align:left;text-autospace:none"><font face="'courier new', monospace" size="1"><span lang="EN-US" style="color:black">                            System.</span><i><span lang="EN-US" style="color:rgb(0, 0, 192)">out</span></i><span lang="EN-US" style="color:black">.println(</span><span lang="EN-US" style="color:rgb(42, 0, 255)">"BoundedBuffer.catch "</span><span lang="EN-US" style="color:black"> + t.toString());</span><span lang="EN-US"></span></font></p>



<p class="MsoNormal" align="left" style="text-align:left;text-autospace:none"><font face="'courier new', monospace" size="1"><span lang="EN-US" style="color:black">                   } </span><b><span lang="EN-US" style="color:rgb(127, 0, 85)">finally</span></b><span lang="EN-US" style="color:black"> {</span><span lang="EN-US"></span></font></p>



<p class="MsoNormal" align="left" style="text-align:left;text-autospace:none"><font face="'courier new', monospace" size="1"><span lang="EN-US" style="color:black">                            </span><span lang="EN-US" style="color:rgb(0, 0, 192)">lock</span><span lang="EN-US" style="color:black">.unlock();</span><span lang="EN-US"></span></font></p>



<p class="MsoNormal" align="left" style="text-align:left;text-autospace:none"><font face="'courier new', monospace" size="1"><span lang="EN-US" style="color:black">                   }</span><span lang="EN-US"></span></font></p>


<p class="MsoNormal" align="left" style="text-align:left;text-autospace:none"><font face="'courier new', monospace" size="1"><span lang="EN-US" style="color:black">                   </span><span lang="EN-US"></span></font></p>


<p class="MsoNormal" align="left" style="text-align:left;text-autospace:none"><font face="'courier new', monospace" size="1"><span lang="EN-US" style="color:black">                   </span><b><span lang="EN-US" style="color:rgb(127, 0, 85)">return</span></b><span lang="EN-US" style="color:black"> x;</span><span lang="EN-US"></span></font></p>



<p class="MsoNormal" align="left" style="text-align:left;text-autospace:none"><font face="'courier new', monospace" size="1"><span lang="EN-US" style="color:black">         }</span><span lang="EN-US"></span></font></p>


<p class="MsoNormal" align="left" style="text-align:left;text-autospace:none"><span lang="EN-US"><font face="'courier new', monospace" size="1"> </font></span></p>

<p class="MsoNormal" align="left" style="text-align:left;text-autospace:none"><font face="'courier new', monospace" size="1"><span lang="EN-US" style="color:black">         </span><b><span lang="EN-US" style="color:rgb(127, 0, 85)">public</span></b><span lang="EN-US" style="color:black"> </span><b><span lang="EN-US" style="color:rgb(127, 0, 85)">static</span></b><span lang="EN-US" style="color:black"> </span><b><span lang="EN-US" style="color:rgb(127, 0, 85)">void</span></b><span lang="EN-US" style="color:black"> main(String[] args) </span><b><span lang="EN-US" style="color:rgb(127, 0, 85)">throws</span></b><span lang="EN-US" style="color:black"> InterruptedException</span><span lang="EN-US"></span></font></p>



<p class="MsoNormal" align="left" style="text-align:left;text-autospace:none"><font face="'courier new', monospace" size="1"><span lang="EN-US" style="color:black">         {</span><span lang="EN-US"></span></font></p>


<p class="MsoNormal" align="left" style="text-align:left;text-autospace:none"><font face="'courier new', monospace" size="1"><span lang="EN-US" style="color:black">                   BoundedBuffer buffer = </span><b><span lang="EN-US" style="color:rgb(127, 0, 85)">new</span></b><span lang="EN-US" style="color:black"> BoundedBuffer(0);</span><span lang="EN-US"></span></font></p>



<p class="MsoNormal" align="left" style="text-align:left;text-autospace:none"><font face="'courier new', monospace" size="1"><span lang="EN-US" style="color:black">                   buffer.take();</span><span lang="EN-US"></span></font></p>



<p class="MsoNormal" align="left" style="text-align:left;text-autospace:none"><font face="'courier new', monospace" size="1"><span lang="EN-US" style="color:black">                   </span><span lang="EN-US"></span></font></p>


<p class="MsoNormal" align="left" style="text-align:left;text-autospace:none"><font face="'courier new', monospace" size="1"><span lang="EN-US" style="color:black">                   </span><b><span lang="EN-US" style="color:rgb(127, 0, 85)">return</span></b><span lang="EN-US" style="color:black"> ;</span><span lang="EN-US"></span></font></p>



<p class="MsoNormal" align="left" style="text-align:left;text-autospace:none"><font face="'courier new', monospace" size="1"><span lang="EN-US" style="color:black">         }</span><span lang="EN-US"></span></font></p>


<p class="MsoNormal" align="left" style="text-align:left;text-autospace:none"><font face="'courier new', monospace" size="1"><span lang="EN-US" style="color:black">}</span><span lang="EN-US"></span></font></p><p class="MsoNormal" align="left" style="text-align:left;text-autospace:none">
<span lang="EN-US" style="font-size:10.0pt;font-family:Monospace;color:black"><br></span></p></div></div></blockquote><font face="monospace"><span style="font-family:arial;font-size:13px">Can anyone please tell me why the error?</span></font><div>

<font face="monospace"><span style="font-family:arial;font-size:13px"><br></span></font></div><div><font face="monospace"><span style="font-family:arial;font-size:13px">Thanks!</span></font></div>
<div><font face="monospace"><span style="font-family:arial;font-size:13px"><br></span></font></div><font color="#888888"><div><font face="monospace"><span style="font-family:arial;font-size:13px">Li Li</span></font></div>

</font><br>_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:LLVMdev@cs.uiuc.edu">LLVMdev@cs.uiuc.edu</a>         <a href="http://llvm.cs.uiuc.edu" target="_blank">http://llvm.cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a><br>
<br></blockquote></div><br></div>