aboutsummaryrefslogtreecommitdiffstats
path: root/utils/TableGen/AsmWriterEmitter.cpp
diff options
context:
space:
mode:
authorFrancois Pichet <pichet2000@gmail.com>2011-06-29 11:25:34 +0000
committerFrancois Pichet <pichet2000@gmail.com>2011-06-29 11:25:34 +0000
commit2e10b0874447c8627a86d551f28f88620e0958c7 (patch)
tree1c7991416ee5891bb1e96e4930aeb7649d2efdcd /utils/TableGen/AsmWriterEmitter.cpp
parent0fb7dcd48fd6580e3ebf35eafa952a9fe1cac8b2 (diff)
downloadexternal_llvm-2e10b0874447c8627a86d551f28f88620e0958c7.zip
external_llvm-2e10b0874447c8627a86d551f28f88620e0958c7.tar.gz
external_llvm-2e10b0874447c8627a86d551f28f88620e0958c7.tar.bz2
Change AsmName's type from StringRef to std::string. AsmName was pointing to a temporary string object that was destroyed. This is undefined behavior and MSVC didn't like it.
This fixes over 300+ failing tests on MSVC. Credit for this fix goes to chapuni. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134064 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'utils/TableGen/AsmWriterEmitter.cpp')
-rw-r--r--utils/TableGen/AsmWriterEmitter.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/utils/TableGen/AsmWriterEmitter.cpp b/utils/TableGen/AsmWriterEmitter.cpp
index 53df7dd..b77d2e4 100644
--- a/utils/TableGen/AsmWriterEmitter.cpp
+++ b/utils/TableGen/AsmWriterEmitter.cpp
@@ -467,7 +467,7 @@ emitRegisterNameString(raw_ostream &O, StringRef AltName,
for (unsigned i = 0, e = Registers.size(); i != e; ++i) {
const CodeGenRegister &Reg = *Registers[i];
- StringRef AsmName;
+ std::string AsmName;
// "NoRegAltName" is special. We don't need to do a lookup for that,
// as it's just a reference to the default register name.
if (AltName == "" || AltName == "NoRegAltName") {