diff options
author | Douglas Gregor <dgregor@apple.com> | 2009-09-01 16:58:52 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2009-09-01 16:58:52 +0000 |
commit | 32e2c8472ee95cb806b38a2966b4fdefc5b6941c (patch) | |
tree | 90edcbb0eb3c271b4690da087a544eedadb98b6a /clang/lib/AST/DeclCXX.cpp | |
parent | 6cdf83c1927961adb5f3ac300c5ace977a8d81f0 (diff) | |
download | bcm5719-llvm-32e2c8472ee95cb806b38a2966b4fdefc5b6941c.tar.gz bcm5719-llvm-32e2c8472ee95cb806b38a2966b4fdefc5b6941c.zip |
Fix a crasher involving template instantiation of non-dependent
expressions making use of an overloaded operator. Thanks for the test
case, Anders!
llvm-svn: 80679
Diffstat (limited to 'clang/lib/AST/DeclCXX.cpp')
-rw-r--r-- | clang/lib/AST/DeclCXX.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/clang/lib/AST/DeclCXX.cpp b/clang/lib/AST/DeclCXX.cpp index b6072d8acd5..206193ba812 100644 --- a/clang/lib/AST/DeclCXX.cpp +++ b/clang/lib/AST/DeclCXX.cpp @@ -752,8 +752,10 @@ OverloadIterator::OverloadIterator(NamedDecl *ND) : D(0) { if (isa<FunctionDecl>(ND) || isa<FunctionTemplateDecl>(ND)) D = ND; else if (OverloadedFunctionDecl *Ovl = dyn_cast<OverloadedFunctionDecl>(ND)) { - D = ND; - Iter = Ovl->function_begin(); + if (Ovl->size() != 0) { + D = ND; + Iter = Ovl->function_begin(); + } } } |