From 934f075e35df3936766447439f959605dacc122e Mon Sep 17 00:00:00 2001 From: Sanjoy Das Date: Sat, 7 Nov 2015 01:56:07 +0000 Subject: [PATCH] [FunctionAttrs] Add comment and clarify assertion message; NFC git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252389 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Transforms/IPO/FunctionAttrs.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/Transforms/IPO/FunctionAttrs.cpp b/lib/Transforms/IPO/FunctionAttrs.cpp index b63ffb4a72c..907cede8e5c 100644 --- a/lib/Transforms/IPO/FunctionAttrs.cpp +++ b/lib/Transforms/IPO/FunctionAttrs.cpp @@ -457,7 +457,12 @@ determinePointerReadAttrs(Argument *A, unsigned UseIndex = std::distance(CS.arg_begin(), U); - assert(UseIndex < CS.data_operands_size() && "Non-argument use?"); + // U cannot be the callee operand use: since we're exploring the + // transitive uses of an Argument, having such a use be a callee would + // imply the CallSite is an indirect call or invoke; and we'd take the + // early exit above. + assert(UseIndex < CS.data_operands_size() && + "Data operand use expected!"); bool IsOperandBundleUse = UseIndex >= CS.getNumArgOperands(); -- 2.34.1