[cfe-commits] r68975 - in /cfe/trunk: lib/CodeGen/CodeGenModule.cpp test/CodeGen/illegal-UTF8.m

steve naroff snaroff at apple.com
Mon Apr 13 12:52:59 PDT 2009


On Apr 13, 2009, at 3:43 PM, Eli Friedman wrote:

> On Mon, Apr 13, 2009 at 12:08 PM, Steve Naroff <snaroff at apple.com>  
> wrote:
>> Author: snaroff
>> Date: Mon Apr 13 14:08:08 2009
>> New Revision: 68975
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=68975&view=rev
>> Log:
>> Fixed crasher in <rdar://problem/6780904> [irgen] Assertion failed:  
>> (Result == conversionOK && "UTF-8 to UTF-16 conversion failed"),  
>> function GetAddrOfConstantCFString, file CodeGenModule.cpp, line  
>> 1063.
>
> We should not be letting invalid strings through Sema.  Either the
> Lexer or Sema needs to deal with this; it needs to either error out or
> warn and "fix" the string to use a 0xFFFD.
>
> I would suggest reverting this fix because it does nothing but hide  
> the issue.
>

Are you suggesting the following is illegal?

int main(int argc, char *argv[]) {
   printf("\xff\xff___WAIT___\n");
}

GCC accepts this and prints the following:

[steve-naroffs-imac-2:~/llvm/tools/clang] snaroff% ./a.out
??___WAIT___

snaroff

> -Eli




More information about the cfe-commits mailing list