]> granicus.if.org Git - clang/commitdiff
Don't build an explicit conversion to a reference type
authorDouglas Gregor <dgregor@apple.com>
Fri, 20 Nov 2009 02:31:03 +0000 (02:31 +0000)
committerDouglas Gregor <dgregor@apple.com>
Fri, 20 Nov 2009 02:31:03 +0000 (02:31 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89441 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Sema/SemaExprCXX.cpp

index 6f0cb8a27007b5251c7d3573bc19be9c11246d18..5962466023d27545030d6fe344d73d3962748e50 100644 (file)
@@ -1156,11 +1156,12 @@ Sema::PerformImplicitConversion(Expr *&From, QualType ToType,
                   dyn_cast<CXXConstructorDecl>(FD)) {
         CastKind = CastExpr::CK_ConstructorConversion;
         // Do no conversion if dealing with ... for the first conversion.
-        if (!ICS.UserDefined.EllipsisConversion)
+        if (!ICS.UserDefined.EllipsisConversion) {
           // If the user-defined conversion is specified by a constructor, the 
           // initial standard conversion sequence converts the source type to the
           // type required by the argument of the constructor
-          BeforeToType = Ctor->getParamDecl(0)->getType();
+          BeforeToType = Ctor->getParamDecl(0)->getType().getNonReferenceType();
+        }
       }    
       else
         assert(0 && "Unknown conversion function kind!");