llvm-project/clang/test/Parser
Ted Kremenek b79ee57080 Implemented delayed processing of 'unavailable' checking, just like with 'deprecated'.
Fixes <rdar://problem/15584219> and <rdar://problem/12241361>.

This change looks large, but all it does is reuse and consolidate
the delayed diagnostic logic for deprecation warnings with unavailability
warnings.  By doing so, it showed various inconsistencies between the
diagnostics, which were close, but not consistent.  It also revealed
some missing "note:"'s in the deprecated diagnostics that were showing
up in the unavailable diagnostics, etc.

This change also changes the wording of the core deprecation diagnostics.
Instead of saying "function has been explicitly marked deprecated"
we now saw "'X' has been been explicitly marked deprecated".  It
turns out providing a bit more context is useful, and often we
got the actual term wrong or it was not very precise
 (e.g., "function" instead of "destructor").  By just saying the name
of the thing that is deprecated/deleted/unavailable we define
this issue away.  This diagnostic can likely be further wordsmithed
to be shorter.

llvm-svn: 197627
2013-12-18 23:30:06 +00:00
..
CompoundStmtScope.c
DelayedTemplateParsing.cpp Parse: Disable delayed template parsing for constexpr functions 2013-10-23 21:31:20 +00:00
MicrosoftExtensions.c Implemented delayed processing of 'unavailable' checking, just like with 'deprecated'. 2013-12-18 23:30:06 +00:00
MicrosoftExtensions.cpp Correct hyphenations in comments and assert messages 2013-12-05 04:47:09 +00:00
PR11000.cpp Add 'not' to commands that are expected to fail. 2013-07-04 16:16:58 +00:00
access-spec-attrs.cpp Allow for annotate attributes after access specifiers. When such 2011-10-13 09:41:32 +00:00
altivec-csk-bool.c "bool" should be a context-sensitive keyword in Altivec mode. 2013-07-03 20:54:09 +00:00
altivec.c Stop AltiVec parsing from going down the 'implicit int' codepath as part of its 2012-05-09 18:56:43 +00:00
argument_qualified.c
argument_redef.c
argument_scope.c
asm-constraints-pr7869.c
asm.c Parse: Avoid crashing on unterminated top-level asm strings 2013-12-10 21:29:48 +00:00
asm.cpp User-defined literals: reject string and character UDLs in all places where the 2012-03-06 03:21:47 +00:00
atomic.c Support C11 _Atomic type qualifier. This is more-or-less just syntactic sugar for the _Atomic type specifier. 2013-03-28 01:55:44 +00:00
attr-availability.c As Aaron pointed out it's simpler to reject wide string availability attr messages in the parser. 2013-09-13 17:31:48 +00:00
attributes.c Factor out custom parsing for iboutletcollection and vec_type_hint attributes 2013-10-31 01:56:18 +00:00
attributes.mm Revert "Don't require -re suffix on -verify directives with regexes." 2013-12-14 01:07:05 +00:00
backtrack-crash.cpp
bad-control.c Revert r193073 and the attempt to fix it in r193170. 2013-10-22 18:07:04 +00:00
block-block-storageclass.c Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
block-pointer-decl.c Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
bracket-crash.cpp PR14549. Don't assert if we see an incomplete decltype specifier at the end of the file. 2012-12-09 04:17:57 +00:00
builtin_classify_type.c Change the representation of builtin functions in the AST 2012-08-31 00:14:07 +00:00
builtin_types_compatible.c
c-namespace.c
c1x-alignas.c Implement C++11 [dcl.align]p1 and C11 6.7.5/2 rules for alignas and _Alignas. 2013-01-29 09:02:09 +00:00
c1x-generic-selection.c C1X: implement generic selections 2011-04-15 00:35:48 +00:00
c11-noreturn.c Add missing diagnostic for a nested-name-specifier on a free-standing type definition. Bump some related diagnostics from warning to extension in C++, since they're errors there. Add some missing checks for function specifiers on non-function declarations. 2013-03-18 22:52:47 +00:00
captured-statements.c Parser support for #pragma clang __debug captured 2013-04-16 18:41:26 +00:00
char-literal-printing.c Update all tests other than Driver/std.cpp to use -std=c++11 rather than 2011-10-13 22:29:44 +00:00
check-objc2-syntax-1.m Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
check-syntax-1.m Modify how the -verify flag works. Currently, the verification string and 2011-12-15 00:38:15 +00:00
check_cast.c
colon-colon-parentheses.cpp Fix test cases I broken when fixing grammar in diagnostic message. 2012-11-02 21:41:42 +00:00
completely-empty-header-file.h Add pedantic warning -Wempty-translation-unit (C11 6.9p1). 2012-06-06 17:25:21 +00:00
compound_literal.c Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
control-scope.c
crash-report.c Use the new --crash option in commands that are expected to crash. 2013-07-05 02:53:30 +00:00
cuda-kernel-call.cu Extend the error recovery for a template-argument-list terminated by '>>' to 2012-06-18 06:11:04 +00:00
cxx-altivec.cpp Fix Altivec vector literal parser hack for C++11. 2013-08-13 23:38:34 +00:00
cxx-ambig-decl-expr-xfail.cpp
cxx-ambig-decl-expr.cpp When disambiguating an expression-statement from a declaraton-statement, if the 2012-08-23 20:19:14 +00:00
cxx-ambig-init-templ.cpp Modify the uninitialized field visitor to detect uninitialized use across the 2013-09-20 03:03:06 +00:00
cxx-ambig-paren-expr.cpp
cxx-attributes.cpp Factor out custom parsing for iboutletcollection and vec_type_hint attributes 2013-10-31 01:56:18 +00:00
cxx-bool.cpp
cxx-casting.cpp Add quotation marks to template names in diagnostics. 2013-03-05 06:21:38 +00:00
cxx-class-template-specialization.cpp Fix for PR 16367, display the name of a function in a diagnostic instead of 2013-06-19 22:25:01 +00:00
cxx-class.cpp Avoid extra error messages if method definition is inside function. 2013-12-09 05:25:47 +00:00
cxx-condition.cpp Accept braced-init-lists in conditions, and, in passing, dramatically improve 2012-02-22 06:49:09 +00:00
cxx-decl.cpp PR9547: If we're parsing a simple-declaration that contains a tag definition, 2013-11-19 22:47:36 +00:00
cxx-default-args.cpp PR13657 (and duplicates): 2013-09-12 23:28:08 +00:00
cxx-default-delete.cpp Drive-by fix of incorrect diagnostic, and a test case for said diagnostic. The double error is unfortunate, but I really don't see an alternative whose effort is worth it. 2012-02-11 23:51:21 +00:00
cxx-ext-delete-default.cpp Change the diagnostics which said 'accepted as an extension' to instead say 2011-12-29 21:57:33 +00:00
cxx-extern-c-array.cpp Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
cxx-extra-semi.cpp Add diagnostics for comma at end of enum and for extra semicolon at namespace 2012-07-23 05:45:25 +00:00
cxx-friend.cpp Check "late parsed" friend functions for redefinition 2013-10-18 05:54:24 +00:00
cxx-in-c.c
cxx-member-crash.cpp Add 'not' to commands that are expected to fail. 2013-07-04 16:16:58 +00:00
cxx-member-init-missing-paren-crash.cpp Fix a crash-on-invalid. 2011-09-23 22:39:23 +00:00
cxx-member-initializers.cpp PR16480: Reimplement token-caching for constructor initializer lists. This 2013-07-04 00:13:48 +00:00
cxx-namespace-alias.cpp
cxx-reference.cpp Switch diagnostic text from "C++0x" over to "C++11". 2011-10-12 19:26:40 +00:00
cxx-stmt.cpp If a comma operator is followed by a token which unambiguously indicates the 2012-09-18 00:52:05 +00:00
cxx-template-argument.cpp Fix PR17637: incorrect calculation of template parameter depth 2013-12-04 03:51:14 +00:00
cxx-template-decl.cpp Fix PR17637: incorrect calculation of template parameter depth 2013-12-04 03:51:14 +00:00
cxx-throw.cpp Push the knowledge that we are parsing a type-id/type-name further into the 2012-05-09 20:55:26 +00:00
cxx-typeid.cpp Modify how the -verify flag works. Currently, the verification string and 2011-12-15 00:38:15 +00:00
cxx-typeof.cpp Improve diagnostics for invalid use of non-static members / this: 2012-04-05 01:13:04 +00:00
cxx-undeclared-identifier.cpp In C++, if we hit an error in the class-head, don't try to parse the class body. 2012-12-05 11:34:06 +00:00
cxx-using-declaration.cpp Imrpove the note text for when a non-type decl hides a tag type 2012-04-27 18:26:49 +00:00
cxx-using-directive.cpp Allow CorrectTypo to replace CXXScopeSpecifiers that refer to classes. 2013-10-19 00:05:00 +00:00
cxx-variadic-func.cpp
cxx0x-ambig.cpp The 'constexpr implies const' rule for non-static member functions is gone in 2013-04-21 01:08:50 +00:00
cxx0x-attributes.cpp add an additional test case for generic attributes 2013-11-30 21:17:12 +00:00
cxx0x-condition.cpp Cleaning up the self initialization checker. 2012-10-01 17:39:51 +00:00
cxx0x-decl.cpp Support GNU attributes in alias-declarations now that GCC has implemented them 2013-10-24 01:21:09 +00:00
cxx0x-for-range.cpp PR11297: Provide a better diagnostic for code which contains a 2011-12-20 22:56:20 +00:00
cxx0x-in-cxx98.cpp PR17567: Improve diagnostic for a mistyped constructor name. If we see something 2013-10-15 00:00:26 +00:00
cxx0x-lambda-expressions.cpp Add compat/extension warnings for init captures. 2013-09-28 05:38:27 +00:00
cxx0x-literal-operators.cpp Implement C++11 [lex.ext]p10 for string and character literals: a ud-suffix not 2012-03-08 02:39:21 +00:00
cxx0x-member-initializers.cpp PR13657 (and duplicates): 2013-09-12 23:28:08 +00:00
cxx0x-override-control-keywords.cpp Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
cxx0x-rvalue-reference.cpp Update all tests other than Driver/std.cpp to use -std=c++11 rather than 2011-10-13 22:29:44 +00:00
cxx11-base-spec-attributes.cpp PR15300: Support C++11 attributes on base-specifiers. We don't support any such 2013-02-19 23:47:15 +00:00
cxx11-brace-initializers.cpp PR14918: Don't confuse braced-init-lists after template variable declarations 2013-01-15 06:49:38 +00:00
cxx11-stmt-attributes.cpp Diagnose C++11 attributes before fp_contract pragmas. 2013-11-15 21:10:54 +00:00
cxx11-type-specifier.cpp If parsing a trailing-return-type fails, don't pretend we didn't have one at 2012-06-12 01:51:59 +00:00
cxx11-user-defined-literals.cpp DR1473: Do not require a space between operator"" and the ud-suffix in a 2012-10-20 08:41:10 +00:00
declarators.c Recognition of empty structures and unions is moved to semantic stage 2013-06-08 13:29:58 +00:00
designator.c
empty-translation-unit.c Our style for diagnostic messages is to not include a trailing dot. 2012-11-05 05:32:00 +00:00
encode.m Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
enhanced-proto-1.m Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
expressions.c Make wording for certain invalid unary expressions more consistent. 2013-10-09 00:22:23 +00:00
expressions.m
extension.c
for.cpp
function-decls.c
goto.c
if-scope-c90.c Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
if-scope-c99.c
implicit-casts.c
knr_parameter_attributes.c Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
method-def-in-class.m In Parser::SkipUntil do not stop at '@' unconditionally. 2011-12-17 04:13:22 +00:00
method-prototype-1.m
missing-closing-rbrace.m Do the error recovery for @end only. 2013-03-20 18:45:49 +00:00
missing-end-2.m Extend warnings for missing '@end'. 2011-12-06 09:25:23 +00:00
missing-end-3.m Extend warnings for missing '@end'. 2011-12-06 09:25:23 +00:00
missing-end-4.m Revert my patch in r191155 to allow forward 2013-09-24 17:03:07 +00:00
missing-end.m Extend warnings for missing '@end'. 2011-12-06 09:25:23 +00:00
missing-selector-name.mm objective-c parsing. Don't crash when selector name 2012-07-26 17:32:28 +00:00
ms-inline-asm.c Re-enable ms inline asm parser test. 2013-12-08 21:12:27 +00:00
namelookup-bug-1.c Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
namelookup-bug-2.c Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
namespace-alias-attr.cpp
namespaces.cpp Fix crash on missing namespace name in namespace alias definition -- PR14085. 2012-10-27 23:44:27 +00:00
nested-namespaces-recovery.cpp Add a fix-it and better error recovery for improperly nested namespaces. This will give a better error message for cases such as "namespace foo::bar::baz {}" and a suggested fix-it of "namespace foo { namespace bar { namespace baz {} } }" 2011-05-26 20:11:09 +00:00
objc-alias-printing.m
objc-boxing.m Objective-C parsing [qoi]: Provide good recovery when 2013-04-18 19:37:43 +00:00
objc-category-neg-1.m Modify how the -verify flag works. Currently, the verification string and 2011-12-15 00:38:15 +00:00
objc-diag-width.mm Add 'not' to commands that are expected to fail. 2013-07-04 16:16:58 +00:00
objc-error-qualified-implementation.m Objective-C parsing. Error recovery when category implementation 2013-05-17 17:58:11 +00:00
objc-forcollection-1.m
objc-forcollection-neg-2.m Added a new attribute, objc_root_class, which informs the compiler when a root class is intentionally declared. 2012-04-06 18:12:22 +00:00
objc-forcollection-neg.m objective-c: improve diagnostic when collection expression is 2012-06-22 15:37:00 +00:00
objc-foreach-syntax.m Added a new attribute, objc_root_class, which informs the compiler when a root class is intentionally declared. 2012-04-06 18:12:22 +00:00
objc-init.m Restructure how the driver communicates information about the 2012-06-20 06:18:46 +00:00
objc-interfaces.m
objc-messaging-1.m
objc-messaging-neg-1.m Parsing of C++0x lambda expressions, from John Freeman with help from 2011-08-04 15:30:47 +00:00
objc-missing-impl.m Extend warnings for missing '@end'. 2011-12-06 09:25:23 +00:00
objc-property-syntax.m Added a new attribute, objc_root_class, which informs the compiler when a root class is intentionally declared. 2012-04-06 18:12:22 +00:00
objc-quirks.m Improve diagnostics for dangling '}'. 2012-01-17 01:04:27 +00:00
objc-recover.mm Better parser recovery in Objective-C containers. 2012-07-09 16:54:53 +00:00
objc-synthesized-recover.m Added a new attribute, objc_root_class, which informs the compiler when a root class is intentionally declared. 2012-04-06 18:12:22 +00:00
objc-try-catch-1.m
objc-type-printing.m
objcbridge-related-attribute.m ObjectiveC - Introducing objc_bridge_related attribute 2013-12-04 20:32:50 +00:00
objcxx-at.mm Parse an '@' in an Objective-C++ class member specification, 2011-04-14 17:21:19 +00:00
objcxx-lambda-expressions-neg.mm Fix tests for r150123 2012-02-09 01:02:27 +00:00
objcxx0x-lambda-expressions.mm Add compat/extension warnings for init captures. 2013-09-28 05:38:27 +00:00
objcxx11-attributes.mm Adding the Subjects entry back for the noreturn attributes. This caused some test cases to be updated because the original diagnostic was about applying to methods as well as functions, but the semantic checking disallowed methods. 2013-11-27 18:53:58 +00:00
objcxx11-initialized-temps.mm Objective-C++: Enable passing of modern C++11 style 2013-04-18 23:43:21 +00:00
objcxx11-protocol-in-template.mm Don't require a space between the two ">" in "vector<id<protocol>>" in objc++11. 2012-12-14 18:22:38 +00:00
objcxx11-user-defined-literal.mm User-defined literals: reject string and character UDLs in all places where the 2012-03-06 03:21:47 +00:00
offsetof.c
opencl-astype.cl Modify a diagnostic introduced in r132612 to emit QualTypes directly 2011-06-08 15:15:17 +00:00
opencl-image-access.cl Re-commit r170428 changes with Linux style file endings. 2012-12-18 14:38:23 +00:00
opencl-kernel.cl Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
opencl-pragma.cl Add pedantic warning -Wempty-translation-unit (C11 6.9p1). 2012-06-06 17:25:21 +00:00
opencl-storage-class.cl OpenCL: add a non-standard extension, cl_clang_storage_class_specifiers, 2011-10-06 03:01:00 +00:00
parenthesis-balance.cpp For code such as: 2011-07-01 20:54:02 +00:00
parmvardecl_conversion.c Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
parser_overflow.c Add 'not' to commands that are expected to fail. 2013-07-04 16:16:58 +00:00
placeholder-recovery.m Fix warning text of my last patch. 2013-02-28 23:16:39 +00:00
pointer-arithmetic.c
pointer_promotion.c
pragma-fp-contract.c Fix bogus diagnostic wording. There's no such thing as a compound expression. 2013-11-15 21:08:45 +00:00
pragma-options.c [Parser] Handle #pragma pack/align inside C structs. 2013-04-18 01:42:35 +00:00
pragma-options.cpp Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
pragma-pack.c [Parser] Handle #pragma pack/align inside C structs. 2013-04-18 01:42:35 +00:00
pragma-visibility.c
pragma-visibility2.c PR10392: "#pragma GCC visibility" must not expand macros in its 2011-07-20 01:03:50 +00:00
pragma-weak.c Fix a parser crash when there are #pragmas in a context which requires a single 2013-10-28 22:04:30 +00:00
promote_types_in_proto.c
recovery.c improve error recovery for extra ')'s after a if/switch/while condition. Before: 2012-04-28 16:24:20 +00:00
recovery.cpp Parse: Recover better from bad definitions with base specifiers 2013-12-05 01:36:53 +00:00
recovery.m Fix the recovery from missing semis on @property declarations to not consume 2011-03-26 01:53:26 +00:00
recursion-limits.cpp Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
selector-1.m Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
skip-function-bodies.mm Added a flag to the parser to skip method bodies. 2012-04-12 10:11:59 +00:00
statements.c If a comma operator is followed by a token which unambiguously indicates the 2012-09-18 00:52:05 +00:00
struct-recursion.c
switch-recovery.cpp Allow CorrectTypo to replace CXXScopeSpecifiers that refer to classes. 2013-10-19 00:05:00 +00:00
top-level-semi-cxx0x.cpp Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
traditional_arg_scope.c
typeof.c
types.c Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
warn-dangling-else.cpp Add -Wdangling-else. 2011-12-22 23:26:17 +00:00
warn-semicolon-before-method-body.m Fix a tranche of comment, test and doc typos 2013-12-05 16:25:25 +00:00