This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
On 05/13/2014 01:29 PM, Joseph S. Myers wrote:
On Mon, 12 May 2014, Ed Smith-Rowland wrote:This patch is really a libcpp patch. But UDLs are like that ;-) Add string user-defined literals and char user-defined literals to the list of things to look out for while escaping strings in macro args. I'm not sure how to test this really. we want to write out *.ii files and verify that internal quotes are escaped.You should be able to check the results of stringizing twice, e.g.: extern "C" int strcmp (const char *, const char *); extern "C" void abort (void); extern "C" void exit (int); void operator "" _s(const char *, unsigned long) { } #define QUOTE(s) #s #define QQUOTE(s) QUOTE(s) const char *s = QQUOTE(QUOTE("hello"_s)); const char *t = QUOTE("\"hello\"_s"); int main() { if (strcmp(s, t) == 0) exit(0); else abort(); } (at least, this fails for me with unmodified GCC, and I think it should pass).
Thank you Joe! Here is a new patch with a proper test case. Built and tested on x86_64-linux. OK? Ed
Attachment:
patch_pr61038
Description: Text document
Attachment:
CL_pr61038
Description: Text document
Attachment:
CL_pr61038
Description: Text document
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |