llvm-project/clang/lib/Parse
Manman Ren b636b904c2 Add 'nopartial' qualifier for availability attributes.
An optional nopartial can be placed after the platform name.
int bar() __attribute__((availability(macosx,nopartial,introduced=10.12))

When deploying back to a platform version prior to when the declaration was
introduced, with 'nopartial', Clang emits an error specifying that the function
is not introduced yet; without 'nopartial', the behavior stays the same: the
declaration is `weakly linked`.

A member is added to the end of AttributeList to save the location of the
'nopartial' keyword. A bool member is added to AvailabilityAttr.

The diagnostics for 'nopartial' not-yet-introduced is handled in the same way as
we handle unavailable cases.

Reviewed by Doug Gregor and Jordan Rose.

rdar://23791325

llvm-svn: 261163
2016-02-17 22:05:48 +00:00
..
CMakeLists.txt [CMake] Reorder libdeps by alphabetical order. 2014-07-14 04:59:27 +00:00
ParseAST.cpp Restore PrettyStackTrace state on crash. 2015-08-07 17:48:57 +00:00
ParseCXXInlineMethods.cpp Simplify EnterTokenStream API to make it more robust for memory management 2016-02-09 18:52:09 +00:00
ParseDecl.cpp Add 'nopartial' qualifier for availability attributes. 2016-02-17 22:05:48 +00:00
ParseDeclCXX.cpp Include RecordDecls from anonymous unions in the AST. 2016-01-28 19:25:00 +00:00
ParseExpr.cpp Correct more typos in conditional expressions 2016-02-17 17:19:00 +00:00
ParseExprCXX.cpp Simplify EnterTokenStream API to make it more robust for memory management 2016-02-09 18:52:09 +00:00
ParseInit.cpp OpaquePtr: Use nullptr construction for ParsedType OpaquePtr typedef 2016-01-15 23:43:34 +00:00
ParseObjc.cpp Fix remaining Clang-tidy readability-redundant-control-flow warnings; other minor fixes. 2016-02-12 22:53:10 +00:00
ParseOpenMP.cpp [OPENMP] NFC rewrite ParseOpenMPDirectiveKind 2016-02-13 06:53:38 +00:00
ParsePragma.cpp Simplify EnterTokenStream API to make it more robust for memory management 2016-02-09 18:52:09 +00:00
ParseStmt.cpp PR23057: Fix assertion `Val && "isa<> used on a null pointer"' on invalid for-range expression. 2016-02-02 17:33:09 +00:00
ParseStmtAsm.cpp Simplify EnterTokenStream API to make it more robust for memory management 2016-02-09 18:52:09 +00:00
ParseTemplate.cpp Simplify EnterTokenStream API to make it more robust for memory management 2016-02-09 18:52:09 +00:00
ParseTentative.cpp Add support for GCC's '__auto_type' extension, per the GCC manual: 2015-11-11 02:02:15 +00:00
Parser.cpp Add 'nopartial' qualifier for availability attributes. 2016-02-17 22:05:48 +00:00
RAIIObjectsForParser.h Add a new error for unexpected semi-colon before closing delimiter. 2015-05-12 21:36:35 +00:00