Update libnpy header external dependency to the latest version
Primarily fixes build error when building with Clang14 due to warning of use of deprecated 'sprintf' function
Resolves: COMPMID-5803
Change-Id: Iaa7df7ccc482fbeaa1978988ce61bbc8fd792ca1
Signed-off-by: Jakub Sujak <jakub.sujak@arm.com>
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/8802
Reviewed-by: Pablo Marquez Tello <pablo.tello@arm.com>
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Benchmark: Arm Jenkins <bsgcomp@arm.com>
diff --git a/utils/Utils.h b/utils/Utils.h
index d46fbc3..e3a5bb2 100644
--- a/utils/Utils.h
+++ b/utils/Utils.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2016-2021 Arm Limited.
+ * Copyright (c) 2016-2023 Arm Limited.
*
* SPDX-License-Identifier: MIT
*
@@ -143,7 +143,7 @@
*
* @return The width and height stored in the header of the NPY file
*/
-std::tuple<std::vector<unsigned long>, bool, std::string> parse_npy_header(std::ifstream &fs);
+npy::header_t parse_npy_header(std::ifstream &fs);
/** Obtain numpy type string from DataType.
*
@@ -305,7 +305,10 @@
_fs.exceptions(std::ifstream::failbit | std::ifstream::badbit);
_file_layout = file_layout;
- std::tie(_shape, _fortran_order, _typestring) = parse_npy_header(_fs);
+ npy::header_t header = parse_npy_header(_fs);
+ _shape = header.shape;
+ _fortran_order = header.fortran_order;
+ _typestring = header.dtype.str();
}
catch(const std::ifstream::failure &e)
{
@@ -603,11 +606,11 @@
using typestring_type = typename std::conditional<std::is_floating_point<U>::value, float, qasymm8_t>::type;
std::vector<typestring_type> tmp; /* Used only to get the typestring */
- npy::Typestring typestring_o{ tmp };
- std::string typestring = typestring_o.str();
+ const npy::dtype_t dtype = npy::dtype_map.at(std::type_index(typeid(tmp)));
std::ofstream stream(npy_filename, std::ofstream::binary);
- npy::write_header(stream, typestring, fortran_order, shape);
+ npy::header_t header{ dtype, fortran_order, shape };
+ npy::write_header(stream, header);
arm_compute::Window window;
window.use_tensor_dimensions(tensor.info()->tensor_shape());