aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Serialization
diff options
context:
space:
mode:
authorDmitry Polukhin <34227995+dmpolukhin@users.noreply.github.com>2025-06-17 09:45:18 +0100
committerGitHub <noreply@github.com>2025-06-17 09:45:18 +0100
commit0f8c72160ec001599ecb29f0fa182c5550f5dd0a (patch)
tree0ca911770a085a043b8776ebe86b6047c0b7c143 /clang/lib/Serialization
parent2c90ebf3a79e25db3e6bcd9b3a66590b5996de4d (diff)
downloadllvm-0f8c72160ec001599ecb29f0fa182c5550f5dd0a.zip
llvm-0f8c72160ec001599ecb29f0fa182c5550f5dd0a.tar.gz
llvm-0f8c72160ec001599ecb29f0fa182c5550f5dd0a.tar.bz2
[C++20][Modules] Disable preferred_name when writing a C++20 header unit (#144377)
https://reviews.llvm.org/D130331 added workaround for named modules only. But the same issue happens for headees units. Link issue #56490
Diffstat (limited to 'clang/lib/Serialization')
-rw-r--r--clang/lib/Serialization/ASTWriter.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/clang/lib/Serialization/ASTWriter.cpp b/clang/lib/Serialization/ASTWriter.cpp
index ab1b5b3..be22ee5 100644
--- a/clang/lib/Serialization/ASTWriter.cpp
+++ b/clang/lib/Serialization/ASTWriter.cpp
@@ -5167,8 +5167,9 @@ void ASTRecordWriter::AddAttr(const Attr *A) {
// FIXME: Clang can't handle the serialization/deserialization of
// preferred_name properly now. See
// https://github.com/llvm/llvm-project/issues/56490 for example.
- if (!A || (isa<PreferredNameAttr>(A) &&
- Writer->isWritingStdCXXNamedModules()))
+ if (!A ||
+ (isa<PreferredNameAttr>(A) && (Writer->isWritingStdCXXNamedModules() ||
+ Writer->isWritingStdCXXHeaderUnit())))
return Record.push_back(0);
Record.push_back(A->getKind() + 1); // FIXME: stable encoding, target attrs