Software engineers like to work/test on one function at a time. So being able to compile and test is an important factor when creating/writing code. Thus, the functions are not pure-virtual. They fail at run time instead.<div>
<br></div><div>- Jeff<br><br><div class="gmail_quote">On Fri, Jan 21, 2011 at 2:11 AM, Heikki Kultala <span dir="ltr"><<a href="mailto:hkultala@cs.tut.fi">hkultala@cs.tut.fi</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
LLVM code base seems to be full of base/interface classes, which have<br>
methods like<br>
<br>
   virtual SDValue<br>
     LowerCall(SDValue Chain, SDValue Callee,<br>
               CallingConv::ID CallConv, bool isVarArg, bool &isTailCall,<br>
               const SmallVectorImpl<ISD::OutputArg> &Outs,<br>
               const SmallVectorImpl<SDValue> &OutVals,<br>
               const SmallVectorImpl<ISD::InputArg> &Ins,<br>
               DebugLoc dl, SelectionDAG &DAG,<br>
               SmallVectorImpl<SDValue> &InVals) const {<br>
     assert(0 && "Not Implemented");<br>
     return SDValue();    // this is here to silence compiler errors<br>
   }<br>
<br>
<br>
<br>
<br>
Why are these not pure virtual methods?<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>
</blockquote></div><br></div>