aboutsummaryrefslogtreecommitdiff
path: root/lib/Sema/SemaInit.cpp
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2010-11-08 03:40:48 +0000
committerDouglas Gregor <dgregor@apple.com>2010-11-08 03:40:48 +0000
commit8e960435696b4ccf6a8ad0ed0530e3280b77af8b (patch)
treef2af3c028275c68c0431fea64ca8eb1f75430e59 /lib/Sema/SemaInit.cpp
parentfd4524b4452d5dcda9c7cb9b1b665fd0f4b6267e (diff)
Properly diagnose invalid casts to function references. Patch by
Faisal Vali, tweaked by me. Fixes PR8230. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@118400 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Sema/SemaInit.cpp')
-rw-r--r--lib/Sema/SemaInit.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/lib/Sema/SemaInit.cpp b/lib/Sema/SemaInit.cpp
index 616b2a0bf5..bee2ba46a8 100644
--- a/lib/Sema/SemaInit.cpp
+++ b/lib/Sema/SemaInit.cpp
@@ -3202,7 +3202,12 @@ InitializationSequence::InitializationSequence(Sema &S,
/*SuppressUserConversions*/ true,
/*AllowExplicitConversions*/ false,
/*InOverloadResolution*/ false))
- SetFailed(InitializationSequence::FK_ConversionFailed);
+ {
+ if (Initializer->getType() == Context.OverloadTy )
+ SetFailed(InitializationSequence::FK_AddressOfOverloadFailed);
+ else
+ SetFailed(InitializationSequence::FK_ConversionFailed);
+ }
else
setSequenceKind(StandardConversion);
}