aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/CodeGen/CodeGenFunction.cpp
diff options
context:
space:
mode:
authorSam McCall <sam.mccall@gmail.com>2024-03-28 22:45:55 +0100
committerSam McCall <sam.mccall@gmail.com>2024-03-28 23:57:09 +0100
commitbbbcc1d99d08855069f4501c896c43a6d4d7b598 (patch)
treefbe29ac3a9d9f1009f0418ce44c8d164b1cad0cc /clang/lib/CodeGen/CodeGenFunction.cpp
parenteee8c6150a1c3af54542d34d1c084a86feda4d96 (diff)
downloadllvm-bbbcc1d99d08855069f4501c896c43a6d4d7b598.zip
llvm-bbbcc1d99d08855069f4501c896c43a6d4d7b598.tar.gz
llvm-bbbcc1d99d08855069f4501c896c43a6d4d7b598.tar.bz2
Reapply "[clang][nullability] allow _Nonnull etc on nullable class types (#82705)"
This reverts commit ca4c4a6758d184f209cb5d88ef42ecc011b11642. This was intended not to introduce new consistency diagnostics for smart pointer types, but failed to ignore sugar around types when detecting this. Fixed and test added.
Diffstat (limited to 'clang/lib/CodeGen/CodeGenFunction.cpp')
-rw-r--r--clang/lib/CodeGen/CodeGenFunction.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/clang/lib/CodeGen/CodeGenFunction.cpp b/clang/lib/CodeGen/CodeGenFunction.cpp
index 4410388..fa3f297 100644
--- a/clang/lib/CodeGen/CodeGenFunction.cpp
+++ b/clang/lib/CodeGen/CodeGenFunction.cpp
@@ -989,7 +989,8 @@ void CodeGenFunction::StartFunction(GlobalDecl GD, QualType RetTy,
// return value. Initialize the flag to 'true' and refine it in EmitParmDecl.
if (SanOpts.has(SanitizerKind::NullabilityReturn)) {
auto Nullability = FnRetTy->getNullability();
- if (Nullability && *Nullability == NullabilityKind::NonNull) {
+ if (Nullability && *Nullability == NullabilityKind::NonNull &&
+ !FnRetTy->isRecordType()) {
if (!(SanOpts.has(SanitizerKind::ReturnsNonnullAttribute) &&
CurCodeDecl && CurCodeDecl->getAttr<ReturnsNonNullAttr>()))
RetValNullabilityPrecondition =