[cfe-dev] Get the number of bits of a bit field with libclang?

Jacob Carlborg doob at me.com
Tue May 22 12:37:56 PDT 2012


On 2012-05-22 21:28, Argyrios Kyrtzidis wrote:
> On May 22, 2012, at 11:42 AM, Jacob Carlborg wrote:
>
>> Is it possible to get the number of bits of a bit field with libclang?
>>
>> struct Foo
>> {
>>      int a : 1;
>> };
>>
>> I noticed I could traverse to the "value" of "a" and the type of the
>> cursor was CXCursor_IntegerLiteral. But is it possible to get the actual
>> value?
>
> No, are you interested in submitting a patch ? I suggest something like "clang_Cursor_getBitWidthValue(CXCursor)" similar to how clang_Cursor_getNumArguments(CXCursor C) works, with the difference that it can return "unsigned" and 0 if the cursor is not a bitfield.

Probably in the long run if no one else does it. But right now I have 
other things on my todo-list for my tool with higher priority.

Would two functions be a good idea, one for signed and one for unsigned 
values? Just like "clang_getEnumConstantDeclValue" and 
"clang_getEnumConstantDeclUnsignedValue".

-- 
/Jacob Carlborg




More information about the cfe-dev mailing list