diff options
Diffstat (limited to 'clang/lib/Sema/SemaDecl.cpp')
-rw-r--r-- | clang/lib/Sema/SemaDecl.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/clang/lib/Sema/SemaDecl.cpp b/clang/lib/Sema/SemaDecl.cpp index f4af3f320a8..aa006b31fc8 100644 --- a/clang/lib/Sema/SemaDecl.cpp +++ b/clang/lib/Sema/SemaDecl.cpp @@ -2471,9 +2471,13 @@ static void mergeParamDeclTypes(ParmVarDecl *NewParam, if (auto Oldnullability = OldParam->getType()->getNullability(S.Context)) { if (auto Newnullability = NewParam->getType()->getNullability(S.Context)) { if (*Oldnullability != *Newnullability) { + unsigned unsNewnullability = static_cast<unsigned>(*Newnullability); + unsigned unsOldnullability = static_cast<unsigned>(*Oldnullability); S.Diag(NewParam->getLocation(), diag::warn_mismatched_nullability_attr) - << static_cast<unsigned>(*Newnullability) - << static_cast<unsigned>(*Oldnullability); + << unsNewnullability + << ((NewParam->getObjCDeclQualifier() & Decl::OBJC_TQ_CSNullability) != 0) + << unsOldnullability + << ((OldParam->getObjCDeclQualifier() & Decl::OBJC_TQ_CSNullability) != 0); S.Diag(OldParam->getLocation(), diag::note_previous_declaration); } } |