-error: lifetime may not live long enough
- --> $DIR/variadic-ffi-4.rs:8:5
- |
-LL | pub unsafe extern "C" fn no_escape0<'f>(_: usize, ap: ...) -> VaListImpl<'f> {
- | -- -- has type `core::ffi::VaListImpl<'1>`
- | |
- | lifetime `'f` defined here
-LL | ap
- | ^^ function was supposed to return data with lifetime `'1` but it is returning data with lifetime `'f`
-
-error: lifetime may not live long enough
- --> $DIR/variadic-ffi-4.rs:8:5
- |
-LL | pub unsafe extern "C" fn no_escape0<'f>(_: usize, ap: ...) -> VaListImpl<'f> {
- | -- -- has type `core::ffi::VaListImpl<'1>`
- | |
- | lifetime `'f` defined here
-LL | ap
- | ^^ returning this value requires that `'1` must outlive `'f`
-
-error: lifetime may not live long enough
- --> $DIR/variadic-ffi-4.rs:12:5
- |
-LL | pub unsafe extern "C" fn no_escape1(_: usize, ap: ...) -> VaListImpl<'static> {
- | -- has type `core::ffi::VaListImpl<'1>`
-LL | ap
- | ^^ returning this value requires that `'1` must outlive `'static`
-
-error: lifetime may not live long enough
- --> $DIR/variadic-ffi-4.rs:16:33
- |
-LL | let _ = ap.with_copy(|ap| { ap });
- | --- ^^ returning this value requires that `'1` must outlive `'2`
- | | |
- | | return type of closure is core::ffi::VaList<'2, '_>
- | has type `core::ffi::VaList<'1, '_>`
-
-error: lifetime may not live long enough
- --> $DIR/variadic-ffi-4.rs:20:5
- |
-LL | pub unsafe extern "C" fn no_escape3(_: usize, mut ap0: &mut VaListImpl, mut ap1: ...) {
- | ------- ------- has type `core::ffi::VaListImpl<'2>`
- | |
- | has type `&mut core::ffi::VaListImpl<'1>`
-LL | *ap0 = ap1;
- | ^^^^ assignment requires that `'1` must outlive `'2`
-
-error: lifetime may not live long enough
- --> $DIR/variadic-ffi-4.rs:20:5
- |
-LL | pub unsafe extern "C" fn no_escape3(_: usize, mut ap0: &mut VaListImpl, mut ap1: ...) {
- | ------- ------- has type `core::ffi::VaListImpl<'2>`
- | |
- | has type `&mut core::ffi::VaListImpl<'1>`
-LL | *ap0 = ap1;
- | ^^^^ assignment requires that `'2` must outlive `'1`
-
-error: lifetime may not live long enough
- --> $DIR/variadic-ffi-4.rs:24:5
- |
-LL | pub unsafe extern "C" fn no_escape4(_: usize, ap0: &mut VaListImpl, mut ap1: ...) {
- | --- ------- has type `core::ffi::VaListImpl<'2>`
- | |
- | has type `&mut core::ffi::VaListImpl<'1>`
-LL | ap0 = &mut ap1;
- | ^^^^^^^^^^^^^^ assignment requires that `'1` must outlive `'2`
-
-error: lifetime may not live long enough
- --> $DIR/variadic-ffi-4.rs:24:5
- |
-LL | pub unsafe extern "C" fn no_escape4(_: usize, ap0: &mut VaListImpl, mut ap1: ...) {
- | --- ------- has type `core::ffi::VaListImpl<'2>`
- | |
- | has type `&mut core::ffi::VaListImpl<'1>`
-LL | ap0 = &mut ap1;
- | ^^^^^^^^^^^^^^ assignment requires that `'2` must outlive `'1`
-
-error[E0384]: cannot assign to immutable argument `ap0`
- --> $DIR/variadic-ffi-4.rs:24:5
- |
-LL | pub unsafe extern "C" fn no_escape4(_: usize, ap0: &mut VaListImpl, mut ap1: ...) {
- | --- help: make this binding mutable: `mut ap0`
-LL | ap0 = &mut ap1;
- | ^^^^^^^^^^^^^^ cannot assign to immutable argument
-
-error[E0597]: `ap1` does not live long enough
- --> $DIR/variadic-ffi-4.rs:24:11
- |
-LL | pub unsafe extern "C" fn no_escape4(_: usize, ap0: &mut VaListImpl, mut ap1: ...) {
- | - let's call the lifetime of this reference `'3`
-LL | ap0 = &mut ap1;
- | ------^^^^^^^^
- | | |
- | | borrowed value does not live long enough
- | assignment requires that `ap1` is borrowed for `'3`
-...
-LL | }
- | - `ap1` dropped here while still borrowed
-
-error: lifetime may not live long enough
- --> $DIR/variadic-ffi-4.rs:31:12
- |
-LL | pub unsafe extern "C" fn no_escape5(_: usize, mut ap0: &mut VaListImpl, mut ap1: ...) {
- | ------- ------- has type `core::ffi::VaListImpl<'2>`
- | |
- | has type `&mut core::ffi::VaListImpl<'1>`
-LL | *ap0 = ap1.clone();
- | ^^^^^^^^^^^ argument requires that `'1` must outlive `'2`
-
-error: lifetime may not live long enough
- --> $DIR/variadic-ffi-4.rs:31:12
- |
-LL | pub unsafe extern "C" fn no_escape5(_: usize, mut ap0: &mut VaListImpl, mut ap1: ...) {
- | ------- ------- has type `core::ffi::VaListImpl<'2>`
- | |
- | has type `&mut core::ffi::VaListImpl<'1>`
-LL | *ap0 = ap1.clone();
- | ^^^^^^^^^^^ argument requires that `'2` must outlive `'1`
-
-error: aborting due to 12 previous errors
-
-Some errors have detailed explanations: E0384, E0597.
-For more information about an error, try `rustc --explain E0384`.