Introduced pragmas for audited nullability regions.
Introduce the clang pragmas "assume_nonnull begin" and "assume_nonnull end" in which we make default assumptions about the nullability of many unannotated pointers: - Single-level pointers are inferred to __nonnull - NSError** in a (function or method) parameter list is inferred to NSError * __nullable * __nullable. - CFErrorRef * in a (function or method) parameter list is inferred to CFErrorRef __nullable * __nullable. - Other multi-level pointers are never inferred to anything. Implements rdar://problem/19191042. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@240156 91177308-0d34-0410-b5e6-96231b3b80d8
Showing
- include/clang/Basic/DiagnosticLexKinds.td 16 additions, 1 deletioninclude/clang/Basic/DiagnosticLexKinds.td
- include/clang/Lex/Preprocessor.h 18 additions, 0 deletionsinclude/clang/Lex/Preprocessor.h
- include/clang/Parse/Parser.h 5 additions, 8 deletionsinclude/clang/Parse/Parser.h
- include/clang/Sema/DeclSpec.h 17 additions, 2 deletionsinclude/clang/Sema/DeclSpec.h
- include/clang/Sema/Sema.h 26 additions, 0 deletionsinclude/clang/Sema/Sema.h
- lib/Lex/PPDirectives.cpp 9 additions, 0 deletionslib/Lex/PPDirectives.cpp
- lib/Lex/PPLexerChange.cpp 11 additions, 0 deletionslib/Lex/PPLexerChange.cpp
- lib/Lex/PPMacroExpansion.cpp 1 addition, 0 deletionslib/Lex/PPMacroExpansion.cpp
- lib/Lex/Pragma.cpp 55 additions, 0 deletionslib/Lex/Pragma.cpp
- lib/Parse/ParseObjc.cpp 17 additions, 38 deletionslib/Parse/ParseObjc.cpp
- lib/Sema/SemaExprObjC.cpp 4 additions, 0 deletionslib/Sema/SemaExprObjC.cpp
- lib/Sema/SemaObjCProperty.cpp 4 additions, 13 deletionslib/Sema/SemaObjCProperty.cpp
- lib/Sema/SemaType.cpp 397 additions, 14 deletionslib/Sema/SemaType.cpp
- test/SemaObjC/arc-property-decl-attrs.m 20 additions, 2 deletionstest/SemaObjC/arc-property-decl-attrs.m
- test/SemaObjCXX/Inputs/nullability-pragmas-1.h 98 additions, 0 deletionstest/SemaObjCXX/Inputs/nullability-pragmas-1.h
- test/SemaObjCXX/Inputs/nullability-pragmas-2.h 12 additions, 0 deletionstest/SemaObjCXX/Inputs/nullability-pragmas-2.h
- test/SemaObjCXX/Inputs/nullability-pragmas-3.h 0 additions, 0 deletionstest/SemaObjCXX/Inputs/nullability-pragmas-3.h
- test/SemaObjCXX/nullability-pragmas.mm 41 additions, 0 deletionstest/SemaObjCXX/nullability-pragmas.mm
Loading
Please register or sign in to comment