diff options
author | Ed Smith-Rowland <3dw4rd@verizon.net> | 2013-02-14 02:55:42 +0000 |
---|---|---|
committer | Edward Smith-Rowland <emsr@gcc.gnu.org> | 2013-02-14 02:55:42 +0000 |
commit | 561f7fc72cbe475f1661e457731bb7d3b99f82a1 (patch) | |
tree | 835d414e4efbc7f21d5a4f16cd4e2d5968134664 /gcc | |
parent | 94504fd4840c1d67e96d4cf4759d21de3398ef0c (diff) | |
download | gcc-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/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/cpp0x/udlit-string-literal.C | 13 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/cpp0x/udlit-string-literal.h | 22 |
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}; } +} |