[cfe-commits] patch for libclang: expose additional information about complex, vector, function, typedef, and enum types; cursor spelling for AsmLabelAttr attributes

Joe Groff arcata at gmail.com
Sun Nov 20 12:27:44 PST 2011


Hi everyone. Here's a patch that adds some more functionality to libclang
to query various types. I'd like to get some feedback. The patch is against
svn revision 145002. It adds the following features:

- Exposes a CXType_Vector type kind for vector types.
- Adds generalized versions of the clang_getArrayElementType and
clang_getArraySize functions, named clang_getElementType and
clang_getNumElements, which work on array, vector, or complex types. This
was the API change recommended in an earlier thread:
http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-20110926/046899.html.
I left the clang_getArray* functions for source compatibility.
- Adds additional functions for querying function types.
clang_isFunctionTypeVariadic returns true if a function type is variadic.
clang_getFunctionCallingConv returns an enumeration value indicating the
calling convention of the function type. clang_getNumArgTypes returns the
number of static argument types, and clang_getArgType gets the type of an
argument.
- Adds a clang_getTypedefDeclUnderlyingType function to get the underlying
type from a TypedefDecl cursor.
- Adds a clang_getEnumDeclIntegerType function to get the integer type from
an EnumDecl cursor.
- Adds clang_getEnumConstantDeclValue and
clang_getEnumConstantDeclUnsignedValue functions to get the value of an
EnumConstantDecl as a signed or unsigned long long, respectively.
- Exposes a CXCursor_AsmLabelAttr cursor kind for __asm__("label")
attributes.
- Alters clang_getCursorSpelling to return the label value for
AsmLabelAttr-kind cursors.

Let me know if there are any API or functionality changes I should make.
Thanks for the feedback.

-Joe
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20111120/90b28c85/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 145002-libclang-complex-vector-function-enum-type-information.diff
Type: application/octet-stream
Size: 13626 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20111120/90b28c85/attachment.obj>


More information about the cfe-commits mailing list