From 84e51517e25119419d53d6ed61fef15219efd733 Mon Sep 17 00:00:00 2001 From: Alexey Samsonov Date: Thu, 15 Aug 2013 07:11:34 +0000 Subject: [PATCH] Tentative fix for global-buffer-overflow caused by r188426. Found by AddressSanitizer git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188448 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/R600/AMDGPUISelDAGToDAG.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/Target/R600/AMDGPUISelDAGToDAG.cpp b/lib/Target/R600/AMDGPUISelDAGToDAG.cpp index 22bdb90cca0..77ca8856018 100644 --- a/lib/Target/R600/AMDGPUISelDAGToDAG.cpp +++ b/lib/Target/R600/AMDGPUISelDAGToDAG.cpp @@ -115,7 +115,10 @@ const TargetRegisterClass *AMDGPUDAGToDAGISel::getOperandRegClass(SDNode *N, switch (N->getMachineOpcode()) { default: { const MCInstrDesc &Desc = TM.getInstrInfo()->get(N->getMachineOpcode()); - int RegClass = Desc.OpInfo[Desc.getNumDefs() + OpNo].RegClass; + unsigned OpIdx = Desc.getNumDefs() + OpNo; + if (OpIdx >= Desc.getNumOperands()) + return NULL; + int RegClass = Desc.OpInfo[OpIdx].RegClass; if (RegClass == -1) { return NULL; } -- 2.34.1