[cfe-dev] Type Information for C++ classes

Mohammad Adil madil90 at gmail.com
Thu Oct 11 22:16:21 PDT 2012


My purpose is to overload the << operator for all classes if they don't
already have one. The basic goal is to make all classes serializable over
some stream (ideally a network stream). Is that possible with clang? If
yes, How do I find all the member variables and functions of a class or
struct?

On Thu, Oct 11, 2012 at 5:13 PM, Manuel Klimek <klimek at google.com> wrote:

> +cfe-dev
>
> On Thu, Oct 11, 2012 at 12:13 PM, Mohammad Adil <madil90 at gmail.com> wrote:
>
>> Sorry about that. I wasn't correctly changing my language from C to C++.
>> I figured that out. It's working now. I wanted to ask you one more thing. I
>> am trying to find all the return statements in the file. I can do that
>> easily but I know want to find out which function does this return
>> statement belong to? Since funcdecl and return statements are de-coupled, I
>> can't find a way to do so. Is there an easy way to do it?
>
>
> If you're using RecursiveASTVisitor, you can intercept the Traverse* calls
> to figure out AST child relations. Or you can use the AST matchers
> (functionDecl(hasDescendant(returnStmt()))).
>
> Cheers,
> /Manuel
>
>
>> On Wed, Oct 10, 2012 at 8:29 PM, Manuel Klimek <klimek at google.com> wrote:
>>
>>> On Wed, Oct 10, 2012 at 2:05 AM, madil90 <madil90 at gmail.com> wrote:
>>> > Hi,
>>> >    I am trying to find the type of a VarDecl. I am currently using the
>>> > VarDecl->getOriginalType(). This function does not work for C++
>>> classes.
>>> > Consider the code below:
>>>
>>> Does getType() not work for you for some reason?
>>>
>>> Cheers,
>>> /Manuel
>>>
>>> >
>>> > class Foo
>>> > {
>>> >     int a;
>>> > };
>>> >
>>> > int f( Foo foo);
>>> >
>>> > When I try to find the type for "foo" in the function decleration, it
>>> > returns "int", while the actual type is Foo. If Foo is a structure,
>>> this
>>> > works perfectly fine but not for C++ classes. Can some one please
>>> explain
>>> > where the type information for C++ classes is stored?
>>> >
>>> >
>>> >
>>> > --
>>> > View this message in context:
>>> http://clang-developers.42468.n3.nabble.com/Type-Information-for-C-classes-tp4027266.html
>>> > Sent from the Clang Developers mailing list archive at Nabble.com.
>>> > _______________________________________________
>>> > cfe-dev mailing list
>>> > cfe-dev at cs.uiuc.edu
>>> > http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev
>>>
>>
>>
>>
>> --
>> Mohammad Adil
>> LUMS SSE
>>
>>
>


-- 
Mohammad Adil
LUMS SSE
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20121012/e25eebe9/attachment.html>


More information about the cfe-dev mailing list