llvm-project/clang/lib/Sema
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
..
AnalysisBasedWarnings.cpp [Sema] Replace pointer-to-map with a map. NFC. 2015-12-10 19:25:21 +00:00
AttributeList.cpp
CMakeLists.txt
CodeCompleteConsumer.cpp Silence some MSVC false positive warnings about integer zexts and falling off the end of a covered switch 2016-02-10 19:09:15 +00:00
DeclSpec.cpp Move LocInfoType from Sema to AST. 2016-02-01 17:42:01 +00:00
DelayedDiagnostic.cpp Add 'nopartial' qualifier for availability attributes. 2016-02-17 22:05:48 +00:00
IdentifierResolver.cpp [modules] Separately track whether an identifier's preprocessor information and 2016-02-05 19:03:40 +00:00
JumpDiagnostics.cpp
MultiplexExternalSemaSource.cpp
Scope.cpp Annotate dump() methods with LLVM_DUMP_METHOD, addressing Richard Smith r259192 post commit comment. 2016-01-29 19:38:18 +00:00
ScopeInfo.cpp
Sema.cpp Fix predefine for __NSConstantString struct type 2016-02-04 00:55:24 +00:00
SemaAccess.cpp
SemaAttr.cpp Introduce -fsanitize-stats flag. 2016-01-16 00:31:22 +00:00
SemaCUDA.cpp [CUDA] Tweak attribute-based overload resolution to match nvcc behavior. 2016-02-12 18:29:18 +00:00
SemaCXXScopeSpec.cpp [typo-correction] Apply name specifier corrections when forming a NNS 2016-02-16 19:16:20 +00:00
SemaCast.cpp [Bugfix] Fix ICE on constexpr vector splat. 2016-01-13 01:52:39 +00:00
SemaChecking.cpp Sema: prevent assertion on stack return checking 2016-02-15 01:51:24 +00:00
SemaCodeComplete.cpp Class Property: class property and instance property can have the same name. 2016-01-28 18:49:28 +00:00
SemaConsumer.cpp
SemaCoroutine.cpp [coroutines] Build a CoroutineBodyStmt when finishing parsing a coroutine, and form the initial_suspend, final_suspend, and get_return_object calls. 2015-11-24 02:34:39 +00:00
SemaDecl.cpp Add 'nopartial' qualifier for availability attributes. 2016-02-17 22:05:48 +00:00
SemaDeclAttr.cpp Add 'nopartial' qualifier for availability attributes. 2016-02-17 22:05:48 +00:00
SemaDeclCXX.cpp Improve diagnostics for ill-formed literal operator declarations. 2016-02-17 00:04:04 +00:00
SemaDeclObjC.cpp Avoid overly large SmallPtrSet/SmallSet 2016-01-30 01:27:06 +00:00
SemaExceptionSpec.cpp Wire a SourceLocation into IsDerivedFrom and move the RequireCompleteType call 2015-12-18 21:45:41 +00:00
SemaExpr.cpp Add 'nopartial' qualifier for availability attributes. 2016-02-17 22:05:48 +00:00
SemaExprCXX.cpp Sema: handle typo correction on ARC'ed ivar 2016-02-07 02:30:59 +00:00
SemaExprMember.cpp [OPENMP 4.5] Ccapture/codegen of private non-static data members. 2016-02-08 09:29:13 +00:00
SemaExprObjC.cpp [Sema] More changes to fix Objective-C fallout from r249995. 2016-02-13 01:41:41 +00:00
SemaFixItUtils.cpp Wire a SourceLocation into IsDerivedFrom and move the RequireCompleteType call 2015-12-18 21:45:41 +00:00
SemaInit.cpp Fix remaining Clang-tidy readability-redundant-control-flow warnings; other minor fixes. 2016-02-12 22:53:10 +00:00
SemaLambda.cpp PR24989: Stop trying to use the C++11 rules for lambda return type inference in 2016-02-02 23:58:56 +00:00
SemaLookup.cpp [modules] Cache 'acceptable decl' lookups for namespaces. In projects with 2016-02-17 21:52:44 +00:00
SemaObjCProperty.cpp Fix remaining Clang-tidy readability-redundant-control-flow warnings; other minor fixes. 2016-02-12 22:53:10 +00:00
SemaOpenMP.cpp [OPENMP 4.5] Codegen support for data members in 'firstprivate' clause. 2016-02-17 13:19:37 +00:00
SemaOverload.cpp [CUDA] Tweak attribute-based overload resolution to match nvcc behavior. 2016-02-12 18:29:18 +00:00
SemaPseudoObject.cpp Class Property: class property and instance property can have the same name. 2016-01-28 18:49:28 +00:00
SemaStmt.cpp Don't copy a DenseMap just to do lookup in it. 2016-02-13 15:49:17 +00:00
SemaStmtAsm.cpp Remove an unused parameter 2016-01-05 00:08:41 +00:00
SemaStmtAttr.cpp [Sema] Use available enum types instead of integers. As one is used in a switch, this makes the compiler ensure the switch is fully covered. NFC 2015-12-23 05:44:43 +00:00
SemaTemplate.cpp Fix remaining Clang-tidy readability-redundant-control-flow warnings; other minor fixes. 2016-02-12 22:53:10 +00:00
SemaTemplateDeduction.cpp Ensure that we substitute into the declaration of a template parameter pack 2016-02-03 20:40:30 +00:00
SemaTemplateInstantiate.cpp Revert "Avoid forcing emission of delayed dllexported classes on template instantiation" 2016-02-09 17:48:27 +00:00
SemaTemplateInstantiateDecl.cpp [OPENMP] Rename OMPCapturedFieldDecl to OMPCapturedExprDecl, NFC. 2016-02-11 05:35:55 +00:00
SemaTemplateVariadic.cpp [OpenCL] Pipe type support 2016-01-09 12:53:17 +00:00
SemaType.cpp Fix assertion "Chunk.Kind == DeclaratorChunk::Function" with attributed type. 2016-02-10 11:23:48 +00:00
TreeTransform.h [OpenMP] Parsing + sema for target parallel for directive. 2016-02-03 15:46:42 +00:00
TypeLocBuilder.cpp
TypeLocBuilder.h