I ran the test through gdb and stepped through, and it looks like the language options are read into a LangOptions on the stack then passed to the listener for validation, but they're never copied into ASTReader::Context. Could that be the problem? http://llvm-reviews.chandlerc.com/D272