From 8a0c5c2ec5c5496cfb01d2c86bd50991866a7356 Mon Sep 17 00:00:00 2001 From: Ted Kremenek Date: Fri, 18 Nov 2011 04:32:13 +0000 Subject: Refine placement of LangOptions object in CompilerInvocation by adding a new baseclass CompilerInvocationBase with a custom copy constructor. This ensures that whenever the CompilerInvocation object's copy constructor is used we always clone the LangOptions object. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144973 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Frontend/CompilerInvocation.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'lib/Frontend/CompilerInvocation.cpp') diff --git a/lib/Frontend/CompilerInvocation.cpp b/lib/Frontend/CompilerInvocation.cpp index 13be408141..738facf069 100644 --- a/lib/Frontend/CompilerInvocation.cpp +++ b/lib/Frontend/CompilerInvocation.cpp @@ -34,12 +34,11 @@ using namespace clang; // Initialization. //===----------------------------------------------------------------------===// -CompilerInvocation::CompilerInvocation() +CompilerInvocationBase::CompilerInvocationBase() : LangOpts(new LangOptions()) {} -void CompilerInvocation::setLangOpts(LangOptions *LOpts) { - LangOpts = LOpts; -} +CompilerInvocationBase::CompilerInvocationBase(const CompilerInvocationBase &X) + : LangOpts(new LangOptions(*X.getLangOpts())) {} //===----------------------------------------------------------------------===// // Utility functions. -- cgit v1.2.3-18-g5258