fix dangling pointer and argv off by one errors.  Add support for --disable-inlining

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53249 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/tools/lto/LTOCodeGenerator.h b/tools/lto/LTOCodeGenerator.h
index 24a2ba3..d3a2b6b 100644
--- a/tools/lto/LTOCodeGenerator.h
+++ b/tools/lto/LTOCodeGenerator.h
@@ -39,9 +39,7 @@
     bool                writeMergedModules(const char* path, 
                                                            std::string& errMsg);
     const void*         compile(size_t* length, std::string& errMsg);
-    void                setCodeGenDebugOptions(const char *opts) {
-                          _codegenOptions.push_back(std::string(opts)); 
-                        }
+    void                setCodeGenDebugOptions(const char *opts); 
 private:
     bool                generateAssemblyCode(std::ostream& out, 
                                                         std::string& errMsg);
@@ -59,7 +57,7 @@
     lto_codegen_model           _codeModel;
     StringSet                   _mustPreserveSymbols;
     llvm::MemoryBuffer*         _nativeObjectFile;
-    llvm::SmallVector<std::string, 4> _codegenOptions;
+    std::vector<const char*>    _codegenOptions;
 };
 
 #endif // LTO_CODE_GENERATOR_H