fix some warnings, patch by Justin Handville


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@42010 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/AST/ASTContext.cpp b/AST/ASTContext.cpp
index 87f68fe..89da7dc 100644
--- a/AST/ASTContext.cpp
+++ b/AST/ASTContext.cpp
@@ -730,6 +730,9 @@
     }
   }
   assert(0 && "getFloatingTypeOfSizeWithinDomain(): illegal domain");
+  //an invalid return value, but the assert
+  //will ensure that this code is never reached.
+  return VoidTy;
 }
 
 /// compareFloatingType - Handles 3 different combos: 
diff --git a/CodeGen/CGExpr.cpp b/CodeGen/CGExpr.cpp
index 64fa549..d896c95 100644
--- a/CodeGen/CGExpr.cpp
+++ b/CodeGen/CGExpr.cpp
@@ -134,6 +134,9 @@
     return EmitLoadOfOCUElementLValue(LV, ExprType);
   
   assert(0 && "Bitfield ref not impl!");
+  //an invalid RValue, but the assert will
+  //ensure that this point is never reached
+  return RValue();
 }
 
 // If this is a reference to a subset of the elements of a vector, either
@@ -270,6 +273,9 @@
     return LValue::MakeAddr(CGM.GetAddrOfGlobalDecl(D));
   }
   assert(0 && "Unimp declref");
+  //an invalid LValue, but the assert will
+  //ensure that this point is never reached.
+  return LValue();
 }
 
 LValue CodeGenFunction::EmitUnaryOpLValue(const UnaryOperator *E) {
diff --git a/CodeGen/CodeGenTypes.cpp b/CodeGen/CodeGenTypes.cpp
index 46668e4..21a359f 100644
--- a/CodeGen/CodeGenTypes.cpp
+++ b/CodeGen/CodeGenTypes.cpp
@@ -136,6 +136,11 @@
     
     return llvm::FunctionType::get(ResultType, ArgTys, isVarArg, 0);
   }
+
+  case Type::ObjcInterface:
+    assert(0 && "FIXME: add missing functionality here");
+    break;
+
   case Type::Tagged:
     const TagType &TT = cast<TagType>(Ty);
     const TagDecl *TD = TT.getDecl();