Skip to documentation
SLOP

tiny.tldr.Diagnostics

Reference tiny.tldr Diagnostics

Defined in model.

API (18)

Actions

Public operations.

Types and contracts

Public types and contracts.

Fields and members

Public fields and members.

No direct callersNo direct callsmodelDiagnostics
Static calls · unresolved targets: unknown · external targets: unknown.

Source

Source: lib/tldr/src/model.zig:267

zig
pub const Diagnostics = struct {    pub const max_recorded_undefined_symbols = 8;    first_undefined_symbol: ?UndefinedSymbol = null,    first_unsupported_relocation: ?UnsupportedRelocation = null,    first_unsupported_input_format: ?UnsupportedInputFormat = null,    undefined_symbols: [max_recorded_undefined_symbols]UndefinedSymbol = undefined,    undefined_symbol_count: usize = 0,    pub const UndefinedSymbol = struct {        name: []const u8,        input_name: []const u8,    };    pub const UnsupportedRelocation = struct {        input_name: []const u8,        section_name: []const u8,        symbol_name: []const u8,        relocation_type: u32,    };    pub const UnsupportedInputFormat = struct {        input_name: []const u8,        member_name: ?[]const u8 = null,        input_format: ObjectFormat,        target_format: ObjectFormat,    };    pub const UndefinedSymbols = struct {        symbols: []const UndefinedSymbol,        hidden_count: usize = 0,    };    pub const LinkFailure = union(enum) {        undefined_symbols: UndefinedSymbols,        undefined_symbol: UndefinedSymbol,        unsupported_relocation: UnsupportedRelocation,        unsupported_input_format: UnsupportedInputFormat,        generic: Error,    };    pub fn clear(self: *Diagnostics) void {        self.* = .{};    }    pub fn recordUndefinedSymbol(        self: *Diagnostics,        input_name: []const u8,        symbol_name: []const u8,    ) void {        if (self.undefined_symbol_count < self.undefined_symbols.len) {            self.undefined_symbols[self.undefined_symbol_count] = .{                .name = symbol_name,                .input_name = input_name,            };        }        self.undefined_symbol_count += 1;        if (self.first_undefined_symbol == null) {            self.first_undefined_symbol = .{                .name = symbol_name,                .input_name = input_name,            };        }    }    pub fn recordedUndefinedSymbols(self: *const Diagnostics) []const UndefinedSymbol {        return self.undefined_symbols[0..@min(self.undefined_symbol_count, self.undefined_symbols.len)];    }    pub fn recordUnsupportedRelocation(        self: *Diagnostics,        input_name: []const u8,        section_name: []const u8,        symbol_name: []const u8,        relocation_type: u32,    ) void {        if (self.first_unsupported_relocation == null) {            self.first_unsupported_relocation = .{                .input_name = input_name,                .section_name = section_name,                .symbol_name = symbol_name,                .relocation_type = relocation_type,            };        }    }    pub fn recordUnsupportedInputFormat(        self: *Diagnostics,        input_name: []const u8,        input_format: ObjectFormat,        target_format: ObjectFormat,    ) void {        if (self.first_unsupported_input_format == null) {            self.first_unsupported_input_format = .{                .input_name = input_name,                .input_format = input_format,                .target_format = target_format,            };        }    }    pub fn recordUnsupportedArchiveMemberFormat(        self: *Diagnostics,        input_name: []const u8,        member_name: []const u8,        input_format: ObjectFormat,        target_format: ObjectFormat,    ) void {        if (self.first_unsupported_input_format == null) {            self.first_unsupported_input_format = .{                .input_name = input_name,                .member_name = member_name,                .input_format = input_format,                .target_format = target_format,            };        }    }    pub fn linkFailure(self: *const Diagnostics, err: Error) LinkFailure {        if (err == error.UndefinedSymbol) {            const undefined_symbols = self.recordedUndefinedSymbols();            if (undefined_symbols.len > 1) {                return .{ .undefined_symbols = .{                    .symbols = undefined_symbols,                    .hidden_count = self.undefined_symbol_count - undefined_symbols.len,                } };            }            if (self.first_undefined_symbol) |undefined_symbol| {                return .{ .undefined_symbol = undefined_symbol };            }        }        if (err == error.UnsupportedRelocation) {            if (self.first_unsupported_relocation) |relocation| {                return .{ .unsupported_relocation = relocation };            }        }        if (err == error.UnsupportedFormat) {            if (self.first_unsupported_input_format) |unsupported| {                return .{ .unsupported_input_format = unsupported };            }        }        return .{ .generic = err };    }};

Source: lib/tldr/src/root.zig:70

zig
pub const Diagnostics = model.Diagnostics;
Called byCallstest sourcelib.tldr.src.formats.cofftest: COFF linker records unsupported...test sourcelib.tldr.src.formats.elf.testtest: ELF linker diagnoses extracted ...test sourcelib.tldr.src.formats.machotest: Mach-O linker records unsupport...test sourcelib.tldr.src.linktest: link rejects non-target object ...test sourcelib.tldr.src.modeltest: diagnostics report multiple und...+3 moreDiagnosticsrecordedUndefinedSymbolsDiagnosticslinkFailure
Static calls · unresolved targets: 0 · external targets: 0.
Called byCallsNo direct callstest sourcelib.tldr.src.modeltest: diagnostics report multiple und...DiagnosticsrecordUndefinedSymbol
Static calls · unresolved targets: 0 · external targets: 0.
Called byCallsNo direct callstest sourcelib.tldr.src.modeltest: diagnostics report unsupported ...DiagnosticsrecordUnsupportedArchiveMemberFormat
Static calls · unresolved targets: 0 · external targets: 0.
Called byCallsNo direct callstest sourcelib.tldr.src.modeltest: diagnostics report unsupported ...DiagnosticsrecordUnsupportedInputFormat
Static calls · unresolved targets: 0 · external targets: 0.
Called byCallsNo direct callstest sourcelib.tldr.src.modeltest: diagnostics report unsupported ...DiagnosticsrecordUnsupportedRelocation
Static calls · unresolved targets: 0 · external targets: 0.
Called byCallsNo direct callstest sourcelib.tldr.src.formats.elf.testtest: ELF linker records undefined re...DiagnosticslinkFailureDiagnosticsrecordedUndefinedSymbols
Static calls · unresolved targets: 0 · external targets: 0.

Complete caller list for Diagnostics.linkFailure

8 direct callers.

Audit

Definitions14
Public names28
Members22
Version26.7.0
Revisiondaab053ee433