CodeGenTypes.cpp assertion raised

Hi!

One more:

struct s *x = 0;

struct s {
  char c;
  struct s *n;
};

void foo(struct s* t, char y) {
  t->c = y;
}

Causes:

clang: CodeGenTypes.cpp:406: unsigned int clang::CodeGen::CodeGenTypes::getLLVMFieldNo(const clang::FieldDecl*): Assertion `I != FieldInfo.end() && "Unable to find field info"' failed.
clang((anonymous namespace)::PrintStackTrace()+0x22)[0x84514f8]
clang((anonymous namespace)::SignalHandler(int)+0x102)[0x84517a0]
[0xffffe420]
/lib/libc.so.6(abort+0x101)[0xb7d110f1]
/lib/libc.so.6(__assert_fail+0xf0)[0xb7d08b50]
clang(clang::CodeGen::CodeGenTypes::getLLVMFieldNo(clang::FieldDecl const*)+0x79)[0x82960ef]
clang(clang::CodeGen::CodeGenFunction::EmitMemberExpr(clang::MemberExpr const*)+0x16c)[0x82a0b9c]
clang(clang::CodeGen::CodeGenFunction::EmitLValue(clang::Expr const*)+0x1ff)[0x829f877]
clang((anonymous namespace)::ScalarExprEmitter::EmitLValue(clang::Expr const*)+0x22)[0x82ae576]
clang((anonymous namespace)::ScalarExprEmitter::VisitBinAssign(clang::BinaryOperator const*)+0x28)[0x82ace72]
clang(clang::StmtVisitor<(anonymous namespace)::ScalarExprEmitter, llvm::Value*>::Visit(clang::Stmt*)+0x248)[0x82af2e2]
clang(clang::CodeGen::CodeGenFunction::EmitScalarExpr(clang::Expr const*)+0x7a)[0x82ada40]
clang(clang::CodeGen::CodeGenFunction::EmitStmt(clang::Stmt const*)+0xa1)[0x82b1483]
clang(clang::CodeGen::CodeGenFunction::EmitCompoundStmt(clang::CompoundStmt const&, bool, llvm::Value*, bool)+0x8b)[0x82b174d]
clang(clang::CodeGen::CodeGenFunction::EmitStmt(clang::Stmt const*)+0x172)[0x82b1554]
clang(clang::CodeGen::CodeGenFunction::GenerateCode(clang::FunctionDecl const*)+0x39e)[0x829c9f2]
clang(clang::CodeGen::CodeGenModule::EmitFunction(clang::FunctionDecl const*)+0x42)[0x828ebf0]
clang(clang::CodeGen::CodeGenFunction(clang::CodeGen::CodeGenModule*, clang::FunctionDecl*)+0x18)[0x828ddfa]
clang((anonymous namespace)::CodeGenerator::HandleTopLevelDecl(clang::Decl*)+0x46)[0x826392e]
clang(clang::ParseAST(clang::Preprocessor&, clang::ASTConsumer*, bool)+0xfe)[0x82cfe8c]
clang[0x8280a87]
clang(main+0x5e6)[0x82813e2]
/lib/libc.so.6(__libc_start_main+0xe0)[0xb7cfb050]
clang[0x825f361]
Aborted

There's still more to come...

We would like to use clang in our research project, but we are still
having some troubles compiling our benchmark sources. We appreciate your
work on clang and hope that we can contribute to improving clang by pointing
out some problems. We value your support!

Cheers,
Michael