mirror of https://github.com/microsoft/clang.git
[libclang 8/8] Add support for the flag_enum attribute
Summary: This adds support to libclang for reading the flag_enum attribute. This also bumps CINDEX_VERSION_MINOR for this patch series. Reviewers: yvvan, jbcoe Reviewed By: yvvan Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D49635 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@338820 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
a5e5a0f704
commit
3500aae383
|
@ -32,7 +32,7 @@
|
|||
* compatible, thus CINDEX_VERSION_MAJOR is expected to remain stable.
|
||||
*/
|
||||
#define CINDEX_VERSION_MAJOR 0
|
||||
#define CINDEX_VERSION_MINOR 49
|
||||
#define CINDEX_VERSION_MINOR 50
|
||||
|
||||
#define CINDEX_VERSION_ENCODE(major, minor) ( \
|
||||
((major) * 10000) \
|
||||
|
@ -2585,7 +2585,8 @@ enum CXCursorKind {
|
|||
CXCursor_ObjCDesignatedInitializer = 434,
|
||||
CXCursor_ObjCRuntimeVisible = 435,
|
||||
CXCursor_ObjCBoxable = 436,
|
||||
CXCursor_LastAttr = CXCursor_ObjCBoxable,
|
||||
CXCursor_FlagEnum = 437,
|
||||
CXCursor_LastAttr = CXCursor_FlagEnum,
|
||||
|
||||
/* Preprocessing */
|
||||
CXCursor_PreprocessingDirective = 500,
|
||||
|
|
|
@ -8,6 +8,10 @@ void pure_fn() __attribute__((pure));
|
|||
void const_fn() __attribute__((const));
|
||||
void noduplicate_fn() __attribute__((noduplicate));
|
||||
|
||||
enum __attribute((flag_enum)) FlagEnum {
|
||||
Foo
|
||||
};
|
||||
|
||||
// CHECK: attributes.c:3:32: StructDecl=Test2:3:32 (Definition) Extent=[3:1 - 5:2]
|
||||
// CHECK: attributes.c:3:23: attribute(packed)=packed Extent=[3:23 - 3:29]
|
||||
// CHECK: attributes.c:4:8: FieldDecl=a:4:8 (Definition) Extent=[4:3 - 4:9] [access=public]
|
||||
|
@ -18,3 +22,5 @@ void noduplicate_fn() __attribute__((noduplicate));
|
|||
// CHECK: attributes.c:8:32: attribute(const)= Extent=[8:32 - 8:37]
|
||||
// CHECK: attributes.c:9:6: FunctionDecl=noduplicate_fn:9:6 Extent=[9:1 - 9:51]
|
||||
// CHECK: attributes.c:9:38: attribute(noduplicate)= Extent=[9:38 - 9:49]
|
||||
// CHECK: attributes.c:11:31: EnumDecl=FlagEnum:11:31 (Definition) Extent=[11:1 - 13:2]
|
||||
// CHECK: attributes.c:11:19: attribute(flag_enum)= Extent=[11:19 - 11:28]
|
||||
|
|
|
@ -5313,6 +5313,8 @@ CXString clang_getCursorKindSpelling(enum CXCursorKind Kind) {
|
|||
return cxstring::createRef("attribute(objc_runtime_visible)");
|
||||
case CXCursor_ObjCBoxable:
|
||||
return cxstring::createRef("attribute(objc_boxable)");
|
||||
case CXCursor_FlagEnum:
|
||||
return cxstring::createRef("attribute(flag_enum)");
|
||||
case CXCursor_PreprocessingDirective:
|
||||
return cxstring::createRef("preprocessing directive");
|
||||
case CXCursor_MacroDefinition:
|
||||
|
|
|
@ -78,6 +78,7 @@ static CXCursorKind GetCursorKind(const Attr *A) {
|
|||
case attr::ObjCDesignatedInitializer: return CXCursor_ObjCDesignatedInitializer;
|
||||
case attr::ObjCRuntimeVisible: return CXCursor_ObjCRuntimeVisible;
|
||||
case attr::ObjCBoxable: return CXCursor_ObjCBoxable;
|
||||
case attr::FlagEnum: return CXCursor_FlagEnum;
|
||||
}
|
||||
|
||||
return CXCursor_UnexposedAttr;
|
||||
|
|
Loading…
Reference in New Issue