On 21 August 2013 11:43, Stephan Bergmann <[email protected]> wrote:
> On 08/21/2013 06:18 PM, Richard Smith wrote: > >> On 20 Aug 2013 21:15, "Nick Lewycky" <[email protected] >> <mailto:[email protected]>> 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
_______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
