| #![crate_type = "lib"] | |
| #![no_std] | |
| #![feature(c_variadic)] | |
| use core::ffi::VaList; | |
| pub unsafe extern "C" fn no_escape0<'f>(_: usize, ap: ...) -> VaList<'f> { | |
| ap | |
| //~^ ERROR: lifetime may not live long enough | |
| } | |
| pub unsafe extern "C" fn no_escape1(_: usize, ap: ...) -> VaList<'static> { | |
| ap //~ ERROR: lifetime may not live long enough | |
| } | |
| pub unsafe extern "C" fn no_escape3(_: usize, mut ap0: &mut VaList, mut ap1: ...) { | |
| *ap0 = ap1; | |
| //~^ ERROR: lifetime may not live long enough | |
| } | |
| pub unsafe extern "C" fn no_escape4(_: usize, mut ap0: &mut VaList, mut ap1: ...) { | |
| ap0 = &mut ap1; | |
| //~^ ERROR: `ap1` does not live long enough | |
| //~| ERROR: lifetime may not live long enough | |
| //~| ERROR: lifetime may not live long enough | |
| } | |
| pub unsafe extern "C" fn no_escape5(_: usize, mut ap0: &mut VaList, mut ap1: ...) { | |
| *ap0 = ap1.clone(); | |
| //~^ ERROR: lifetime may not live long enough | |
| } |