r188863 - Issue fixits replacing invalid character literals with the equivalent \xNN

Nick Lewycky nlewycky at google.com
Wed Aug 21 12:01:00 PDT 2013


On 21 August 2013 11:43, Stephan Bergmann <sbergman at redhat.com> wrote:

> On 08/21/2013 06:18 PM, Richard Smith wrote:
>
>> On 20 Aug 2013 21:15, "Nick Lewycky" <nicholas at mxc.ca
>> <mailto:nicholas at mxc.ca>> wrote:
>>  >
>>  > Author: nicholas
>>  > Date: Tue Aug 20 23:10:58 2013
>>  > New Revision: 188863
>>  >
>>  > URL: http://llvm.org/viewvc/llvm-**project?rev=188863&view=rev<http://llvm.org/viewvc/llvm-project?rev=188863&view=rev>
>>  > Log:
>>  > Issue fixits replacing invalid character literals with the equivalent
>> \xNN
>>  > escape code.
>>  >
>>  > Added:
>>  >     cfe/trunk/test/Lexer/char-**literal-encoding-fixit.c
>>  > Modified:
>>  >     cfe/trunk/lib/Lex/**LiteralSupport.cpp
>>  >
>>  > Modified: cfe/trunk/lib/Lex/**LiteralSupport.cpp
>>  > URL:
>> http://llvm.org/viewvc/llvm-**project/cfe/trunk/lib/Lex/**
>> LiteralSupport.cpp?rev=188863&**r1=188862&r2=188863&view=diff<http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Lex/LiteralSupport.cpp?rev=188863&r1=188862&r2=188863&view=diff>
>>  >
>> ==============================**==============================**
>> ==================
>>  > --- cfe/trunk/test/Lexer/char-**literal-encoding-fixit.c (added)
>>  > +++ cfe/trunk/test/Lexer/char-**literal-encoding-fixit.c Tue Aug 20
>> 23:10:58 2013
>>  > @@ -0,0 +1,11 @@
>>  > +// RUN: cp %s %t
>>  > +// RUN: %clang_cc1 -fixit -x c %t
>>  > +// RUN: FileCheck -input-file=%t %t
>>  > +
>>  > +// Note that this file is not valid UTF-8.
>>  > +
>>  > +int test1 = 'ˆ';
>>  > +// CHECK: int test1 = '\x88';
>>  > +
>>  > +int test2 = 'abˆc';
>>  > +// CHECK: int test2 = 'ab\x88c';
>>
>
> But the latter will be parsed as "a", "b", "\x88c" rather than "a", "b",
> "\x88", "c".  I think the only safe way to do such a replacement esp. for
> character literals is to use octal \ooo escapes.  (For string literals,
> there would also be the possibility of splitting into adjacent string
> literals.)


Thanks, reverted in r188918. We should also suggest things like the other
simple-escape-sequence characters too.

Nick
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20130821/a9fcd88f/attachment.html>


More information about the cfe-commits mailing list