pascal string bug

This example shows clang stumbling over a pascal string constant with -fpascal-strings (and failing to emit a gcc-style warning without -fpascal-strings).

$ cat test.c
unsigned char * Foo( void )
{
   static unsigned char s[256] = "\pHello";
   return s;
}

GCC
$ gcc -c test.c -o test.o
test.c:3:33: warning: unknown escape sequence '\p'
$ gcc -c test.c -o test.o -fpascal-strings

CLANG
$ clang -c test.c -o test.o
$ clang -c test.c -o test.o -fpascal-strings
Assertion failed: (V && "DeclRefExpr not entered in LocalDeclMap?"), function EmitDeclRefLValue, file CGExpr.cpp, line 641.
0 clang-cc 0x00d2e172 main + 13491682
1 clang-cc 0x00d2e560 main + 13492688
2 libSystem.B.dylib 0x943c32bb _sigtramp + 43
3 libSystem.B.dylib 0xffffffff _sigtramp + 1807994223
4 libSystem.B.dylib 0x9443723a raise + 26
5 libSystem.B.dylib 0x94443679 abort + 73
6 libSystem.B.dylib 0x944383db __assert_rtn + 101
7 clang-cc 0x0007d2b3 main + 184099
...
26 clang-cc 0x00050239 _mh_execute_header + 324153
27 clang-cc 0x00050b75 main + 2021
28 clang-cc 0x00001836 _mh_execute_header + 2102
Stack dump:
0. Program arguments: /Users/rp/llvm/Debug/bin/clang-cc -S -disable-free --relocation-model pic --disable-fp-elim --unwind-tables=0 --fmath-errno=0 -mmacosx-version-min=10.5.6 -fpascal-strings -arch i386 -o /tmp/cc-YSUk5h.s -x c test.c
1. <eof> parser at end of file
2. test.c:1:17: LLVM IR generation of declaration 'Foo'
3. test.c:2:1: LLVM IR generation of compound statement ('{}')

$ clang-cc -version
Low Level Virtual Machine (http://llvm.org/):
  llvm version 2.6svn
  DEBUG build with assertions.
  Built Mar 31 2009(21:31:16).

Robert P.

Both issues fixed with r68180+r68181. Thanks for the report.

-Eli