Documentation

Miri.Interpreter.ShimSignatures

Pinned shims/sig.rs signature/varargs policies, and rustc interpret/intrinsics.rs::validate_c_variadic_compatible_ty. Query budgets are concrete execution resources; their exhaustion is unresolved, never UB/success.

Instances For
    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      Instances For
        structure Miri.Interpreter.ShimSignatures.Hooks (P S D MD Ptr B I : Type) :
        Instances For
          structure Miri.Interpreter.ShimSignatures.CoreHooks (P S D MD Ptr B I : Type) :

          Nonrecursive exact-signature effects for fixed shims that do not need variadic type compatibility. This avoids requiring a complete platform ForeignItems dispatch merely to validate one source family.

          Instances For

            Signature-only projection for source dispatchers that need no recursive foreign-item fallback. This keeps fixed shim validation tied to the actual ABI/symbol/transmute primitives while avoiding a dependency on a complete platform hook record.

            Instances For
              def Miri.Interpreter.ShimSignatures.primitiveView {P S D MD Ptr B I : Type} (h : Hooks P S D MD Ptr B I) :
              Equations
              • One or more equations did not get rendered due to their size.
              Instances For
                def Miri.Interpreter.ShimSignatures.compatible {P S D MD Ptr B I : Type} (h : Hooks P S D MD Ptr B I) :
                Equations
                Instances For
                  def Miri.Interpreter.ShimSignatures.fixed {P S D MD Ptr B I : Type} (h : Hooks P S D MD Ptr B I) (name : String) (expected : M S (ABI.FnAbi MIR.TyId)) (count : Nat) (caller : ABI.FnAbi MIR.TyId) (args : Array (OpTy P)) :
                  M S (Array (OpTy P))

                  The closure has already built the exact compiler signature (source ShimSig.as_abi); ABI checks precede symbol-clash checks and operand transmutes.

                  Equations
                  • One or more equations did not get rendered due to their size.
                  Instances For
                    def Miri.Interpreter.ShimSignatures.fixedCore {P S D MD Ptr B I : Type} (h : CoreHooks P S D MD Ptr B I) (name : String) (expected : M S (ABI.FnAbi MIR.TyId)) (count : Nat) (caller : ABI.FnAbi MIR.TyId) (args : Array (OpTy P)) :
                    M S (Array (OpTy P))

                    Fixed-signature source path over the nonrecursive foreign primitive core; the ABI check, symbol clash, then argument transmute order is unchanged.

                    Equations
                    • One or more equations did not get rendered due to their size.
                    Instances For
                      def Miri.Interpreter.ShimSignatures.fixedPrimitive {P S : Type} (h : PrimitiveHooks P S) (name : String) (expected : M S (ABI.FnAbi MIR.TyId)) (count : Nat) (caller : ABI.FnAbi MIR.TyId) (args : Array (OpTy P)) :
                      M S (Array (OpTy P))

                      Fixed shim validation over the minimal source signature primitives. The source order remains ABI check, symbol clash, then argument transmutation.

                      Equations
                      • One or more equations did not get rendered due to their size.
                      Instances For
                        def Miri.Interpreter.ShimSignatures.variadic {P S D MD Ptr B I : Type} (h : Hooks P S D MD Ptr B I) (name : String) (expected : M S (ABI.FnAbi MIR.TyId)) (count : Nat) (caller : ABI.FnAbi MIR.TyId) (args : Array (OpTy P)) :
                        M S (Array (OpTy P) × Varargs P)
                        Equations
                        • One or more equations did not get rendered due to their size.
                        Instances For
                          def Miri.Interpreter.ShimSignatures.take {P S D MD Ptr B I : Type} [Memory.PointerProvenance P] (h : Hooks P S D MD Ptr B I) (budget : Nat) (types : M S (Array MIR.TyId)) (varargs : Varargs P) :
                          M S (Array (OpTy P) × Varargs P)

                          Check the entire prefix for C type compatibility before transmuting any operand. Signed/unsigned pairs share source signed-at-width value checking.

                          Equations
                          • One or more equations did not get rendered due to their size.
                          Instances For
                            def Miri.Interpreter.ShimSignatures.deprecated {P S D MD Ptr B I : Type} (h : Hooks P S D MD Ptr B I) (name : String) (conv : ABI.CanonAbi) (caller : ABI.FnAbi MIR.TyId) (args : Array (OpTy P)) (count : Nat) :
                            M S (Array (OpTy P))
                            Equations
                            • One or more equations did not get rendered due to their size.
                            Instances For
                              def Miri.Interpreter.ShimSignatures.llvmIntrinsic {P S D MD Ptr B I : Type} (h : Hooks P S D MD Ptr B I) (name : String) (args : Array (OpTy P)) (count : Nat) :
                              M S (Array (OpTy P))
                              Equations
                              • One or more equations did not get rendered due to their size.
                              Instances For