From: Eric Christopher Date: Fri, 3 Jun 2011 20:44:52 +0000 (+0000) Subject: Fix an off by one error. X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=ce1ecf59c80db0ff922e599e4334258f9fa65783;p=oota-llvm.git Fix an off by one error. Part of rdar://9037836 and rdar://9119939 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132590 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/VMCore/InlineAsm.cpp b/lib/VMCore/InlineAsm.cpp index 70d0e3881e8..c4e065df057 100644 --- a/lib/VMCore/InlineAsm.cpp +++ b/lib/VMCore/InlineAsm.cpp @@ -185,11 +185,10 @@ bool InlineAsm::ConstraintInfo::Parse(StringRef Str, // Multi-letter constraint // These will only occur with the existing multiple alternative // constraints and so we can use the isalpha loop below. - StringRef::iterator ConStart = I; + StringRef::iterator ConStart = ++I; while (I != E && isalpha(*I)) ++I; pCodes->push_back(std::string(ConStart, I)); - ++I; } else { // Single letter constraint. pCodes->push_back(std::string(I, I+1)); diff --git a/test/CodeGen/ARM/inlineasm3.ll b/test/CodeGen/ARM/inlineasm3.ll index ff54d6d75ac..cf38d8c7183 100644 --- a/test/CodeGen/ARM/inlineasm3.ll +++ b/test/CodeGen/ARM/inlineasm3.ll @@ -41,3 +41,12 @@ entry: tail call void asm sideeffect "flds s15, $0 \0A", "^Uv|m,~{s15}"(float 1.000000e+00) nounwind ret i32 0 } + +; Radar 9037836 & 9119939 + +@k.2126 = internal unnamed_addr global float 1.000000e+00 +define i32 @t4() nounwind { +entry: +call void asm sideeffect "flds s15, $0 \0A", "*^Uv,~{s15}"(float* @k.2126) nounwind +ret i32 0 +}