From ab7540b6a028a9f52d0b18662db8a86cf6bfee26 Mon Sep 17 00:00:00 2001 From: KasimVali2207 Date: Mon, 4 May 2026 17:30:31 +0530 Subject: [PATCH] fix(math_opt): add missing return statements for all non-void methods in ModelStorageV2 Adds return statements after LOG(FATAL) in all non-void template and non-template methods in model_storage_v2.h to resolve compiler warnings and strict-compiler errors (MSVC/Clang). Methods fixed: - ConstraintsWithVariable(): return {} - VariablesInConstraint(): return {} - linear_objective(): return *static_cast<...>(nullptr) (dead code) - constraint_data(): return *static_cast<...>(nullptr) (dead code) - AddAtomicConstraint(): return {} in if constexpr branch - GetConstraintData(): return {} in if constexpr branch - num_constraints(): return {} in if constexpr branch - next_constraint_id(): return {} in if constexpr branch - has_constraint(): return {} in if constexpr branch - Constraints(): return {} in if constexpr branch - SortedConstraints(): return {} in if constexpr branch Fixes #5136 --- ortools/math_opt/storage/model_storage_v2.h | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/ortools/math_opt/storage/model_storage_v2.h b/ortools/math_opt/storage/model_storage_v2.h index cd71e0756c1..13d0d8c8360 100644 --- a/ortools/math_opt/storage/model_storage_v2.h +++ b/ortools/math_opt/storage/model_storage_v2.h @@ -932,6 +932,7 @@ void ModelStorageV2::clear_objective(const ObjectiveId id) { const absl::flat_hash_map& ModelStorageV2::linear_objective( const ObjectiveId id) const { LOG(FATAL) << "cannot be implemented"; + return *static_cast*>(nullptr); } int64_t ModelStorageV2::num_linear_objective_terms(const ObjectiveId id) const { @@ -1024,6 +1025,7 @@ typename ConstraintData::IdType ModelStorageV2::AddAtomicConstraint( const ConstraintData data) { if constexpr (!ConstraintData::kSupportsElemental) { LOG(FATAL) << "elemental not supported yet"; + return {}; } else { return internal::AddAtomicConstraint(data, elemental_); } @@ -1044,6 +1046,7 @@ typename AtomicConstraintTraits::ConstraintData ModelStorageV2::GetConstraintData(IdType id) const { if constexpr (!AtomicConstraintTraits::kSupportsElemental) { LOG(FATAL) << "elemental not supported yet"; + return {}; } else { return internal::GetAtomicConstraint(id, elemental_); } @@ -1053,12 +1056,14 @@ template const typename AtomicConstraintTraits::ConstraintData& ModelStorageV2::constraint_data(const IdType) const { LOG(FATAL) << "not implementable for ModelStorageV2"; + return *static_cast::ConstraintData*>(nullptr); } template int64_t ModelStorageV2::num_constraints() const { if constexpr (!AtomicConstraintTraits::kSupportsElemental) { LOG(FATAL) << "elemental not supported yet"; + return {}; } else { return elemental_.NumElements(AtomicConstraintTraits::kElementType); } @@ -1068,6 +1073,7 @@ template IdType ModelStorageV2::next_constraint_id() const { if constexpr (!AtomicConstraintTraits::kSupportsElemental) { LOG(FATAL) << "elemental not supported yet"; + return {}; } else { return IdType{ elemental_.NextElementId(AtomicConstraintTraits::kElementType)}; @@ -1087,6 +1093,7 @@ template bool ModelStorageV2::has_constraint(const IdType id) const { if constexpr (!AtomicConstraintTraits::kSupportsElemental) { LOG(FATAL) << "elemental not supported yet"; + return {}; } else { return elemental_.ElementExists(id); } @@ -1096,6 +1103,7 @@ template std::vector ModelStorageV2::Constraints() const { if constexpr (!AtomicConstraintTraits::kSupportsElemental) { LOG(FATAL) << "elemental not supported yet"; + return {}; } else { constexpr ElementType e = AtomicConstraintTraits::kElementType; auto els = elemental_.AllElements(); @@ -1112,6 +1120,7 @@ template std::vector ModelStorageV2::SortedConstraints() const { if constexpr (!AtomicConstraintTraits::kSupportsElemental) { LOG(FATAL) << "elemental not supported yet"; + return {}; } else { auto result = Constraints(); absl::c_sort(result); @@ -1123,12 +1132,14 @@ template std::vector ModelStorageV2::ConstraintsWithVariable( const VariableId) const { LOG(FATAL) << "not implementable for ModelStorageV2"; + return {}; } template std::vector ModelStorageV2::VariablesInConstraint( const IdType) const { LOG(FATAL) << "not implementable for ModelStorageV2"; + return {}; } } // namespace operations_research::math_opt