[cfe-dev] RFC: missing libclang query functions / features

Stefan Seefeld seefeld at sympatico.ca
Tue Feb 15 20:44:15 PST 2011


On 2011-02-15 16:14, Douglas Gregor wrote:
>
>> * There doesn't appear to be any function to query a function's
>> exception specifier.
> Correct; we don't expose that information.

What would be the best way to add support for that ? Adding a new 
CXCursor_ExceptionSpec cursor, which has child cursors of of some 
appropriate reference kind ? Or a query function that gives the 
equivalent information explicitly ?
>> * Would it be possible to report dependent types / expressions with a
>> new cursor type, instead of the common "UnexposedExpr" ?
>
> Dependent types and expressions can take many forms, including forms that already have "exposed" cursor kinds (e.g., a declaration reference expression can be type-dependent). If you need type- and value-dependence information, I suggest adding clang_isTypeDependent()/clang_isValueDependent() that operates on expression cursors.

OK, understood. I think what I was trying to ask is for 
CXType_Unexposed, not CXCursor_UnexposedDecl.
That is:

template <typename T>
struct foo
{
     T member;
};

would report a FieldDecl cursor for 'member'. When calling 
clang_getCursorType() on that, I obtain a CXType_Unexposed, while I 
think something more indicative of this being a dependent type would be 
more useful. (If that is not possible, a new clang_isTypeDependent() 
function would certainly be helpful.)


Thanks,
         Stefan


-- 

       ...ich hab' noch einen Koffer in Berlin...




More information about the cfe-dev mailing list