diff options
| author | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2010-10-05 03:05:30 +0000 |
|---|---|---|
| committer | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2010-10-05 03:05:30 +0000 |
| commit | dfbdfbba8f687dfc7f1745256246a92fcb64652f (patch) | |
| tree | 54fe7ea1df05f3d4b3e540d0fe3b6e495142a765 /clang/lib/Sema/SemaInit.cpp | |
| parent | 0077b22aa4d86610718531c29a378662a9fe855c (diff) | |
| download | bcm5719-llvm-dfbdfbba8f687dfc7f1745256246a92fcb64652f.tar.gz bcm5719-llvm-dfbdfbba8f687dfc7f1745256246a92fcb64652f.zip | |
In Sema's TryRefInitWithConversionFunction, suppress user conversions for the overload candidates.
Fixes an infinite recursion in overload resolution for rdar://8499524.
Many thanks to Doug!
llvm-svn: 115588
Diffstat (limited to 'clang/lib/Sema/SemaInit.cpp')
| -rw-r--r-- | clang/lib/Sema/SemaInit.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/clang/lib/Sema/SemaInit.cpp b/clang/lib/Sema/SemaInit.cpp index 1ffa70207ab..6fd1d68dcd0 100644 --- a/clang/lib/Sema/SemaInit.cpp +++ b/clang/lib/Sema/SemaInit.cpp @@ -2325,10 +2325,12 @@ static OverloadingResult TryRefInitWithConversionFunction(Sema &S, if (ConstructorTmpl) S.AddTemplateOverloadCandidate(ConstructorTmpl, FoundDecl, /*ExplicitArgs*/ 0, - &Initializer, 1, CandidateSet); + &Initializer, 1, CandidateSet, + /*SuppressUserConversions=*/true); else S.AddOverloadCandidate(Constructor, FoundDecl, - &Initializer, 1, CandidateSet); + &Initializer, 1, CandidateSet, + /*SuppressUserConversions=*/true); } } } |

