aboutsummaryrefslogtreecommitdiff
path: root/clang
diff options
context:
space:
mode:
authorsmanna12 <soumi.manna@intel.com>2024-09-20 10:08:05 -0700
committerGitHub <noreply@github.com>2024-09-20 12:08:05 -0500
commitefb583178d74b2174e8b9660b67ba7295527b09f (patch)
tree659171facfc52ab75d3b9eeaf1b5c64c51468761 /clang
parent739ede400b7aa7dfbec771b0d5e9c47f9da5d6cb (diff)
downloadllvm-efb583178d74b2174e8b9660b67ba7295527b09f.zip
llvm-efb583178d74b2174e8b9660b67ba7295527b09f.tar.gz
llvm-efb583178d74b2174e8b9660b67ba7295527b09f.tar.bz2
[Clang] Prevent Copying of LateParsedClass Instances (#109428)
Class clang::Parser::LateParsedClass owns resources that are freed in its destructor but has no user-written assignment operator. This commit explicitly deletes the copy constructor and copy assignment operator for the LateParsedClass.
Diffstat (limited to 'clang')
-rw-r--r--clang/include/clang/Parse/Parser.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/clang/include/clang/Parse/Parser.h b/clang/include/clang/Parse/Parser.h
index 47f7213..eb8a851 100644
--- a/clang/include/clang/Parse/Parser.h
+++ b/clang/include/clang/Parse/Parser.h
@@ -1355,6 +1355,10 @@ private:
void ParseLexedAttributes() override;
void ParseLexedPragmas() override;
+ // Delete copy constructor and copy assignment operator.
+ LateParsedClass(const LateParsedClass &) = delete;
+ LateParsedClass &operator=(const LateParsedClass &) = delete;
+
private:
Parser *Self;
ParsingClass *Class;