[ubsan] Relax nullability-return for blocks with deduced types
authorVedant Kumar <vsk@apple.com>
Tue, 26 Jun 2018 02:50:04 +0000 (02:50 +0000)
committerVedant Kumar <vsk@apple.com>
Tue, 26 Jun 2018 02:50:04 +0000 (02:50 +0000)
commit03dd150a988eb28b29ef24c3202b09e37e1de80f
tree183a0337016c9b9616b6fa01c7dd4de39d4541a0
parent2a46384c21a93d827d624e8d00c16377a5c0c12c
[ubsan] Relax nullability-return for blocks with deduced types

When the return type of an ObjC-style block literals is deduced, pick
the candidate type with the strictest nullability annotation applicable
to every other candidate.

This suppresses a UBSan false-positive in situations where a too-strict
nullability would be deduced, despite the fact that the returned value
would be implicitly cast to _Nullable.

rdar://41317163

llvm-svn: 335572
clang/include/clang/Basic/Specifiers.h
clang/lib/Sema/SemaLambda.cpp
clang/test/CodeGenObjC/ubsan-nullability.m