[cfe-users] Parsing C code looking for Basic Blocks

Harald Servat harald.servat at bsc.es
Tue Mar 19 08:43:00 PDT 2013


El dt 19 de 03 de 2013 a les 12:43 +0100, en/na Harald Servat va
escriure:
> Dear list,
> 
>   I'm a newcommer to Clang/LLVM and I'm not sure whether this is the
> correct place to ask this topic. If it's not, would you mind to point me
> to the correct place/list?
> 
>   I'm looking for a mechanism to detect basic blocks in C codes
> (optionally C++, and eventually Fortran, in a future). I'm wondering
> whether how can Clang help me? Is it an appropriate tool for doing such
> thing? I'm not looking for something very difficult (I think). 
> 
>   Imagine I have the following code (line numbering on the left, source
> code on the right)
> 
> 01: void foo(void)
> 02: {
> 03:    int a = 10;
> 04:    int b = 11;
> 05:    if (a > b)
> 06:    {
> 07:       printf ("a is greater than b\n");
> 08:    }
> 09:    else
> 10:   {
> 11:      printf ("b is greater or equal than a\n");
> 12:   }
> 13: }
> 
>   I'd like to have a obtain a list of pairs that delimit the basic
> blocks of the code. For the previous example, for instance it should
> return something like : [01-05], [06-08], [10-12]. 
> 
>   Is there any Clang mechanism to provide such information? If not, is
> it possible to do it through Clang?
> 
> Thank you very much!
> 
> 
> 
> WARNING / LEGAL TEXT: This message is intended only for the use of the
> individual or entity to which it is addressed and may contain
> information which is privileged, confidential, proprietary, or exempt
> from disclosure under applicable law. If you are not the intended
> recipient or the person responsible for delivering the message to the
> intended recipient, you are strictly prohibited from disclosing,
> distributing, copying, or in any way using this message. If you have
> received this communication in error, please notify the sender and
> destroy and delete any copies you may have received.
> 
> http://www.bsc.es/disclaimer
> _______________________________________________
> cfe-users mailing list
> cfe-users at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-users

Hello,

  I found the following command exceptionally useful for the purposes I
wanted:
  
    clang -cc1 -ast-dump file.c

  With that and some scripting I can do what I was looking for.

Thank you and sorry for disturbing your mailboxes



WARNING / LEGAL TEXT: This message is intended only for the use of the
individual or entity to which it is addressed and may contain
information which is privileged, confidential, proprietary, or exempt
from disclosure under applicable law. If you are not the intended
recipient or the person responsible for delivering the message to the
intended recipient, you are strictly prohibited from disclosing,
distributing, copying, or in any way using this message. If you have
received this communication in error, please notify the sender and
destroy and delete any copies you may have received.

http://www.bsc.es/disclaimer



More information about the cfe-users mailing list