rewrite tests segfaulting

Hi, all.

Before I do any more clang hacking, I thought I'd look at getting clang to pass all of its current tests. It's failing most of the rewriter tests with a segfault. This is on a 32-bit Ubuntu Gutsy system, using gcc version 4.1.3. I'm over my head here, but I expect someone else might be able to help.

The backtraces indicate that the segfaults are all happening in the same bit of code. Here's the first one:

Command:
  clang -rewrite-test Rewriter/objc-encoding-bug-1.m | clang
Output:
clang(_ZN40_GLOBAL__N_Signals.cpp_00000000_4112E74C15PrintStackTraceEv+0x22)[0x851c410]
clang(_ZN40_GLOBAL__N_Signals.cpp_00000000_4112E74C13SignalHandlerEi+0x112)[0x851c542]
[0xffffe420]
clang(_ZN5clang12HeaderSearch11getFileInfoEPKNS_9FileEntryE+0x12)[0x8402b42]
clang(_ZN5clang12HeaderSearch16getFileDirFlavorEPKNS_9FileEntryE+0x18)[0x82e6c14]
clang(_ZN5clang4Sema16MergeTypeDefDeclEPNS_11TypedefDeclEPNS_10ScopedDeclE+0x1a8)[0x837eb5e]
clang(_ZN5clang4Sema15ActOnDeclaratorEPNS_5ScopeERNS_10DeclaratorEPv+0x280)[0x83801d6]
clang(_ZN5clang6Parser43ParseInitDeclaratorListAfterFirstDeclaratorERNS_10DeclaratorE+0xa1)[0x83ef585]
clang(_ZN5clang6Parser22ParseSimpleDeclarationEj+0x108)[0x83ef916]
clang(_ZN5clang6Parser16ParseDeclarationEj+0x44)[0x83ef998]
clang(_ZN5clang6Parser24ParseExternalDeclarationEv+0x250)[0x83ea4c4]
clang(_ZN5clang6Parser17ParseTopLevelDeclERPv+0x3d)[0x83ea51f]
clang(_ZN5clang8ParseASTERNS_12PreprocessorEPNS_11ASTConsumerEb+0x18d)[0x8373d61]
clang[0x82eb930]
clang(main+0x5ab)[0x82ec279]
/lib/tls/i686/cmov/libc.so.6(__libc_start_main+0xe0)[0x4017f050]
clang[0x82c4fc1]
Segmentation fault (core dumped)

It's the second clang process that's core dumping. gdb says that OldDeclFile in Sema::MergeTypeDefDecl is null. I'm happy to answer any questions, but I may be slow in responding due to time constraints.

Thanks,
Sam