diff options
author | Sam McCall <sam.mccall@gmail.com> | 2024-03-28 22:45:55 +0100 |
---|---|---|
committer | Sam McCall <sam.mccall@gmail.com> | 2024-03-28 23:57:09 +0100 |
commit | bbbcc1d99d08855069f4501c896c43a6d4d7b598 (patch) | |
tree | fbe29ac3a9d9f1009f0418ce44c8d164b1cad0cc /clang/lib/CodeGen/CodeGenFunction.cpp | |
parent | eee8c6150a1c3af54542d34d1c084a86feda4d96 (diff) | |
download | llvm-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.cpp | 3 |
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 = |