There is no longer a need to append the string `", ..."` to a functions
args as `...` is parsed as an argument and will appear in the functions
arguments.
-> io::Result<()> {
self.popen()?;
self.commasep(Inconsistent, &decl.inputs, |s, arg| s.print_arg(arg, false))?;
- if decl.c_variadic {
- self.s.word(", ...")?;
- }
self.pclose()?;
self.print_fn_output(decl)
--- /dev/null
+// Check that `fn foo(x: i32, ...)` does not print as `fn foo(x: i32, ..., ...)`.
+// See issue #58853.
+//
+// pp-exact
+#![feature(c_variadic)]
+
+extern "C" {
+ pub fn foo(x: i32, ...);
+}
+
+pub unsafe extern "C" fn bar(_: i32, mut ap: ...) -> usize {
+ ap.arg::<usize>()
+}
+
+fn main() { }