Related articles |
---|
Questions about GCC front end mandayrv@nb.conexant.com (Ramanand V Mandayam) (2000-11-14) |
Re: Questions about GCC front end rkrayhawk@aol.com (2000-11-17) |
From: | Ramanand V Mandayam <mandayrv@nb.conexant.com> |
Newsgroups: | comp.compilers |
Date: | 14 Nov 2000 13:13:31 -0500 |
Organization: | Compilers Central |
Keywords: | GCC |
Posted-Date: | 14 Nov 2000 13:13:31 EST |
Hello,
I have been working with the GCC (v2.95.2) front end for a small
project. I am using the (implicit) documentation available in the
various source files such as tree.def, tree.h, c-aux-info.c etc.
However, I have come across a situation that is somewhat confusing and
would appreciate any help in this regard. It appears (I may be wrong
-- this is where I need all the help I can get) that at the time when
the API functions in the file c-aux-info are invoked, the tool does
not distinguish between typedef names and explicit types (int, char,
struct x {...} etc.)
Here is an example:
/* EXAMPLE INPUT TO THE GCC FRONT END */
typedef struct _int { int x; } ABCD;
typedef union _char { char x; } *XYZ;
typedef int INT;
XYZ myfunc_1 ( int x);
INT myfunc_2 ( int y);
/* END EXAMPLE INPUT */
When parsed, the type information for the parameter 'x' of function
myfunc_1 (as also the parameter 'y' of function myfunc_2) have the
same attributes (TYPE_NAME, TREE_CODE, etc.) as the type information
for the return type "XYZ" of myfunc_1.
According to the documentation, the conditional
(TREE_CODE (TYPE_NAME (t)) == TYPE_DECL)
where t is the node containing the type information
should fail for the parameters x and y, but it repeatedly passes.
What gives. Should I be testing something else?
Thanks for any feedback and help.
Ramanand Mandayam
Return to the
comp.compilers page.
Search the
comp.compilers archives again.