From 22b4c819d463da7eadb20162d049ee89de746bce Mon Sep 17 00:00:00 2001 From: Andrew Trick Date: Thu, 8 Sep 2011 05:25:49 +0000 Subject: Fix a use of freed string contents. Speculatively try to fix our windows testers with a patch I found on the internet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139279 91177308-0d34-0410-b5e6-96231b3b80d8 --- utils/TableGen/FixedLenDecoderEmitter.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'utils/TableGen/FixedLenDecoderEmitter.cpp') diff --git a/utils/TableGen/FixedLenDecoderEmitter.cpp b/utils/TableGen/FixedLenDecoderEmitter.cpp index c0b5138..85f3dbf 100644 --- a/utils/TableGen/FixedLenDecoderEmitter.cpp +++ b/utils/TableGen/FixedLenDecoderEmitter.cpp @@ -764,11 +764,11 @@ void FilterChooser::emitBinaryParser(raw_ostream &o, unsigned &Indentation, static void emitSinglePredicateMatch(raw_ostream &o, StringRef str, std::string PredicateNamespace) { - const char *X = str.str().c_str(); - if (X[0] == '!') - o << "!(Bits & " << PredicateNamespace << "::" << &X[1] << ")"; + if (str[0] == '!') + o << "!(Bits & " << PredicateNamespace << "::" + << str.slice(1,str.size()) << ")"; else - o << "(Bits & " << PredicateNamespace << "::" << X << ")"; + o << "(Bits & " << PredicateNamespace << "::" << str << ")"; } bool FilterChooser::emitPredicateMatch(raw_ostream &o, unsigned &Indentation, -- cgit v1.1