如何检查结构是否在clang中具有属性包

时间:2018-06-01 00:26:12

标签: clang llvm-clang

我正在尝试创建一个libclang工具来检查struct声明中使用的一些属性。而且我不知道如何访问这些属性。例如,我的输入C源具有struct参数的函数声明,其属性为" packed":

struct S { char c; short s; } __attribute__ ((packed));
void foo( struct S sp );

我们说我有

ParmVarDecl parm;    // pointing at sp decl
Type *ty = param->getOriginalType().getTypePtr();  // get its type
if (ty->IsRecordType()) {
   RecordType *st = ty->getAsStructureType();      // get its record type
   ...

但我不知道"包装"可以在RecordType中检查属性。而且我没有在AttributedType中看到它。那么这些"如何归因于#34;在clang中访问的类型?任何指针都将受到赞赏!

0 个答案:

没有答案