The variables are declared as you have mentioned.

IStream *var1;
IStream *var2;

Also, var1 and var2 are declared in different functions.


On Thursday 09 April 2015 03:30 PM, Richard Biener wrote:
On Thu, Apr 9, 2015 at 11:57 AM, Swati Rathi <swatira...@cse.iitb.ac.in> wrote:
We want to store all the types associated with the class objects or pointer
to a class in a program.

Consider two variables var1 and var2 declared in different functions as
below.
     class IStream *var1;
     class IStream *var2;

We are extracting its type as below :
     tree type1 = TREE_TYPE (TREE_TYPE (var1));
     tree type2 = TREE_TYPE (TREE_TYPE (var2));

TREE_CODE (type1) and TREE_CODE (type2) is RECORD_TYPE.
We wish to record the type struct IStream.

However, when we print TYPE_UID (type1) and TYPE_UID (type2), it is
different.
     TYPE_UID = 4326, tree_type : struct IStream
     TYPE_UID = 7421, tree_type : struct IStream

Using TYPE_UID (TYPE_MAIN_VARIANT (type1)) and TYPE_UID (TYPE_MAIN_VARIANT
(type2)) also gives the same result.

We wish to avoid duplicate entries of the same type.
How to extract types and uid?
Doesn't it work with

class IStream;

IStream *var1;
IStream *var2;

?

Regards,
Swati


Reply via email to