From 0444f19299b05c0e9feada89c9ef487e59b6cfcc Mon Sep 17 00:00:00 2001 From: Peter LaFosse Date: Thu, 13 Jan 2022 11:01:36 -0500 Subject: Allow the creation of const/volatile NTRs --- type.cpp | 34 ++++++++++++++++++++++++++++------ 1 file changed, 28 insertions(+), 6 deletions(-) (limited to 'type.cpp') diff --git a/type.cpp b/type.cpp index bbc1c233..6762a21b 100644 --- a/type.cpp +++ b/type.cpp @@ -707,9 +707,17 @@ Ref Type::StructureType(Structure* strct) } -Ref Type::NamedType(NamedTypeReference* ref, size_t width, size_t align) +Ref Type::NamedType(NamedTypeReference* ref, size_t width, size_t align, const Confidence& cnst, const Confidence& vltl) { - return new Type(BNCreateNamedTypeReference(ref->GetObject(), width, align)); + BNBoolWithConfidence cnstConf; + cnstConf.value = cnst.GetValue(); + cnstConf.confidence = cnst.GetConfidence(); + + BNBoolWithConfidence vltlConf; + vltlConf.value = vltl.GetValue(); + vltlConf.confidence = vltl.GetConfidence(); + + return new Type(BNCreateNamedTypeReference(ref->GetObject(), width, align, &cnstConf, &vltlConf)); } @@ -1369,15 +1377,29 @@ TypeBuilder TypeBuilder::StructureType(StructureBuilder* strct) } -TypeBuilder TypeBuilder::NamedType(NamedTypeReference* ref, size_t width, size_t align) +TypeBuilder TypeBuilder::NamedType(NamedTypeReference* ref, size_t width, size_t align, const Confidence& cnst, const Confidence& vltl) { - return TypeBuilder(BNCreateNamedTypeReferenceBuilder(ref->GetObject(), width, align)); + BNBoolWithConfidence cnstConf; + cnstConf.value = cnst.GetValue(); + cnstConf.confidence = cnst.GetConfidence(); + + BNBoolWithConfidence vltlConf; + vltlConf.value = vltl.GetValue(); + vltlConf.confidence = vltl.GetConfidence(); + return TypeBuilder(BNCreateNamedTypeReferenceBuilder(ref->GetObject(), width, align, &cnstConf, &vltlConf)); } -TypeBuilder TypeBuilder::NamedType(NamedTypeReferenceBuilder* ref, size_t width, size_t align) +TypeBuilder TypeBuilder::NamedType(NamedTypeReferenceBuilder* ref, size_t width, size_t align, const Confidence& cnst, const Confidence& vltl) { - return TypeBuilder(BNCreateNamedTypeReferenceBuilderWithBuilder(ref->GetObject(), width, align)); + BNBoolWithConfidence cnstConf; + cnstConf.value = cnst.GetValue(); + cnstConf.confidence = cnst.GetConfidence(); + + BNBoolWithConfidence vltlConf; + vltlConf.value = vltl.GetValue(); + vltlConf.confidence = vltl.GetConfidence(); + return TypeBuilder(BNCreateNamedTypeReferenceBuilderWithBuilder(ref->GetObject(), width, align, &cnstConf, &vltlConf)); } -- cgit v1.3.1