Author: marshall
Date: Mon Jun  6 09:35:22 2016
New Revision: 271897

URL: http://llvm.org/viewvc/llvm-project?rev=271897&view=rev
Log:
Remove arithmetic +/-127 on chars; results in UB when dealing with signed 
chars. Thanks to STL@microsoft for the report.

Modified:
    
libcxx/trunk/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/lt.pass.cpp

Modified: 
libcxx/trunk/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/lt.pass.cpp
URL: 
http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/lt.pass.cpp?rev=271897&r1=271896&r2=271897&view=diff
==============================================================================
--- 
libcxx/trunk/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/lt.pass.cpp
 (original)
+++ 
libcxx/trunk/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/lt.pass.cpp
 Mon Jun  6 09:35:22 2016
@@ -1,6 +1,6 @@
 
//===----------------------------------------------------------------------===//
 //
-//                     The LLVM Compiler Infrastructure
+//                                        The LLVM Compiler Infrastructure
 //
 // This file is dual licensed under the MIT and the University of Illinois Open
 // Source Licenses. See LICENSE.TXT for details.
@@ -18,11 +18,16 @@
 
 int main()
 {
-    char c = '\0';
-    assert(!std::char_traits<char>::lt('a', 'a'));
-    assert( std::char_traits<char>::lt('A', 'a'));
-    assert(!std::char_traits<char>::lt('A' + 127, 'a'));
-    assert(!std::char_traits<char>::lt('A' - 127, 'a'));
-    assert( std::char_traits<char>::lt('A', 'a' + 127));
-    assert( std::char_traits<char>::lt('A', 'a' - 127));
+       assert( std::char_traits<char>::lt('\0', 'A'));
+       assert(!std::char_traits<char>::lt('A', '\0'));
+
+       assert(!std::char_traits<char>::lt('a', 'a'));
+       assert( std::char_traits<char>::lt('A', 'a'));
+       assert(!std::char_traits<char>::lt('a', 'A'));
+       
+       assert( std::char_traits<char>::lt('a', 'z'));
+       assert( std::char_traits<char>::lt('A', 'Z'));
+
+       assert( std::char_traits<char>::lt(' ', 'A'));
+       assert( std::char_traits<char>::lt('A', '~'));
 }


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

Reply via email to