Work around recent -Wshadow changes in Clang

llvm-svn: 299407
Cr-Mirrored-From: sso://chromium.googlesource.com/_direct/external/github.com/llvm/llvm-project
Cr-Mirrored-Commit: 3896bf7453f2c807f2fb3de55b978da433fa5aec
diff --git a/include/experimental/filesystem b/include/experimental/filesystem
index cf62ca2..04180d1 100644
--- a/include/experimental/filesystem
+++ b/include/experimental/filesystem
@@ -1091,7 +1091,18 @@
 {
 public:
     typedef bidirectional_iterator_tag iterator_category;
+
+    // FIXME: As of 3/April/2017 Clang warns on `value_type` shadowing the
+    // definition in path. Clang should be fixed and this should be removed.
+#if defined(__clang__)
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wshadow"
+#endif
     typedef path                       value_type;
+#if defined(__clang__)
+#pragma clang diagnostic pop
+#endif
+
     typedef std::ptrdiff_t             difference_type;
     typedef const path*                pointer;
     typedef const path&                reference;
diff --git a/include/regex b/include/regex
index 42e55e8..fe97a63 100644
--- a/include/regex
+++ b/include/regex
@@ -3957,7 +3957,6 @@
     if (__temp == __last)
         __throw_regex_error<regex_constants::error_brack>();
     // [__first, __temp) contains all text in [= ... =]
-    typedef typename _Traits::string_type string_type;
     string_type __collate_name =
         __traits_.lookup_collatename(__first, __temp);
     if (__collate_name.empty())