From c197057b4254d909d4dc2c22a06aed6cb4dd16b2 Mon Sep 17 00:00:00 2001 From: Douglas Gregor Date: Wed, 10 Apr 2013 05:18:00 +0000 Subject: Don't consider invalid user-defined literal operators during overload resolution. llvm-svn: 179150 --- clang/lib/Sema/SemaLookup.cpp | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'clang/lib/Sema/SemaLookup.cpp') diff --git a/clang/lib/Sema/SemaLookup.cpp b/clang/lib/Sema/SemaLookup.cpp index b631d8b930a..eab2d81f396 100644 --- a/clang/lib/Sema/SemaLookup.cpp +++ b/clang/lib/Sema/SemaLookup.cpp @@ -2582,6 +2582,12 @@ Sema::LookupLiteralOperator(Scope *S, LookupResult &R, bool IsRaw = false; bool IsExactMatch = false; + // If the declaration we found is invalid, skip it. + if (D->isInvalidDecl()) { + F.erase(); + continue; + } + if (FunctionDecl *FD = dyn_cast(D)) { if (FD->getNumParams() == 1 && FD->getParamDecl(0)->getType()->getAs()) -- cgit v1.2.3