diff options
| author | Douglas Gregor <dgregor@apple.com> | 2010-09-09 21:42:20 +0000 | 
|---|---|---|
| committer | Douglas Gregor <dgregor@apple.com> | 2010-09-09 21:42:20 +0000 | 
| commit | f3af3113822378576ec9501243df7469b9b3b23c (patch) | |
| tree | cace468e163bf34862b2ff0bc534d566a6d5d984 /clang/tools/libclang/CXCursor.cpp | |
| parent | 7ce46869586141f3087a6b6460dfe8773d02c17a (diff) | |
| download | bcm5719-llvm-f3af3113822378576ec9501243df7469b9b3b23c.tar.gz bcm5719-llvm-f3af3113822378576ec9501243df7469b9b3b23c.zip | |
Teach libclang to walk the base and member initializers of a
constructor, in source order. Also introduces a new reference kind for
class members, which is used here (for member initializers) and will
also be used for designated initializers and offsetof.
llvm-svn: 113545
Diffstat (limited to 'clang/tools/libclang/CXCursor.cpp')
| -rw-r--r-- | clang/tools/libclang/CXCursor.cpp | 17 | 
1 files changed, 17 insertions, 0 deletions
| diff --git a/clang/tools/libclang/CXCursor.cpp b/clang/tools/libclang/CXCursor.cpp index 9b3ecbf0d93..53145a67194 100644 --- a/clang/tools/libclang/CXCursor.cpp +++ b/clang/tools/libclang/CXCursor.cpp @@ -291,6 +291,23 @@ cxcursor::getCursorNamespaceRef(CXCursor C) {                                         reinterpret_cast<uintptr_t>(C.data[1])));    } +CXCursor cxcursor::MakeCursorMemberRef(FieldDecl *Field, SourceLocation Loc,  +                                       ASTUnit *TU) { +   +  assert(Field && TU && "Invalid arguments!"); +  void *RawLoc = reinterpret_cast<void *>(Loc.getRawEncoding()); +  CXCursor C = { CXCursor_MemberRef, { Field, RawLoc, TU } }; +  return C;     +} + +std::pair<FieldDecl *, SourceLocation>  +cxcursor::getCursorMemberRef(CXCursor C) { +  assert(C.kind == CXCursor_MemberRef); +  return std::make_pair(static_cast<FieldDecl *>(C.data[0]), +                        SourceLocation::getFromRawEncoding( +                                       reinterpret_cast<uintptr_t>(C.data[1])));   +} +  CXCursor cxcursor::MakeCursorCXXBaseSpecifier(CXXBaseSpecifier *B, ASTUnit *TU){    CXCursor C = { CXCursor_CXXBaseSpecifier, { B, 0, TU } };    return C;   | 

