]> granicus.if.org Git - clang/commitdiff
PR9494: Get rid of bitcast which was both unnecessary and written incorrectly.
authorEli Friedman <eli.friedman@gmail.com>
Wed, 16 Mar 2011 22:34:09 +0000 (22:34 +0000)
committerEli Friedman <eli.friedman@gmail.com>
Wed, 16 Mar 2011 22:34:09 +0000 (22:34 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127768 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/CGExpr.cpp
test/CodeGenCXX/references.cpp

index e23d6107c0be99b00c73beeca7ba205f7c5bbf95..99ea773fa0394a25c33ac45c9937bb3451364aa7 100644 (file)
@@ -328,9 +328,8 @@ EmitExprForReferenceBinding(CodeGenFunction &CGF, const Expr *E,
 
         }
       }
-      
-      const llvm::Type *ResultPtrTy = CGF.ConvertType(ResultTy)->getPointerTo();
-      return CGF.Builder.CreateBitCast(Object, ResultPtrTy, "temp");
+
+      return Object;
     }
   }
 
index d2ad980135538ebf78b37a7fa6f864531ec70606..25bc8d801790290c1d552d614e281dc5cf231755 100644 (file)
@@ -258,3 +258,14 @@ void f() {
 }
 }
 
+// PR9494
+namespace N5 {
+struct AnyS { bool b; };
+void f(const bool&);
+AnyS g();
+void h() {
+  // CHECK: call i8 @_ZN2N51gEv()
+  // CHECK: call void @_ZN2N51fERKb(i8*
+  f(g().b);
+}
+}