diff options
author | Reid Kleckner <reid@kleckner.net> | 2013-07-15 16:40:52 +0000 |
---|---|---|
committer | Reid Kleckner <reid@kleckner.net> | 2013-07-15 16:40:52 +0000 |
commit | a75eba9c05d100395ba46c91959cd241c137965e (patch) | |
tree | e8f74ebcf7f72b2b3076b597646b9abafcafd66a /llvm/lib/Option/ArgList.cpp | |
parent | d7eb67774ead0bef011a8f79480fac4b90b064c1 (diff) | |
download | bcm5719-llvm-a75eba9c05d100395ba46c91959cd241c137965e.tar.gz bcm5719-llvm-a75eba9c05d100395ba46c91959cd241c137965e.zip |
Revert "[Option] Store arg strings in a set backed by a BumpPtrAllocator"
This broke clang's crash-report.c test, and I haven't been able to
figure it out yet.
This reverts commit r186319.
llvm-svn: 186329
Diffstat (limited to 'llvm/lib/Option/ArgList.cpp')
-rw-r--r-- | llvm/lib/Option/ArgList.cpp | 13 |
1 files changed, 2 insertions, 11 deletions
diff --git a/llvm/lib/Option/ArgList.cpp b/llvm/lib/Option/ArgList.cpp index 18a7b5982be..15f7e8bf4b8 100644 --- a/llvm/lib/Option/ArgList.cpp +++ b/llvm/lib/Option/ArgList.cpp @@ -323,18 +323,9 @@ InputArgList::~InputArgList() { unsigned InputArgList::MakeIndex(StringRef String0) const { unsigned Index = ArgStrings.size(); - // If necessary, make a copy so we can null terminate it. - std::string NullTerminated; - if (String0.back() != '\0') { - NullTerminated.append(String0.data(), String0.size()); - NullTerminated.push_back('\0'); - String0 = StringRef(&NullTerminated[0], NullTerminated.size()); - } - // Tuck away so we have a reliable const char *. - String0 = SynthesizedStrings.GetOrCreateValue(String0).getKey(); - assert(String0.back() == '\0'); - ArgStrings.push_back(String0.data()); + SynthesizedStrings.push_back(String0); + ArgStrings.push_back(SynthesizedStrings.back().c_str()); return Index; } |