aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorEd Smith-Rowland <3dw4rd@verizon.net>2013-02-14 02:55:42 +0000
committerEdward Smith-Rowland <emsr@gcc.gnu.org>2013-02-14 02:55:42 +0000
commit561f7fc72cbe475f1661e457731bb7d3b99f82a1 (patch)
tree835d414e4efbc7f21d5a4f16cd4e2d5968134664 /gcc
parent94504fd4840c1d67e96d4cf4759d21de3398ef0c (diff)
downloadgcc-561f7fc72cbe475f1661e457731bb7d3b99f82a1.zip
gcc-561f7fc72cbe475f1661e457731bb7d3b99f82a1.tar.gz
gcc-561f7fc72cbe475f1661e457731bb7d3b99f82a1.tar.bz2
re PR c++/55582 ([C++11] Unable to define string user-defined literal without leading underscore.)
gcc/libcpp/ 2013-02-13 Ed Smith-Rowland <3dw4rd@verizon.net> PR c++/55582 * libcpp/lex.c (lex_raw_string): Allow string literal with suffix beginning with 's' to be parsed as a C++11 user-defined literal. gcc/testsuite/ 2013-02-13 Ed Smith-Rowland <3dw4rd@verizon.net> PR c++/55582 * g++.dg/cpp0x/udlit-string-literal.h: New. * g++.dg/cpp0x/udlit-string-literal.C: New. From-SVN: r196041
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/ChangeLog6
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/udlit-string-literal.C13
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/udlit-string-literal.h22
3 files changed, 41 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 4981462..e4f70ce 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2013-02-13 Ed Smith-Rowland <3dw4rd@verizon.net>
+
+ PR c++/55582
+ * g++.dg/cpp0x/udlit-string-literal.h: New.
+ * g++.dg/cpp0x/udlit-string-literal.C: New.
+
2013-02-13 Sriraman Tallam <tmsriram@google.com>
* g++.dg/ext/mv12-aux.C: Add directives to match mv12.C.
diff --git a/gcc/testsuite/g++.dg/cpp0x/udlit-string-literal.C b/gcc/testsuite/g++.dg/cpp0x/udlit-string-literal.C
new file mode 100644
index 0000000..f83bef6
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp0x/udlit-string-literal.C
@@ -0,0 +1,13 @@
+// { dg-options "-std=c++11" }
+// { dg-require-effective-target stdint_types }
+// PR c++/55582
+
+#include "udlit-string-literal.h"
+
+using namespace my_string_literals;
+
+decltype("Hello, World!"s) s;
+decltype(u8"Hello, World!"s) s8;
+decltype(L"Hello, World!"s) ws;
+decltype(u"Hello, World!"s) s16;
+decltype(U"Hello, World!"s) s32;
diff --git a/gcc/testsuite/g++.dg/cpp0x/udlit-string-literal.h b/gcc/testsuite/g++.dg/cpp0x/udlit-string-literal.h
new file mode 100644
index 0000000..e61034e
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp0x/udlit-string-literal.h
@@ -0,0 +1,22 @@
+#pragma GCC system_header
+
+#include <string>
+
+inline namespace my_string_literals
+{
+ std::string
+ operator"" s(const char* str, std::size_t len)
+ { return std::string{str, len}; }
+
+ std::wstring
+ operator"" s(const wchar_t* str, std::size_t len)
+ { return std::wstring{str, len}; }
+
+ std::u16string
+ operator"" s(const char16_t* str, std::size_t len)
+ { return std::u16string{str, len}; }
+
+ std::u32string
+ operator"" s(const char32_t* str, std::size_t len)
+ { return std::u32string{str, len}; }
+}