aboutsummaryrefslogtreecommitdiff
path: root/lib/compiler/aro
diff options
context:
space:
mode:
Diffstat (limited to 'lib/compiler/aro')
-rw-r--r--lib/compiler/aro/aro/Compilation.zig8
-rw-r--r--lib/compiler/aro/aro/Driver.zig10
-rw-r--r--lib/compiler/aro/aro/Parser.zig27
-rw-r--r--lib/compiler/aro/aro/Preprocessor.zig6
-rw-r--r--lib/compiler/aro/aro/Tokenizer.zig5
-rw-r--r--lib/compiler/aro/aro/Value.zig11
-rw-r--r--lib/compiler/aro/main.zig2
7 files changed, 36 insertions, 33 deletions
diff --git a/lib/compiler/aro/aro/Compilation.zig b/lib/compiler/aro/aro/Compilation.zig
index 09e4861d13..b3e4d5544d 100644
--- a/lib/compiler/aro/aro/Compilation.zig
+++ b/lib/compiler/aro/aro/Compilation.zig
@@ -2253,7 +2253,7 @@ test "addSourceFromBuffer" {
var arena: std.heap.ArenaAllocator = .init(std.testing.allocator);
defer arena.deinit();
var diagnostics: Diagnostics = .{ .output = .ignore };
- var comp = Compilation.init(std.testing.allocator, arena.allocator(), std.testing.io, &diagnostics, std.fs.cwd());
+ var comp = Compilation.init(std.testing.allocator, arena.allocator(), std.testing.io, &diagnostics, Io.Dir.cwd());
defer comp.deinit();
const source = try comp.addSourceFromBuffer("path", str);
@@ -2267,7 +2267,7 @@ test "addSourceFromBuffer" {
var arena: std.heap.ArenaAllocator = .init(allocator);
defer arena.deinit();
var diagnostics: Diagnostics = .{ .output = .ignore };
- var comp = Compilation.init(allocator, arena.allocator(), std.testing.io, &diagnostics, std.fs.cwd());
+ var comp = Compilation.init(allocator, arena.allocator(), std.testing.io, &diagnostics, Io.Dir.cwd());
defer comp.deinit();
_ = try comp.addSourceFromBuffer("path", "spliced\\\nbuffer\n");
@@ -2313,7 +2313,7 @@ test "addSourceFromBuffer - exhaustive check for carriage return elimination" {
var buf: [alphabet.len]u8 = @splat(alphabet[0]);
var diagnostics: Diagnostics = .{ .output = .ignore };
- var comp = Compilation.init(std.testing.allocator, arena.allocator(), std.testing.io, &diagnostics, std.fs.cwd());
+ var comp = Compilation.init(std.testing.allocator, arena.allocator(), std.testing.io, &diagnostics, Io.Dir.cwd());
defer comp.deinit();
var source_count: u32 = 0;
@@ -2341,7 +2341,7 @@ test "ignore BOM at beginning of file" {
const Test = struct {
fn run(arena: Allocator, buf: []const u8) !void {
var diagnostics: Diagnostics = .{ .output = .ignore };
- var comp = Compilation.init(std.testing.allocator, arena, std.testing.io, &diagnostics, std.fs.cwd());
+ var comp = Compilation.init(std.testing.allocator, arena, std.testing.io, &diagnostics, Io.Dir.cwd());
defer comp.deinit();
const source = try comp.addSourceFromBuffer("file.c", buf);
diff --git a/lib/compiler/aro/aro/Driver.zig b/lib/compiler/aro/aro/Driver.zig
index f933e3ce52..fec3cea0f8 100644
--- a/lib/compiler/aro/aro/Driver.zig
+++ b/lib/compiler/aro/aro/Driver.zig
@@ -1327,7 +1327,7 @@ fn processSource(
const dep_file_name = try d.getDepFileName(source, writer_buf[0..std.fs.max_name_bytes]);
const file = if (dep_file_name) |path|
- d.comp.cwd.createFile(path, .{}) catch |er|
+ d.comp.cwd.createFile(io, path, .{}) catch |er|
return d.fatal("unable to create dependency file '{s}': {s}", .{ path, errorDescription(er) })
else
Io.File.stdout();
@@ -1352,7 +1352,7 @@ fn processSource(
}
const file = if (d.output_name) |some|
- d.comp.cwd.createFile(some, .{}) catch |er|
+ d.comp.cwd.createFile(io, some, .{}) catch |er|
return d.fatal("unable to create output file '{s}': {s}", .{ some, errorDescription(er) })
else
Io.File.stdout();
@@ -1405,7 +1405,7 @@ fn processSource(
defer assembly.deinit(gpa);
if (d.only_preprocess_and_compile) {
- const out_file = d.comp.cwd.createFile(out_file_name, .{}) catch |er|
+ const out_file = d.comp.cwd.createFile(io, out_file_name, .{}) catch |er|
return d.fatal("unable to create output file '{s}': {s}", .{ out_file_name, errorDescription(er) });
defer out_file.close(io);
@@ -1419,7 +1419,7 @@ fn processSource(
// then assemble to out_file_name
var assembly_name_buf: [std.fs.max_name_bytes]u8 = undefined;
const assembly_out_file_name = try d.getRandomFilename(&assembly_name_buf, ".s");
- const out_file = d.comp.cwd.createFile(assembly_out_file_name, .{}) catch |er|
+ const out_file = d.comp.cwd.createFile(io, assembly_out_file_name, .{}) catch |er|
return d.fatal("unable to create output file '{s}': {s}", .{ assembly_out_file_name, errorDescription(er) });
defer out_file.close(io);
assembly.writeToFile(out_file) catch |er|
@@ -1455,7 +1455,7 @@ fn processSource(
};
defer obj.deinit();
- const out_file = d.comp.cwd.createFile(out_file_name, .{}) catch |er|
+ const out_file = d.comp.cwd.createFile(io, out_file_name, .{}) catch |er|
return d.fatal("unable to create output file '{s}': {s}", .{ out_file_name, errorDescription(er) });
defer out_file.close(io);
diff --git a/lib/compiler/aro/aro/Parser.zig b/lib/compiler/aro/aro/Parser.zig
index 4a89e0d460..fc21ee4d0b 100644
--- a/lib/compiler/aro/aro/Parser.zig
+++ b/lib/compiler/aro/aro/Parser.zig
@@ -1,4 +1,5 @@
const std = @import("std");
+const Io = std.Io;
const mem = std.mem;
const Allocator = mem.Allocator;
const assert = std.debug.assert;
@@ -211,7 +212,7 @@ fn checkIdentifierCodepointWarnings(p: *Parser, codepoint: u21, loc: Source.Loca
const prev_total = p.diagnostics.total;
var sf = std.heap.stackFallback(1024, p.comp.gpa);
- var allocating: std.Io.Writer.Allocating = .init(sf.get());
+ var allocating: Io.Writer.Allocating = .init(sf.get());
defer allocating.deinit();
if (!char_info.isC99IdChar(codepoint)) {
@@ -425,7 +426,7 @@ pub fn err(p: *Parser, tok_i: TokenIndex, diagnostic: Diagnostic, args: anytype)
if (p.diagnostics.effectiveKind(diagnostic) == .off) return;
var sf = std.heap.stackFallback(1024, p.comp.gpa);
- var allocating: std.Io.Writer.Allocating = .init(sf.get());
+ var allocating: Io.Writer.Allocating = .init(sf.get());
defer allocating.deinit();
p.formatArgs(&allocating.writer, diagnostic.fmt, args) catch return error.OutOfMemory;
@@ -447,7 +448,7 @@ pub fn err(p: *Parser, tok_i: TokenIndex, diagnostic: Diagnostic, args: anytype)
}, p.pp.expansionSlice(tok_i), true);
}
-fn formatArgs(p: *Parser, w: *std.Io.Writer, fmt: []const u8, args: anytype) !void {
+fn formatArgs(p: *Parser, w: *Io.Writer, fmt: []const u8, args: anytype) !void {
var i: usize = 0;
inline for (std.meta.fields(@TypeOf(args))) |arg_info| {
const arg = @field(args, arg_info.name);
@@ -476,13 +477,13 @@ fn formatArgs(p: *Parser, w: *std.Io.Writer, fmt: []const u8, args: anytype) !vo
try w.writeAll(fmt[i..]);
}
-fn formatTokenId(w: *std.Io.Writer, fmt: []const u8, tok_id: Tree.Token.Id) !usize {
+fn formatTokenId(w: *Io.Writer, fmt: []const u8, tok_id: Tree.Token.Id) !usize {
const i = Diagnostics.templateIndex(w, fmt, "{tok_id}");
try w.writeAll(tok_id.symbol());
return i;
}
-fn formatQualType(p: *Parser, w: *std.Io.Writer, fmt: []const u8, qt: QualType) !usize {
+fn formatQualType(p: *Parser, w: *Io.Writer, fmt: []const u8, qt: QualType) !usize {
const i = Diagnostics.templateIndex(w, fmt, "{qt}");
try w.writeByte('\'');
try qt.print(p.comp, w);
@@ -501,7 +502,7 @@ fn formatQualType(p: *Parser, w: *std.Io.Writer, fmt: []const u8, qt: QualType)
return i;
}
-fn formatResult(p: *Parser, w: *std.Io.Writer, fmt: []const u8, res: Result) !usize {
+fn formatResult(p: *Parser, w: *Io.Writer, fmt: []const u8, res: Result) !usize {
const i = Diagnostics.templateIndex(w, fmt, "{value}");
switch (res.val.opt_ref) {
.none => try w.writeAll("(none)"),
@@ -524,7 +525,7 @@ const Normalized = struct {
return .{ .str = str };
}
- pub fn format(ctx: Normalized, w: *std.Io.Writer, fmt: []const u8) !usize {
+ pub fn format(ctx: Normalized, w: *Io.Writer, fmt: []const u8) !usize {
const i = Diagnostics.templateIndex(w, fmt, "{normalized}");
var it: std.unicode.Utf8Iterator = .{
.bytes = ctx.str,
@@ -558,7 +559,7 @@ const Codepoint = struct {
return .{ .codepoint = codepoint };
}
- pub fn format(ctx: Codepoint, w: *std.Io.Writer, fmt: []const u8) !usize {
+ pub fn format(ctx: Codepoint, w: *Io.Writer, fmt: []const u8) !usize {
const i = Diagnostics.templateIndex(w, fmt, "{codepoint}");
try w.print("{X:0>4}", .{ctx.codepoint});
return i;
@@ -572,7 +573,7 @@ const Escaped = struct {
return .{ .str = str };
}
- pub fn format(ctx: Escaped, w: *std.Io.Writer, fmt: []const u8) !usize {
+ pub fn format(ctx: Escaped, w: *Io.Writer, fmt: []const u8) !usize {
const i = Diagnostics.templateIndex(w, fmt, "{s}");
try std.zig.stringEscape(ctx.str, w);
return i;
@@ -1453,7 +1454,7 @@ fn decl(p: *Parser) Error!bool {
return true;
}
-fn staticAssertMessage(p: *Parser, cond_node: Node.Index, maybe_message: ?Result, allocating: *std.Io.Writer.Allocating) !?[]const u8 {
+fn staticAssertMessage(p: *Parser, cond_node: Node.Index, maybe_message: ?Result, allocating: *Io.Writer.Allocating) !?[]const u8 {
const w = &allocating.writer;
const cond = cond_node.get(&p.tree);
@@ -1526,7 +1527,7 @@ fn staticAssert(p: *Parser) Error!bool {
} else {
if (!res.val.toBool(p.comp)) {
var sf = std.heap.stackFallback(1024, gpa);
- var allocating: std.Io.Writer.Allocating = .init(sf.get());
+ var allocating: Io.Writer.Allocating = .init(sf.get());
defer allocating.deinit();
if (p.staticAssertMessage(res_node, str, &allocating) catch return error.OutOfMemory) |message| {
@@ -9719,7 +9720,7 @@ fn primaryExpr(p: *Parser) Error!?Result {
qt = some.qt;
} else if (p.func.qt) |func_qt| {
var sf = std.heap.stackFallback(1024, gpa);
- var allocating: std.Io.Writer.Allocating = .init(sf.get());
+ var allocating: Io.Writer.Allocating = .init(sf.get());
defer allocating.deinit();
func_qt.printNamed(p.tokSlice(p.func.name), p.comp, &allocating.writer) catch return error.OutOfMemory;
@@ -10608,7 +10609,7 @@ test "Node locations" {
const arena = arena_state.allocator();
var diagnostics: Diagnostics = .{ .output = .ignore };
- var comp = Compilation.init(std.testing.allocator, arena, std.testing.io, &diagnostics, std.fs.cwd());
+ var comp = Compilation.init(std.testing.allocator, arena, std.testing.io, &diagnostics, Io.Dir.cwd());
defer comp.deinit();
const file = try comp.addSourceFromBuffer("file.c",
diff --git a/lib/compiler/aro/aro/Preprocessor.zig b/lib/compiler/aro/aro/Preprocessor.zig
index d47727cbf0..e8343dc83a 100644
--- a/lib/compiler/aro/aro/Preprocessor.zig
+++ b/lib/compiler/aro/aro/Preprocessor.zig
@@ -3900,7 +3900,7 @@ test "Preserve pragma tokens sometimes" {
defer arena.deinit();
var diagnostics: Diagnostics = .{ .output = .ignore };
- var comp = Compilation.init(gpa, arena.allocator(), std.testing.io, &diagnostics, std.fs.cwd());
+ var comp = Compilation.init(gpa, arena.allocator(), std.testing.io, &diagnostics, Io.Dir.cwd());
defer comp.deinit();
try comp.addDefaultPragmaHandlers();
@@ -3967,7 +3967,7 @@ test "destringify" {
var arena: std.heap.ArenaAllocator = .init(gpa);
defer arena.deinit();
var diagnostics: Diagnostics = .{ .output = .ignore };
- var comp = Compilation.init(gpa, arena.allocator(), std.testing.io, &diagnostics, std.fs.cwd());
+ var comp = Compilation.init(gpa, arena.allocator(), std.testing.io, &diagnostics, Io.Dir.cwd());
defer comp.deinit();
var pp = Preprocessor.init(&comp, .default);
defer pp.deinit();
@@ -4030,7 +4030,7 @@ test "Include guards" {
const arena = arena_state.allocator();
var diagnostics: Diagnostics = .{ .output = .ignore };
- var comp = Compilation.init(gpa, arena, std.testing.io, &diagnostics, std.fs.cwd());
+ var comp = Compilation.init(gpa, arena, std.testing.io, &diagnostics, Io.Dir.cwd());
defer comp.deinit();
var pp = Preprocessor.init(&comp, .default);
defer pp.deinit();
diff --git a/lib/compiler/aro/aro/Tokenizer.zig b/lib/compiler/aro/aro/Tokenizer.zig
index c497c5ce82..198d49364a 100644
--- a/lib/compiler/aro/aro/Tokenizer.zig
+++ b/lib/compiler/aro/aro/Tokenizer.zig
@@ -1,4 +1,5 @@
const std = @import("std");
+const Io = std.Io;
const assert = std.debug.assert;
const Compilation = @import("Compilation.zig");
@@ -2326,7 +2327,7 @@ test "Tokenizer fuzz test" {
fn testOne(_: @This(), input_bytes: []const u8) anyerror!void {
var arena: std.heap.ArenaAllocator = .init(std.testing.allocator);
defer arena.deinit();
- var comp = Compilation.init(std.testing.allocator, arena.allocator(), std.testing.io, undefined, std.fs.cwd());
+ var comp = Compilation.init(std.testing.allocator, arena.allocator(), std.testing.io, undefined, Io.Dir.cwd());
defer comp.deinit();
const source = try comp.addSourceFromBuffer("fuzz.c", input_bytes);
@@ -2351,7 +2352,7 @@ test "Tokenizer fuzz test" {
fn expectTokensExtra(contents: []const u8, expected_tokens: []const Token.Id, langopts: ?LangOpts) !void {
var arena: std.heap.ArenaAllocator = .init(std.testing.allocator);
defer arena.deinit();
- var comp = Compilation.init(std.testing.allocator, arena.allocator(), std.testing.io, undefined, std.fs.cwd());
+ var comp = Compilation.init(std.testing.allocator, arena.allocator(), std.testing.io, undefined, Io.Dir.cwd());
defer comp.deinit();
if (langopts) |provided| {
comp.langopts = provided;
diff --git a/lib/compiler/aro/aro/Value.zig b/lib/compiler/aro/aro/Value.zig
index 25a2d1824f..14949ce03b 100644
--- a/lib/compiler/aro/aro/Value.zig
+++ b/lib/compiler/aro/aro/Value.zig
@@ -1,4 +1,5 @@
const std = @import("std");
+const Io = std.Io;
const assert = std.debug.assert;
const BigIntConst = std.math.big.int.Const;
const BigIntMutable = std.math.big.int.Mutable;
@@ -80,7 +81,7 @@ test "minUnsignedBits" {
defer arena_state.deinit();
const arena = arena_state.allocator();
- var comp = Compilation.init(std.testing.allocator, arena, std.testing.io, undefined, std.fs.cwd());
+ var comp = Compilation.init(std.testing.allocator, arena, std.testing.io, undefined, Io.Dir.cwd());
defer comp.deinit();
const target_query = try std.Target.Query.parse(.{ .arch_os_abi = "x86_64-linux-gnu" });
comp.target = .fromZigTarget(try std.zig.system.resolveTargetQuery(std.testing.io, target_query));
@@ -119,7 +120,7 @@ test "minSignedBits" {
defer arena_state.deinit();
const arena = arena_state.allocator();
- var comp = Compilation.init(std.testing.allocator, arena, std.testing.io, undefined, std.fs.cwd());
+ var comp = Compilation.init(std.testing.allocator, arena, std.testing.io, undefined, Io.Dir.cwd());
defer comp.deinit();
const target_query = try std.Target.Query.parse(.{ .arch_os_abi = "x86_64-linux-gnu" });
comp.target = .fromZigTarget(try std.zig.system.resolveTargetQuery(std.testing.io, target_query));
@@ -1080,7 +1081,7 @@ const NestedPrint = union(enum) {
},
};
-pub fn printPointer(offset: Value, base: []const u8, comp: *const Compilation, w: *std.Io.Writer) std.Io.Writer.Error!void {
+pub fn printPointer(offset: Value, base: []const u8, comp: *const Compilation, w: *Io.Writer) Io.Writer.Error!void {
try w.writeByte('&');
try w.writeAll(base);
if (!offset.isZero(comp)) {
@@ -1089,7 +1090,7 @@ pub fn printPointer(offset: Value, base: []const u8, comp: *const Compilation, w
}
}
-pub fn print(v: Value, qt: QualType, comp: *const Compilation, w: *std.Io.Writer) std.Io.Writer.Error!?NestedPrint {
+pub fn print(v: Value, qt: QualType, comp: *const Compilation, w: *Io.Writer) Io.Writer.Error!?NestedPrint {
if (qt.is(comp, .bool)) {
try w.writeAll(if (v.isZero(comp)) "false" else "true");
return null;
@@ -1116,7 +1117,7 @@ pub fn print(v: Value, qt: QualType, comp: *const Compilation, w: *std.Io.Writer
return null;
}
-pub fn printString(bytes: []const u8, qt: QualType, comp: *const Compilation, w: *std.Io.Writer) std.Io.Writer.Error!void {
+pub fn printString(bytes: []const u8, qt: QualType, comp: *const Compilation, w: *Io.Writer) Io.Writer.Error!void {
const size: Compilation.CharUnitSize = @enumFromInt(qt.childType(comp).sizeof(comp));
const without_null = bytes[0 .. bytes.len - @intFromEnum(size)];
try w.writeByte('"');
diff --git a/lib/compiler/aro/main.zig b/lib/compiler/aro/main.zig
index 66c8add4a3..d1be1dbb21 100644
--- a/lib/compiler/aro/main.zig
+++ b/lib/compiler/aro/main.zig
@@ -59,7 +59,7 @@ pub fn main() u8 {
} },
};
- var comp = Compilation.initDefault(gpa, arena, io, &diagnostics, std.fs.cwd()) catch |er| switch (er) {
+ var comp = Compilation.initDefault(gpa, arena, io, &diagnostics, Io.Dir.cwd()) catch |er| switch (er) {
error.OutOfMemory => {
std.debug.print("out of memory\n", .{});
if (fast_exit) process.exit(1);