| author | |
| committer | |
| log | 101aac92c258af9f25520c36f06b2ce8335d7f9a |
| tree | 7ff9258c3b713734519f6395b3fa9f23ccff2d07 |
| parent | 1c4c826a505b3f4863a0125f7915273ad2e7c1c0 |
9 files changed, 40 insertions(+), 15 deletions(-)
lib/std/c.zig+12-4| ... | ... | @@ -219,7 +219,11 @@ pub extern "c" fn utimes(path: [*:0]const u8, times: *[2]c.timeval) c_int; |
| 219 | 219 | pub extern "c" fn utimensat(dirfd: c.fd_t, pathname: [*:0]const u8, times: *[2]c.timespec, flags: u32) c_int; |
| 220 | 220 | pub extern "c" fn futimens(fd: c.fd_t, times: *const [2]c.timespec) c_int; |
| 221 | 221 | |
| 222 | pub extern "c" fn pthread_create(noalias newthread: *pthread_t, noalias attr: ?*const c.pthread_attr_t, start_routine: fn (?*anyopaque) callconv(.C) ?*anyopaque, noalias arg: ?*anyopaque) c.E; | |
| 222 | pub extern "c" fn pthread_create(noalias newthread: *pthread_t, noalias attr: ?*const c.pthread_attr_t, start_routine: PThreadStartFn, noalias arg: ?*anyopaque) c.E; | |
| 223 | const PThreadStartFn = if (builtin.zig_backend == .stage1) | |
| 224 | fn (?*anyopaque) callconv(.C) ?*anyopaque | |
| 225 | else | |
| 226 | *const fn (?*anyopaque) callconv(.C) ?*anyopaque; | |
| 223 | 227 | pub extern "c" fn pthread_attr_init(attr: *c.pthread_attr_t) c.E; |
| 224 | 228 | pub extern "c" fn pthread_attr_setstack(attr: *c.pthread_attr_t, stackaddr: *anyopaque, stacksize: usize) c.E; |
| 225 | 229 | pub extern "c" fn pthread_attr_setstacksize(attr: *c.pthread_attr_t, stacksize: usize) c.E; |
| ... | ... | @@ -229,10 +233,14 @@ pub extern "c" fn pthread_self() pthread_t; |
| 229 | 233 | pub extern "c" fn pthread_join(thread: pthread_t, arg_return: ?*?*anyopaque) c.E; |
| 230 | 234 | pub extern "c" fn pthread_detach(thread: pthread_t) c.E; |
| 231 | 235 | pub extern "c" fn pthread_atfork( |
| 232 | prepare: ?fn () callconv(.C) void, | |
| 233 | parent: ?fn () callconv(.C) void, | |
| 234 | child: ?fn () callconv(.C) void, | |
| 236 | prepare: ?PThreadForkFn, | |
| 237 | parent: ?PThreadForkFn, | |
| 238 | child: ?PThreadForkFn, | |
| 235 | 239 | ) c_int; |
| 240 | const PThreadForkFn = if (builtin.zig_backend == .stage1) | |
| 241 | fn () callconv(.C) void | |
| 242 | else | |
| 243 | *const fn () callconv(.C) void; | |
| 236 | 244 | pub extern "c" fn pthread_key_create(key: *c.pthread_key_t, destructor: ?fn (value: *anyopaque) callconv(.C) void) c.E; |
| 237 | 245 | pub extern "c" fn pthread_key_delete(key: c.pthread_key_t) c.E; |
| 238 | 246 | pub extern "c" fn pthread_getspecific(key: c.pthread_key_t) ?*anyopaque; |
lib/std/c/tokenizer.zig+5-1| ... | ... | @@ -126,7 +126,11 @@ pub const Token = struct { |
| 126 | 126 | Keyword_error, |
| 127 | 127 | Keyword_pragma, |
| 128 | 128 | |
| 129 | pub fn symbol(id: std.meta.Tag(Id)) []const u8 { | |
| 129 | pub fn symbol(id: Id) []const u8 { | |
| 130 | return symbolName(id); | |
| 131 | } | |
| 132 | ||
| 133 | pub fn symbolName(id: std.meta.Tag(Id)) []const u8 { | |
| 130 | 134 | return switch (id) { |
| 131 | 135 | .Invalid => "Invalid", |
| 132 | 136 | .Eof => "Eof", |
src/clang.zig+8-3| ... | ... | @@ -161,7 +161,12 @@ pub const ASTUnit = opaque { |
| 161 | 161 | extern fn ZigClangASTUnit_getSourceManager(*ASTUnit) *SourceManager; |
| 162 | 162 | |
| 163 | 163 | pub const visitLocalTopLevelDecls = ZigClangASTUnit_visitLocalTopLevelDecls; |
| 164 | extern fn ZigClangASTUnit_visitLocalTopLevelDecls(*ASTUnit, context: ?*anyopaque, Fn: ?fn (?*anyopaque, *const Decl) callconv(.C) bool) bool; | |
| 164 | extern fn ZigClangASTUnit_visitLocalTopLevelDecls(*ASTUnit, context: ?*anyopaque, Fn: ?VisitorFn) bool; | |
| 165 | ||
| 166 | const VisitorFn = if (@import("builtin").zig_backend == .stage1) | |
| 167 | fn (?*anyopaque, *const Decl) callconv(.C) bool | |
| 168 | else | |
| 169 | *const fn (?*anyopaque, *const Decl) callconv(.C) bool; | |
| 165 | 170 | |
| 166 | 171 | pub const getLocalPreprocessingEntities_begin = ZigClangASTUnit_getLocalPreprocessingEntities_begin; |
| 167 | 172 | extern fn ZigClangASTUnit_getLocalPreprocessingEntities_begin(*ASTUnit) PreprocessingRecord.iterator; |
| ... | ... | @@ -490,8 +495,8 @@ pub const FloatingLiteral = opaque { |
| 490 | 495 | pub const getValueAsApproximateDouble = ZigClangFloatingLiteral_getValueAsApproximateDouble; |
| 491 | 496 | extern fn ZigClangFloatingLiteral_getValueAsApproximateDouble(*const FloatingLiteral) f64; |
| 492 | 497 | |
| 493 | pub const getBeginLoc = ZigClangIntegerLiteral_getBeginLoc; | |
| 494 | extern fn ZigClangIntegerLiteral_getBeginLoc(*const FloatingLiteral) SourceLocation; | |
| 498 | pub const getBeginLoc = ZigClangFloatingLiteral_getBeginLoc; | |
| 499 | extern fn ZigClangFloatingLiteral_getBeginLoc(*const FloatingLiteral) SourceLocation; | |
| 495 | 500 | |
| 496 | 501 | pub const getRawSemantics = ZigClangFloatingLiteral_getRawSemantics; |
| 497 | 502 | extern fn ZigClangFloatingLiteral_getRawSemantics(*const FloatingLiteral) APFloatBaseSemantics; |
src/codegen/llvm.zig+1-1| ... | ... | @@ -7220,7 +7220,7 @@ pub const FuncGen = struct { |
| 7220 | 7220 | return self.builder.buildInBoundsGEP(base_ptr, &indices, indices.len, ""); |
| 7221 | 7221 | } |
| 7222 | 7222 | |
| 7223 | fn getIntrinsic(self: *FuncGen, name: []const u8, types: []*const llvm.Type) *const llvm.Value { | |
| 7223 | fn getIntrinsic(self: *FuncGen, name: []const u8, types: []const *const llvm.Type) *const llvm.Value { | |
| 7224 | 7224 | const id = llvm.lookupIntrinsicID(name.ptr, name.len); |
| 7225 | 7225 | assert(id != 0); |
| 7226 | 7226 | return self.llvmModule().getIntrinsicDeclaration(id, types.ptr, types.len); |
src/codegen/llvm/bindings.zig+2-2| ... | ... | @@ -60,7 +60,7 @@ pub const Context = opaque { |
| 60 | 60 | Packed: Bool, |
| 61 | 61 | ) *const Type; |
| 62 | 62 | |
| 63 | const structCreateNamed = LLVMStructCreateNamed; | |
| 63 | pub const structCreateNamed = LLVMStructCreateNamed; | |
| 64 | 64 | extern fn LLVMStructCreateNamed(C: *const Context, Name: [*:0]const u8) *const Type; |
| 65 | 65 | |
| 66 | 66 | pub const constString = LLVMConstStringInContext; |
| ... | ... | @@ -320,7 +320,7 @@ pub const Module = opaque { |
| 320 | 320 | extern fn LLVMGetNamedFunction(*const Module, Name: [*:0]const u8) ?*const Value; |
| 321 | 321 | |
| 322 | 322 | pub const getIntrinsicDeclaration = LLVMGetIntrinsicDeclaration; |
| 323 | extern fn LLVMGetIntrinsicDeclaration(Mod: *const Module, ID: c_uint, ParamTypes: ?[*]*const Type, ParamCount: usize) *const Value; | |
| 323 | extern fn LLVMGetIntrinsicDeclaration(Mod: *const Module, ID: c_uint, ParamTypes: ?[*]const *const Type, ParamCount: usize) *const Value; | |
| 324 | 324 | |
| 325 | 325 | pub const printToString = LLVMPrintModuleToString; |
| 326 | 326 | extern fn LLVMPrintModuleToString(*const Module) [*:0]const u8; |
src/translate_c.zig+5-3| ... | ... | @@ -368,11 +368,13 @@ pub fn translate( |
| 368 | 368 | resources_path: [*:0]const u8, |
| 369 | 369 | zig_is_stage1: bool, |
| 370 | 370 | ) !std.zig.Ast { |
| 371 | // TODO stage2 bug | |
| 372 | var tmp = errors; | |
| 371 | 373 | const ast_unit = clang.LoadFromCommandLine( |
| 372 | 374 | args_begin, |
| 373 | 375 | args_end, |
| 374 | &errors.ptr, | |
| 375 | &errors.len, | |
| 376 | &tmp.ptr, | |
| 377 | &tmp.len, | |
| 376 | 378 | resources_path, |
| 377 | 379 | ) orelse { |
| 378 | 380 | if (errors.len == 0) return error.ASTUnitFailure; |
| ... | ... | @@ -5325,7 +5327,7 @@ const MacroCtx = struct { |
| 5325 | 5327 | try self.fail( |
| 5326 | 5328 | c, |
| 5327 | 5329 | "unable to translate C expr: expected '{s}' instead got '{s}'", |
| 5328 | .{ CToken.Id.symbol(expected_id), next_id.symbol() }, | |
| 5330 | .{ CToken.Id.symbolName(expected_id), next_id.symbol() }, | |
| 5329 | 5331 | ); |
| 5330 | 5332 | return error.ParseError; |
| 5331 | 5333 | } |
src/translate_c/ast.zig+1-1| ... | ... | @@ -779,7 +779,7 @@ const TokenTag = std.zig.Token.Tag; |
| 779 | 779 | |
| 780 | 780 | const Context = struct { |
| 781 | 781 | gpa: Allocator, |
| 782 | buf: std.ArrayList(u8) = .{}, | |
| 782 | buf: std.ArrayList(u8), | |
| 783 | 783 | nodes: std.zig.Ast.NodeList = .{}, |
| 784 | 784 | extra_data: std.ArrayListUnmanaged(std.zig.Ast.Node.Index) = .{}, |
| 785 | 785 | tokens: std.zig.Ast.TokenList = .{}, |
src/zig_clang.cpp+5| ... | ... | @@ -2706,6 +2706,11 @@ double ZigClangFloatingLiteral_getValueAsApproximateDouble(const ZigClangFloatin |
| 2706 | 2706 | return casted->getValueAsApproximateDouble(); |
| 2707 | 2707 | } |
| 2708 | 2708 | |
| 2709 | struct ZigClangSourceLocation ZigClangFloatingLiteral_getBeginLoc(const struct ZigClangFloatingLiteral *self) { | |
| 2710 | auto casted = reinterpret_cast<const clang::FloatingLiteral *>(self); | |
| 2711 | return bitcast(casted->getBeginLoc()); | |
| 2712 | } | |
| 2713 | ||
| 2709 | 2714 | ZigClangAPFloatBase_Semantics ZigClangFloatingLiteral_getRawSemantics(const ZigClangFloatingLiteral *self) { |
| 2710 | 2715 | auto casted = reinterpret_cast<const clang::FloatingLiteral *>(self); |
| 2711 | 2716 | return static_cast<ZigClangAPFloatBase_Semantics>(casted->getRawSemantics()); |
src/zig_clang.h+1| ... | ... | @@ -1245,6 +1245,7 @@ ZIG_EXTERN_C struct ZigClangSourceLocation ZigClangDeclStmt_getBeginLoc(const st |
| 1245 | 1245 | ZIG_EXTERN_C unsigned ZigClangAPFloat_convertToHexString(const struct ZigClangAPFloat *self, char *DST, |
| 1246 | 1246 | unsigned HexDigits, bool UpperCase, enum ZigClangAPFloat_roundingMode RM); |
| 1247 | 1247 | ZIG_EXTERN_C double ZigClangFloatingLiteral_getValueAsApproximateDouble(const ZigClangFloatingLiteral *self); |
| 1248 | ZIG_EXTERN_C struct ZigClangSourceLocation ZigClangFloatingLiteral_getBeginLoc(const struct ZigClangFloatingLiteral *); | |
| 1248 | 1249 | ZIG_EXTERN_C ZigClangAPFloatBase_Semantics ZigClangFloatingLiteral_getRawSemantics(const ZigClangFloatingLiteral *self); |
| 1249 | 1250 | |
| 1250 | 1251 | ZIG_EXTERN_C enum ZigClangStringLiteral_StringKind ZigClangStringLiteral_getKind(const struct ZigClangStringLiteral *self); |