X-Git-Url: http://plrg.eecs.uci.edu/git/?p=oota-llvm.git;a=blobdiff_plain;f=lib%2FTableGen%2FStringMatcher.cpp;h=16681702d1d66cd9da597a813a8fe9508801d5ca;hp=0ce626d4b19ea2f4102b34a7a095adce6dad2ccd;hb=ae62636ef881aa040e9c550cccb8404a4598a957;hpb=f657da2e4896732f306a9e62261418112e7337ce diff --git a/lib/TableGen/StringMatcher.cpp b/lib/TableGen/StringMatcher.cpp index 0ce626d4b19..16681702d1d 100644 --- a/lib/TableGen/StringMatcher.cpp +++ b/lib/TableGen/StringMatcher.cpp @@ -87,11 +87,11 @@ EmitStringMatcherForChar(const std::vector &Matches, << Matches[0]->first[CharNo] << "')\n"; OS << Indent << " break;\n"; } else { - // Do the comparison with if (Str.substr(1, 3) != "foo"). + // Do the comparison with if memcmp(Str.data()+1, "foo", 3). // FIXME: Need to escape general strings. - OS << Indent << "if (" << StrVariableName << ".substr(" << CharNo << ", " - << NumChars << ") != \""; - OS << Matches[0]->first.substr(CharNo, NumChars) << "\")\n"; + OS << Indent << "if (memcmp(" << StrVariableName << ".data()+" << CharNo + << ", \"" << Matches[0]->first.substr(CharNo, NumChars) << "\", " + << NumChars << "))\n"; OS << Indent << " break;\n"; }