diff options
author | Richard Smith <richard-llvm@metafoo.co.uk> | 2013-01-15 07:58:29 +0000 |
---|---|---|
committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2013-01-15 07:58:29 +0000 |
commit | 03d9393b4ab8ef1fe7c4fede24fd39d3d6706c22 (patch) | |
tree | 6f48acafd15b33e3bbbadf25e03cf9c15b1825ba /clang/lib/Sema | |
parent | b03f6c489a2f9de400f04b24041316e3bcc03337 (diff) | |
download | bcm5719-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.cpp | 4 |
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. |