[cfe-dev] Get name of MemberExpr expression

Qiufeng Yu via cfe-dev cfe-dev at lists.llvm.org
Thu Dec 7 00:53:00 PST 2017


With getBase(), I will get an Expr, but how do I get the actual base? In
other words, all I want is a string "blockIdx" so that I can perform
something like
if(string == "blockIdx"){
    Rewrite.replaceText()......
}

On Thu, Dec 7, 2017 at 3:49 AM, Aleksei Sidorin <a.sidorin at samsung.com>
wrote:

> Hello,
>
> You can use getBase() method to retrieve 'blockIdx' and getMemberDecl() to
> find out what declaration is being referred.
>
> 07.12.2017 11:40, Qiufeng Yu via cfe-dev пишет:
>
> Hi all,
>
> I'm new to clang and currently working on a project where I need to
> rewrite some codes in CUDA source file.
>
> For example, if I have the following CUDA code:
>
> int bx = blockIdx.x;
> int by = blockIdx.y;
>
> I want to rewrite the blockIdx and blockIdx.x and blockIdx.y to some other
> code:
> int bx = something else;
> int by = something else;
>
> My problem is that how do I find the MemberExpr blockIdx,x and blockIdx.y?
>
> I know how to get the MemberExpr, but I have no clue how to extract the
> name of the MemberExpr in order to know that it is the right MemberExpr for
> me to rewrite.
>
> Any help is appreciated.
>
>
> Patrick
>
>
> _______________________________________________
> cfe-dev mailing listcfe-dev at lists.llvm.orghttp://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev
>
>
> --
> Best regards,
> Aleksei Sidorin,
> SRR, Samsung Electronics
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20171207/0b1dd2d3/attachment.html>


More information about the cfe-dev mailing list