[cfe-dev] main functions of clang

eyasu getahun eya.get at gmail.com
Mon Dec 12 06:03:24 PST 2011


Hey James,

Thanks for the command line option. But where is the function called? I
mean in which main method of clang it is called? We know that every
function must be called at least at one main method/function to be
executed. Let me make it clear like this way:

int main ()//main method
{
S->Printpretty(context);
}

So, which main method is calling our printpretty() function? Hope now its
clear for you.

On Mon, Dec 12, 2011 at 9:49 PM, James Molloy <james.molloy at arm.com> wrote:

>  Hi Eyasu,****
>
> ** **
>
> Ah, I understand your question better now. Clang has an option
> “-ast-print” that does what you want. It is a cc1 option though, so you
> can’t access it directly through the driver.****
>
> ** **
>
> $ clang –cc1 –help****
>
> ** **
>
> Will show it, and to use it:****
>
> ** **
>
> $ clang –Xclang –ast-print –S x.c –o –****
>
> Int x;****
>
> ** **
>
> The “-Xclang” forces the next argument to be passed directly to the cc1
> executable, which will recognise it.****
>
> ** **
>
> Hope this helps,****
>
> ** **
>
> James****
>
> ** **
>
> *From:* eyasu getahun [mailto:eya.get at gmail.com]
> *Sent:* 12 December 2011 13:45
> *To:* James Molloy
> *Cc:* cfe-dev at cs.uiuc.edu
> *Subject:* Re: [cfe-dev] main functions of clang****
>
> ** **
>
>
> Hello James,
>
> Thanks a lot for your help and sorry for my late reply. Your information
> is helpful, however what I want to know is the main method of clang that
> calls the printpretty() function. As you mentioned, lets have S
> ->printpretty(context). We can see this at StmtPrinter.cpp  class as I
> mentioned earlier. My question is which main method of clang this function
> is called. As we know at run time there is at least on main method that
> calls other functions. Assume we want to print the source code of AST. We
> will run clang on command line. we will use a command(I don't know the
> command) that calls the print pretty function. Hope you get my idea. So,
> which main method/function of clang is calling this function? Thanks again.
> ****
>
> On Mon, Dec 12, 2011 at 7:04 PM, James Molloy <James.Molloy at arm.com>
> wrote:****
>
> Hi,****
>
>  ****
>
> If you look at Stmt.h, you will find the main declarations for printPretty
> and dumpPretty (line 305). They are member functions of the Stmt class, so
> assuming you have a Stmt instance you can just call
> “S->dumpPretty(Context);”****
>
>  ****
>
> It’s difficult to give a general rule for everything in Clang – as you
> know it is quite a complex source base. But hopefully this has helped?****
>
>  ****
>
> Cheers,****
>
>  ****
>
> James ****
>
>  ****
>
> *From:* cfe-dev-bounces at cs.uiuc.edu [mailto:cfe-dev-bounces at cs.uiuc.edu] *On
> Behalf Of *eyasu getahun
> *Sent:* 12 December 2011 10:40
> *To:* cfe-dev at cs.uiuc.edu
> *Subject:* [cfe-dev] main functions of clang****
>
>  ****
>
>  Hello All,
>
> Clang has a number of classes and functions inside its implementation.
> Most of the time it makes me to be confused to identify the interconnection
> among classes and functions. Because many functions may be called from
> different header files. The main thing what i want to know is about main
> methods of clang. I have seen 4 main functions in clang. But it is
> difficult for me to identify in which main methods are other functions
> called. To make it clear let me talk about one class(example
> StmtPrinter.cpp class). This class prints back source code from AST.  Under
> this class their are two functions i.e PrintPretty(..) and DumpPretty(..).
> Suppose I want to use printPretty(..) and it is called at different
> functions.  Where is the main method of clang that calls this function to
> print the source code? Can someone tell me how it works. I tried to greped
> out on command line but failed to get the main method that calls this
> function. Even I want to know the command to use this function.
>
> Sorry, it might be silly question, but I failed to get it out. Thanks in
> advance for your help!.****
>
>
> -- IMPORTANT NOTICE: The contents of this email and any attachments are
> confidential and may also be privileged. If you are not the intended
> recipient, please notify the sender immediately and do not disclose the
> contents to any other person, use it for any purpose, or store or copy the
> information in any medium. Thank you.****
>
>
>
>
> --
> *With Best Regards,
>
> ===========================================
> Eyasu Getahun*
>
> 1 Fusionopolis way, #08-10 Connexis North Tower
> Singapore 138632, Singapore
> Mobile: +393279239907
> *===========================================*****
>



-- 
*With Best Regards,

===========================================
Eyasu Getahun*

1 Fusionopolis way, #08-10 Connexis North Tower
Singapore 138632, Singapore
Mobile: +393279239907
*===========================================
*
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20111212/dd03cfa0/attachment.html>


More information about the cfe-dev mailing list