diff --git a/lib/CodeGen/CGExprConstant.cpp b/lib/CodeGen/CGExprConstant.cpp
index ec6a75f..ea60cbb 100644
--- a/lib/CodeGen/CGExprConstant.cpp
+++ b/lib/CodeGen/CGExprConstant.cpp
@@ -378,6 +378,14 @@
     return EmitSizeAlignOf(E->getArgumentType(), E->getType(), E->isSizeOf());
   }
 
+  llvm::Constant *VisitAddrLabelExpr(const AddrLabelExpr *E) {
+    assert(CGF && "Invalid address of label expression outside function.");
+    llvm::Constant *C = 
+      llvm::ConstantInt::get(llvm::Type::Int32Ty,
+                             CGF->GetIDForAddrOfLabel(E->getLabel()));
+    return llvm::ConstantExpr::getIntToPtr(C, ConvertType(E->getType()));
+  }
+
   // Unary operators
   llvm::Constant *VisitUnaryPlus(const UnaryOperator *E) {
     return Visit(E->getSubExpr());
diff --git a/lib/CodeGen/CGExprScalar.cpp b/lib/CodeGen/CGExprScalar.cpp
index e408e9f..4eb9062 100644
--- a/lib/CodeGen/CGExprScalar.cpp
+++ b/lib/CodeGen/CGExprScalar.cpp
@@ -123,10 +123,11 @@
     return EmitSizeAlignOf(E->getArgumentType(), E->getType(), E->isSizeOf());
   }
   Value *VisitAddrLabelExpr(const AddrLabelExpr *E) {
-    Value *V = llvm::ConstantInt::get(llvm::Type::Int32Ty,
-                                      CGF.GetIDForAddrOfLabel(E->getLabel()));
-    return Builder.CreateIntToPtr(V, 
-                                  llvm::PointerType::getUnqual(llvm::Type::Int8Ty));
+    llvm::Value *V = 
+      llvm::ConstantInt::get(llvm::Type::Int32Ty,
+                             CGF.GetIDForAddrOfLabel(E->getLabel()));
+    
+    return Builder.CreateIntToPtr(V, ConvertType(E->getType()));
   }
     
   // l-values.
