diff options
| author | Adam Perry <adam.n.perry@gmail.com> | 2019-10-27 15:16:46 -0700 |
|---|---|---|
| committer | Adam Perry <adam.n.perry@gmail.com> | 2019-12-05 21:12:34 -0800 |
| commit | cc574be985c4932f6f80c6a8a52ece26d5883300 (patch) | |
| tree | 712315df7b4ea9d8b1ba78dda7e2ef169222f23b | |
| parent | 28b22571609ef415ef974844982ba5f03c447ab4 (diff) | |
| download | rust-cc574be985c4932f6f80c6a8a52ece26d5883300.tar.gz rust-cc574be985c4932f6f80c6a8a52ece26d5883300.zip | |
`#[track_caller]` suppresses MIR inlining.
| -rw-r--r-- | src/librustc_mir/transform/inline.rs | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/librustc_mir/transform/inline.rs b/src/librustc_mir/transform/inline.rs index 79cb7fb0b76..6462672c010 100644 --- a/src/librustc_mir/transform/inline.rs +++ b/src/librustc_mir/transform/inline.rs @@ -230,6 +230,11 @@ impl Inliner<'tcx> { let codegen_fn_attrs = tcx.codegen_fn_attrs(callsite.callee); + if codegen_fn_attrs.flags.contains(CodegenFnAttrFlags::TRACK_CALLER) { + debug!("`#[track_caller]` present - not inlining"); + return false; + } + let hinted = match codegen_fn_attrs.inline { // Just treat inline(always) as a hint for now, // there are cases that prevent inlining that we |
