summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema
diff options
context:
space:
mode:
authorRichard Smith <richard-llvm@metafoo.co.uk>2013-01-15 07:58:29 +0000
committerRichard Smith <richard-llvm@metafoo.co.uk>2013-01-15 07:58:29 +0000
commit03d9393b4ab8ef1fe7c4fede24fd39d3d6706c22 (patch)
tree6f48acafd15b33e3bbbadf25e03cf9c15b1825ba /clang/lib/Sema
parentb03f6c489a2f9de400f04b24041316e3bcc03337 (diff)
downloadbcm5719-llvm-03d9393b4ab8ef1fe7c4fede24fd39d3d6706c22.tar.gz
bcm5719-llvm-03d9393b4ab8ef1fe7c4fede24fd39d3d6706c22.zip
Don't crash when binding a reference to a temporary pointer created from
resolving an overloaded function reference within an initializer list. Previously we would try to resolve the overloaded function reference without first stripping off the InitListExpr wrapper. llvm-svn: 172517
Diffstat (limited to 'clang/lib/Sema')
-rw-r--r--clang/lib/Sema/SemaInit.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/clang/lib/Sema/SemaInit.cpp b/clang/lib/Sema/SemaInit.cpp
index 94dd2aa45c7..26bb6efb8e0 100644
--- a/clang/lib/Sema/SemaInit.cpp
+++ b/clang/lib/Sema/SemaInit.cpp
@@ -3024,6 +3024,10 @@ static void TryReferenceListInitialization(Sema &S,
Sequence.RewrapReferenceInitList(cv1T1, InitList);
return;
}
+
+ // Update the initializer if we've resolved an overloaded function.
+ if (Sequence.step_begin() != Sequence.step_end())
+ Sequence.RewrapReferenceInitList(cv1T1, InitList);
}
// Not reference-related. Create a temporary and bind to that.
OpenPOWER on IntegriCloud