| 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,3 +870,10 @@ pub const ZigClangDeclStmt_const_decl_iterator = [*c]const *struct_ZigClangDecl; |
| 870 | 870 | ||
| 871 | pub extern fn ZigClangDeclStmt_decl_begin(self: *const ZigClangDeclStmt) ZigClangDeclStmt_const_decl_iterator; | 871 | pub extern fn ZigClangDeclStmt_decl_begin(self: *const ZigClangDeclStmt) ZigClangDeclStmt_const_decl_iterator; |
| 872 | pub extern fn ZigClangDeclStmt_decl_end(self: *const ZigClangDeclStmt) ZigClangDeclStmt_const_decl_iterator; | 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,12 +381,10 @@ fn transDeclStmt(rp: RestorePoint, parent_scope: *Scope, stmt: *const ZigClangDe |
| 381 | .Var => { | 381 | .Var => { |
| 382 | const var_decl = @ptrCast(*const ZigClangVarDecl, it.*); | 382 | const var_decl = @ptrCast(*const ZigClangVarDecl, it.*); |
| 383 | 383 | ||
| 384 | // TODO: | 384 | const thread_local_token = if (ZigClangVarDecl_getTLSKind(var_decl) == .None) |
| 385 | // const thread_local_token = if (ZigClangVarDecl_getTLSKind() == .None) | 385 | null |
| 386 | // null | 386 | else |
| 387 | // else | 387 | try appendToken(c, .Keyword_threadlocal, "threadlocal"); |
| 388 | // try appendToken(c, .Keyword_threadlocal, "threadlocal"); | ||
| 389 | const thread_local_token: ?ast.TokenIndex = null; | ||
| 390 | const qual_type = ZigClangVarDecl_getType(var_decl); | 388 | const qual_type = ZigClangVarDecl_getType(var_decl); |
| 391 | const mut_token = if (ZigClangQualType_isConstQualified(qual_type)) | 389 | const mut_token = if (ZigClangQualType_isConstQualified(qual_type)) |
| 392 | try appendToken(c, .Keyword_const, "const") | 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,6 +1459,11 @@ const char *ZigClangDecl_getDeclKindName(const struct ZigClangDecl *self) { |
| 1459 | return casted->getDeclKindName(); | 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 | ZigClangSourceLocation ZigClangRecordDecl_getLocation(const ZigClangRecordDecl *zig_record_decl) { | 1467 | ZigClangSourceLocation ZigClangRecordDecl_getLocation(const ZigClangRecordDecl *zig_record_decl) { |
| 1463 | const clang::RecordDecl *record_decl = reinterpret_cast<const clang::RecordDecl *>(zig_record_decl); | 1468 | const clang::RecordDecl *record_decl = reinterpret_cast<const clang::RecordDecl *>(zig_record_decl); |
| 1464 | return bitcast(record_decl->getLocation()); | 1469 | return bitcast(record_decl->getLocation()); |
src/zig_clang.h+8| ... | @@ -733,6 +733,12 @@ enum ZigClangStringLiteral_StringKind { | ... | @@ -733,6 +733,12 @@ enum ZigClangStringLiteral_StringKind { |
| 733 | ZigClangStringLiteral_StringKind_UTF32, | 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 | ZIG_EXTERN_C struct ZigClangSourceLocation ZigClangSourceManager_getSpellingLoc(const struct ZigClangSourceManager *, | 742 | ZIG_EXTERN_C struct ZigClangSourceLocation ZigClangSourceManager_getSpellingLoc(const struct ZigClangSourceManager *, |
| 737 | struct ZigClangSourceLocation Loc); | 743 | struct ZigClangSourceLocation Loc); |
| 738 | ZIG_EXTERN_C const char *ZigClangSourceManager_getFilename(const struct ZigClangSourceManager *, | 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,6 +798,8 @@ ZIG_EXTERN_C const char *ZigClangDecl_getName_bytes_begin(const struct ZigClangD |
| 792 | ZIG_EXTERN_C enum ZigClangDeclKind ZigClangDecl_getKind(const struct ZigClangDecl *decl); | 798 | ZIG_EXTERN_C enum ZigClangDeclKind ZigClangDecl_getKind(const struct ZigClangDecl *decl); |
| 793 | ZIG_EXTERN_C const char *ZigClangDecl_getDeclKindName(const struct ZigClangDecl *decl); | 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 | ZIG_EXTERN_C bool ZigClangSourceLocation_eq(struct ZigClangSourceLocation a, struct ZigClangSourceLocation b); | 803 | ZIG_EXTERN_C bool ZigClangSourceLocation_eq(struct ZigClangSourceLocation a, struct ZigClangSourceLocation b); |
| 796 | 804 | ||
| 797 | ZIG_EXTERN_C const struct ZigClangTypedefNameDecl *ZigClangTypedefType_getDecl(const struct ZigClangTypedefType *); | 805 | ZIG_EXTERN_C const struct ZigClangTypedefNameDecl *ZigClangTypedefType_getDecl(const struct ZigClangTypedefType *); |