diff options
author | Francois Pichet <pichet2000@gmail.com> | 2011-06-29 11:25:34 +0000 |
---|---|---|
committer | Francois Pichet <pichet2000@gmail.com> | 2011-06-29 11:25:34 +0000 |
commit | 2e10b0874447c8627a86d551f28f88620e0958c7 (patch) | |
tree | 1c7991416ee5891bb1e96e4930aeb7649d2efdcd /utils/TableGen/AsmWriterEmitter.cpp | |
parent | 0fb7dcd48fd6580e3ebf35eafa952a9fe1cac8b2 (diff) | |
download | external_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.cpp | 2 |
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") { |