Replace __double_underscored type nullability qualifiers with _Uppercase_underscored

Addresses a conflict with glibc's __nonnull macro by renaming the type
nullability qualifiers as follows:

  __nonnull -> _Nonnull
  __nullable -> _Nullable
  __null_unspecified -> _Null_unspecified

This is the major part of rdar://problem/21530726, but does not yet
provide the Darwin-specific behavior for the old names.

llvm-svn: 240596
This commit is contained in:
Douglas Gregor
2015-06-24 22:02:08 +00:00
parent 63d606bdcb
commit aea7afdc13
45 changed files with 366 additions and 352 deletions

View File

@@ -647,16 +647,17 @@ const char *clang::getOperatorSpelling(OverloadedOperatorKind Operator) {
llvm_unreachable("Invalid OverloadedOperatorKind!");
}
StringRef clang::getNullabilitySpelling(NullabilityKind kind) {
StringRef clang::getNullabilitySpelling(NullabilityKind kind,
bool isContextSensitive) {
switch (kind) {
case NullabilityKind::NonNull:
return "__nonnull";
return isContextSensitive ? "nonnull" : "_Nonnull";
case NullabilityKind::Nullable:
return "__nullable";
return isContextSensitive ? "nullable" : "_Nullable";
case NullabilityKind::Unspecified:
return "__null_unspecified";
return isContextSensitive ? "null_unspecified" : "_Null_unspecified";
}
llvm_unreachable("Unknown nullability kind.");
}