authorgravatar for codroid@gmail.comhryx <codroid@gmail.com> 2019-05-26 17:05:49-07:00
committergravatar for codroid@gmail.comhryx <codroid@gmail.com> 2019-05-26 17:05:49-07:00
logc79b8aeaef860528da645b956f21c8d95d05880d
treed6e3dd85bee6a0c94f09eac6813ecfad9c2c393b
parent99f0b28d3946a1110df235bb8d3b1918afc08df8
signaturelock-open Commit is signed but in an unrecognized format.

var decl: threadlocal


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;
870870
871pub extern fn ZigClangDeclStmt_decl_begin(self: *const ZigClangDeclStmt) ZigClangDeclStmt_const_decl_iterator;871pub extern fn ZigClangDeclStmt_decl_begin(self: *const ZigClangDeclStmt) ZigClangDeclStmt_const_decl_iterator;
872pub extern fn ZigClangDeclStmt_decl_end(self: *const ZigClangDeclStmt) ZigClangDeclStmt_const_decl_iterator;872pub extern fn ZigClangDeclStmt_decl_end(self: *const ZigClangDeclStmt) ZigClangDeclStmt_const_decl_iterator;
873
874pub extern fn ZigClangVarDecl_getTLSKind(self: ?*const struct_ZigClangVarDecl) ZigClangVarDecl_TLSKind;
875pub 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.*);
383383
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 // null386 else
387 // else387 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}
14611461
1462enum ZigClangVarDecl_TLSKind ZigClangVarDecl_getTLSKind(const ZigClangVarDecl *self) {
1463 auto casted = reinterpret_cast<const clang::VarDecl *>(self);
1464 return (ZigClangVarDecl_TLSKind)casted->getTLSKind();
1465}
1466
1462ZigClangSourceLocation ZigClangRecordDecl_getLocation(const ZigClangRecordDecl *zig_record_decl) {1467ZigClangSourceLocation 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};
735735
736enum ZigClangVarDecl_TLSKind {
737 ZigClangVarDecl_TLSKind_None,
738 ZigClangVarDecl_TLSKind_Static,
739 ZigClangVarDecl_TLSKind_Dynamic,
740};
741
736ZIG_EXTERN_C struct ZigClangSourceLocation ZigClangSourceManager_getSpellingLoc(const struct ZigClangSourceManager *,742ZIG_EXTERN_C struct ZigClangSourceLocation ZigClangSourceManager_getSpellingLoc(const struct ZigClangSourceManager *,
737 struct ZigClangSourceLocation Loc);743 struct ZigClangSourceLocation Loc);
738ZIG_EXTERN_C const char *ZigClangSourceManager_getFilename(const struct ZigClangSourceManager *,744ZIG_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
792ZIG_EXTERN_C enum ZigClangDeclKind ZigClangDecl_getKind(const struct ZigClangDecl *decl);798ZIG_EXTERN_C enum ZigClangDeclKind ZigClangDecl_getKind(const struct ZigClangDecl *decl);
793ZIG_EXTERN_C const char *ZigClangDecl_getDeclKindName(const struct ZigClangDecl *decl);799ZIG_EXTERN_C const char *ZigClangDecl_getDeclKindName(const struct ZigClangDecl *decl);
794800
801ZIG_EXTERN_C enum ZigClangVarDecl_TLSKind ZigClangVarDecl_getTLSKind(const struct ZigClangVarDecl *var_decl);
802
795ZIG_EXTERN_C bool ZigClangSourceLocation_eq(struct ZigClangSourceLocation a, struct ZigClangSourceLocation b);803ZIG_EXTERN_C bool ZigClangSourceLocation_eq(struct ZigClangSourceLocation a, struct ZigClangSourceLocation b);
796804
797ZIG_EXTERN_C const struct ZigClangTypedefNameDecl *ZigClangTypedefType_getDecl(const struct ZigClangTypedefType *);805ZIG_EXTERN_C const struct ZigClangTypedefNameDecl *ZigClangTypedefType_getDecl(const struct ZigClangTypedefType *);