| author | |
| committer | |
| log | c79b8aeaef860528da645b956f21c8d95d05880d |
| tree | d6e3dd85bee6a0c94f09eac6813ecfad9c2c393b |
| parent | 99f0b28d3946a1110df235bb8d3b1918afc08df8 |
| signature |
4 files changed, 24 insertions(+), 6 deletions(-)
src-self-hosted/clang.zig+7| ... | ... | @@ -870,3 +870,10 @@ pub const ZigClangDeclStmt_const_decl_iterator = [*c]const *struct_ZigClangDecl; |
| 870 | 870 | |
| 871 | 871 | pub extern fn ZigClangDeclStmt_decl_begin(self: *const ZigClangDeclStmt) ZigClangDeclStmt_const_decl_iterator; |
| 872 | 872 | pub extern fn ZigClangDeclStmt_decl_end(self: *const ZigClangDeclStmt) ZigClangDeclStmt_const_decl_iterator; |
| 873 | ||
| 874 | pub extern fn ZigClangVarDecl_getTLSKind(self: ?*const struct_ZigClangVarDecl) ZigClangVarDecl_TLSKind; | |
| 875 | pub const ZigClangVarDecl_TLSKind = extern enum { | |
| 876 | None, | |
| 877 | Static, | |
| 878 | Dynamic, | |
| 879 | }; |
src-self-hosted/translate_c.zig+4-6| ... | ... | @@ -381,12 +381,10 @@ fn transDeclStmt(rp: RestorePoint, parent_scope: *Scope, stmt: *const ZigClangDe |
| 381 | 381 | .Var => { |
| 382 | 382 | const var_decl = @ptrCast(*const ZigClangVarDecl, it.*); |
| 383 | 383 | |
| 384 | // TODO: | |
| 385 | // const thread_local_token = if (ZigClangVarDecl_getTLSKind() == .None) | |
| 386 | // null | |
| 387 | // else | |
| 388 | // try appendToken(c, .Keyword_threadlocal, "threadlocal"); | |
| 389 | const thread_local_token: ?ast.TokenIndex = null; | |
| 384 | const thread_local_token = if (ZigClangVarDecl_getTLSKind(var_decl) == .None) | |
| 385 | null | |
| 386 | else | |
| 387 | try appendToken(c, .Keyword_threadlocal, "threadlocal"); | |
| 390 | 388 | const qual_type = ZigClangVarDecl_getType(var_decl); |
| 391 | 389 | const mut_token = if (ZigClangQualType_isConstQualified(qual_type)) |
| 392 | 390 | try appendToken(c, .Keyword_const, "const") |
src/zig_clang.cpp+5| ... | ... | @@ -1459,6 +1459,11 @@ const char *ZigClangDecl_getDeclKindName(const struct ZigClangDecl *self) { |
| 1459 | 1459 | return casted->getDeclKindName(); |
| 1460 | 1460 | } |
| 1461 | 1461 | |
| 1462 | enum ZigClangVarDecl_TLSKind ZigClangVarDecl_getTLSKind(const ZigClangVarDecl *self) { | |
| 1463 | auto casted = reinterpret_cast<const clang::VarDecl *>(self); | |
| 1464 | return (ZigClangVarDecl_TLSKind)casted->getTLSKind(); | |
| 1465 | } | |
| 1466 | ||
| 1462 | 1467 | ZigClangSourceLocation ZigClangRecordDecl_getLocation(const ZigClangRecordDecl *zig_record_decl) { |
| 1463 | 1468 | const clang::RecordDecl *record_decl = reinterpret_cast<const clang::RecordDecl *>(zig_record_decl); |
| 1464 | 1469 | return bitcast(record_decl->getLocation()); |
src/zig_clang.h+8| ... | ... | @@ -733,6 +733,12 @@ enum ZigClangStringLiteral_StringKind { |
| 733 | 733 | ZigClangStringLiteral_StringKind_UTF32, |
| 734 | 734 | }; |
| 735 | 735 | |
| 736 | enum ZigClangVarDecl_TLSKind { | |
| 737 | ZigClangVarDecl_TLSKind_None, | |
| 738 | ZigClangVarDecl_TLSKind_Static, | |
| 739 | ZigClangVarDecl_TLSKind_Dynamic, | |
| 740 | }; | |
| 741 | ||
| 736 | 742 | ZIG_EXTERN_C struct ZigClangSourceLocation ZigClangSourceManager_getSpellingLoc(const struct ZigClangSourceManager *, |
| 737 | 743 | struct ZigClangSourceLocation Loc); |
| 738 | 744 | ZIG_EXTERN_C const char *ZigClangSourceManager_getFilename(const struct ZigClangSourceManager *, |
| ... | ... | @@ -792,6 +798,8 @@ ZIG_EXTERN_C const char *ZigClangDecl_getName_bytes_begin(const struct ZigClangD |
| 792 | 798 | ZIG_EXTERN_C enum ZigClangDeclKind ZigClangDecl_getKind(const struct ZigClangDecl *decl); |
| 793 | 799 | ZIG_EXTERN_C const char *ZigClangDecl_getDeclKindName(const struct ZigClangDecl *decl); |
| 794 | 800 | |
| 801 | ZIG_EXTERN_C enum ZigClangVarDecl_TLSKind ZigClangVarDecl_getTLSKind(const struct ZigClangVarDecl *var_decl); | |
| 802 | ||
| 795 | 803 | ZIG_EXTERN_C bool ZigClangSourceLocation_eq(struct ZigClangSourceLocation a, struct ZigClangSourceLocation b); |
| 796 | 804 | |
| 797 | 805 | ZIG_EXTERN_C const struct ZigClangTypedefNameDecl *ZigClangTypedefType_getDecl(const struct ZigClangTypedefType *); |