Author: marshall
Date: Tue Sep  6 22:32:06 2016
New Revision: 280779

URL: http://llvm.org/viewvc/llvm-project?rev=280779&view=rev
Log:
Fix PR#30303 - no matching function for call to '__ptr_in_range'

Modified:
    libcxx/trunk/include/string
    
libcxx/trunk/test/std/strings/basic.string/string.modifiers/string_append/iterator.pass.cpp
    
libcxx/trunk/test/std/strings/basic.string/string.modifiers/string_assign/iterator.pass.cpp
    
libcxx/trunk/test/std/strings/basic.string/string.modifiers/string_insert/iter_iter_iter.pass.cpp
    
libcxx/trunk/test/std/strings/basic.string/string.modifiers/string_replace/iter_iter_iter_iter.pass.cpp

Modified: libcxx/trunk/include/string
URL: 
http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/string?rev=280779&r1=280778&r2=280779&view=diff
==============================================================================
--- libcxx/trunk/include/string (original)
+++ libcxx/trunk/include/string Tue Sep  6 22:32:06 2016
@@ -2156,12 +2156,18 @@ basic_string<_CharT, _Traits, _Allocator
     return *this;
 }
 
-template <typename _Tp>
+template <class _Tp>
 bool __ptr_in_range (const _Tp* __p, const _Tp* __first, const _Tp* __last)
 {
     return __first <= __p && __p < __last;
 }
 
+template <class _Tp1, class _Tp2>
+bool __ptr_in_range (const _Tp1* __p, const _Tp2* __first, const _Tp2* __last)
+{
+    return false;
+}
+
 template <class _CharT, class _Traits, class _Allocator>
 template<class _ForwardIterator>
 typename enable_if

Modified: 
libcxx/trunk/test/std/strings/basic.string/string.modifiers/string_append/iterator.pass.cpp
URL: 
http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/strings/basic.string/string.modifiers/string_append/iterator.pass.cpp?rev=280779&r1=280778&r2=280779&view=diff
==============================================================================
--- 
libcxx/trunk/test/std/strings/basic.string/string.modifiers/string_append/iterator.pass.cpp
 (original)
+++ 
libcxx/trunk/test/std/strings/basic.string/string.modifiers/string_append/iterator.pass.cpp
 Tue Sep  6 22:32:06 2016
@@ -195,4 +195,13 @@ int main()
        assert(s_long == "Lorem ipsum dolor sit amet, consectetur/Lorem ipsum 
dolor sit amet, consectetur/");
        }
 
+       { // test appending a different type
+    typedef std::string S;
+       const uint8_t p[] = "ABCD";
+
+       S s;
+       s.append(p, p + 4);
+       assert(s == "ABCD");
+       }
+
 }

Modified: 
libcxx/trunk/test/std/strings/basic.string/string.modifiers/string_assign/iterator.pass.cpp
URL: 
http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/strings/basic.string/string.modifiers/string_assign/iterator.pass.cpp?rev=280779&r1=280778&r2=280779&view=diff
==============================================================================
--- 
libcxx/trunk/test/std/strings/basic.string/string.modifiers/string_assign/iterator.pass.cpp
 (original)
+++ 
libcxx/trunk/test/std/strings/basic.string/string.modifiers/string_assign/iterator.pass.cpp
 Tue Sep  6 22:32:06 2016
@@ -196,4 +196,13 @@ int main()
        s_long.assign(s_long.begin() + 30, s_long.end());
        assert(s_long == "nsectetur/");
        }
+
+       { // test assigning a different type
+    typedef std::string S;
+       const uint8_t p[] = "ABCD";
+
+       S s;
+       s.assign(p, p + 4);
+       assert(s == "ABCD");
+       }
 }

Modified: 
libcxx/trunk/test/std/strings/basic.string/string.modifiers/string_insert/iter_iter_iter.pass.cpp
URL: 
http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/strings/basic.string/string.modifiers/string_insert/iter_iter_iter.pass.cpp?rev=280779&r1=280778&r2=280779&view=diff
==============================================================================
--- 
libcxx/trunk/test/std/strings/basic.string/string.modifiers/string_insert/iter_iter_iter.pass.cpp
 (original)
+++ 
libcxx/trunk/test/std/strings/basic.string/string.modifiers/string_insert/iter_iter_iter.pass.cpp
 Tue Sep  6 22:32:06 2016
@@ -186,4 +186,12 @@ int main()
        assert(s_long == "Lorem ipsum dolor sit amet, consectetur/Lorem ipsum 
dolor sit amet, consectetur/");
        }
 
+       { // test assigning a different type
+    typedef std::string S;
+       const uint8_t p[] = "ABCD";
+
+       S s;
+       s.insert(s.begin(), p, p + 4);
+       assert(s == "ABCD");
+       }
 }

Modified: 
libcxx/trunk/test/std/strings/basic.string/string.modifiers/string_replace/iter_iter_iter_iter.pass.cpp
URL: 
http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/strings/basic.string/string.modifiers/string_replace/iter_iter_iter_iter.pass.cpp?rev=280779&r1=280778&r2=280779&view=diff
==============================================================================
--- 
libcxx/trunk/test/std/strings/basic.string/string.modifiers/string_replace/iter_iter_iter_iter.pass.cpp
 (original)
+++ 
libcxx/trunk/test/std/strings/basic.string/string.modifiers/string_replace/iter_iter_iter_iter.pass.cpp
 Tue Sep  6 22:32:06 2016
@@ -1023,4 +1023,18 @@ int main()
        s_long.replace(s_long.begin(), s_long.begin(), s_long.begin(), 
s_long.end());
        assert(s_long == "Lorem ipsum dolor sit amet, consectetur/Lorem ipsum 
dolor sit amet, consectetur/");
        }
+
+       { // test assigning a different type
+    typedef std::string S;
+       const uint8_t pc[] = "ABCD";
+       uint8_t        p[] = "EFGH";
+
+       S s;
+       s.replace(s.begin(), s.end(), pc, pc + 4);
+       assert(s == "ABCD");
+
+       s.clear();
+       s.replace(s.begin(), s.end(), p, p + 4);
+       assert(s == "EFGH");
+       }
 }


_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to