summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/SemaInit.cpp
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2010-12-02 21:47:04 +0000
committerDouglas Gregor <dgregor@apple.com>2010-12-02 21:47:04 +0000
commit6dd3a6a1818410b6daed83ff2875abd93737ae55 (patch)
treec7746ed028a2f891617f4e73047648d3ec948e14 /clang/lib/Sema/SemaInit.cpp
parent8cabd938ed780bfe588b1a00bc0ea59acd3f5f8a (diff)
downloadbcm5719-llvm-6dd3a6a1818410b6daed83ff2875abd93737ae55.tar.gz
bcm5719-llvm-6dd3a6a1818410b6daed83ff2875abd93737ae55.zip
When we're performing an explicit cast of some sort, don't complain
about deprecated Objective-C pointer conversions. Plus, make sure to actually set an appropriate AssignmentAction when performing an implicit conversion from an InitializationSequence. Fixes regressions in the GCC DejaGNU testsuite. llvm-svn: 120744
Diffstat (limited to 'clang/lib/Sema/SemaInit.cpp')
-rw-r--r--clang/lib/Sema/SemaInit.cpp10
1 files changed, 4 insertions, 6 deletions
diff --git a/clang/lib/Sema/SemaInit.cpp b/clang/lib/Sema/SemaInit.cpp
index 455f7bbba74..26826aa87b5 100644
--- a/clang/lib/Sema/SemaInit.cpp
+++ b/clang/lib/Sema/SemaInit.cpp
@@ -3233,6 +3233,8 @@ getAssignmentAction(const InitializedEntity &Entity) {
switch(Entity.getKind()) {
case InitializedEntity::EK_Variable:
case InitializedEntity::EK_New:
+ case InitializedEntity::EK_Exception:
+ case InitializedEntity::EK_Base:
return Sema::AA_Initializing;
case InitializedEntity::EK_Parameter:
@@ -3245,11 +3247,6 @@ getAssignmentAction(const InitializedEntity &Entity) {
case InitializedEntity::EK_Result:
return Sema::AA_Returning;
- case InitializedEntity::EK_Exception:
- case InitializedEntity::EK_Base:
- llvm_unreachable("No assignment action for C++-specific initialization");
- break;
-
case InitializedEntity::EK_Temporary:
// FIXME: Can we tell apart casting vs. converting?
return Sema::AA_Casting;
@@ -3868,7 +3865,8 @@ InitializationSequence::Perform(Sema &S,
bool IgnoreBaseAccess = Kind.isCStyleOrFunctionalCast();
if (S.PerformImplicitConversion(CurInitExpr, Step->Type, *Step->ICS,
- Sema::AA_Converting, IgnoreBaseAccess))
+ getAssignmentAction(Entity),
+ IgnoreBaseAccess))
return ExprError();
CurInit.release();
OpenPOWER on IntegriCloud