aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Sema/SemaChecking.cpp
diff options
context:
space:
mode:
authorVlad Serebrennikov <serebrennikov.vladislav@gmail.com>2024-02-22 22:30:31 +0400
committerGitHub <noreply@github.com>2024-02-22 22:30:31 +0400
commit5c24c316496e221e1841418f0f39ccb7200c83c6 (patch)
tree6a3b0c05c03d57003f1a67a760930d290e7ba787 /clang/lib/Sema/SemaChecking.cpp
parentda1880cc56060c9da91cbd04daa7f8aa3ea0e829 (diff)
downloadllvm-5c24c316496e221e1841418f0f39ccb7200c83c6.zip
llvm-5c24c316496e221e1841418f0f39ccb7200c83c6.tar.gz
llvm-5c24c316496e221e1841418f0f39ccb7200c83c6.tar.bz2
[clang] Implement CWG2759 "`[[no_unique_address]` and common initial sequence" (#82607)
This patch implements said defect report resolution by adding additional check to common initial sequence evaluation. Consequently, this fixes CWG2759.
Diffstat (limited to 'clang/lib/Sema/SemaChecking.cpp')
-rw-r--r--clang/lib/Sema/SemaChecking.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/clang/lib/Sema/SemaChecking.cpp b/clang/lib/Sema/SemaChecking.cpp
index 710437b..7fa295e 100644
--- a/clang/lib/Sema/SemaChecking.cpp
+++ b/clang/lib/Sema/SemaChecking.cpp
@@ -19036,6 +19036,9 @@ static bool isLayoutCompatible(ASTContext &C, FieldDecl *Field1,
return false;
}
+ if (Field1->hasAttr<clang::NoUniqueAddressAttr>() ||
+ Field2->hasAttr<clang::NoUniqueAddressAttr>())
+ return false;
return true;
}