about summary refs log tree commit diff
diff options
context:
space:
mode:
authorbjorn3 <17426603+bjorn3@users.noreply.github.com>2022-07-26 16:26:35 +0000
committerbjorn3 <17426603+bjorn3@users.noreply.github.com>2022-07-26 16:26:35 +0000
commitd3099a40c77b7782b031d05c60d595a236306dba (patch)
treefa8002fc48ab3dd496864e270a6797ee9f05a53a
parent54eb0d992a824da4579f7e8db252cba18f7f6f0d (diff)
downloadrust-d3099a40c77b7782b031d05c60d595a236306dba.tar.gz
rust-d3099a40c77b7782b031d05c60d595a236306dba.zip
Outline a bug! invocation
This reduces the amount of llvm ir lines for intrinsic related code from
23801 to 20478.
-rw-r--r--src/intrinsics/mod.rs6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/intrinsics/mod.rs b/src/intrinsics/mod.rs
index 49c0fa34340..b2a83e1d4eb 100644
--- a/src/intrinsics/mod.rs
+++ b/src/intrinsics/mod.rs
@@ -7,7 +7,7 @@ macro_rules! intrinsic_args {
         let ($($arg),*) = if let [$($arg),*] = $args {
             ($(codegen_operand($fx, $arg)),*)
         } else {
-            bug!("wrong number of args for intrinsic {}", $intrinsic);
+            $crate::intrinsics::bug_on_incorrect_arg_count($intrinsic);
         };
     }
 }
@@ -26,6 +26,10 @@ use rustc_span::symbol::{kw, sym, Symbol};
 use crate::prelude::*;
 use cranelift_codegen::ir::AtomicRmwOp;
 
+fn bug_on_incorrect_arg_count(intrinsic: impl std::fmt::Display) -> ! {
+    bug!("wrong number of args for intrinsic {}", intrinsic);
+}
+
 fn report_atomic_type_validation_error<'tcx>(
     fx: &mut FunctionCx<'_, '_, 'tcx>,
     intrinsic: Symbol,