Hi Surinder,<br><br>Did you remember to #include "llvm/Analysis/Dominators.h"?<br><br>Best,<br><br>Douglas<br><br><div class="gmail_quote">On Sun, Jan 30, 2011 at 11:24 PM, Surinder <span dir="ltr"><<a href="mailto:surifilms@gmail.com">surifilms@gmail.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">I am creating a new pass (function pass) called Dfl from the Hello<br>
example and notes on "Writing an LLVM Pass".  When I compile the<br>
program I get inncomplete type error (llvm/include/llvm/Pass.h:188:<br>
error: incomplete type 'llvm::DominatorTree' used in nested name<br>
specifier).  The code is given below.<br>
<br>
Surinder<br>
<br>
struct Dfl : public FunctionPass {<br>
    raw_ostream *Out;<br>
    static char ID;<br>
    //<br>
    Dfl() : FunctionPass(&ID) { }<br>
    //<br>
    virtual bool runOnFunction(Function &F) {<br>
      // //BlocksCounter++; EdgesCounter++; InstCounter++;<br>
      bool modified=false;<br>
      errs() << "In Dfl for Function : " << F.getName();<br>
      if (F.empty()) errs() << " is empty."  << "\n";<br>
      else errs()  << "\n";<br>
      // DT = &getAnalysis<DominatorTree>();<br>
      modified = printDfl(Out, &F); // , &DT);<br>
      return modified;<br>
    };<br>
    // pass interface to other passes<br>
    virtual void getAnalysisUsage(AnalysisUsage &AU) const {<br>
      AU.setPreservesAll();<br>
      AU.addRequired<DominatorTree>();                 ///  ***error<br>
line ***********<br>
    }<br>
<br>
<br>
};  // end struc Dfl<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>