summaryrefslogtreecommitdiffstats
path: root/clang/lib/AST/DeclCXX.cpp
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2009-09-01 16:58:52 +0000
committerDouglas Gregor <dgregor@apple.com>2009-09-01 16:58:52 +0000
commit32e2c8472ee95cb806b38a2966b4fdefc5b6941c (patch)
tree90edcbb0eb3c271b4690da087a544eedadb98b6a /clang/lib/AST/DeclCXX.cpp
parent6cdf83c1927961adb5f3ac300c5ace977a8d81f0 (diff)
downloadbcm5719-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.cpp6
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();
+ }
}
}
OpenPOWER on IntegriCloud