summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMike Aizatsky <aizatsky@chromium.org>2016-03-17 23:32:20 +0000
committerMike Aizatsky <aizatsky@chromium.org>2016-03-17 23:32:20 +0000
commit26cc0377bc4abc941a5ed1f35ebd8793d7b5a411 (patch)
treef5405493e9a22ed4b9f53cbd2ef834c980d12d86
parent35aff03cf213795f2adbe9edc4e8424193dc34ac (diff)
downloadbcm5719-llvm-26cc0377bc4abc941a5ed1f35ebd8793d7b5a411.tar.gz
bcm5719-llvm-26cc0377bc4abc941a5ed1f35ebd8793d7b5a411.zip
Revert "allow lambdas in mapped_iterator"
MSVC as usual: C:\Buildbot\Slave\llvm-clang-lld-x86_64-scei-ps4-windows10pro-fast\llvm.src\include\llvm/ADT/STLExtras.h(120): error C2100: illegal indirection C:\Buildbot\Slave\llvm-clang-lld-x86_64-scei-ps4-windows10pro-fast\llvm.src\include\llvm/IR/Instructions.h(3966): note: see reference to class template instantiation 'llvm::mapped_iterator<llvm::User::op_iterator,llvm::CatchSwitchInst::DerefFnTy>' being compiled This reverts commit e091dd63f1f34e043748e28ad160d3bc17731168. llvm-svn: 263760
-rw-r--r--llvm/include/llvm/ADT/STLExtras.h2
-rw-r--r--llvm/unittests/ADT/CMakeLists.txt1
-rw-r--r--llvm/unittests/ADT/MappedIteratorTest.cpp51
3 files changed, 1 insertions, 53 deletions
diff --git a/llvm/include/llvm/ADT/STLExtras.h b/llvm/include/llvm/ADT/STLExtras.h
index e40a29f4619..28f75949373 100644
--- a/llvm/include/llvm/ADT/STLExtras.h
+++ b/llvm/include/llvm/ADT/STLExtras.h
@@ -117,7 +117,7 @@ public:
iterator_category;
typedef typename std::iterator_traits<RootIt>::difference_type
difference_type;
- typedef decltype(Fn(*current)) value_type;
+ typedef typename UnaryFunc::result_type value_type;
typedef void pointer;
//typedef typename UnaryFunc::result_type *pointer;
diff --git a/llvm/unittests/ADT/CMakeLists.txt b/llvm/unittests/ADT/CMakeLists.txt
index 1388f5d0074..bce1bf93a33 100644
--- a/llvm/unittests/ADT/CMakeLists.txt
+++ b/llvm/unittests/ADT/CMakeLists.txt
@@ -22,7 +22,6 @@ set(ADTSources
IntervalMapTest.cpp
IntrusiveRefCntPtrTest.cpp
MakeUniqueTest.cpp
- MappedIteratorTest.cpp
MapVectorTest.cpp
OptionalTest.cpp
PackedVectorTest.cpp
diff --git a/llvm/unittests/ADT/MappedIteratorTest.cpp b/llvm/unittests/ADT/MappedIteratorTest.cpp
deleted file mode 100644
index 8c6a10306a8..00000000000
--- a/llvm/unittests/ADT/MappedIteratorTest.cpp
+++ /dev/null
@@ -1,51 +0,0 @@
-//===- llvm/unittest/ADT/APInt.cpp - APInt unit tests ---------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include <vector>
-
-#include "llvm/ADT/STLExtras.h"
-#include "llvm/ADT/iterator_range.h"
-#include "gtest/gtest.h"
-
-using namespace llvm;
-
-namespace {
-
-template <class T, class Fn>
-auto map_range(const T &range, Fn fn)
- -> decltype(make_range(map_iterator(range.begin(), fn),
- map_iterator(range.end(), fn))) {
- return make_range(map_iterator(range.begin(), fn),
- map_iterator(range.end(), fn));
-}
-
-static char add1(char C) { return C + 1; }
-
-TEST(MappedIterator, FnTest) {
- std::string S("abc");
- std::string T;
-
- for (char C : map_range(S, add1)) {
- T.push_back(C);
- }
-
- EXPECT_STREQ("bcd", T.c_str());
-}
-
-TEST(MappedIterator, LambdaTest) {
- std::string S("abc");
- std::string T;
-
- for (char C : map_range(S, [](char C) { return C + 1; })) {
- T.push_back(C);
- }
-
- EXPECT_STREQ("bcd", T.c_str());
-}
-}
OpenPOWER on IntegriCloud