From: Steve Naroff Date: Fri, 1 Feb 2008 23:31:13 +0000 (+0000) Subject: Make sure SourceManager/HeaderSearch don't support default copy constructors (since... X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=27e2eb40b9adc876c05e0260d1100385c9f0e5f5;p=clang Make sure SourceManager/HeaderSearch don't support default copy constructors (since they result in bad runtime behavior). I'm sure there are other classes that might need this "guard", however I was bitten by these 2 recently (so I thought I'd fix them). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46653 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/clang/Basic/SourceManager.h b/include/clang/Basic/SourceManager.h index add8d50729..5e7cc75579 100644 --- a/include/clang/Basic/SourceManager.h +++ b/include/clang/Basic/SourceManager.h @@ -227,6 +227,9 @@ public: SourceManager() : LastLineNoFileIDQuery(~0U), MainFileID(0) {} ~SourceManager() {} + // SourceManager doesn't support copy construction. + explicit SourceManager(const SourceManager&); + void clearIDTables() { FileIDs.clear(); MacroIDs.clear(); diff --git a/include/clang/Lex/HeaderSearch.h b/include/clang/Lex/HeaderSearch.h index 293ec0d73d..1532b0e287 100644 --- a/include/clang/Lex/HeaderSearch.h +++ b/include/clang/Lex/HeaderSearch.h @@ -93,6 +93,9 @@ public: HeaderSearch(FileManager &FM); ~HeaderSearch(); + // HeaderSearch doesn't support copy construction. + explicit HeaderSearch(const HeaderSearch&); + FileManager &getFileMgr() const { return FileMgr; } /// SetSearchPaths - Interface for setting the file search paths.