diff --git a/src/Sema.zig b/src/Sema.zig index 38d59f4f39..0fcc914596 100644 --- a/src/Sema.zig +++ b/src/Sema.zig @@ -12633,6 +12633,10 @@ fn zirEmbedFile(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!A const operand_src: LazySrcLoc = .{ .node_offset_builtin_call_arg0 = inst_data.src_node }; const name = try sema.resolveConstString(block, operand_src, inst_data.operand, "file path name must be comptime-known"); + if (name.len == 0) { + return sema.fail(block, operand_src, "file path name cannot be empty", .{}); + } + const embed_file = mod.embedFile(block.getFileScope(mod), name) catch |err| switch (err) { error.ImportOutsidePkgPath => { return sema.fail(block, operand_src, "embed of file outside package path: '{s}'", .{name}); diff --git a/test/cases/compile_errors/@embedFile_with_empty_path.zig b/test/cases/compile_errors/@embedFile_with_empty_path.zig new file mode 100644 index 0000000000..305e8a74cc --- /dev/null +++ b/test/cases/compile_errors/@embedFile_with_empty_path.zig @@ -0,0 +1,11 @@ +const resource = @embedFile(""); + +export fn entry() usize { + return @sizeOf(@TypeOf(resource)); +} + +// error +// backend=stage2 +// target=native +// +// :1:29: error: file path name cannot be empty