re PR preprocessor/57757 (CPP extra inserted whitespace needs to be reviewed for C++11 user-defined literals)
PR preprocessor/57757
* lex.c (cpp_avoid_paste): Avoid pasting CPP_{,W,UTF8}STRING
or CPP_STRING{16,32} with CPP_NAME or SPELL_LITERAL token that
starts if a-zA-Z_.
* g++.dg/cpp/paste1.C: New test.
* g++.dg/cpp/paste2.C: New test.
From-SVN: r200875
This commit is contained in:
committed by
Jakub Jelinek
parent
bb6f2bacbb
commit
87e356bada
@@ -1,3 +1,10 @@
|
||||
2013-07-10 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR preprocessor/57757
|
||||
* lex.c (cpp_avoid_paste): Avoid pasting CPP_{,W,UTF8}STRING
|
||||
or CPP_STRING{16,32} with CPP_NAME or SPELL_LITERAL token that
|
||||
starts if a-zA-Z_.
|
||||
|
||||
2013-06-28 Ed Smith-Rowland <3dw4rd@verizon.net>
|
||||
|
||||
* lex.c (lex_raw_string(), lex_string()): Constrain suffixes treated
|
||||
|
||||
@@ -2767,6 +2767,15 @@ cpp_avoid_paste (cpp_reader *pfile, const cpp_token *token1,
|
||||
|| (CPP_OPTION (pfile, objc)
|
||||
&& token1->val.str.text[0] == '@'
|
||||
&& (b == CPP_NAME || b == CPP_STRING)));
|
||||
case CPP_STRING:
|
||||
case CPP_WSTRING:
|
||||
case CPP_UTF8STRING:
|
||||
case CPP_STRING16:
|
||||
case CPP_STRING32: return (CPP_OPTION (pfile, user_literals)
|
||||
&& (b == CPP_NAME
|
||||
|| (TOKEN_SPELL (token2) == SPELL_LITERAL
|
||||
&& ISIDST (token2->val.str.text[0]))));
|
||||
|
||||
default: break;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user