From f251467b5577145c1598d09cf71145e1fd0e8979 Mon Sep 17 00:00:00 2001 From: Alexander Smorkalov Date: Tue, 26 May 2026 11:23:46 +0300 Subject: [PATCH] Fixed MLAS build with older versions of GCC. --- 3rdparty/mlas/lib/mlasi.h | 6 +++--- modules/dnn/src/graph_fusion_attention.cpp | 3 ++- modules/dnn/src/graph_fusion_shared_gemm.cpp | 3 ++- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/3rdparty/mlas/lib/mlasi.h b/3rdparty/mlas/lib/mlasi.h index 14af627c18..293eb987ba 100644 --- a/3rdparty/mlas/lib/mlasi.h +++ b/3rdparty/mlas/lib/mlasi.h @@ -313,7 +313,7 @@ operator!=(const MLFloat16& left, const MLFloat16& right) #endif // BUILD_MLAS_NO_ONNXRUNTIME -static_assert(sizeof(MLAS_FP16) == FP16_SIZE); +static_assert(sizeof(MLAS_FP16) == FP16_SIZE, ""); // @@ -3080,7 +3080,7 @@ MLAS_FORCEINLINE void MlasSetInt4Element(uint8_t* Output, size_t ElemIndex, UnpackedType Value) { - static_assert(std::is_same_v || std::is_same_v); + static_assert(std::is_same::value || std::is_same::value, ""); const size_t OutputIndex = ElemIndex >> 1; // which byte const size_t NibbleIndex = ElemIndex & 0x1; // which 4-bit elem in the byte @@ -3097,6 +3097,6 @@ MLAS_FORCEINLINE void MlasPackInt4Elements(uint8_t* Output, UnpackedType ValueLow, UnpackedType ValueHigh) { - static_assert(std::is_same_v || std::is_same_v); + static_assert(std::is_same::value || std::is_same::value, ""); *Output = static_cast(((ValueHigh & 0xF) << 4) | (ValueLow & 0xF)); } diff --git a/modules/dnn/src/graph_fusion_attention.cpp b/modules/dnn/src/graph_fusion_attention.cpp index 24f94bb831..dd9cf378ec 100644 --- a/modules/dnn/src/graph_fusion_attention.cpp +++ b/modules/dnn/src/graph_fusion_attention.cpp @@ -335,7 +335,8 @@ struct ModelFusionAttention bool modified = false; std::set removed_ops; - for (auto& [inp_idx, matmul_indices] : qkv_candidates) { + for (auto& candidate : qkv_candidates) { + auto matmul_indices = candidate.second; if (matmul_indices.size() < 3) continue; for (size_t qi = 0; qi + 2 < matmul_indices.size(); qi++) diff --git a/modules/dnn/src/graph_fusion_shared_gemm.cpp b/modules/dnn/src/graph_fusion_shared_gemm.cpp index 643adfd23d..0dba14ef19 100644 --- a/modules/dnn/src/graph_fusion_shared_gemm.cpp +++ b/modules/dnn/src/graph_fusion_shared_gemm.cpp @@ -147,7 +147,8 @@ struct ModelFusionSharedGemm std::set removed_ops; vector>>> insertions; // (insert_pos, fused-and-slice layers) - for (auto& [key, infos] : groups) { + for (auto& group : groups) { + auto infos = group.second; if (infos.size() < 2) continue; bool all_have_bias = infos[0].has_bias;