Work around a bug with MSVC 10 where it fails to recognize a valid use
[oota-llvm.git] / unittests / ADT / DenseMapTest.cpp
index e04bba7622927ba2089cab7779d51e6fed471006..3fe35c91edcef9db1eb37933da01c457e36b0d28 100644 (file)
@@ -66,8 +66,17 @@ TYPED_TEST(DenseMapTest, EmptyIntMapTest) {
   // Lookup tests
   EXPECT_FALSE(this->Map.count(this->getKey()));
   EXPECT_TRUE(this->Map.find(this->getKey()) == this->Map.end());
+#ifndef _MSC_VER
   EXPECT_EQ(typename TypeParam::mapped_type(),
             this->Map.lookup(this->getKey()));
+#else
+  // MSVC, at least old versions, cannot parse the typename to disambiguate
+  // TypeParam::mapped_type as a type. However, because MSVC doesn't implement
+  // two-phase name lookup, it also doesn't require the typename. Deal with
+  // this mutual incompatibility through specialized code.
+  EXPECT_EQ(TypeParam::mapped_type(),
+            this->Map.lookup(this->getKey()));
+#endif
 }
 
 // Constant map tests