[cfe-dev] How to know in what CXXRecordDecl is a Stmt?

victor pedretti_86 at hotmail.com
Fri Apr 11 01:43:18 PDT 2014


Well, as I said, not necessarily - you will definitely find a 
CXXMethodDecl, but from there you have to go to its CXXRecordDecl 
directly, not via getParents(), as it might be an out-of-line 
definition.
Ok, that's much clearer. I hope I can implement it without problems.

No, you get the children directly from the AST nodes.
Sorry if my question is too trivial, but I am not so expert using these libraries. I can find children in Stmt:
http://clang.llvm.org/doxygen/classclang_1_1Stmt.html#a489148e5d234a5a7f00d8b02981bcee5

but I couldn't find it in Decl. What is the way in this case?


Date: Fri, 11 Apr 2014 10:02:59 +0200
Subject: Re: [cfe-dev] How to know in what CXXRecordDecl is a Stmt?
From: klimek at google.com
To: pedretti_86 at hotmail.com
CC: cfe-dev at cs.uiuc.edu

On Fri, Apr 11, 2014 at 9:19 AM, victor <pedretti_86 at hotmail.com> wrote:




Oh, thanks, I didn't know that method. 

Note that you'll not always end up in a CXXRecordDecl - sometimes you'll
 also end up in a method decl that is defined out-of-line.

Ok, so I will go through the ParentVector and, if finding a method decl, I will get the CXXRecordDecl of that method with getParent() in CXXMethodDecl, is this right?

 Well, as I said, not necessarily - you will definitely find a CXXMethodDecl, but from there you have to go to its CXXRecordDecl directly, not via getParents(), as it might be an out-of-line definition.

BTW, Isn't there a getChildren in ASTContext for the contrary purpose? I was wondering the reason.


No, you get the children directly from the AST nodes. 

Thanks.


Date: Thu, 10 Apr 2014 10:48:50 +0200
Subject: Re: [cfe-dev] How to know in what CXXRecordDecl is a Stmt?
From: klimek at google.com

To: pedretti_86 at hotmail.com
CC: cfe-dev at cs.uiuc.edu


ASTContext (http://clang.llvm.org/doxygen/classclang_1_1ASTContext.html) has a getParents() method. Note that you'll not always end up in a CXXRecordDecl - sometimes you'll also end up in a method decl that is defined out-of-line.



On Thu, Apr 10, 2014 at 9:40 AM, victor <pedretti_86 at hotmail.com> wrote:




Hello,


When I retrieve a Stmt in the AST, how can I know the CXXRecordDel to which that Stmt belongs to? I have been looking over the methods in the Stmt class, but I couldn't find an appropriate method to this end. 



Thanks in advance.

 		 	   		  

_______________________________________________

cfe-dev mailing list

cfe-dev at cs.uiuc.edu

http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev



 		 	   		  

 		 	   		  
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20140411/00d7540b/attachment.html>


More information about the cfe-dev mailing list