diff options
| author | hryx <codroid@gmail.com> | 2019-05-26 15:43:13 -0700 |
|---|---|---|
| committer | hryx <codroid@gmail.com> | 2019-05-26 15:43:13 -0700 |
| commit | fceedada5c18ca5e9fa3ca14e74f6722eda85600 (patch) | |
| tree | ac3ef0bca2923b7962eb08cd948c4e5806dda993 /src/zig_clang.cpp | |
| parent | 21ed9391179a9e472b25c80eaec5eebc9d08aca8 (diff) | |
| download | zig-fceedada5c18ca5e9fa3ca14e74f6722eda85600.tar.gz zig-fceedada5c18ca5e9fa3ca14e74f6722eda85600.zip | |
WIP translate var decl
Diffstat (limited to 'src/zig_clang.cpp')
| -rw-r--r-- | src/zig_clang.cpp | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/src/zig_clang.cpp b/src/zig_clang.cpp index 28062ea69f..9fca49e777 100644 --- a/src/zig_clang.cpp +++ b/src/zig_clang.cpp @@ -1331,6 +1331,12 @@ static ZigClangCompoundStmt_const_body_iterator bitcast(clang::CompoundStmt::con return dest; } +static_assert(sizeof(ZigClangDeclStmt_const_decl_iterator) == sizeof(clang::DeclStmt::const_decl_iterator), ""); +static ZigClangDeclStmt_const_decl_iterator bitcast(clang::DeclStmt::const_decl_iterator src) { + ZigClangDeclStmt_const_decl_iterator dest; + memcpy(&dest, static_cast<void *>(&src), sizeof(ZigClangDeclStmt_const_decl_iterator)); + return dest; +} ZigClangSourceLocation ZigClangSourceManager_getSpellingLoc(const ZigClangSourceManager *self, ZigClangSourceLocation Loc) @@ -1381,7 +1387,7 @@ ZigClangSourceManager *ZigClangASTUnit_getSourceManager(ZigClangASTUnit *self) { return reinterpret_cast<ZigClangSourceManager *>(result); } -bool ZigClangASTUnit_visitLocalTopLevelDecls(ZigClangASTUnit *self, void *context, +bool ZigClangASTUnit_visitLocalTopLevelDecls(ZigClangASTUnit *self, void *context, bool (*Fn)(void *context, const ZigClangDecl *decl)) { return reinterpret_cast<clang::ASTUnit *>(self)->visitLocalTopLevelDecls(context, @@ -1862,6 +1868,16 @@ ZigClangCompoundStmt_const_body_iterator ZigClangCompoundStmt_body_end(const str return bitcast(casted->body_end()); } +ZigClangDeclStmt_const_decl_iterator ZigClangDeclStmt_decl_begin(const struct ZigClangDeclStmt *self) { + auto casted = reinterpret_cast<const clang::DeclStmt *>(self); + return bitcast(casted->decl_begin()); +} + +ZigClangDeclStmt_const_decl_iterator ZigClangDeclStmt_decl_end(const struct ZigClangDeclStmt *self) { + auto casted = reinterpret_cast<const clang::DeclStmt *>(self); + return bitcast(casted->decl_end()); +} + unsigned ZigClangAPFloat_convertToHexString(const ZigClangAPFloat *self, char *DST, unsigned HexDigits, bool UpperCase, enum ZigClangAPFloat_roundingMode RM) { |
