Change the key of CGRecordLayouts from being an llvm type* to being a decl*. LLVM
Type*'s can change as types are refined, so we can't use them as a stable key in
the map.  Decls don't change, so use them instead.

This patch was written by Anders, but he's too shy to commit it himself :)


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46743 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/CodeGen/CodeGenFunction.cpp b/CodeGen/CodeGenFunction.cpp
index 98d0b01..dc31a27 100644
--- a/CodeGen/CodeGenFunction.cpp
+++ b/CodeGen/CodeGenFunction.cpp
@@ -139,14 +139,11 @@
 
 /// getCGRecordLayout - Return record layout info.
 const CGRecordLayout *CodeGenFunction::getCGRecordLayout(CodeGenTypes &CGT,
-                                                         QualType RTy) {
-  assert (isa<RecordType>(RTy) 
-          && "Unexpected type. RecordType expected here.");
+                                                         QualType Ty) {
+  const RecordType *RTy = Ty->getAsRecordType();
+  assert (RTy && "Unexpected type. RecordType expected here.");
 
-  const llvm::Type *Ty = ConvertType(RTy);
-  assert (Ty && "Unable to find llvm::Type");
-  
-  return CGT.getCGRecordLayout(Ty);
+  return CGT.getCGRecordLayout(RTy->getDecl());
 }
 
 /// WarnUnsupported - Print out a warning that codegen doesn't support the