Author: Erik Pilkington Date: 2021-01-25T13:02:02-05:00 New Revision: c4355670b4bb12bc7181a99345bf8d09af1c5762
URL: https://github.com/llvm/llvm-project/commit/c4355670b4bb12bc7181a99345bf8d09af1c5762 DIFF: https://github.com/llvm/llvm-project/commit/c4355670b4bb12bc7181a99345bf8d09af1c5762.diff LOG: [Sema] Fix an assertion failure in -Wcompletion-handler NamedDecl::getName() was being called on a constructor. Added: clang/test/SemaObjCXX/warn-called-once.mm Modified: clang/lib/Analysis/CalledOnceCheck.cpp Removed: ################################################################################ diff --git a/clang/lib/Analysis/CalledOnceCheck.cpp b/clang/lib/Analysis/CalledOnceCheck.cpp index 6b7d3790e3e5..883629a300dc 100644 --- a/clang/lib/Analysis/CalledOnceCheck.cpp +++ b/clang/lib/Analysis/CalledOnceCheck.cpp @@ -936,8 +936,9 @@ class CalledOnceChecker : public ConstStmtVisitor<CalledOnceChecker> { /// Return true if the only parameter of the function is conventional. static bool isOnlyParameterConventional(const FunctionDecl *Function) { - return Function->getNumParams() == 1 && - hasConventionalSuffix(Function->getName()); + IdentifierInfo *II = Function->getIdentifier(); + return Function->getNumParams() == 1 && II && + hasConventionalSuffix(II->getName()); } /// Return true/false if 'swift_async' attribute states that the given diff --git a/clang/test/SemaObjCXX/warn-called-once.mm b/clang/test/SemaObjCXX/warn-called-once.mm new file mode 100644 index 000000000000..312da27d9ae3 --- /dev/null +++ b/clang/test/SemaObjCXX/warn-called-once.mm @@ -0,0 +1,7 @@ +// RUN: %clang_cc1 -verify -fsyntax-only -Wcompletion-handler %s + +// expected-no-diagnostics + +class HasCtor { + HasCtor(void *) {} +}; _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits