Skip to content

Commit 44aaae3

Browse files
committed
remove readdir_r on FreeBSD: it is deprecated, unused, and untested
1 parent e7650fd commit 44aaae3

File tree

3 files changed

+5
-36
lines changed

3 files changed

+5
-36
lines changed

src/tools/miri/src/shims/unix/freebsd/foreign_items.rs

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -153,12 +153,6 @@ pub trait EvalContextExt<'tcx>: crate::MiriInterpCxExt<'tcx> {
153153
let result = this.fstat(fd, buf)?;
154154
this.write_scalar(result, dest)?;
155155
}
156-
"readdir_r" | "readdir_r@FBSD_1.0" => {
157-
let [dirp, entry, result] =
158-
this.check_shim_sig_lenient(abi, CanonAbi::C, link_name, args)?;
159-
let result = this.macos_fbsd_readdir_r(dirp, entry, result)?;
160-
this.write_scalar(result, dest)?;
161-
}
162156
"readdir" | "readdir@FBSD_1.0" => {
163157
let [dirp] = this.check_shim_sig_lenient(abi, CanonAbi::C, link_name, args)?;
164158
let result = this.readdir64("dirent", dirp)?;

src/tools/miri/src/shims/unix/fs.rs

Lines changed: 4 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1030,17 +1030,15 @@ pub trait EvalContextExt<'tcx>: crate::MiriInterpCxExt<'tcx> {
10301030
interp_ok(Scalar::from_maybe_pointer(entry.unwrap_or_else(Pointer::null), this))
10311031
}
10321032

1033-
fn macos_fbsd_readdir_r(
1033+
fn macos_readdir_r(
10341034
&mut self,
10351035
dirp_op: &OpTy<'tcx>,
10361036
entry_op: &OpTy<'tcx>,
10371037
result_op: &OpTy<'tcx>,
10381038
) -> InterpResult<'tcx, Scalar> {
10391039
let this = self.eval_context_mut();
10401040

1041-
if !matches!(&this.tcx.sess.target.os, Os::MacOs | Os::FreeBsd) {
1042-
panic!("`macos_fbsd_readdir_r` should not be called on {}", this.tcx.sess.target.os);
1043-
}
1041+
this.assert_target_os(Os::MacOs, "readdir_r");
10441042

10451043
let dirp = this.read_target_usize(dirp_op)?;
10461044
let result_place = this.deref_pointer_as(result_op, this.machine.layouts.mut_raw_ptr)?;
@@ -1096,39 +1094,16 @@ pub trait EvalContextExt<'tcx>: crate::MiriInterpCxExt<'tcx> {
10961094

10971095
let file_type = this.file_type_to_d_type(dir_entry.file_type())?;
10981096

1099-
// Common fields.
11001097
this.write_int_fields_named(
11011098
&[
11021099
("d_reclen", 0),
11031100
("d_namlen", file_name_len.into()),
11041101
("d_type", file_type.into()),
1102+
("d_ino", ino.into()),
1103+
("d_seekoff", 0),
11051104
],
11061105
&entry_place,
11071106
)?;
1108-
// Special fields.
1109-
match this.tcx.sess.target.os {
1110-
Os::MacOs => {
1111-
#[rustfmt::skip]
1112-
this.write_int_fields_named(
1113-
&[
1114-
("d_ino", ino.into()),
1115-
("d_seekoff", 0),
1116-
],
1117-
&entry_place,
1118-
)?;
1119-
}
1120-
Os::FreeBsd => {
1121-
#[rustfmt::skip]
1122-
this.write_int_fields_named(
1123-
&[
1124-
("d_fileno", ino.into()),
1125-
("d_off", 0),
1126-
],
1127-
&entry_place,
1128-
)?;
1129-
}
1130-
_ => unreachable!(),
1131-
}
11321107
this.write_scalar(this.read_scalar(entry_op)?, &result_place)?;
11331108

11341109
Scalar::from_i32(0)

src/tools/miri/src/shims/unix/macos/foreign_items.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ pub trait EvalContextExt<'tcx>: crate::MiriInterpCxExt<'tcx> {
6969
"readdir_r" | "readdir_r$INODE64" => {
7070
let [dirp, entry, result] =
7171
this.check_shim_sig_lenient(abi, CanonAbi::C, link_name, args)?;
72-
let result = this.macos_fbsd_readdir_r(dirp, entry, result)?;
72+
let result = this.macos_readdir_r(dirp, entry, result)?;
7373
this.write_scalar(result, dest)?;
7474
}
7575
"realpath$DARWIN_EXTSN" => {

0 commit comments

Comments
 (0)