summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/SemaExprCXX.cpp
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2008-11-03 17:51:48 +0000
committerDouglas Gregor <dgregor@apple.com>2008-11-03 17:51:48 +0000
commit0537942f3c3271027f708b7ac872e7149e15be37 (patch)
tree450f5ebc7aaaa33f962b01e4628b1c2c2031bb84 /clang/lib/Sema/SemaExprCXX.cpp
parentd395a1722d7cbd0170fe4b4737c93814edaf7b56 (diff)
downloadbcm5719-llvm-0537942f3c3271027f708b7ac872e7149e15be37.tar.gz
bcm5719-llvm-0537942f3c3271027f708b7ac872e7149e15be37.zip
Add implicitly-declared default and copy constructors to C++ classes,
when appropriate. Conversions for class types now make use of copy constructors. I've replaced the egregious hack allowing class-to-class conversions with a slightly less egregious hack calling these conversions standard conversions (for overloading reasons). llvm-svn: 58622
Diffstat (limited to 'clang/lib/Sema/SemaExprCXX.cpp')
-rw-r--r--clang/lib/Sema/SemaExprCXX.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/clang/lib/Sema/SemaExprCXX.cpp b/clang/lib/Sema/SemaExprCXX.cpp
index d4d4f39662d..99b0829593c 100644
--- a/clang/lib/Sema/SemaExprCXX.cpp
+++ b/clang/lib/Sema/SemaExprCXX.cpp
@@ -982,6 +982,13 @@ Sema::PerformImplicitConversion(Expr *&From, QualType ToType,
ImpCastExprToType(From, FromType);
break;
+ case ICK_Derived_To_Base:
+ // FIXME: This should never happen. It's a consequence of
+ // pretending that a user-defined conversion via copy constructor
+ // is actually a standard conversion.
+ ImpCastExprToType(From, ToType);
+ break;
+
default:
assert(false && "Improper second standard conversion");
break;
OpenPOWER on IntegriCloud