From 345b9c497ebf23c445fc5741b8432e0044c264df Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 16 Jul 2026 11:23:19 +0000 Subject: [PATCH 1/3] Initial plan From 46645b2b456bd85e43f91fd0019051532bc6bb5a Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 16 Jul 2026 11:36:09 +0000 Subject: [PATCH 2/3] Fix build with latest SVF constant var API --- pybind/SVFIR.cpp | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/pybind/SVFIR.cpp b/pybind/SVFIR.cpp index 78f7ef5..ecf69f2 100644 --- a/pybind/SVFIR.cpp +++ b/pybind/SVFIR.cpp @@ -403,10 +403,10 @@ void bind_svf_var(py::module &m) { }, py::return_value_policy::reference) .def("isConstAggValVar", [](SVF::ValVar* node) -> bool { - return SVFUtil::isa(node); + return SVFUtil::isa(node); }) - .def("asConstAggValVar", [](SVF::ValVar* node) -> SVF::ConstAggValVar* { - return SVFUtil::dyn_cast(node); + .def("asConstAggValVar", [](SVF::ValVar* node) -> SVF::ConstDataValVar* { + return SVFUtil::dyn_cast(node); }, py::return_value_policy::reference) .def("isConstDataValVar", [](SVF::ValVar* node) -> bool { @@ -533,10 +533,10 @@ void bind_svf_var(py::module &m) { return SVFUtil::dyn_cast(node); }, py::return_value_policy::reference) .def("isConstAggObjVar", [](SVF::ObjVar* node) -> bool { - return SVFUtil::isa(node); + return SVFUtil::isa(node); }, py::return_value_policy::reference) - .def("asConstAggObjVar", [](SVF::ObjVar* node) -> SVF::ConstAggObjVar* { - return SVFUtil::dyn_cast(node); + .def("asConstAggObjVar", [](SVF::ObjVar* node) -> SVF::ConstDataObjVar* { + return SVFUtil::dyn_cast(node); }, py::return_value_policy::reference) .def("isConstDataObjVar", [](SVF::ObjVar* node) -> bool { return SVFUtil::isa(node); @@ -663,10 +663,10 @@ void bind_svf_var(py::module &m) { return SVFUtil::dyn_cast(node); }, py::return_value_policy::reference) .def("isConstAggObjVar", [](SVF::BaseObjVar* node) -> bool { - return SVFUtil::isa(node); + return SVFUtil::isa(node); }, py::return_value_policy::reference) - .def("asConstAggObjVar", [](SVF::BaseObjVar* node) -> SVF::ConstAggObjVar* { - return SVFUtil::dyn_cast(node); + .def("asConstAggObjVar", [](SVF::BaseObjVar* node) -> SVF::ConstDataObjVar* { + return SVFUtil::dyn_cast(node); }, py::return_value_policy::reference) .def("isConstDataObjVar", [](SVF::BaseObjVar* node) -> bool { return SVFUtil::isa(node); @@ -743,11 +743,11 @@ void bind_svf_var(py::module &m) { /// GlobalValVar py::class_(m, "GlobalValVar"); - ///ConstAggValVar - py::class_(m, "ConstAggValVar"); - ///ConstDataValVar - py::class_(m, "ConstDataValVar"); + auto const_data_val_var = py::class_(m, "ConstDataValVar"); + + ///ConstAggValVar (backward-compatible alias for ConstDataValVar) + m.attr("ConstAggValVar") = const_data_val_var; ///BlackHoleValVar py::class_(m, "BlackHoleValVar"); @@ -767,11 +767,11 @@ void bind_svf_var(py::module &m) { ///GlobalObjVar py::class_(m, "GlobalObjVar"); - ///ConstAggObjVar - py::class_(m, "ConstAggObjVar"); - ///ConstDataObjVar - py::class_(m, "ConstDataObjVar"); + auto const_data_obj_var = py::class_(m, "ConstDataObjVar"); + + ///ConstAggObjVar (backward-compatible alias for ConstDataObjVar) + m.attr("ConstAggObjVar") = const_data_obj_var; //// ConstFPObjVar py::class_(m, "ConstFPObjVar") From 1c00930cc8f0330485832d5ee67bf4fcf286f29c Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 16 Jul 2026 11:43:30 +0000 Subject: [PATCH 3/3] Refine pybind ConstAgg compatibility bindings --- pybind/SVFIR.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pybind/SVFIR.cpp b/pybind/SVFIR.cpp index ecf69f2..1d31ca4 100644 --- a/pybind/SVFIR.cpp +++ b/pybind/SVFIR.cpp @@ -534,7 +534,7 @@ void bind_svf_var(py::module &m) { }, py::return_value_policy::reference) .def("isConstAggObjVar", [](SVF::ObjVar* node) -> bool { return SVFUtil::isa(node); - }, py::return_value_policy::reference) + }) .def("asConstAggObjVar", [](SVF::ObjVar* node) -> SVF::ConstDataObjVar* { return SVFUtil::dyn_cast(node); }, py::return_value_policy::reference) @@ -664,7 +664,7 @@ void bind_svf_var(py::module &m) { }, py::return_value_policy::reference) .def("isConstAggObjVar", [](SVF::BaseObjVar* node) -> bool { return SVFUtil::isa(node); - }, py::return_value_policy::reference) + }) .def("asConstAggObjVar", [](SVF::BaseObjVar* node) -> SVF::ConstDataObjVar* { return SVFUtil::dyn_cast(node); }, py::return_value_policy::reference)