This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug preprocessor/65860] New: Stringification of User Defined Literals
- From: "marcin.konarski at codestation dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Thu, 23 Apr 2015 14:16:56 +0000
- Subject: [Bug preprocessor/65860] New: Stringification of User Defined Literals
- Auto-submitted: auto-generated
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65860
Bug ID: 65860
Summary: Stringification of User Defined Literals
Product: gcc
Version: 4.9.2
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: preprocessor
Assignee: unassigned at gcc dot gnu.org
Reporter: marcin.konarski at codestation dot org
Sample session explaining problem with stringification of UDLs.
As you can see if preprocessor is run with -std=c++11 switch
it fails to properly stringify tokens that semantically are
user defined literals.
[amok@vegeta](2/3)~/$ cat s.cxx
#define sr( x ) #x
#define s( x ) sr( x )
s( "13"_udl );
#define SR( ... ) # __VA_ARGS__
#define S( ... ) SR( __VA_ARGS__ )
S( "aaa", 7 > x, "13"_udl, foo( 13 ), "bbb" );
[amok@vegeta](2/3)~/$ cpp -E s.cxx
# 1 "s.cxx"
# 1 "<built-in>"
# 1 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 1 "<command-line>" 2
# 1 "s.cxx"
"\"13\"_udl";
"\"aaa\", 7 > x, \"13\"_udl, foo( 13 ), \"bbb\"";
[amok@vegeta](2/3)~/$ cpp -E -std=c++11 s.cxx
# 1 "s.cxx"
# 1 "<built-in>"
# 1 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 1 "<command-line>" 2
# 1 "s.cxx"
""13"_udl";
"\"aaa\", 7 > x, "13"_udl, foo( 13 ), \"bbb\"";
[amok@vegeta](2/3)~/$
I would expect both outputs to be the same.