summaryrefslogtreecommitdiff
path: root/test/Sema/attr-unavailable-message.c
diff options
context:
space:
mode:
authorTed Kremenek <kremenek@apple.com>2013-12-18 23:30:06 +0000
committerTed Kremenek <kremenek@apple.com>2013-12-18 23:30:06 +0000
commit00374d1830d1adae1326446243166b380bbbae53 (patch)
tree015f57f7fc717a1278ff6ba26506f0d5dcb87de6 /test/Sema/attr-unavailable-message.c
parent227d2056fae4273e90c18301ac0b1c9a3b66d5d5 (diff)
downloadclang-00374d1830d1adae1326446243166b380bbbae53.tar.gz
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@197627 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Sema/attr-unavailable-message.c')
-rw-r--r--test/Sema/attr-unavailable-message.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/test/Sema/attr-unavailable-message.c b/test/Sema/attr-unavailable-message.c
index ebdf945867..400a2c6328 100644
--- a/test/Sema/attr-unavailable-message.c
+++ b/test/Sema/attr-unavailable-message.c
@@ -1,8 +1,8 @@
// RUN: %clang_cc1 -fsyntax-only -verify %s
// rdar: //6734520
-int foo(int) __attribute__((__unavailable__("USE IFOO INSTEAD"))); // expected-note {{function has been explicitly marked unavailable here}}
-double dfoo(double) __attribute__((__unavailable__("NO LONGER"))); // expected-note 2 {{function has been explicitly marked unavailable here}}
+int foo(int) __attribute__((__unavailable__("USE IFOO INSTEAD"))); // expected-note {{'foo' has been explicitly marked unavailable here}}
+double dfoo(double) __attribute__((__unavailable__("NO LONGER"))); // expected-note 2 {{'dfoo' has been explicitly marked unavailable here}}
void bar() __attribute__((__unavailable__)); // expected-note {{explicitly marked unavailable}}
@@ -34,13 +34,13 @@ void unavail(void) {
// rdar://10201690
enum foo {
- a = 1, // expected-note {{declared here}}
- b __attribute__((deprecated())) = 2, // expected-note {{declared here}}
+ a = 1, // expected-note {{'a' has been explicitly marked deprecated here}}
+ b __attribute__((deprecated())) = 2, // expected-note {{'b' has been explicitly marked deprecated here}}
c = 3
}__attribute__((deprecated()));
-enum fee { // expected-note {{declaration has been explicitly marked unavailable here}}
- r = 1, // expected-note {{declaration has been explicitly marked unavailable here}}
+enum fee { // expected-note {{'fee' has been explicitly marked unavailable here}}
+ r = 1, // expected-note {{'r' has been explicitly marked unavailable here}}
s = 2,
t = 3
}__attribute__((unavailable()));