diff --git a/lib/CodeGen/CGObjCGNU.cpp b/lib/CodeGen/CGObjCGNU.cpp
index 2c030e9..7d98ecf 100644
--- a/lib/CodeGen/CGObjCGNU.cpp
+++ b/lib/CodeGen/CGObjCGNU.cpp
@@ -121,6 +121,8 @@
                                            const ObjCProtocolDecl *PD);
   virtual void GenerateProtocol(const ObjCProtocolDecl *PD);
   virtual llvm::Function *ModuleInitFunction();
+  virtual llvm::Function *GetPropertyGetFunction();
+  virtual llvm::Function *GetPropertySetFunction();
   virtual llvm::Function *EnumerationMutationFunction();
   
   virtual void EmitTryStmt(CodeGen::CodeGenFunction &CGF,
@@ -940,22 +942,25 @@
   return Method;
 }
 
-llvm::Function *CGObjCGNU::EnumerationMutationFunction()
-{
-  assert(0 && "No enumeration mutation function in the GNU runtime!");
-  
+llvm::Function *CGObjCGNU::GetPropertyGetFunction() {
+  return 0;
+}
+
+llvm::Function *CGObjCGNU::GetPropertySetFunction() {
+  return 0;
+}
+
+llvm::Function *CGObjCGNU::EnumerationMutationFunction() {
   return 0;
 }
 
 void CGObjCGNU::EmitTryStmt(CodeGen::CodeGenFunction &CGF,
-                            const ObjCAtTryStmt &S)
-{
+                            const ObjCAtTryStmt &S) {
   CGF.ErrorUnsupported(&S, "@try statement");
 }
 
 void CGObjCGNU::EmitThrowStmt(CodeGen::CodeGenFunction &CGF,
-                              const ObjCAtThrowStmt &S)
-{
+                              const ObjCAtThrowStmt &S) {
   CGF.ErrorUnsupported(&S, "@throw statement");
 }
 
