summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDerek Schuff <dschuff@chromium.org>2021-10-01 12:54:53 -0700
committerGitHub <noreply@github.com>2021-10-01 19:54:53 +0000
commit1a44da0fef430ff46c39cd56b0545089b9a573d1 (patch)
tree1a1c9b89a35c8a708a817fd41601aeba48774271
parent65bcde2c30e82047a892332b95b114bc86f89614 (diff)
downloadbinaryen-1a44da0fef430ff46c39cd56b0545089b9a573d1.tar.gz
binaryen-1a44da0fef430ff46c39cd56b0545089b9a573d1.tar.bz2
binaryen-1a44da0fef430ff46c39cd56b0545089b9a573d1.zip
Remove use of std::iterator (#4199)
It's deprecated in C++17
-rw-r--r--src/wasm-type.h13
-rw-r--r--src/wasm/CMakeLists.txt5
2 files changed, 12 insertions, 6 deletions
diff --git a/src/wasm-type.h b/src/wasm-type.h
index 48dbaf61b..542d26263 100644
--- a/src/wasm-type.h
+++ b/src/wasm-type.h
@@ -263,11 +263,14 @@ public:
std::string toString() const;
- struct Iterator : std::iterator<std::random_access_iterator_tag,
- Type,
- long,
- Type*,
- const Type&> {
+ struct Iterator {
+ // Iterator traits
+ using iterator_category = std::random_access_iterator_tag;
+ using value_type = Type;
+ using difference_type = long;
+ using pointer = const Type*;
+ using reference = const Type&;
+
const Type* parent;
size_t index;
Iterator(const Type* parent, size_t index) : parent(parent), index(index) {}
diff --git a/src/wasm/CMakeLists.txt b/src/wasm/CMakeLists.txt
index 5547e0741..20fc2e9fb 100644
--- a/src/wasm/CMakeLists.txt
+++ b/src/wasm/CMakeLists.txt
@@ -6,7 +6,6 @@ set(wasm_SOURCES
wasm-binary.cpp
wasm-debug.cpp
wasm-emscripten.cpp
- wasm-debug.cpp
wasm-interpreter.cpp
wasm-io.cpp
wasm-s-parser.cpp
@@ -15,4 +14,8 @@ set(wasm_SOURCES
wasm-validator.cpp
${wasm_HEADERS}
)
+# wasm-debug.cpp includes LLVM header using std::iterator (deprecated in C++17)
+if (NOT MSVC)
+ set_source_files_properties(wasm-debug.cpp PROPERTIES COMPILE_FLAGS -Wno-deprecated-declarations)
+endif()
add_library(wasm OBJECT ${wasm_SOURCES})